clitrigger 0.2.66 → 0.2.68
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +4 -2
- package/README_KR.md +4 -2
- package/dist/client/assets/{AnalyticsPanel-ntVVoM9O.js → AnalyticsPanel-Df6PTxhA.js} +1 -1
- package/dist/client/assets/{CalendarGrid-8sSzdBes.js → CalendarGrid-Bsrf2InF.js} +1 -1
- package/dist/client/assets/{DiscussionDetail-C8Jd-XNF.js → DiscussionDetail-CpPbB3D-.js} +4 -4
- package/dist/client/assets/{DiscussionForm-DaOo6Qn4.js → DiscussionForm-DASNXVl-.js} +1 -1
- package/dist/client/assets/{EmptyState-D4nAcalF.js → EmptyState-BauJBCrW.js} +1 -1
- package/dist/client/assets/{FloatingComposerController-5A3GJtK4-BKGtaowy.js → FloatingComposerController-5A3GJtK4-K4SWepH8.js} +1 -1
- package/dist/client/assets/{LogViewer-BC9BUbyo.js → LogViewer-zauAgB6I.js} +1 -1
- package/dist/client/assets/{MarkdownContent-CHKH6BNR.js → MarkdownContent-B3oEjGwC.js} +1 -1
- package/dist/client/assets/{PersonalAgenda-SY8iVky-.js → PersonalAgenda-C8P8R7BW.js} +3 -3
- package/dist/client/assets/{PlannerPageEditor-BR1YXV1Y.js → PlannerPageEditor-DPXI3Zfq.js} +3 -3
- package/dist/client/assets/ProjectDetail-eFpOIAWj.js +183 -0
- package/dist/client/assets/{ProjectList-CcCAHjcA.js → ProjectList-BJo-FMR3.js} +1 -1
- package/dist/client/assets/{ReviewQueue-DJKmru0O.js → ReviewQueue-Bc7VQ6Gf.js} +1 -1
- package/dist/client/assets/{TaskGraph-BeJAKmMa.js → TaskGraph-B97ITa4c.js} +1 -1
- package/dist/client/assets/{VaultLayout-B6EUh-n3.js → VaultLayout-CUbPgHod.js} +2 -2
- package/dist/client/assets/{folder-git-2-DTO9mjAn.js → folder-git-2-BqhO_WrT.js} +1 -1
- package/dist/client/assets/index-DxjV2Q9W.js +427 -0
- package/dist/client/assets/index-xIZH9sMw.css +32 -0
- package/dist/client/assets/{rotate-ccw-Ce-MeCWv.js → rotate-ccw-aXuj01G0.js} +1 -1
- package/dist/client/assets/{style-BGCiJv3W.js → style-9nX9ra-f.js} +1 -1
- package/dist/client/assets/{with-selector-DaFJ9d0-.js → with-selector-vbW186xh.js} +1 -1
- package/dist/client/index.html +2 -2
- package/dist/server/db/queries.d.ts +2 -1
- package/dist/server/db/queries.d.ts.map +1 -1
- package/dist/server/db/queries.js +4 -0
- package/dist/server/db/queries.js.map +1 -1
- package/dist/server/db/schema.d.ts.map +1 -1
- package/dist/server/db/schema.js +2 -0
- package/dist/server/db/schema.js.map +1 -1
- package/dist/server/routes/discussions.d.ts.map +1 -1
- package/dist/server/routes/discussions.js +1 -0
- package/dist/server/routes/discussions.js.map +1 -1
- package/dist/server/routes/execution.d.ts.map +1 -1
- package/dist/server/routes/execution.js +2 -0
- package/dist/server/routes/execution.js.map +1 -1
- package/dist/server/routes/projects.d.ts.map +1 -1
- package/dist/server/routes/projects.js +7 -2
- package/dist/server/routes/projects.js.map +1 -1
- package/dist/server/services/cli-adapters.js +1 -1
- package/dist/server/services/cli-adapters.js.map +1 -1
- package/dist/server/services/cli-status.d.ts.map +1 -1
- package/dist/server/services/cli-status.js +12 -1
- package/dist/server/services/cli-status.js.map +1 -1
- package/dist/server/services/orchestrator.d.ts.map +1 -1
- package/dist/server/services/orchestrator.js +12 -0
- package/dist/server/services/orchestrator.js.map +1 -1
- package/dist/server/services/session-manager.d.ts.map +1 -1
- package/dist/server/services/session-manager.js +8 -0
- package/dist/server/services/session-manager.js.map +1 -1
- package/dist/server/services/worktree-manager.d.ts +8 -0
- package/dist/server/services/worktree-manager.d.ts.map +1 -1
- package/dist/server/services/worktree-manager.js +28 -0
- package/dist/server/services/worktree-manager.js.map +1 -1
- package/package.json +2 -2
- package/dist/client/assets/ProjectDetail-NmmSdopm.js +0 -181
- package/dist/client/assets/index-B0DZbgpK.js +0 -427
- package/dist/client/assets/index-gug7OXWO.css +0 -32
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
var $0=Object.defineProperty;var P0=(i,e,t)=>e in i?$0(i,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):i[e]=t;var kc=(i,e,t)=>P0(i,typeof e!="symbol"?e+"":e,t);import{c as ke,r as Q,a as Xe,j as p,v as Hn,o as Pd,p as Td,s as T0,F as ks,
|
|
1
|
+
var $0=Object.defineProperty;var P0=(i,e,t)=>e in i?$0(i,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):i[e]=t;var kc=(i,e,t)=>P0(i,typeof e!="symbol"?e+"":e,t);import{c as ke,r as Q,a as Xe,j as p,v as Hn,o as Pd,p as Td,s as T0,F as ks,b5 as C0,bh as X0,b as Cd,R as R0,J as an,bi as ho,Z as eh,aO as zl,bj as Xd,aN as Z0,Q as A0,C as vs,S as th,bk as j0,aT as M0,X as ih,bl as E0,d as z0,aC as zo,aD as Ft,$ as ql,z as Ln,U as q0,M as nh,G as Rd,B as _0}from"./index-DxjV2Q9W.js";import{F as W0,A as L0,a as _l,L as V0,b as N0,R as vc}from"./ProjectDetail-eFpOIAWj.js";import{C as D0}from"./rotate-ccw-aXuj01G0.js";import{F as Sn,q as Y0,r as B0,E as rh,v as sh,w as I0,x as G0,y as Wl,z as Zd,A as U0}from"./DiscussionForm-DASNXVl-.js";import{k as F0,b as H0,s as K0}from"./index-Vcq4gwWv.js";import{M as J0,u as ex,a as tx,i as ix,B as nx,b as rx,C as sx,H as $c,P as Pc}from"./style-9nX9ra-f.js";import{M as Ad}from"./MarkdownContent-B3oEjGwC.js";import"./CalendarGrid-Bsrf2InF.js";import"./LogViewer-zauAgB6I.js";import"./EmptyState-BauJBCrW.js";import"./value-BTdN53H7.js";import"./with-selector-vbW186xh.js";/**
|
|
2
2
|
* @license lucide-react v1.8.0 - ISC
|
|
3
3
|
*
|
|
4
4
|
* This source code is licensed under the ISC license.
|
|
@@ -132,7 +132,7 @@ var $0=Object.defineProperty;var P0=(i,e,t)=>e in i?$0(i,e,{enumerable:!0,config
|
|
|
132
132
|
}
|
|
133
133
|
}`,{label:"class",detail:"definition",type:"keyword"}),Qe('import {${names}} from "${module}"\n${}',{label:"import",detail:"named",type:"keyword"}),Qe('import ${name} from "${module}"\n${}',{label:"import",detail:"default",type:"keyword"})],Wv=Tm.concat([Qe("interface ${name} {\n ${}\n}",{label:"interface",detail:"definition",type:"keyword"}),Qe("type ${name} = ${type}",{label:"type",detail:"definition",type:"keyword"}),Qe("enum ${name} {\n ${}\n}",{label:"enum",detail:"definition",type:"keyword"})]),qu=new Th,Cm=new Set(["Script","Block","FunctionExpression","FunctionDeclaration","ArrowFunction","MethodDeclaration","ForStatement"]);function An(i){return(e,t)=>{let n=e.node.getChild("VariableDefinition");return n&&t(n,i),!0}}const Lv=["FunctionDeclaration"],Vv={FunctionDeclaration:An("function"),ClassDeclaration:An("class"),ClassExpression:()=>!0,EnumDeclaration:An("constant"),TypeAliasDeclaration:An("type"),NamespaceDeclaration:An("namespace"),VariableDefinition(i,e){i.matchContext(Lv)||e(i,"variable")},TypeDefinition(i,e){e(i,"type")},__proto__:null};function Xm(i,e){let t=qu.get(e);if(t)return t;let n=[],r=!0;function s(o,l){let a=i.sliceString(o.from,o.to);n.push({label:a,type:l})}return e.cursor(le.IncludeAnonymous).iterate(o=>{if(r)r=!1;else if(o.name){let l=Vv[o.name];if(l&&l(o,s)||Cm.has(o.name))return!1}else if(o.to-o.from>8192){for(let l of Xm(i,o.node))n.push(l);return!1}}),qu.set(e,n),n}const _u=/^[\w$\xa1-\uffff][\w$\d\xa1-\uffff]*$/,Rm=["TemplateString","String","RegExp","LineComment","BlockComment","VariableDefinition","TypeDefinition","Label","PropertyDefinition","PropertyName","PrivatePropertyDefinition","PrivatePropertyName","JSXText","JSXAttributeValue","JSXOpenTag","JSXCloseTag","JSXSelfClosingTag",".","?."];function Nv(i){let e=ce(i.state).resolveInner(i.pos,-1);if(Rm.indexOf(e.name)>-1)return null;let t=e.name=="VariableName"||e.to-e.from<20&&_u.test(i.state.sliceDoc(e.from,e.to));if(!t&&!i.explicit)return null;let n=[];for(let r=e;r;r=r.parent)Cm.has(r.name)&&(n=n.concat(Xm(i.state.doc,r)));return{options:n,from:t?e.from:i.pos,validFor:_u}}const Mt=Oi.define({name:"javascript",parser:_v.configure({props:[Vi.add({IfStatement:rn({except:/^\s*({|else\b)/}),TryStatement:rn({except:/^\s*({|catch\b|finally\b)/}),LabeledStatement:qb,SwitchBody:i=>{let e=i.textAfter,t=/^\s*\}/.test(e),n=/^\s*(case|default)\b/.test(e);return i.baseIndent+(t?0:n?1:2)*i.unit},Block:ps({closing:"}"}),ArrowFunction:i=>i.baseIndent+i.unit,"TemplateString BlockComment":()=>null,"Statement Property":rn({except:/^\s*{/}),JSXElement(i){let e=/^\s*<\//.test(i.textAfter);return i.lineIndent(i.node.from)+(e?0:i.unit)},JSXEscape(i){let e=/\s*\}/.test(i.textAfter);return i.lineIndent(i.node.from)+(e?0:i.unit)},"JSXOpenTag JSXSelfClosingTag"(i){return i.column(i.node.from)+i.unit}}),Si.add({"Block ClassBody SwitchBody EnumBody ObjectExpression ArrayExpression ObjectType":So,BlockComment(i){return{from:i.from+2,to:i.to-2}},JSXElement(i){let e=i.firstChild;if(!e||e.name=="JSXSelfClosingTag")return null;let t=i.lastChild;return{from:e.to,to:t.type.isError?i.to:t.from}},"JSXSelfClosingTag JSXOpenTag"(i){var e;let t=(e=i.firstChild)===null||e===void 0?void 0:e.nextSibling,n=i.lastChild;return!t||t.type.isError?null:{from:t.to,to:n.type.isError?i.to:n.from}}})]}),languageData:{closeBrackets:{brackets:["(","[","{","'",'"',"`"]},commentTokens:{line:"//",block:{open:"/*",close:"*/"}},indentOnInput:/^\s*(?:case |default:|\{|\}|<\/)$/,wordChars:"$"}}),Zm={test:i=>/^JSX/.test(i.name),facet:Xh({commentTokens:{block:{open:"{/*",close:"*/}"}}})},Am=Mt.configure({dialect:"ts"},"typescript"),jm=Mt.configure({dialect:"jsx",props:[Rh.add(i=>i.isTop?[Zm]:void 0)]}),Mm=Mt.configure({dialect:"jsx ts",props:[Rh.add(i=>i.isTop?[Zm]:void 0)]},"typescript");let Em=i=>({label:i,type:"keyword"});const zm="break case const continue default delete export extends false finally in instanceof let new return static super switch this throw true typeof var yield".split(" ").map(Em),Dv=zm.concat(["declare","implements","private","protected","public"].map(Em));function qa(i={}){let e=i.jsx?i.typescript?Mm:jm:i.typescript?Am:Mt,t=i.typescript?Wv.concat(Dv):Tm.concat(zm);return new zi(e,[Mt.data.of({autocomplete:Zp(Rm,Mh(t))}),Mt.data.of({autocomplete:Nv}),i.jsx?Iv:[]])}function Yv(i){for(;;){if(i.name=="JSXOpenTag"||i.name=="JSXSelfClosingTag"||i.name=="JSXFragmentTag")return i;if(i.name=="JSXEscape"||!i.parent)return null;i=i.parent}}function Wu(i,e,t=i.length){for(let n=e==null?void 0:e.firstChild;n;n=n.nextSibling)if(n.name=="JSXIdentifier"||n.name=="JSXBuiltin"||n.name=="JSXNamespacedName"||n.name=="JSXMemberExpression")return i.sliceString(n.from,Math.min(n.to,t));return""}const Bv=typeof navigator=="object"&&/Android\b/.test(navigator.userAgent),Iv=q.inputHandler.of((i,e,t,n,r)=>{if((Bv?i.composing:i.compositionStarted)||i.state.readOnly||e!=t||n!=">"&&n!="/"||!Mt.isActiveAt(i.state,e,-1))return!1;let s=r(),{state:o}=s,l=o.changeByRange(a=>{var h;let{head:c}=a,f=ce(o).resolveInner(c-1,-1),u;if(f.name=="JSXStartTag"&&(f=f.parent),!(o.doc.sliceString(c-1,c)!=n||f.name=="JSXAttributeValue"&&f.to>c)){if(n==">"&&f.name=="JSXFragmentTag")return{range:a,changes:{from:c,insert:"</>"}};if(n=="/"&&f.name=="JSXStartCloseTag"){let d=f.parent,O=d.parent;if(O&&d.from==c-2&&((u=Wu(o.doc,O.firstChild,c))||((h=O.firstChild)===null||h===void 0?void 0:h.name)=="JSXFragmentTag")){let m=`${u}>`;return{range:$.cursor(c+m.length,-1),changes:{from:c,insert:m}}}}else if(n==">"){let d=Yv(f);if(d&&d.name=="JSXOpenTag"&&!/^\/?>|^<\//.test(o.doc.sliceString(c,c+2))&&(u=Wu(o.doc,d,c)))return{range:a,changes:{from:c,insert:`</${u}>`}}}}return{range:a}});return l.changes.empty?!1:(i.dispatch([s,o.update(l,{userEvent:"input.complete",scrollIntoView:!0})]),!0)}),jn=["_blank","_self","_top","_parent"],gl=["ascii","utf-8","utf-16","latin1","latin1"],xl=["get","post","put","delete"],Sl=["application/x-www-form-urlencoded","multipart/form-data","text/plain"],He=["true","false"],Y={},Gv={a:{attrs:{href:null,ping:null,type:null,media:null,target:jn,hreflang:null}},abbr:Y,address:Y,area:{attrs:{alt:null,coords:null,href:null,target:null,ping:null,media:null,hreflang:null,type:null,shape:["default","rect","circle","poly"]}},article:Y,aside:Y,audio:{attrs:{src:null,mediagroup:null,crossorigin:["anonymous","use-credentials"],preload:["none","metadata","auto"],autoplay:["autoplay"],loop:["loop"],controls:["controls"]}},b:Y,base:{attrs:{href:null,target:jn}},bdi:Y,bdo:Y,blockquote:{attrs:{cite:null}},body:Y,br:Y,button:{attrs:{form:null,formaction:null,name:null,value:null,autofocus:["autofocus"],disabled:["autofocus"],formenctype:Sl,formmethod:xl,formnovalidate:["novalidate"],formtarget:jn,type:["submit","reset","button"]}},canvas:{attrs:{width:null,height:null}},caption:Y,center:Y,cite:Y,code:Y,col:{attrs:{span:null}},colgroup:{attrs:{span:null}},command:{attrs:{type:["command","checkbox","radio"],label:null,icon:null,radiogroup:null,command:null,title:null,disabled:["disabled"],checked:["checked"]}},data:{attrs:{value:null}},datagrid:{attrs:{disabled:["disabled"],multiple:["multiple"]}},datalist:{attrs:{data:null}},dd:Y,del:{attrs:{cite:null,datetime:null}},details:{attrs:{open:["open"]}},dfn:Y,div:Y,dl:Y,dt:Y,em:Y,embed:{attrs:{src:null,type:null,width:null,height:null}},eventsource:{attrs:{src:null}},fieldset:{attrs:{disabled:["disabled"],form:null,name:null}},figcaption:Y,figure:Y,footer:Y,form:{attrs:{action:null,name:null,"accept-charset":gl,autocomplete:["on","off"],enctype:Sl,method:xl,novalidate:["novalidate"],target:jn}},h1:Y,h2:Y,h3:Y,h4:Y,h5:Y,h6:Y,head:{children:["title","base","link","style","meta","script","noscript","command"]},header:Y,hgroup:Y,hr:Y,html:{attrs:{manifest:null}},i:Y,iframe:{attrs:{src:null,srcdoc:null,name:null,width:null,height:null,sandbox:["allow-top-navigation","allow-same-origin","allow-forms","allow-scripts"],seamless:["seamless"]}},img:{attrs:{alt:null,src:null,ismap:null,usemap:null,width:null,height:null,crossorigin:["anonymous","use-credentials"]}},input:{attrs:{alt:null,dirname:null,form:null,formaction:null,height:null,list:null,max:null,maxlength:null,min:null,name:null,pattern:null,placeholder:null,size:null,src:null,step:null,value:null,width:null,accept:["audio/*","video/*","image/*"],autocomplete:["on","off"],autofocus:["autofocus"],checked:["checked"],disabled:["disabled"],formenctype:Sl,formmethod:xl,formnovalidate:["novalidate"],formtarget:jn,multiple:["multiple"],readonly:["readonly"],required:["required"],type:["hidden","text","search","tel","url","email","password","datetime","date","month","week","time","datetime-local","number","range","color","checkbox","radio","file","submit","image","reset","button"]}},ins:{attrs:{cite:null,datetime:null}},kbd:Y,keygen:{attrs:{challenge:null,form:null,name:null,autofocus:["autofocus"],disabled:["disabled"],keytype:["RSA"]}},label:{attrs:{for:null,form:null}},legend:Y,li:{attrs:{value:null}},link:{attrs:{href:null,type:null,hreflang:null,media:null,sizes:["all","16x16","16x16 32x32","16x16 32x32 64x64"]}},map:{attrs:{name:null}},mark:Y,menu:{attrs:{label:null,type:["list","context","toolbar"]}},meta:{attrs:{content:null,charset:gl,name:["viewport","application-name","author","description","generator","keywords"],"http-equiv":["content-language","content-type","default-style","refresh"]}},meter:{attrs:{value:null,min:null,low:null,high:null,max:null,optimum:null}},nav:Y,noscript:Y,object:{attrs:{data:null,type:null,name:null,usemap:null,form:null,width:null,height:null,typemustmatch:["typemustmatch"]}},ol:{attrs:{reversed:["reversed"],start:null,type:["1","a","A","i","I"]},children:["li","script","template","ul","ol"]},optgroup:{attrs:{disabled:["disabled"],label:null}},option:{attrs:{disabled:["disabled"],label:null,selected:["selected"],value:null}},output:{attrs:{for:null,form:null,name:null}},p:Y,param:{attrs:{name:null,value:null}},pre:Y,progress:{attrs:{value:null,max:null}},q:{attrs:{cite:null}},rp:Y,rt:Y,ruby:Y,samp:Y,script:{attrs:{type:["text/javascript"],src:null,async:["async"],defer:["defer"],charset:gl}},section:Y,select:{attrs:{form:null,name:null,size:null,autofocus:["autofocus"],disabled:["disabled"],multiple:["multiple"]}},slot:{attrs:{name:null}},small:Y,source:{attrs:{src:null,type:null,media:null}},span:Y,strong:Y,style:{attrs:{type:["text/css"],media:null,scoped:null}},sub:Y,summary:Y,sup:Y,table:Y,tbody:Y,td:{attrs:{colspan:null,rowspan:null,headers:null}},template:Y,textarea:{attrs:{dirname:null,form:null,maxlength:null,name:null,placeholder:null,rows:null,cols:null,autofocus:["autofocus"],disabled:["disabled"],readonly:["readonly"],required:["required"],wrap:["soft","hard"]}},tfoot:Y,th:{attrs:{colspan:null,rowspan:null,headers:null,scope:["row","col","rowgroup","colgroup"]}},thead:Y,time:{attrs:{datetime:null}},title:Y,tr:Y,track:{attrs:{src:null,label:null,default:null,kind:["subtitles","captions","descriptions","chapters","metadata"],srclang:null}},ul:{children:["li","script","template","ul","ol"]},var:Y,video:{attrs:{src:null,poster:null,width:null,height:null,crossorigin:["anonymous","use-credentials"],preload:["auto","metadata","none"],autoplay:["autoplay"],mediagroup:["movie"],muted:["muted"],controls:["controls"]}},wbr:Y},qm={accesskey:null,class:null,contenteditable:He,contextmenu:null,dir:["ltr","rtl","auto"],draggable:["true","false","auto"],dropzone:["copy","move","link","string:","file:"],hidden:["hidden"],id:null,inert:["inert"],itemid:null,itemprop:null,itemref:null,itemscope:["itemscope"],itemtype:null,lang:["ar","bn","de","en-GB","en-US","es","fr","hi","id","ja","pa","pt","ru","tr","zh"],spellcheck:He,autocorrect:He,autocapitalize:He,style:null,tabindex:null,title:null,translate:["yes","no"],rel:["stylesheet","alternate","author","bookmark","help","license","next","nofollow","noreferrer","prefetch","prev","search","tag"],role:"alert application article banner button cell checkbox complementary contentinfo dialog document feed figure form grid gridcell heading img list listbox listitem main navigation region row rowgroup search switch tab table tabpanel textbox timer".split(" "),"aria-activedescendant":null,"aria-atomic":He,"aria-autocomplete":["inline","list","both","none"],"aria-busy":He,"aria-checked":["true","false","mixed","undefined"],"aria-controls":null,"aria-describedby":null,"aria-disabled":He,"aria-dropeffect":null,"aria-expanded":["true","false","undefined"],"aria-flowto":null,"aria-grabbed":["true","false","undefined"],"aria-haspopup":He,"aria-hidden":He,"aria-invalid":["true","false","grammar","spelling"],"aria-label":null,"aria-labelledby":null,"aria-level":null,"aria-live":["off","polite","assertive"],"aria-multiline":He,"aria-multiselectable":He,"aria-owns":null,"aria-posinset":null,"aria-pressed":["true","false","mixed","undefined"],"aria-readonly":He,"aria-relevant":null,"aria-required":He,"aria-selected":["true","false","undefined"],"aria-setsize":null,"aria-sort":["ascending","descending","none","other"],"aria-valuemax":null,"aria-valuemin":null,"aria-valuenow":null,"aria-valuetext":null},_m="beforeunload copy cut dragstart dragover dragleave dragenter dragend drag paste focus blur change click load mousedown mouseenter mouseleave mouseup keydown keyup resize scroll unload".split(" ").map(i=>"on"+i);for(let i of _m)qm[i]=null;class pr{constructor(e,t){this.tags={...Gv,...e},this.globalAttrs={...qm,...t},this.allTags=Object.keys(this.tags),this.globalAttrNames=Object.keys(this.globalAttrs)}}pr.default=new pr;function mn(i,e,t=i.length){if(!e)return"";let n=e.firstChild,r=n&&n.getChild("TagName");return r?i.sliceString(r.from,Math.min(r.to,t)):""}function gn(i,e=!1){for(;i;i=i.parent)if(i.name=="Element")if(e)e=!1;else return i;return null}function Wm(i,e,t){let n=t.tags[mn(i,gn(e))];return(n==null?void 0:n.children)||t.allTags}function Jh(i,e){let t=[];for(let n=gn(e);n&&!n.type.isTop;n=gn(n.parent)){let r=mn(i,n);if(r&&n.lastChild.name=="CloseTag")break;r&&t.indexOf(r)<0&&(e.name=="EndTag"||e.from>=n.firstChild.to)&&t.push(r)}return t}const Lm=/^[:\-\.\w\u00b7-\uffff]*$/;function Lu(i,e,t,n,r){let s=/\s*>/.test(i.sliceDoc(r,r+5))?"":">",o=gn(t,t.name=="StartTag"||t.name=="TagName");return{from:n,to:r,options:Wm(i.doc,o,e).map(l=>({label:l,type:"type"})).concat(Jh(i.doc,t).map((l,a)=>({label:"/"+l,apply:"/"+l+s,type:"type",boost:99-a}))),validFor:/^\/?[:\-\.\w\u00b7-\uffff]*$/}}function Vu(i,e,t,n){let r=/\s*>/.test(i.sliceDoc(n,n+5))?"":">";return{from:t,to:n,options:Jh(i.doc,e).map((s,o)=>({label:s,apply:s+r,type:"type",boost:99-o})),validFor:Lm}}function Uv(i,e,t,n){let r=[],s=0;for(let o of Wm(i.doc,t,e))r.push({label:"<"+o,type:"type"});for(let o of Jh(i.doc,t))r.push({label:"</"+o+">",type:"type",boost:99-s++});return{from:n,to:n,options:r,validFor:/^<\/?[:\-\.\w\u00b7-\uffff]*$/}}function Fv(i,e,t,n,r){let s=gn(t),o=s?e.tags[mn(i.doc,s)]:null,l=o&&o.attrs?Object.keys(o.attrs):[],a=o&&o.globalAttrs===!1?l:l.length?l.concat(e.globalAttrNames):e.globalAttrNames;return{from:n,to:r,options:a.map(h=>({label:h,type:"property"})),validFor:Lm}}function Hv(i,e,t,n,r){var s;let o=(s=t.parent)===null||s===void 0?void 0:s.getChild("AttributeName"),l=[],a;if(o){let h=i.sliceDoc(o.from,o.to),c=e.globalAttrs[h];if(!c){let f=gn(t),u=f?e.tags[mn(i.doc,f)]:null;c=(u==null?void 0:u.attrs)&&u.attrs[h]}if(c){let f=i.sliceDoc(n,r).toLowerCase(),u='"',d='"';/^['"]/.test(f)?(a=f[0]=='"'?/^[^"]*$/:/^[^']*$/,u="",d=i.sliceDoc(r,r+1)==f[0]?"":f[0],f=f.slice(1),n++):a=/^[^\s<>='"]*$/;for(let O of c)l.push({label:O,apply:u+O+d,type:"constant"})}}return{from:n,to:r,options:l,validFor:a}}function Vm(i,e){let{state:t,pos:n}=e,r=ce(t).resolveInner(n,-1),s=r.resolve(n);for(let o=n,l;s==r&&(l=r.childBefore(o));){let a=l.lastChild;if(!a||!a.type.isError||a.from<a.to)break;s=r=l,o=a.from}return r.name=="TagName"?r.parent&&/CloseTag$/.test(r.parent.name)?Vu(t,r,r.from,n):Lu(t,i,r,r.from,n):r.name=="StartTag"||r.name=="IncompleteTag"?Lu(t,i,r,n,n):r.name=="StartCloseTag"||r.name=="IncompleteCloseTag"?Vu(t,r,n,n):r.name=="OpenTag"||r.name=="SelfClosingTag"||r.name=="AttributeName"?Fv(t,i,r,r.name=="AttributeName"?r.from:n,n):r.name=="Is"||r.name=="AttributeValue"||r.name=="UnquotedAttributeValue"?Hv(t,i,r,r.name=="Is"?n:r.from,n):e.explicit&&(s.name=="Element"||s.name=="Text"||s.name=="Document")?Uv(t,i,r,n):null}function Kv(i){return Vm(pr.default,i)}function Jv(i){let{extraTags:e,extraGlobalAttributes:t}=i,n=t||e?new pr(e,t):pr.default;return r=>Vm(n,r)}const e$=Mt.parser.configure({top:"SingleExpression"}),Nm=[{tag:"script",attrs:i=>i.type=="text/typescript"||i.lang=="ts",parser:Am.parser},{tag:"script",attrs:i=>i.type=="text/babel"||i.type=="text/jsx",parser:jm.parser},{tag:"script",attrs:i=>i.type=="text/typescript-jsx",parser:Mm.parser},{tag:"script",attrs(i){return/^(importmap|speculationrules|application\/(.+\+)?json)$/i.test(i.type)},parser:e$},{tag:"script",attrs(i){return!i.type||/^(?:text|application)\/(?:x-)?(?:java|ecma)script$|^module$|^$/i.test(i.type)},parser:Mt.parser},{tag:"style",attrs(i){return(!i.lang||i.lang=="css")&&(!i.type||/^(text\/)?(x-)?(stylesheet|css)$/i.test(i.type))},parser:eo.parser}],Dm=[{name:"style",parser:eo.parser.configure({top:"Styles"})}].concat(_m.map(i=>({name:i,parser:Mt.parser}))),Ym=Oi.define({name:"html",parser:Pk.configure({props:[Vi.add({Element(i){let e=/^(\s*)(<\/)?/.exec(i.textAfter);return i.node.to<=i.pos+e[0].length?i.continue():i.lineIndent(i.node.from)+(e[2]?0:i.unit)},"OpenTag CloseTag SelfClosingTag"(i){return i.column(i.node.from)+i.unit},Document(i){if(i.pos+/\s*/.exec(i.textAfter)[0].length<i.node.to)return i.continue();let e=null,t;for(let n=i.node;;){let r=n.lastChild;if(!r||r.name!="Element"||r.to!=n.to)break;e=n=r}return e&&!((t=e.lastChild)&&(t.name=="CloseTag"||t.name=="SelfClosingTag"))?i.lineIndent(e.from)+i.unit:null}}),Si.add({Element(i){let e=i.firstChild,t=i.lastChild;return!e||e.name!="OpenTag"?null:{from:e.to,to:t.name=="CloseTag"?t.from:i.to}}}),Rp.add({"OpenTag CloseTag":i=>i.getChild("TagName")})]}),languageData:{commentTokens:{block:{open:"<!--",close:"-->"}},indentOnInput:/^\s*<\/\w+\W$/,wordChars:"-_"}}),xs=Ym.configure({wrap:Qm(Nm,Dm)});function Bm(i={}){let e="",t;i.matchClosingTags===!1&&(e="noMatch"),i.selfClosingTags===!0&&(e=(e?e+" ":"")+"selfClosing"),(i.nestedLanguages&&i.nestedLanguages.length||i.nestedAttributes&&i.nestedAttributes.length)&&(t=Qm((i.nestedLanguages||[]).concat(Nm),(i.nestedAttributes||[]).concat(Dm)));let n=t?Ym.configure({wrap:t,dialect:e}):e?xs.configure({dialect:e}):xs;return new zi(n,[xs.data.of({autocomplete:Jv(i)}),i.autoCloseTags!==!1?t$:[],qa().support,$m().support])}const Nu=new Set("area base br col command embed frame hr img input keygen link meta param source track wbr menuitem".split(" ")),t$=q.inputHandler.of((i,e,t,n,r)=>{if(i.composing||i.state.readOnly||e!=t||n!=">"&&n!="/"||!xs.isActiveAt(i.state,e,-1))return!1;let s=r(),{state:o}=s,l=o.changeByRange(a=>{var h,c,f;let u=o.doc.sliceString(a.from-1,a.to)==n,{head:d}=a,O=ce(o).resolveInner(d,-1),m;if(u&&n==">"&&O.name=="EndTag"){let g=O.parent;if(((c=(h=g.parent)===null||h===void 0?void 0:h.lastChild)===null||c===void 0?void 0:c.name)!="CloseTag"&&(m=mn(o.doc,g.parent,d))&&!Nu.has(m)){let S=d+(o.doc.sliceString(d,d+1)===">"?1:0),b=`</${m}>`;return{range:a,changes:{from:d,to:S,insert:b}}}}else if(u&&n=="/"&&O.name=="IncompleteCloseTag"){let g=O.parent;if(O.from==d-2&&((f=g.lastChild)===null||f===void 0?void 0:f.name)!="CloseTag"&&(m=mn(o.doc,g,d))&&!Nu.has(m)){let S=d+(o.doc.sliceString(d,d+1)===">"?1:0),b=`${m}>`;return{range:$.cursor(d+b.length,-1),changes:{from:d,to:S,insert:b}}}}return{range:a}});return l.changes.empty?!1:(i.dispatch([s,o.update(l,{userEvent:"input.complete",scrollIntoView:!0})]),!0)}),Im=Xh({commentTokens:{block:{open:"<!--",close:"-->"}}}),Gm=new H,Um=bw.configure({props:[Si.add(i=>!i.is("Block")||i.is("Document")||_a(i)!=null||i$(i)?void 0:(e,t)=>({from:t.doc.lineAt(e.from).to,to:e.to})),Gm.add(_a),Vi.add({Document:()=>null}),Xi.add({Document:Im})]});function _a(i){let e=/^(?:ATX|Setext)Heading(\d)$/.exec(i.name);return e?+e[1]:void 0}function i$(i){return i.name=="OrderedList"||i.name=="BulletList"}function n$(i,e){let t=i;for(;;){let n=t.nextSibling,r;if(!n||(r=_a(n.type))!=null&&r<=e)break;t=n}return t.to}const r$=xp.of((i,e,t)=>{for(let n=ce(i).resolveInner(t,-1);n&&!(n.from<e);n=n.parent){let r=n.type.prop(Gm);if(r==null)continue;let s=n$(n,r);if(s>t)return{from:t,to:s}}return null});function ec(i){return new lt(Im,i,[],"markdown")}const s$=ec(Um),o$=Um.configure([Zw,jw,Aw,Mw,{props:[Si.add({Table:(i,e)=>({from:e.doc.lineAt(i.from).to,to:i.to})})]}]),to=ec(o$);function l$(i,e){return t=>{if(t&&i){let n=null;if(t=/\S*/.exec(t)[0],typeof i=="function"?n=i(t):n=Vs.matchLanguageName(i,t,!0),n instanceof Vs)return n.support?n.support.language.parser:lr.getSkippingParser(n.load());if(n)return n.parser}return e?e.parser:null}}let Ql=class{constructor(e,t,n,r,s,o,l){this.node=e,this.from=t,this.to=n,this.spaceBefore=r,this.spaceAfter=s,this.type=o,this.item=l}blank(e,t=!0){let n=this.spaceBefore+(this.node.name=="Blockquote"?">":"");if(e!=null){for(;n.length<e;)n+=" ";return n}else{for(let r=this.to-this.from-n.length-this.spaceAfter.length;r>0;r--)n+=" ";return n+(t?this.spaceAfter:"")}}marker(e,t){let n=this.node.name=="OrderedList"?String(+Hm(this.item,e)[2]+t):"";return this.spaceBefore+n+this.type+this.spaceAfter}};function Fm(i,e){let t=[],n=[];for(let r=i;r;r=r.parent){if(r.name=="FencedCode")return n;(r.name=="ListItem"||r.name=="Blockquote")&&t.push(r)}for(let r=t.length-1;r>=0;r--){let s=t[r],o,l=e.lineAt(s.from),a=s.from-l.from;if(s.name=="Blockquote"&&(o=/^ *>( ?)/.exec(l.text.slice(a))))n.push(new Ql(s,a,a+o[0].length,"",o[1],">",null));else if(s.name=="ListItem"&&s.parent.name=="OrderedList"&&(o=/^( *)\d+([.)])( *)/.exec(l.text.slice(a)))){let h=o[3],c=o[0].length;h.length>=4&&(h=h.slice(0,h.length-4),c-=4),n.push(new Ql(s.parent,a,a+c,o[1],h,o[2],s))}else if(s.name=="ListItem"&&s.parent.name=="BulletList"&&(o=/^( *)([-+*])( {1,4}\[[ xX]\])?( +)/.exec(l.text.slice(a)))){let h=o[4],c=o[0].length;h.length>4&&(h=h.slice(0,h.length-4),c-=4);let f=o[2];o[3]&&(f+=o[3].replace(/[xX]/," ")),n.push(new Ql(s.parent,a,a+c,o[1],h,f,s))}}return n}function Hm(i,e){return/^(\s*)(\d+)(?=[.)])/.exec(e.sliceString(i.from,i.from+10))}function bl(i,e,t,n=0){for(let r=-1,s=i;;){if(s.name=="ListItem"){let l=Hm(s,e),a=+l[2];if(r>=0){if(a!=r+1)return;t.push({from:s.from+l[1].length,to:s.from+l[0].length,insert:String(r+2+n)})}r=a}let o=s.nextSibling;if(!o)break;s=o}}function tc(i,e){let t=/^[ \t]*/.exec(i)[0].length;if(!t||e.facet(bn)!=" ")return i;let n=pt(i,4,t),r="";for(let s=n;s>0;)s>=4?(r+=" ",s-=4):(r+=" ",s--);return r+i.slice(t)}const a$=(i={})=>({state:e,dispatch:t})=>{let n=ce(e),{doc:r}=e,s=null,o=e.changeByRange(l=>{if(!l.empty||!to.isActiveAt(e,l.from,-1)&&!to.isActiveAt(e,l.from,1))return s={range:l};let a=l.from,h=r.lineAt(a),c=Fm(n.resolveInner(a,-1),r);for(;c.length&&c[c.length-1].from>a-h.from;)c.pop();if(!c.length)return s={range:l};let f=c[c.length-1];if(f.to-f.spaceAfter.length>a-h.from)return s={range:l};let u=a>=f.to-f.spaceAfter.length&&!/\S/.test(h.text.slice(f.to));if(f.item&&u){let S=f.node.firstChild,b=f.node.getChild("ListItem","ListItem");if(S.to>=a||b&&b.to<a||h.from>0&&!/[^\s>]/.test(r.lineAt(h.from-1).text)||i.nonTightLists===!1){let y=c.length>1?c[c.length-2]:null,T,k="";y&&y.item?(T=h.from+y.from,k=y.marker(r,1)):T=h.from+(y?y.to:0);let w=[{from:T,to:a,insert:k}];return f.node.name=="OrderedList"&&bl(f.item,r,w,-2),y&&y.node.name=="OrderedList"&&bl(y.item,r,w),{range:$.cursor(T+k.length),changes:w}}else{let y=Yu(c,e,h);return{range:$.cursor(a+y.length+1),changes:{from:h.from,insert:y+e.lineBreak}}}}if(f.node.name=="Blockquote"&&u&&h.from){let S=r.lineAt(h.from-1),b=/>\s*$/.exec(S.text);if(b&&b.index==f.from){let y=e.changes([{from:S.from+b.index,to:S.to},{from:h.from+f.from,to:h.to}]);return{range:l.map(y),changes:y}}}let d=[];f.node.name=="OrderedList"&&bl(f.item,r,d);let O=f.item&&f.item.from<h.from,m="";if(!O||/^[\s\d.)\-+*>]*/.exec(h.text)[0].length>=f.to)for(let S=0,b=c.length-1;S<=b;S++)m+=S==b&&!O?c[S].marker(r,1):c[S].blank(S<b?pt(h.text,4,c[S+1].from)-m.length:null);let g=a;for(;g>h.from&&/\s/.test(h.text.charAt(g-h.from-1));)g--;return m=tc(m,e),c$(f.node,e.doc)&&(m=Yu(c,e,h)+e.lineBreak+m),d.push({from:g,to:a,insert:e.lineBreak+m}),{range:$.cursor(g+m.length+1),changes:d}});return s?!1:(t(e.update(o,{scrollIntoView:!0,userEvent:"input"})),!0)},h$=a$();function Du(i){return i.name=="QuoteMark"||i.name=="ListMark"}function c$(i,e){if(i.name!="OrderedList"&&i.name!="BulletList")return!1;let t=i.firstChild,n=i.getChild("ListItem","ListItem");if(!n)return!1;let r=e.lineAt(t.to),s=e.lineAt(n.from),o=/^[\s>]*$/.test(r.text);return r.number+(o?0:1)<s.number}function Yu(i,e,t){let n="";for(let r=0,s=i.length-2;r<=s;r++)n+=i[r].blank(r<s?pt(t.text,4,i[r+1].from)-n.length:null,r<s);return tc(n,e)}function f$(i,e){let t=i.resolveInner(e,-1),n=e;Du(t)&&(n=t.from,t=t.parent);for(let r;r=t.childBefore(n);)if(Du(r))n=r.from;else if(r.name=="OrderedList"||r.name=="BulletList")t=r.lastChild,n=t.to;else break;return t}const u$=({state:i,dispatch:e})=>{let t=ce(i),n=null,r=i.changeByRange(s=>{let o=s.from,{doc:l}=i;if(s.empty&&to.isActiveAt(i,s.from)){let a=l.lineAt(o),h=Fm(f$(t,o),l);if(h.length){let c=h[h.length-1],f=c.to-c.spaceAfter.length+(c.spaceAfter?1:0);if(o-a.from>f&&!/\S/.test(a.text.slice(f,o-a.from)))return{range:$.cursor(a.from+f),changes:{from:a.from+f,to:o}};if(o-a.from==f&&(!c.item||a.from<=c.item.from||!/\S/.test(a.text.slice(0,c.to)))){let u=a.from+c.from;if(c.item&&c.node.from<c.item.from&&/\S/.test(a.text.slice(c.from,c.to))){let d=c.blank(pt(a.text,4,c.to)-pt(a.text,4,c.from));return u==a.from&&(d=tc(d,i)),{range:$.cursor(u+d.length),changes:{from:u,to:a.from+c.to,insert:d}}}if(u<o)return{range:$.cursor(u),changes:{from:u,to:o}}}}}return n={range:s}});return n?!1:(e(i.update(r,{scrollIntoView:!0,userEvent:"delete"})),!0)},d$=[{key:"Enter",run:h$},{key:"Backspace",run:u$}],Km=Bm({matchClosingTags:!1});function O$(i={}){let{codeLanguages:e,defaultCodeLanguage:t,addKeymap:n=!0,base:{parser:r}=s$,completeHTMLTags:s=!0,pasteURLAsLink:o=!0,htmlTagLanguage:l=Km}=i;if(!(r instanceof yo))throw new RangeError("Base parser provided to `markdown` should be a Markdown parser");let a=i.extensions?[i.extensions]:[],h=[l.support,r$],c;o&&h.push(x$),t instanceof zi?(h.push(t.support),c=t.language):t&&(c=t);let f=e||c?l$(e,c):void 0;a.push(ww({codeParser:f,htmlParser:l.language.parser})),n&&h.push(ii.high(Qn.of(d$)));let u=ec(r.configure(a));return s&&h.push(u.data.of({autocomplete:p$})),new zi(u,h)}function p$(i){let{state:e,pos:t}=i,n=/<[:\-\.\w\u00b7-\uffff]*$/.exec(e.sliceDoc(t-25,t));if(!n)return null;let r=ce(e).resolveInner(t,-1);for(;r&&!r.type.isTop;){if(r.name=="CodeBlock"||r.name=="FencedCode"||r.name=="ProcessingInstructionBlock"||r.name=="CommentBlock"||r.name=="Link"||r.name=="Image")return null;r=r.parent}return{from:t-n[0].length,to:t,options:m$(),validFor:/^<[:\-\.\w\u00b7-\uffff]*$/}}let yl=null;function m$(){if(yl)return yl;let i=Kv(new jh(ee.create({extensions:Km}),0,!0));return yl=i?i.options:[]}const g$=/code|horizontalrule|html|link|comment|processing|escape|entity|image|mark|url/i,x$=q.domEventHandlers({paste:(i,e)=>{var t;let{main:n}=e.state.selection;if(n.empty)return!1;let r=(t=i.clipboardData)===null||t===void 0?void 0:t.getData("text/plain");if(!r||!/^(https?:\/\/|mailto:|xmpp:|www\.)/.test(r)||(/^www\./.test(r)&&(r="https://"+r),!to.isActiveAt(e.state,n.from,1)))return!1;let s=ce(e.state),o=!1;return s.iterate({from:n.from,to:n.to,enter:l=>{(l.from>n.from||g$.test(l.name))&&(o=!0)},leave:l=>{l.to<n.to&&(o=!0)}}),o?!1:(e.dispatch({changes:[{from:n.from,insert:"["},{from:n.to,insert:`](${r})`}],userEvent:"input.paste",scrollIntoView:!0}),!0)}}),S$=xi({String:x.string,Number:x.number,"True False":x.bool,PropertyName:x.propertyName,Null:x.null,", :":x.separator,"[ ]":x.squareBracket,"{ }":x.brace}),Q$=mi.deserialize({version:14,states:"$bOVQPOOOOQO'#Cb'#CbOnQPO'#CeOvQPO'#ClOOQO'#Cr'#CrQOQPOOOOQO'#Cg'#CgO}QPO'#CfO!SQPO'#CtOOQO,59P,59PO![QPO,59PO!aQPO'#CuOOQO,59W,59WO!iQPO,59WOVQPO,59QOqQPO'#CmO!nQPO,59`OOQO1G.k1G.kOVQPO'#CnO!vQPO,59aOOQO1G.r1G.rOOQO1G.l1G.lOOQO,59X,59XOOQO-E6k-E6kOOQO,59Y,59YOOQO-E6l-E6l",stateData:"#O~OeOS~OQSORSOSSOTSOWQO_ROgPO~OVXOgUO~O^[O~PVO[^O~O]_OVhX~OVaO~O]bO^iX~O^dO~O]_OVha~O]bO^ia~O",goto:"!kjPPPPPPkPPkqwPPPPk{!RPPP!XP!e!hXSOR^bQWQRf_TVQ_Q`WRg`QcZRicQTOQZRQe^RhbRYQR]R",nodeNames:"⚠ JsonText True False Null Number String } { Object Property PropertyName : , ] [ Array",maxTerm:25,nodeProps:[["isolate",-2,6,11,""],["openedBy",7,"{",14,"["],["closedBy",8,"}",15,"]"]],propSources:[S$],skippedNodes:[0],repeatNodeCount:2,tokenData:"(|~RaXY!WYZ!W]^!Wpq!Wrs!]|}$u}!O$z!Q!R%T!R![&c![!]&t!}#O&y#P#Q'O#Y#Z'T#b#c'r#h#i(Z#o#p(r#q#r(w~!]Oe~~!`Wpq!]qr!]rs!xs#O!]#O#P!}#P;'S!];'S;=`$o<%lO!]~!}Og~~#QXrs!]!P!Q!]#O#P!]#U#V!]#Y#Z!]#b#c!]#f#g!]#h#i!]#i#j#m~#pR!Q![#y!c!i#y#T#Z#y~#|R!Q![$V!c!i$V#T#Z$V~$YR!Q![$c!c!i$c#T#Z$c~$fR!Q![!]!c!i!]#T#Z!]~$rP;=`<%l!]~$zO]~~$}Q!Q!R%T!R![&c~%YRT~!O!P%c!g!h%w#X#Y%w~%fP!Q![%i~%nRT~!Q![%i!g!h%w#X#Y%w~%zR{|&T}!O&T!Q![&Z~&WP!Q![&Z~&`PT~!Q![&Z~&hST~!O!P%c!Q![&c!g!h%w#X#Y%w~&yO[~~'OO_~~'TO^~~'WP#T#U'Z~'^P#`#a'a~'dP#g#h'g~'jP#X#Y'm~'rOR~~'uP#i#j'x~'{P#`#a(O~(RP#`#a(U~(ZOS~~(^P#f#g(a~(dP#i#j(g~(jP#X#Y(m~(rOQ~~(wOW~~(|OV~",tokenizers:[0],topRules:{JsonText:[0,1]},tokenPrec:0}),b$=Oi.define({name:"json",parser:Q$.configure({props:[Vi.add({Object:rn({except:/^\s*\}/}),Array:rn({except:/^\s*\]/})}),Si.add({"Object Array":So})]}),languageData:{closeBrackets:{brackets:["[","{",'"']},indentOnInput:/^\s*[\}\]]$/}});function y$(){return new zi(b$)}const w$=1,Jm=194,eg=195,k$=196,Bu=197,v$=198,$$=199,P$=200,T$=2,tg=3,Iu=201,C$=24,X$=25,R$=49,Z$=50,A$=55,j$=56,M$=57,E$=59,z$=60,q$=61,_$=62,W$=63,L$=65,V$=238,N$=71,D$=241,Y$=242,B$=243,I$=244,G$=245,U$=246,F$=247,H$=248,ig=72,K$=249,J$=250,eP=251,tP=252,iP=253,nP=254,rP=255,sP=256,oP=73,lP=77,aP=263,hP=112,cP=130,fP=151,uP=152,dP=155,_i=10,mr=13,ic=32,wo=9,nc=35,OP=40,pP=46,Wa=123,Gu=125,ng=39,rg=34,Uu=92,mP=111,gP=120,xP=78,SP=117,QP=85,bP=new Set([X$,R$,Z$,aP,L$,cP,j$,M$,V$,_$,W$,ig,oP,lP,z$,q$,fP,uP,dP,hP]);function wl(i){return i==_i||i==mr}function kl(i){return i>=48&&i<=57||i>=65&&i<=70||i>=97&&i<=102}const yP=new Ee((i,e)=>{let t;if(i.next<0)i.acceptToken($$);else if(e.context.flags&Ss)wl(i.next)&&i.acceptToken(v$,1);else if(((t=i.peek(-1))<0||wl(t))&&e.canShift(Bu)){let n=0;for(;i.next==ic||i.next==wo;)i.advance(),n++;(i.next==_i||i.next==mr||i.next==nc)&&i.acceptToken(Bu,-n)}else wl(i.next)&&i.acceptToken(k$,1)},{contextual:!0}),wP=new Ee((i,e)=>{let t=e.context;if(t.flags)return;let n=i.peek(-1);if(n==_i||n==mr){let r=0,s=0;for(;;){if(i.next==ic)r++;else if(i.next==wo)r+=8-r%8;else break;i.advance(),s++}r!=t.indent&&i.next!=_i&&i.next!=mr&&i.next!=nc&&(r<t.indent?i.acceptToken(eg,-s):i.acceptToken(Jm))}}),Ss=1,sg=2,Dt=4,Yt=8,Bt=16,It=32;function Qs(i,e,t){this.parent=i,this.indent=e,this.flags=t,this.hash=(i?i.hash+i.hash<<8:0)+e+(e<<4)+t+(t<<6)}const kP=new Qs(null,0,0);function vP(i){let e=0;for(let t=0;t<i.length;t++)e+=i.charCodeAt(t)==wo?8-e%8:1;return e}const Fu=new Map([[D$,0],[Y$,Dt],[B$,Yt],[I$,Yt|Dt],[G$,Bt],[U$,Bt|Dt],[F$,Bt|Yt],[H$,Bt|Yt|Dt],[K$,It],[J$,It|Dt],[eP,It|Yt],[tP,It|Yt|Dt],[iP,It|Bt],[nP,It|Bt|Dt],[rP,It|Bt|Yt],[sP,It|Bt|Yt|Dt]].map(([i,e])=>[i,e|sg])),$P=new Gh({start:kP,reduce(i,e,t,n){return i.flags&Ss&&bP.has(e)||(e==N$||e==ig)&&i.flags&sg?i.parent:i},shift(i,e,t,n){return e==Jm?new Qs(i,vP(n.read(n.pos,t.pos)),0):e==eg?i.parent:e==C$||e==A$||e==E$||e==tg?new Qs(i,0,Ss):Fu.has(e)?new Qs(i,0,Fu.get(e)|i.flags&Ss):i},hash(i){return i.hash}}),PP=new Ee(i=>{for(let e=0;e<5;e++){if(i.next!="print".charCodeAt(e))return;i.advance()}if(!/\w/.test(String.fromCharCode(i.next)))for(let e=0;;e++){let t=i.peek(e);if(!(t==ic||t==wo)){t!=OP&&t!=pP&&t!=_i&&t!=mr&&t!=nc&&i.acceptToken(w$);return}}}),TP=new Ee((i,e)=>{let{flags:t}=e.context,n=t&Dt?rg:ng,r=(t&Yt)>0,s=!(t&Bt),o=(t&It)>0,l=i.pos;for(;!(i.next<0);)if(o&&i.next==Wa)if(i.peek(1)==Wa)i.advance(2);else{if(i.pos==l){i.acceptToken(tg,1);return}break}else if(s&&i.next==Uu){if(i.pos==l){i.advance();let a=i.next;a>=0&&(i.advance(),CP(i,a)),i.acceptToken(T$);return}break}else if(i.next==Uu&&!s&&i.peek(1)>-1)i.advance(2);else if(i.next==n&&(!r||i.peek(1)==n&&i.peek(2)==n)){if(i.pos==l){i.acceptToken(Iu,r?3:1);return}break}else if(i.next==_i){if(r)i.advance();else if(i.pos==l){i.acceptToken(Iu);return}break}else i.advance();i.pos>l&&i.acceptToken(P$)});function CP(i,e){if(e==mP)for(let t=0;t<2&&i.next>=48&&i.next<=55;t++)i.advance();else if(e==gP)for(let t=0;t<2&&kl(i.next);t++)i.advance();else if(e==SP)for(let t=0;t<4&&kl(i.next);t++)i.advance();else if(e==QP)for(let t=0;t<8&&kl(i.next);t++)i.advance();else if(e==xP&&i.next==Wa){for(i.advance();i.next>=0&&i.next!=Gu&&i.next!=ng&&i.next!=rg&&i.next!=_i;)i.advance();i.next==Gu&&i.advance()}}const XP=xi({'async "*" "**" FormatConversion FormatSpec':x.modifier,"for while if elif else try except finally return raise break continue with pass assert await yield match case":x.controlKeyword,"in not and or is del":x.operatorKeyword,"from def class global nonlocal lambda":x.definitionKeyword,import:x.moduleKeyword,"with as print":x.keyword,Boolean:x.bool,None:x.null,VariableName:x.variableName,"CallExpression/VariableName":x.function(x.variableName),"FunctionDefinition/VariableName":x.function(x.definition(x.variableName)),"ClassDefinition/VariableName":x.definition(x.className),PropertyName:x.propertyName,"CallExpression/MemberExpression/PropertyName":x.function(x.propertyName),Comment:x.lineComment,Number:x.number,String:x.string,FormatString:x.special(x.string),Escape:x.escape,UpdateOp:x.updateOperator,"ArithOp!":x.arithmeticOperator,BitOp:x.bitwiseOperator,CompareOp:x.compareOperator,AssignOp:x.definitionOperator,Ellipsis:x.punctuation,At:x.meta,"( )":x.paren,"[ ]":x.squareBracket,"{ }":x.brace,".":x.derefOperator,", ;":x.separator}),RP={__proto__:null,await:44,or:54,and:56,in:60,not:62,is:64,if:70,else:72,lambda:76,yield:94,from:96,async:102,for:104,None:162,True:164,False:164,del:178,pass:182,break:186,continue:190,return:194,raise:202,import:206,as:208,global:212,nonlocal:214,assert:218,type:223,elif:236,while:240,try:246,except:248,finally:250,with:254,def:258,class:268,match:279,case:285},ZP=mi.deserialize({version:14,states:"##jO`QeOOP$}OSOOO&WQtO'#HUOOQS'#Co'#CoOOQS'#Cp'#CpO'vQdO'#CnO*UQtO'#HTOOQS'#HU'#HUOOQS'#DU'#DUOOQS'#HT'#HTO*rQdO'#D_O+VQdO'#DfO+gQdO'#DjO+zOWO'#DuO,VOWO'#DvO.[QtO'#GuOOQS'#Gu'#GuO'vQdO'#GtO0ZQtO'#GtOOQS'#Eb'#EbO0rQdO'#EcOOQS'#Gs'#GsO0|QdO'#GrOOQV'#Gr'#GrO1XQdO'#FYOOQS'#G^'#G^O1^QdO'#FXOOQV'#IS'#ISOOQV'#Gq'#GqOOQV'#Fq'#FqQ`QeOOO'vQdO'#CqO1lQdO'#C}O1sQdO'#DRO2RQdO'#HYO2cQtO'#EVO'vQdO'#EWOOQS'#EY'#EYOOQS'#E['#E[OOQS'#E^'#E^O2wQdO'#E`O3_QdO'#EdO3rQdO'#EfO3zQtO'#EfO1XQdO'#EiO0rQdO'#ElO1XQdO'#EnO0rQdO'#EtO0rQdO'#EwO4VQdO'#EyO4^QdO'#FOO4iQdO'#EzO0rQdO'#FOO1XQdO'#FQO1XQdO'#FVO4nQdO'#F[P4uOdO'#GpPOOO)CBd)CBdOOQS'#Ce'#CeOOQS'#Cf'#CfOOQS'#Cg'#CgOOQS'#Ch'#ChOOQS'#Ci'#CiOOQS'#Cj'#CjOOQS'#Cl'#ClO'vQdO,59OO'vQdO,59OO'vQdO,59OO'vQdO,59OO'vQdO,59OO'vQdO,59OO5TQdO'#DoOOQS,5:Y,5:YO5hQdO'#HdOOQS,5:],5:]O5uQ!fO,5:]O5zQtO,59YO1lQdO,59bO1lQdO,59bO1lQdO,59bO8jQdO,59bO8oQdO,59bO8vQdO,59jO8}QdO'#HTO:TQdO'#HSOOQS'#HS'#HSOOQS'#D['#D[O:lQdO,59aO'vQdO,59aO:zQdO,59aOOQS,59y,59yO;PQdO,5:RO'vQdO,5:ROOQS,5:Q,5:QO;_QdO,5:QO;dQdO,5:XO'vQdO,5:XO'vQdO,5:VOOQS,5:U,5:UO;uQdO,5:UO;zQdO,5:WOOOW'#Fy'#FyO<POWO,5:aOOQS,5:a,5:aO<[QdO'#HwOOOW'#Dw'#DwOOOW'#Fz'#FzO<lOWO,5:bOOQS,5:b,5:bOOQS'#F}'#F}O<zQtO,5:iO?lQtO,5=`O@VQ#xO,5=`O@vQtO,5=`OOQS,5:},5:}OA_QeO'#GWOBqQdO,5;^OOQV,5=^,5=^OB|QtO'#IPOCkQdO,5;tOOQS-E:[-E:[OOQV,5;s,5;sO4dQdO'#FQOOQV-E9o-E9oOCsQtO,59]OEzQtO,59iOFeQdO'#HVOFpQdO'#HVO1XQdO'#HVOF{QdO'#DTOGTQdO,59mOGYQdO'#HZO'vQdO'#HZO0rQdO,5=tOOQS,5=t,5=tO0rQdO'#EROOQS'#ES'#ESOGwQdO'#GPOHXQdO,58|OHXQdO,58|O*xQdO,5:oOHgQtO'#H]OOQS,5:r,5:rOOQS,5:z,5:zOHzQdO,5;OOI]QdO'#IOO1XQdO'#H}OOQS,5;Q,5;QOOQS'#GT'#GTOIqQtO,5;QOJPQdO,5;QOJUQdO'#IQOOQS,5;T,5;TOJdQdO'#H|OOQS,5;W,5;WOJuQdO,5;YO4iQdO,5;`O4iQdO,5;cOJ}QtO'#ITO'vQdO'#ITOKXQdO,5;eO4VQdO,5;eO0rQdO,5;jO1XQdO,5;lOK^QeO'#EuOLjQgO,5;fO!!kQdO'#IUO4iQdO,5;jO!!vQdO,5;lO!#OQdO,5;qO!#ZQtO,5;vO'vQdO,5;vPOOO,5=[,5=[P!#bOSO,5=[P!#jOdO,5=[O!&bQtO1G.jO!&iQtO1G.jO!)YQtO1G.jO!)dQtO1G.jO!+}QtO1G.jO!,bQtO1G.jO!,uQdO'#HcO!-TQtO'#GuO0rQdO'#HcO!-_QdO'#HbOOQS,5:Z,5:ZO!-gQdO,5:ZO!-lQdO'#HeO!-wQdO'#HeO!.[QdO,5>OOOQS'#Ds'#DsOOQS1G/w1G/wOOQS1G.|1G.|O!/[QtO1G.|O!/cQtO1G.|O1lQdO1G.|O!0OQdO1G/UOOQS'#DZ'#DZO0rQdO,59tOOQS1G.{1G.{O!0VQdO1G/eO!0gQdO1G/eO!0oQdO1G/fO'vQdO'#H[O!0tQdO'#H[O!0yQtO1G.{O!1ZQdO,59iO!2aQdO,5=zO!2qQdO,5=zO!2yQdO1G/mO!3OQtO1G/mOOQS1G/l1G/lO!3`QdO,5=uO!4VQdO,5=uO0rQdO1G/qO!4tQdO1G/sO!4yQtO1G/sO!5ZQtO1G/qOOQS1G/p1G/pOOQS1G/r1G/rOOOW-E9w-E9wOOQS1G/{1G/{O!5kQdO'#HxO0rQdO'#HxO!5|QdO,5>cOOOW-E9x-E9xOOQS1G/|1G/|OOQS-E9{-E9{O!6[Q#xO1G2zO!6{QtO1G2zO'vQdO,5<jOOQS,5<j,5<jOOQS-E9|-E9|OOQS,5<r,5<rOOQS-E:U-E:UOOQV1G0x1G0xO1XQdO'#GRO!7dQtO,5>kOOQS1G1`1G1`O!8RQdO1G1`OOQS'#DV'#DVO0rQdO,5=qOOQS,5=q,5=qO!8WQdO'#FrO!8cQdO,59oO!8kQdO1G/XO!8uQtO,5=uOOQS1G3`1G3`OOQS,5:m,5:mO!9fQdO'#GtOOQS,5<k,5<kOOQS-E9}-E9}O!9wQdO1G.hOOQS1G0Z1G0ZO!:VQdO,5=wO!:gQdO,5=wO0rQdO1G0jO0rQdO1G0jO!:xQdO,5>jO!;ZQdO,5>jO1XQdO,5>jO!;lQdO,5>iOOQS-E:R-E:RO!;qQdO1G0lO!;|QdO1G0lO!<RQdO,5>lO!<aQdO,5>lO!<oQdO,5>hO!=VQdO,5>hO!=hQdO'#EpO0rQdO1G0tO!=sQdO1G0tO!=xQgO1G0zO!AvQgO1G0}O!EqQdO,5>oO!E{QdO,5>oO!FTQtO,5>oO0rQdO1G1PO!F_QdO1G1PO4iQdO1G1UO!!vQdO1G1WOOQV,5;a,5;aO!FdQfO,5;aO!FiQgO1G1QO!JjQdO'#GZO4iQdO1G1QO4iQdO1G1QO!JzQdO,5>pO!KXQdO,5>pO1XQdO,5>pOOQV1G1U1G1UO!KaQdO'#FSO!KrQ!fO1G1WO!KzQdO1G1WOOQV1G1]1G1]O4iQdO1G1]O!LPQdO1G1]O!LXQdO'#F^OOQV1G1b1G1bO!#ZQtO1G1bPOOO1G2v1G2vP!L^OSO1G2vOOQS,5=},5=}OOQS'#Dp'#DpO0rQdO,5=}O!LfQdO,5=|O!LyQdO,5=|OOQS1G/u1G/uO!MRQdO,5>PO!McQdO,5>PO!MkQdO,5>PO!NOQdO,5>PO!N`QdO,5>POOQS1G3j1G3jOOQS7+$h7+$hO!8kQdO7+$pO#!RQdO1G.|O#!YQdO1G.|OOQS1G/`1G/`OOQS,5<`,5<`O'vQdO,5<`OOQS7+%P7+%PO#!aQdO7+%POOQS-E9r-E9rOOQS7+%Q7+%QO#!qQdO,5=vO'vQdO,5=vOOQS7+$g7+$gO#!vQdO7+%PO##OQdO7+%QO##TQdO1G3fOOQS7+%X7+%XO##eQdO1G3fO##mQdO7+%XOOQS,5<_,5<_O'vQdO,5<_O##rQdO1G3aOOQS-E9q-E9qO#$iQdO7+%]OOQS7+%_7+%_O#$wQdO1G3aO#%fQdO7+%_O#%kQdO1G3gO#%{QdO1G3gO#&TQdO7+%]O#&YQdO,5>dO#&sQdO,5>dO#&sQdO,5>dOOQS'#Dx'#DxO#'UO&jO'#DzO#'aO`O'#HyOOOW1G3}1G3}O#'fQdO1G3}O#'nQdO1G3}O#'yQ#xO7+(fO#(jQtO1G2UP#)TQdO'#GOOOQS,5<m,5<mOOQS-E:P-E:POOQS7+&z7+&zOOQS1G3]1G3]OOQS,5<^,5<^OOQS-E9p-E9pOOQS7+$s7+$sO#)bQdO,5=`O#){QdO,5=`O#*^QtO,5<aO#*qQdO1G3cOOQS-E9s-E9sOOQS7+&U7+&UO#+RQdO7+&UO#+aQdO,5<nO#+uQdO1G4UOOQS-E:Q-E:QO#,WQdO1G4UOOQS1G4T1G4TOOQS7+&W7+&WO#,iQdO7+&WOOQS,5<p,5<pO#,tQdO1G4WOOQS-E:S-E:SOOQS,5<l,5<lO#-SQdO1G4SOOQS-E:O-E:OO1XQdO'#EqO#-jQdO'#EqO#-uQdO'#IRO#-}QdO,5;[OOQS7+&`7+&`O0rQdO7+&`O#.SQgO7+&fO!JmQdO'#GXO4iQdO7+&fO4iQdO7+&iO#2QQtO,5<tO'vQdO,5<tO#2[QdO1G4ZOOQS-E:W-E:WO#2fQdO1G4ZO4iQdO7+&kO0rQdO7+&kOOQV7+&p7+&pO!KrQ!fO7+&rO!KzQdO7+&rO`QeO1G0{OOQV-E:X-E:XO4iQdO7+&lO4iQdO7+&lOOQV,5<u,5<uO#2nQdO,5<uO!JmQdO,5<uOOQV7+&l7+&lO#2yQgO7+&lO#6tQdO,5<vO#7PQdO1G4[OOQS-E:Y-E:YO#7^QdO1G4[O#7fQdO'#IWO#7tQdO'#IWO1XQdO'#IWOOQS'#IW'#IWO#8PQdO'#IVOOQS,5;n,5;nO#8XQdO,5;nO0rQdO'#FUOOQV7+&r7+&rO4iQdO7+&rOOQV7+&w7+&wO4iQdO7+&wO#8^QfO,5;xOOQV7+&|7+&|POOO7+(b7+(bO#8cQdO1G3iOOQS,5<c,5<cO#8qQdO1G3hOOQS-E9u-E9uO#9UQdO,5<dO#9aQdO,5<dO#9tQdO1G3kOOQS-E9v-E9vO#:UQdO1G3kO#:^QdO1G3kO#:nQdO1G3kO#:UQdO1G3kOOQS<<H[<<H[O#:yQtO1G1zOOQS<<Hk<<HkP#;WQdO'#FtO8vQdO1G3bO#;eQdO1G3bO#;jQdO<<HkOOQS<<Hl<<HlO#;zQdO7+)QOOQS<<Hs<<HsO#<[QtO1G1yP#<{QdO'#FsO#=YQdO7+)RO#=jQdO7+)RO#=rQdO<<HwO#=wQdO7+({OOQS<<Hy<<HyO#>nQdO,5<bO'vQdO,5<bOOQS-E9t-E9tOOQS<<Hw<<HwOOQS,5<g,5<gO0rQdO,5<gO#>sQdO1G4OOOQS-E9y-E9yO#?^QdO1G4OO<[QdO'#H{OOOO'#D{'#D{OOOO'#F|'#F|O#?oO&jO,5:fOOOW,5>e,5>eOOOW7+)i7+)iO#?zQdO7+)iO#@SQdO1G2zO#@mQdO1G2zP'vQdO'#FuO0rQdO<<IpO1XQdO1G2YP1XQdO'#GSO#AOQdO7+)pO#AaQdO7+)pOOQS<<Ir<<IrP1XQdO'#GUP0rQdO'#GQOOQS,5;],5;]O#ArQdO,5>mO#BQQdO,5>mOOQS1G0v1G0vOOQS<<Iz<<IzOOQV-E:V-E:VO4iQdO<<JQOOQV,5<s,5<sO4iQdO,5<sOOQV<<JQ<<JQOOQV<<JT<<JTO#BYQtO1G2`P#BdQdO'#GYO#BkQdO7+)uO#BuQgO<<JVO4iQdO<<JVOOQV<<J^<<J^O4iQdO<<J^O!KrQ!fO<<J^O#FpQgO7+&gOOQV<<JW<<JWO#FzQgO<<JWOOQV1G2a1G2aO1XQdO1G2aO#JuQdO1G2aO4iQdO<<JWO1XQdO1G2bP0rQdO'#G[O#KQQdO7+)vO#K_QdO7+)vOOQS'#FT'#FTO0rQdO,5>rO#KgQdO,5>rO#KrQdO,5>rO#K}QdO,5>qO#L`QdO,5>qOOQS1G1Y1G1YOOQS,5;p,5;pOOQV<<Jc<<JcO#LhQdO1G1dOOQS7+)T7+)TP#LmQdO'#FwO#L}QdO1G2OO#MbQdO1G2OO#MrQdO1G2OP#M}QdO'#FxO#N[QdO7+)VO#NlQdO7+)VO#NlQdO7+)VO#NtQdO7+)VO$ UQdO7+(|O8vQdO7+(|OOQSAN>VAN>VO$ oQdO<<LmOOQSAN>cAN>cO0rQdO1G1|O$!PQtO1G1|P$!ZQdO'#FvOOQS1G2R1G2RP$!hQdO'#F{O$!uQdO7+)jO$#`QdO,5>gOOOO-E9z-E9zOOOW<<MT<<MTO$#nQdO7+(fOOQSAN?[AN?[OOQS7+'t7+'tO$$XQdO<<M[OOQS,5<q,5<qO$$jQdO1G4XOOQS-E:T-E:TOOQVAN?lAN?lOOQV1G2_1G2_O4iQdOAN?qO$$xQgOAN?qOOQVAN?xAN?xO4iQdOAN?xOOQV<<JR<<JRO4iQdOAN?rO4iQdO7+'{OOQV7+'{7+'{O1XQdO7+'{OOQVAN?rAN?rOOQS7+'|7+'|O$(sQdO<<MbOOQS1G4^1G4^O0rQdO1G4^OOQS,5<w,5<wO$)QQdO1G4]OOQS-E:Z-E:ZOOQU'#G_'#G_O$)cQfO7+'OO$)nQdO'#F_O$*uQdO7+'jO$+VQdO7+'jOOQS7+'j7+'jO$+bQdO<<LqO$+rQdO<<LqO$+rQdO<<LqO$+zQdO'#H^OOQS<<Lh<<LhO$,UQdO<<LhOOQS7+'h7+'hOOQS'#D|'#D|OOOO1G4R1G4RO$,oQdO1G4RO$,wQdO1G4RP!=hQdO'#GVOOQVG25]G25]O4iQdOG25]OOQVG25dG25dOOQVG25^G25^OOQV<<Kg<<KgO4iQdO<<KgOOQS7+)x7+)xP$-SQdO'#G]OOQU-E:]-E:]OOQV<<Jj<<JjO$-vQtO'#FaOOQS'#Fc'#FcO$.WQdO'#FbO$.xQdO'#FbOOQS'#Fb'#FbO$.}QdO'#IYO$)nQdO'#FiO$)nQdO'#FiO$/fQdO'#FjO$)nQdO'#FkO$/mQdO'#IZOOQS'#IZ'#IZO$0[QdO,5;yOOQS<<KU<<KUO$0dQdO<<KUO$0tQdOANB]O$1UQdOANB]O$1^QdO'#H_OOQS'#H_'#H_O1sQdO'#DcO$1wQdO,5=xOOQSANBSANBSOOOO7+)m7+)mO$2`QdO7+)mOOQVLD*wLD*wOOQVANARANARO5uQ!fO'#GaO$2hQtO,5<SO$)nQdO'#FmOOQS,5<W,5<WOOQS'#Fd'#FdO$3YQdO,5;|O$3_QdO,5;|OOQS'#Fg'#FgO$)nQdO'#G`O$4PQdO,5<QO$4kQdO,5>tO$4{QdO,5>tO1XQdO,5<PO$5^QdO,5<TO$5cQdO,5<TO$)nQdO'#I[O$5hQdO'#I[O$5mQdO,5<UOOQS,5<V,5<VO0rQdO'#FpOOQU1G1e1G1eO4iQdO1G1eOOQSAN@pAN@pO$5rQdOG27wO$6SQdO,59}OOQS1G3d1G3dOOOO<<MX<<MXOOQS,5<{,5<{OOQS-E:_-E:_O$6XQtO'#FaO$6`QdO'#I]O$6nQdO'#I]O$6vQdO,5<XOOQS1G1h1G1hO$6{QdO1G1hO$7QQdO,5<zOOQS-E:^-E:^O$7lQdO,5=OO$8TQdO1G4`OOQS-E:b-E:bOOQS1G1k1G1kOOQS1G1o1G1oO$8eQdO,5>vO$)nQdO,5>vOOQS1G1p1G1pOOQS,5<[,5<[OOQU7+'P7+'PO$+zQdO1G/iO$)nQdO,5<YO$8sQdO,5>wO$8zQdO,5>wOOQS1G1s1G1sOOQS7+'S7+'SP$)nQdO'#GdO$9SQdO1G4bO$9^QdO1G4bO$9fQdO1G4bOOQS7+%T7+%TO$9tQdO1G1tO$:SQtO'#FaO$:ZQdO,5<}OOQS,5<},5<}O$:iQdO1G4cOOQS-E:a-E:aO$)nQdO,5<|O$:pQdO,5<|O$:uQdO7+)|OOQS-E:`-E:`O$;PQdO7+)|O$)nQdO,5<ZP$)nQdO'#GcO$;XQdO1G2hO$)nQdO1G2hP$;gQdO'#GbO$;nQdO<<MhO$;xQdO1G1uO$<WQdO7+(SO8vQdO'#C}O8vQdO,59bO8vQdO,59bO8vQdO,59bO$<fQtO,5=`O8vQdO1G.|O0rQdO1G/XO0rQdO7+$pP$<yQdO'#GOO'vQdO'#GtO$=WQdO,59bO$=]QdO,59bO$=dQdO,59mO$=iQdO1G/UO1sQdO'#DRO8vQdO,59j",stateData:"$>S~O%cOS%^OSSOS%]PQ~OPdOVaOfoOhYOopOs!POvqO!PrO!Q{O!T!SO!U!RO!XZO!][O!h`O!r`O!s`O!t`O!{tO!}uO#PvO#RwO#TxO#XyO#ZzO#^|O#_|O#a}O#c!OO#l!QO#o!TO#s!UO#u!VO#z!WO#}hO$P!XO%oRO%pRO%tSO%uWO&Z]O&[]O&]]O&^]O&_]O&`]O&a]O&b]O&c^O&d^O&e^O&f^O&g^O&h^O&i^O&j^O~O%]!YO~OV!aO_!aOa!bOh!iO!X!kO!f!mO%j![O%k!]O%l!^O%m!_O%n!_O%o!`O%p!`O%q!aO%r!aO%s!aO~Ok%xXl%xXm%xXn%xXo%xXp%xXs%xXz%xX{%xX!x%xX#g%xX%[%xX%_%xX%z%xXg%xX!T%xX!U%xX%{%xX!W%xX![%xX!Q%xX#[%xXt%xX!m%xX~P%SOfoOhYO!XZO!][O!h`O!r`O!s`O!t`O%oRO%pRO%tSO%uWO&Z]O&[]O&]]O&^]O&_]O&`]O&a]O&b]O&c^O&d^O&e^O&f^O&g^O&h^O&i^O&j^O~Oz%wX{%wX#g%wX%[%wX%_%wX%z%wX~Ok!pOl!qOm!oOn!oOo!rOp!sOs!tO!x%wX~P)pOV!zOg!|Oo0cOv0qO!PrO~P'vOV#OOo0cOv0qO!W#PO~P'vOV#SOa#TOo0cOv0qO![#UO~P'vOQ#XO%`#XO%a#ZO~OQ#^OR#[O%`#^O%a#`O~OV%iX_%iXa%iXh%iXk%iXl%iXm%iXn%iXo%iXp%iXs%iXz%iX!X%iX!f%iX%j%iX%k%iX%l%iX%m%iX%n%iX%o%iX%p%iX%q%iX%r%iX%s%iXg%iX!T%iX!U%iX~O&Z]O&[]O&]]O&^]O&_]O&`]O&a]O&b]O&c^O&d^O&e^O&f^O&g^O&h^O&i^O&j^O{%iX!x%iX#g%iX%[%iX%_%iX%z%iX%{%iX!W%iX![%iX!Q%iX#[%iXt%iX!m%iX~P,eOz#dO{%hX!x%hX#g%hX%[%hX%_%hX%z%hX~Oo0cOv0qO~P'vO#g#gO%[#iO%_#iO~O%uWO~O!T#nO#u!VO#z!WO#}hO~OopO~P'vOV#sOa#tO%uWO{wP~OV#xOo0cOv0qO!Q#yO~P'vO{#{O!x$QO%z#|O#g!yX%[!yX%_!yX~OV#xOo0cOv0qO#g#SX%[#SX%_#SX~P'vOo0cOv0qO#g#WX%[#WX%_#WX~P'vOh$WO%uWO~O!f$YO!r$YO%uWO~OV$eO~P'vO!U$gO#s$hO#u$iO~O{$jO~OV$qO~P'vOS$sO%[$rO%_$rO%c$tO~OV$}Oa$}Og%POo0cOv0qO~P'vOo0cOv0qO{%SO~P'vO&Y%UO~Oa!bOh!iO!X!kO!f!mOVba_bakbalbambanbaobapbasbazba{ba!xba#gba%[ba%_ba%jba%kba%lba%mba%nba%oba%pba%qba%rba%sba%zbagba!Tba!Uba%{ba!Wba![ba!Qba#[batba!mba~On%ZO~Oo%ZO~P'vOo0cO~P'vOk0eOl0fOm0dOn0dOo0mOp0nOs0rOg%wX!T%wX!U%wX%{%wX!W%wX![%wX!Q%wX#[%wX!m%wX~P)pO%{%]Og%vXz%vX!T%vX!U%vX!W%vX{%vX~Og%_Oz%`O!T%dO!U%cO~Og%_O~Oz%gO!T%dO!U%cO!W&SX~O!W%kO~Oz%lO{%nO!T%dO!U%cO![%}X~O![%rO~O![%sO~OQ#XO%`#XO%a%uO~OV%wOo0cOv0qO!PrO~P'vOQ#^OR#[O%`#^O%a%zO~OV!qa_!qaa!qah!qak!qal!qam!qan!qao!qap!qas!qaz!qa{!qa!X!qa!f!qa!x!qa#g!qa%[!qa%_!qa%j!qa%k!qa%l!qa%m!qa%n!qa%o!qa%p!qa%q!qa%r!qa%s!qa%z!qag!qa!T!qa!U!qa%{!qa!W!qa![!qa!Q!qa#[!qat!qa!m!qa~P#yOz%|O{%ha!x%ha#g%ha%[%ha%_%ha%z%ha~P%SOV&OOopOvqO{%ha!x%ha#g%ha%[%ha%_%ha%z%ha~P'vOz%|O{%ha!x%ha#g%ha%[%ha%_%ha%z%ha~OPdOVaOopOvqO!PrO!Q{O!{tO!}uO#PvO#RwO#TxO#XyO#ZzO#^|O#_|O#a}O#c!OO#g$zX%[$zX%_$zX~P'vO#g#gO%[&TO%_&TO~O!f&UOh&sX%[&sXz&sX#[&sX#g&sX%_&sX#Z&sXg&sX~Oh!iO%[&WO~Okealeameaneaoeapeaseazea{ea!xea#gea%[ea%_ea%zeagea!Tea!Uea%{ea!Wea![ea!Qea#[eatea!mea~P%SOsqazqa{qa#gqa%[qa%_qa%zqa~Ok!pOl!qOm!oOn!oOo!rOp!sO!xqa~PEcO%z&YOz%yX{%yX~O%uWOz%yX{%yX~Oz&]O{wX~O{&_O~Oz%lO#g%}X%[%}X%_%}Xg%}X{%}X![%}X!m%}X%z%}X~OV0lOo0cOv0qO!PrO~P'vO%z#|O#gUa%[Ua%_Ua~Oz&hO#g&PX%[&PX%_&PXn&PX~P%SOz&kO!Q&jO#g#Wa%[#Wa%_#Wa~Oz&lO#[&nO#g&rX%[&rX%_&rXg&rX~O!f$YO!r$YO#Z&qO%uWO~O#Z&qO~Oz&sO#g&tX%[&tX%_&tX~Oz&uO#g&pX%[&pX%_&pX{&pX~O!X&wO%z&xO~Oz&|On&wX~P%SOn'PO~OPdOVaOopOvqO!PrO!Q{O!{tO!}uO#PvO#RwO#TxO#XyO#ZzO#^|O#_|O#a}O#c!OO%['UO~P'vOt'YO#p'WO#q'XOP#naV#naf#nah#nao#nas#nav#na!P#na!Q#na!T#na!U#na!X#na!]#na!h#na!r#na!s#na!t#na!{#na!}#na#P#na#R#na#T#na#X#na#Z#na#^#na#_#na#a#na#c#na#l#na#o#na#s#na#u#na#z#na#}#na$P#na%X#na%o#na%p#na%t#na%u#na&Z#na&[#na&]#na&^#na&_#na&`#na&a#na&b#na&c#na&d#na&e#na&f#na&g#na&h#na&i#na&j#na%Z#na%_#na~Oz'ZO#[']O{&xX~Oh'_O!X&wO~Oh!iO{$jO!X&wO~O{'eO~P%SO%['hO%_'hO~OS'iO%['hO%_'hO~OV!aO_!aOa!bOh!iO!X!kO!f!mO%l!^O%m!_O%n!_O%o!`O%p!`O%q!aO%r!aO%s!aOkWilWimWinWioWipWisWizWi{Wi!xWi#gWi%[Wi%_Wi%jWi%zWigWi!TWi!UWi%{Wi!WWi![Wi!QWi#[WitWi!mWi~O%k!]O~P!#uO%kWi~P!#uOV!aO_!aOa!bOh!iO!X!kO!f!mO%o!`O%p!`O%q!aO%r!aO%s!aOkWilWimWinWioWipWisWizWi{Wi!xWi#gWi%[Wi%_Wi%jWi%kWi%lWi%zWigWi!TWi!UWi%{Wi!WWi![Wi!QWi#[WitWi!mWi~O%m!_O%n!_O~P!&pO%mWi%nWi~P!&pOa!bOh!iO!X!kO!f!mOkWilWimWinWioWipWisWizWi{Wi!xWi#gWi%[Wi%_Wi%jWi%kWi%lWi%mWi%nWi%oWi%pWi%zWigWi!TWi!UWi%{Wi!WWi![Wi!QWi#[WitWi!mWi~OV!aO_!aO%q!aO%r!aO%s!aO~P!)nOVWi_Wi%qWi%rWi%sWi~P!)nO!T%dO!U%cOg&VXz&VX~O%z'kO%{'kO~P,eOz'mOg&UX~Og'oO~Oz'pO{'rO!W&XX~Oo0cOv0qOz'pO{'sO!W&XX~P'vO!W'uO~Om!oOn!oOo!rOp!sOkjisjizji{ji!xji#gji%[ji%_ji%zji~Ol!qO~P!.aOlji~P!.aOk0eOl0fOm0dOn0dOo0mOp0nO~Ot'wO~P!/jOV'|Og'}Oo0cOv0qO~P'vOg'}Oz(OO~Og(QO~O!U(SO~Og(TOz(OO!T%dO!U%cO~P%SOk0eOl0fOm0dOn0dOo0mOp0nOgqa!Tqa!Uqa%{qa!Wqa![qa!Qqa#[qatqa!mqa~PEcOV'|Oo0cOv0qO!W&Sa~P'vOz(WO!W&Sa~O!W(XO~Oz(WO!T%dO!U%cO!W&Sa~P%SOV(]Oo0cOv0qO![%}a#g%}a%[%}a%_%}ag%}a{%}a!m%}a%z%}a~P'vOz(^O![%}a#g%}a%[%}a%_%}ag%}a{%}a!m%}a%z%}a~O![(aO~Oz(^O!T%dO!U%cO![%}a~P%SOz(dO!T%dO!U%cO![&Ta~P%SOz(gO{&lX![&lX!m&lX%z&lX~O{(kO![(mO!m(nO%z(jO~OV&OOopOvqO{%hi!x%hi#g%hi%[%hi%_%hi%z%hi~P'vOz(pO{%hi!x%hi#g%hi%[%hi%_%hi%z%hi~O!f&UOh&sa%[&saz&sa#[&sa#g&sa%_&sa#Z&sag&sa~O%[(uO~OV#sOa#tO%uWO~Oz&]O{wa~OopOvqO~P'vOz(^O#g%}a%[%}a%_%}ag%}a{%}a![%}a!m%}a%z%}a~P%SOz(zO#g%hX%[%hX%_%hX%z%hX~O%z#|O#gUi%[Ui%_Ui~O#g&Pa%[&Pa%_&Pan&Pa~P'vOz(}O#g&Pa%[&Pa%_&Pan&Pa~O%uWO#g&ra%[&ra%_&rag&ra~Oz)SO#g&ra%[&ra%_&rag&ra~Og)VO~OV)WOh$WO%uWO~O#Z)XO~O%uWO#g&ta%[&ta%_&ta~Oz)ZO#g&ta%[&ta%_&ta~Oo0cOv0qO#g&pa%[&pa%_&pa{&pa~P'vOz)^O#g&pa%[&pa%_&pa{&pa~OV)`Oa)`O%uWO~O%z)eO~Ot)hO#j)gOP#hiV#hif#hih#hio#his#hiv#hi!P#hi!Q#hi!T#hi!U#hi!X#hi!]#hi!h#hi!r#hi!s#hi!t#hi!{#hi!}#hi#P#hi#R#hi#T#hi#X#hi#Z#hi#^#hi#_#hi#a#hi#c#hi#l#hi#o#hi#s#hi#u#hi#z#hi#}#hi$P#hi%X#hi%o#hi%p#hi%t#hi%u#hi&Z#hi&[#hi&]#hi&^#hi&_#hi&`#hi&a#hi&b#hi&c#hi&d#hi&e#hi&f#hi&g#hi&h#hi&i#hi&j#hi%Z#hi%_#hi~Ot)iOP#kiV#kif#kih#kio#kis#kiv#ki!P#ki!Q#ki!T#ki!U#ki!X#ki!]#ki!h#ki!r#ki!s#ki!t#ki!{#ki!}#ki#P#ki#R#ki#T#ki#X#ki#Z#ki#^#ki#_#ki#a#ki#c#ki#l#ki#o#ki#s#ki#u#ki#z#ki#}#ki$P#ki%X#ki%o#ki%p#ki%t#ki%u#ki&Z#ki&[#ki&]#ki&^#ki&_#ki&`#ki&a#ki&b#ki&c#ki&d#ki&e#ki&f#ki&g#ki&h#ki&i#ki&j#ki%Z#ki%_#ki~OV)kOn&wa~P'vOz)lOn&wa~Oz)lOn&wa~P%SOn)pO~O%Y)tO~Ot)wO#p'WO#q)vOP#niV#nif#nih#nio#nis#niv#ni!P#ni!Q#ni!T#ni!U#ni!X#ni!]#ni!h#ni!r#ni!s#ni!t#ni!{#ni!}#ni#P#ni#R#ni#T#ni#X#ni#Z#ni#^#ni#_#ni#a#ni#c#ni#l#ni#o#ni#s#ni#u#ni#z#ni#}#ni$P#ni%X#ni%o#ni%p#ni%t#ni%u#ni&Z#ni&[#ni&]#ni&^#ni&_#ni&`#ni&a#ni&b#ni&c#ni&d#ni&e#ni&f#ni&g#ni&h#ni&i#ni&j#ni%Z#ni%_#ni~OV)zOo0cOv0qO{$jO~P'vOo0cOv0qO{&xa~P'vOz*OO{&xa~OV*SOa*TOg*WO%q*UO%uWO~O{$jO&{*YO~Oh'_O~Oh!iO{$jO~O%[*_O~O%[*aO%_*aO~OV$}Oa$}Oo0cOv0qOg&Ua~P'vOz*dOg&Ua~Oo0cOv0qO{*gO!W&Xa~P'vOz*hO!W&Xa~Oo0cOv0qOz*hO{*kO!W&Xa~P'vOo0cOv0qOz*hO!W&Xa~P'vOz*hO{*kO!W&Xa~Om0dOn0dOo0mOp0nOgjikjisjizji!Tji!Uji%{ji!Wji{ji![ji#gji%[ji%_ji!Qji#[jitji!mji%zji~Ol0fO~P!NkOlji~P!NkOV'|Og*pOo0cOv0qO~P'vOn*rO~Og*pOz*tO~Og*uO~OV'|Oo0cOv0qO!W&Si~P'vOz*vO!W&Si~O!W*wO~OV(]Oo0cOv0qO![%}i#g%}i%[%}i%_%}ig%}i{%}i!m%}i%z%}i~P'vOz*zO!T%dO!U%cO![&Ti~Oz*}O![%}i#g%}i%[%}i%_%}ig%}i{%}i!m%}i%z%}i~O![+OO~Oa+QOo0cOv0qO![&Ti~P'vOz*zO![&Ti~O![+SO~OV+UOo0cOv0qO{&la![&la!m&la%z&la~P'vOz+VO{&la![&la!m&la%z&la~O!]+YO&n+[O![!nX~O![+^O~O{(kO![+_O~O{(kO![+_O!m+`O~OV&OOopOvqO{%hq!x%hq#g%hq%[%hq%_%hq%z%hq~P'vOz$ri{$ri!x$ri#g$ri%[$ri%_$ri%z$ri~P%SOV&OOopOvqO~P'vOV&OOo0cOv0qO#g%ha%[%ha%_%ha%z%ha~P'vOz+aO#g%ha%[%ha%_%ha%z%ha~Oz$ia#g$ia%[$ia%_$ian$ia~P%SO#g&Pi%[&Pi%_&Pin&Pi~P'vOz+dO#g#Wq%[#Wq%_#Wq~O#[+eOz$va#g$va%[$va%_$vag$va~O%uWO#g&ri%[&ri%_&rig&ri~Oz+gO#g&ri%[&ri%_&rig&ri~OV+iOh$WO%uWO~O%uWO#g&ti%[&ti%_&ti~Oo0cOv0qO#g&pi%[&pi%_&pi{&pi~P'vO{#{Oz#eX!W#eX~Oz+mO!W&uX~O!W+oO~Ot+rO#j)gOP#hqV#hqf#hqh#hqo#hqs#hqv#hq!P#hq!Q#hq!T#hq!U#hq!X#hq!]#hq!h#hq!r#hq!s#hq!t#hq!{#hq!}#hq#P#hq#R#hq#T#hq#X#hq#Z#hq#^#hq#_#hq#a#hq#c#hq#l#hq#o#hq#s#hq#u#hq#z#hq#}#hq$P#hq%X#hq%o#hq%p#hq%t#hq%u#hq&Z#hq&[#hq&]#hq&^#hq&_#hq&`#hq&a#hq&b#hq&c#hq&d#hq&e#hq&f#hq&g#hq&h#hq&i#hq&j#hq%Z#hq%_#hq~On$|az$|a~P%SOV)kOn&wi~P'vOz+yOn&wi~Oz,TO{$jO#[,TO~O#q,VOP#nqV#nqf#nqh#nqo#nqs#nqv#nq!P#nq!Q#nq!T#nq!U#nq!X#nq!]#nq!h#nq!r#nq!s#nq!t#nq!{#nq!}#nq#P#nq#R#nq#T#nq#X#nq#Z#nq#^#nq#_#nq#a#nq#c#nq#l#nq#o#nq#s#nq#u#nq#z#nq#}#nq$P#nq%X#nq%o#nq%p#nq%t#nq%u#nq&Z#nq&[#nq&]#nq&^#nq&_#nq&`#nq&a#nq&b#nq&c#nq&d#nq&e#nq&f#nq&g#nq&h#nq&i#nq&j#nq%Z#nq%_#nq~O#[,WOz%Oa{%Oa~Oo0cOv0qO{&xi~P'vOz,YO{&xi~O{#{O%z,[Og&zXz&zX~O%uWOg&zXz&zX~Oz,`Og&yX~Og,bO~O%Y,eO~O!T%dO!U%cOg&Viz&Vi~OV$}Oa$}Oo0cOv0qOg&Ui~P'vO{,hOz$la!W$la~Oo0cOv0qO{,iOz$la!W$la~P'vOo0cOv0qO{*gO!W&Xi~P'vOz,lO!W&Xi~Oo0cOv0qOz,lO!W&Xi~P'vOz,lO{,oO!W&Xi~Og$hiz$hi!W$hi~P%SOV'|Oo0cOv0qO~P'vOn,qO~OV'|Og,rOo0cOv0qO~P'vOV'|Oo0cOv0qO!W&Sq~P'vOz$gi![$gi#g$gi%[$gi%_$gig$gi{$gi!m$gi%z$gi~P%SOV(]Oo0cOv0qO~P'vOa+QOo0cOv0qO![&Tq~P'vOz,sO![&Tq~O![,tO~OV(]Oo0cOv0qO![%}q#g%}q%[%}q%_%}qg%}q{%}q!m%}q%z%}q~P'vO{,uO~OV+UOo0cOv0qO{&li![&li!m&li%z&li~P'vOz,zO{&li![&li!m&li%z&li~O!]+YO&n+[O![!na~O{(kO![,}O~OV&OOo0cOv0qO#g%hi%[%hi%_%hi%z%hi~P'vOz-OO#g%hi%[%hi%_%hi%z%hi~O%uWO#g&rq%[&rq%_&rqg&rq~Oz-RO#g&rq%[&rq%_&rqg&rq~OV)`Oa)`O%uWO!W&ua~Oz-TO!W&ua~On$|iz$|i~P%SOV)kO~P'vOV)kOn&wq~P'vOt-XOP#myV#myf#myh#myo#mys#myv#my!P#my!Q#my!T#my!U#my!X#my!]#my!h#my!r#my!s#my!t#my!{#my!}#my#P#my#R#my#T#my#X#my#Z#my#^#my#_#my#a#my#c#my#l#my#o#my#s#my#u#my#z#my#}#my$P#my%X#my%o#my%p#my%t#my%u#my&Z#my&[#my&]#my&^#my&_#my&`#my&a#my&b#my&c#my&d#my&e#my&f#my&g#my&h#my&i#my&j#my%Z#my%_#my~O%Z-]O%_-]O~P`O#q-^OP#nyV#nyf#nyh#nyo#nys#nyv#ny!P#ny!Q#ny!T#ny!U#ny!X#ny!]#ny!h#ny!r#ny!s#ny!t#ny!{#ny!}#ny#P#ny#R#ny#T#ny#X#ny#Z#ny#^#ny#_#ny#a#ny#c#ny#l#ny#o#ny#s#ny#u#ny#z#ny#}#ny$P#ny%X#ny%o#ny%p#ny%t#ny%u#ny&Z#ny&[#ny&]#ny&^#ny&_#ny&`#ny&a#ny&b#ny&c#ny&d#ny&e#ny&f#ny&g#ny&h#ny&i#ny&j#ny%Z#ny%_#ny~Oz-aO{$jO#[-aO~Oo0cOv0qO{&xq~P'vOz-dO{&xq~O%z,[Og&zaz&za~O{#{Og&zaz&za~OV*SOa*TO%q*UO%uWOg&ya~Oz-hOg&ya~O$S-lO~OV$}Oa$}Oo0cOv0qO~P'vOo0cOv0qO{-mOz$li!W$li~P'vOo0cOv0qOz$li!W$li~P'vO{-mOz$li!W$li~Oo0cOv0qO{*gO~P'vOo0cOv0qO{*gO!W&Xq~P'vOz-pO!W&Xq~Oo0cOv0qOz-pO!W&Xq~P'vOs-sO!T%dO!U%cOg&Oq!W&Oq![&Oqz&Oq~P!/jOa+QOo0cOv0qO![&Ty~P'vOz$ji![$ji~P%SOa+QOo0cOv0qO~P'vOV+UOo0cOv0qO~P'vOV+UOo0cOv0qO{&lq![&lq!m&lq%z&lq~P'vO{(kO![-xO!m-yO%z-wO~OV&OOo0cOv0qO#g%hq%[%hq%_%hq%z%hq~P'vO%uWO#g&ry%[&ry%_&ryg&ry~OV)`Oa)`O%uWO!W&ui~Ot-}OP#m!RV#m!Rf#m!Rh#m!Ro#m!Rs#m!Rv#m!R!P#m!R!Q#m!R!T#m!R!U#m!R!X#m!R!]#m!R!h#m!R!r#m!R!s#m!R!t#m!R!{#m!R!}#m!R#P#m!R#R#m!R#T#m!R#X#m!R#Z#m!R#^#m!R#_#m!R#a#m!R#c#m!R#l#m!R#o#m!R#s#m!R#u#m!R#z#m!R#}#m!R$P#m!R%X#m!R%o#m!R%p#m!R%t#m!R%u#m!R&Z#m!R&[#m!R&]#m!R&^#m!R&_#m!R&`#m!R&a#m!R&b#m!R&c#m!R&d#m!R&e#m!R&f#m!R&g#m!R&h#m!R&i#m!R&j#m!R%Z#m!R%_#m!R~Oo0cOv0qO{&xy~P'vOV*SOa*TO%q*UO%uWOg&yi~O$S-lO%Z.VO%_.VO~OV.aOh._O!X.^O!].`O!h.YO!s.[O!t.[O%p.XO%uWO&Z]O&[]O&]]O&^]O&_]O&`]O&a]O&b]O~Oo0cOv0qOz$lq!W$lq~P'vO{.fOz$lq!W$lq~Oo0cOv0qO{*gO!W&Xy~P'vOz.gO!W&Xy~Oo0cOv.kO~P'vOs-sO!T%dO!U%cOg&Oy!W&Oy![&Oyz&Oy~P!/jO{(kO![.nO~O{(kO![.nO!m.oO~OV*SOa*TO%q*UO%uWO~Oh.tO!f.rOz$TX#[$TX%j$TXg$TX~Os$TX{$TX!W$TX![$TX~P$-bO%o.vO%p.vOs$UXz$UX{$UX#[$UX%j$UX!W$UXg$UX![$UX~O!h.xO~Oz.|O#[/OO%j.yOs&|X{&|X!W&|Xg&|X~Oa/RO~P$)zOh.tOs&}Xz&}X{&}X#[&}X%j&}X!W&}Xg&}X![&}X~Os/VO{$jO~Oo0cOv0qOz$ly!W$ly~P'vOo0cOv0qO{*gO!W&X!R~P'vOz/ZO!W&X!R~Og&RXs&RX!T&RX!U&RX!W&RX![&RXz&RX~P!/jOs-sO!T%dO!U%cOg&Qa!W&Qa![&Qaz&Qa~O{(kO![/^O~O!f.rOh$[as$[az$[a{$[a#[$[a%j$[a!W$[ag$[a![$[a~O!h/eO~O%o.vO%p.vOs$Uaz$Ua{$Ua#[$Ua%j$Ua!W$Uag$Ua![$Ua~O%j.yOs$Yaz$Ya{$Ya#[$Ya!W$Yag$Ya![$Ya~Os&|a{&|a!W&|ag&|a~P$)nOz/jOs&|a{&|a!W&|ag&|a~O!W/mO~Og/mO~O{/oO~O![/pO~Oo0cOv0qO{*gO!W&X!Z~P'vO{/sO~O%z/tO~P$-bOz/uO#[/OO%j.yOg'PX~Oz/uOg'PX~Og/wO~O!h/xO~O#[/OOs%Saz%Sa{%Sa%j%Sa!W%Sag%Sa![%Sa~O#[/OO%j.yOs%Waz%Wa{%Wa!W%Wag%Wa~Os&|i{&|i!W&|ig&|i~P$)nOz/zO#[/OO%j.yO!['Oa~Og'Pa~P$)nOz0SOg'Pa~Oa0UO!['Oi~P$)zOz0WO!['Oi~Oz0WO#[/OO%j.yO!['Oi~O#[/OO%j.yOg$biz$bi~O%z0ZO~P$-bO#[/OO%j.yOg%Vaz%Va~Og'Pi~P$)nO{0^O~Oa0UO!['Oq~P$)zOz0`O!['Oq~O#[/OO%j.yOz%Ui![%Ui~Oa0UO~P$)zOa0UO!['Oy~P$)zO#[/OO%j.yOg$ciz$ci~O#[/OO%j.yOz%Uq![%Uq~Oz+aO#g%ha%[%ha%_%ha%z%ha~P%SOV&OOo0cOv0qO~P'vOn0hO~Oo0hO~P'vO{0iO~Ot0jO~P!/jO&]&Z&j&h&i&g&f&d&e&c&b&`&a&_&^&[%u~",goto:"!=j'QPPPPPP'RP'Z*s+[+t,_,y-fP.SP'Z.r.r'ZPPP'Z2[PPPPPP2[5PPP5PP7b7k=sPP=v>h>kPP'Z'ZPP>zPP'Z'ZPP'Z'Z'Z'Z'Z?O?w'ZP?zP@QDXGuGyPG|HWH['ZPPPH_Hk'RP'R'RP'RP'RP'RP'RP'R'R'RP'RPP'RPP'RP'RPHqH}IVPI^IdPI^PI^I^PPPI^PKrPK{LVL]KrPI^LfPI^PLmLsPLwM]MzNeLwLwNkNxLwLwLwLw! ^! d! g! l! o! y!!P!!]!!o!!u!#P!#V!#s!#y!$P!$Z!$a!$g!$y!%T!%Z!%a!%k!%q!%w!%}!&T!&Z!&e!&k!&u!&{!'U!'[!'k!'s!'}!(UPPPPPPPPPPP!([!(_!(e!(n!(x!)TPPPPPPPPPPPP!-u!/Z!3^!6oPP!6w!7W!7a!8Y!8P!8c!8i!8l!8o!8r!8z!9jPPPPPPPPPPPPPPPPP!9m!9q!9wP!:]!:a!:m!:v!;S!;j!;m!;p!;v!;|!<S!<VP!<_!<h!=d!=g]eOn#g$j)t,P'}`OTYZ[adnoprtxy}!P!Q!R!U!X!c!d!e!f!g!h!i!k!o!p!q!s!t!z#O#S#T#[#d#g#x#y#{#}$Q$e$g$h$j$q$}%S%Z%^%`%c%g%l%n%w%|&O&Z&_&h&j&k&u&x&|'P'W'Z'l'm'p'r's'w'|(O(S(W(](^(d(g(p(r(z(})^)e)g)k)l)p)t)z*O*Y*d*g*h*k*q*r*t*v*y*z*}+Q+U+V+Y+a+c+d+k+x+y,P,X,Y,],g,h,i,k,l,o,q,s,u,w,y,z-O-d-f-m-p-s.f.g/V/Z/s0c0d0e0f0h0i0j0k0l0n0r{!cQ#c#p$R$d$p%e%j%p%q&`'O'g(q(|)j*o*x+w,v0g}!dQ#c#p$R$d$p$u%e%j%p%q&`'O'g(q(|)j*o*x+w,v0g!P!eQ#c#p$R$d$p$u$v%e%j%p%q&`'O'g(q(|)j*o*x+w,v0g!R!fQ#c#p$R$d$p$u$v$w%e%j%p%q&`'O'g(q(|)j*o*x+w,v0g!T!gQ#c#p$R$d$p$u$v$w$x%e%j%p%q&`'O'g(q(|)j*o*x+w,v0g!V!hQ#c#p$R$d$p$u$v$w$x$y%e%j%p%q&`'O'g(q(|)j*o*x+w,v0g!Z!hQ!n#c#p$R$d$p$u$v$w$x$y$z%e%j%p%q&`'O'g(q(|)j*o*x+w,v0g'}TOTYZ[adnoprtxy}!P!Q!R!U!X!c!d!e!f!g!h!i!k!o!p!q!s!t!z#O#S#T#[#d#g#x#y#{#}$Q$e$g$h$j$q$}%S%Z%^%`%c%g%l%n%w%|&O&Z&_&h&j&k&u&x&|'P'W'Z'l'm'p'r's'w'|(O(S(W(](^(d(g(p(r(z(})^)e)g)k)l)p)t)z*O*Y*d*g*h*k*q*r*t*v*y*z*}+Q+U+V+Y+a+c+d+k+x+y,P,X,Y,],g,h,i,k,l,o,q,s,u,w,y,z-O-d-f-m-p-s.f.g/V/Z/s0c0d0e0f0h0i0j0k0l0n0r&eVOYZ[dnprxy}!P!Q!U!i!k!o!p!q!s!t#[#d#g#y#{#}$Q$h$j$}%S%Z%^%`%g%l%n%w%|&Z&_&j&k&u&x'P'W'Z'l'm'p'r's'w(O(W(^(d(g(p(r(z)^)e)g)p)t)z*O*Y*d*g*h*k*q*r*t*v*y*z*}+U+V+Y+a+d+k,P,X,Y,],g,h,i,k,l,o,q,s,u,w,y,z-O-d-f-m-p-s.f.g/V/Z/s0c0d0e0f0h0i0j0k0n0r%oXOYZ[dnrxy}!P!Q!U!i!k#[#d#g#y#{#}$Q$h$j$}%S%^%`%g%l%n%w%|&Z&_&j&k&u&x'P'W'Z'l'm'p'r's'w(O(W(^(d(g(p(r(z)^)e)g)p)t)z*O*Y*d*g*h*k*q*t*v*y*z*}+U+V+Y+a+d+k,P,X,Y,],g,h,i,k,l,o,s,u,w,y,z-O-d-f-m-p.f.g/V/Z0i0j0kQ#vqQ/[.kR0o0q't`OTYZ[adnoprtxy}!P!Q!R!U!X!c!d!e!f!g!h!k!o!p!q!s!t!z#O#S#T#[#d#g#x#y#{#}$Q$e$g$h$j$q$}%S%Z%^%`%c%g%l%n%w%|&O&Z&_&h&j&k&u&x&|'P'W'Z'l'p'r's'w'|(O(S(W(](^(d(g(p(r(z(})^)e)g)k)l)p)t)z*O*Y*g*h*k*q*r*t*v*y*z*}+Q+U+V+Y+a+c+d+k+x+y,P,X,Y,],h,i,k,l,o,q,s,u,w,y,z-O-d-f-m-p-s.f.g/V/Z/s0c0d0e0f0h0i0j0k0l0n0rh#jhz{$W$Z&l&q)S)X+f+g-RW#rq&].k0qQ$]|Q$a!OQ$n!VQ$o!WW$|!i'm*d,gS&[#s#tQ'S$iQ(s&UQ)U&nU)Y&s)Z+jW)a&w+m-T-{Q*Q']W*R'_,`-h.TQ+l)`S,_*S*TQ-Q+eQ-_,TQ-c,WQ.R-al.W-l.^._.a.z.|/R/j/o/t/y0U0Z0^Q/S.`Q/a.tQ/l/OU0P/u0S0[X0V/z0W0_0`R&Z#r!_!wYZ!P!Q!k%S%`%g'p'r's(O(W)g*g*h*k*q*t*v,h,i,k,l,o-m-p.f.g/ZR%^!vQ!{YQ%x#[Q&d#}Q&g$QR,{+YT.j-s/s!Y!jQ!n#c#p$R$d$p$u$v$w$x$y$z%e%j%p%q&`'O'g(q(|)j*o*x+w,v0gQ&X#kQ'c$oR*^'dR'l$|Q%V!mR/_.r'|_OTYZ[adnoprtxy}!P!Q!R!U!X!c!d!e!f!g!h!i!k!o!p!q!s!t!z#O#S#T#[#d#g#x#y#{#}$Q$e$g$h$j$q$}%S%Z%^%`%c%g%l%n%w%|&O&Z&_&h&j&k&u&x&|'P'W'Z'l'm'p'r's'w'|(O(S(W(](^(d(g(p(r(z(})^)e)g)k)l)p)t)z*O*Y*d*g*h*k*q*r*t*v*y*z*}+Q+U+V+Y+a+c+d+k+x+y,P,X,Y,],g,h,i,k,l,o,q,s,u,w,y,z-O-d-f-m-p-s.f.g/V/Z/s0c0d0e0f0h0i0j0k0l0n0rS#a_#b!P.[-l.^._.`.a.t.z.|/R/j/o/t/u/y/z0S0U0W0Z0[0^0_0`'|_OTYZ[adnoprtxy}!P!Q!R!U!X!c!d!e!f!g!h!i!k!o!p!q!s!t!z#O#S#T#[#d#g#x#y#{#}$Q$e$g$h$j$q$}%S%Z%^%`%c%g%l%n%w%|&O&Z&_&h&j&k&u&x&|'P'W'Z'l'm'p'r's'w'|(O(S(W(](^(d(g(p(r(z(})^)e)g)k)l)p)t)z*O*Y*d*g*h*k*q*r*t*v*y*z*}+Q+U+V+Y+a+c+d+k+x+y,P,X,Y,],g,h,i,k,l,o,q,s,u,w,y,z-O-d-f-m-p-s.f.g/V/Z/s0c0d0e0f0h0i0j0k0l0n0rT#a_#bT#^^#_R(o%xa(l%x(n(o+`,{-y-z.oT+[(k+]R-z,{Q$PsQ+l)aQ,^*RR-e,_X#}s$O$P&fQ&y$aQ'a$nQ'd$oR)s'SQ)b&wV-S+m-T-{ZgOn$j)t,PXkOn)t,PQ$k!TQ&z$bQ&{$cQ'^$mQ'b$oQ)q'RQ)x'WQ){'XQ)|'YQ*Z'`S*]'c'dQ+s)gQ+u)hQ+v)iQ+z)oS+|)r*[Q,Q)vQ,R)wS,S)y)zQ,d*^Q-V+rQ-W+tQ-Y+{S-Z+},OQ-`,UQ-b,VQ-|-XQ.O-[Q.P-^Q.Q-_Q.p-}Q.q.RQ/W.dR/r/XWkOn)t,PR#mjQ'`$nS)r'S'aR,O)sQ,]*RR-f,^Q*['`Q+})rR-[,OZiOjn)t,PQ'f$pR*`'gT-j,e-ku.c-l.^._.a.t.z.|/R/j/o/t/u/y0S0U0Z0[0^t.c-l.^._.a.t.z.|/R/j/o/t/u/y0S0U0Z0[0^Q/S.`X0V/z0W0_0`!P.Z-l.^._.`.a.t.z.|/R/j/o/t/u/y/z0S0U0W0Z0[0^0_0`Q.w.YR/f.xg.z.].{/b/i/n/|0O0Q0]0a0bu.b-l.^._.a.t.z.|/R/j/o/t/u/y0S0U0Z0[0^X.u.W.b/a0PR/c.tV0R/u0S0[R/X.dQnOS#on,PR,P)tQ&^#uR(x&^S%m#R#wS(_%m(bT(b%p&`Q%a!yQ%h!}W(P%a%h(U(YQ(U%eR(Y%jQ&i$RR)O&iQ(e%qQ*{(`T+R(e*{Q'n%OR*e'nS'q%R%SY*i'q*j,m-q.hU*j'r's'tU,m*k*l*mS-q,n,oR.h-rQ#Y]R%t#YQ#_^R%y#_Q(h%vS+W(h+XR+X(iQ+](kR,|+]Q#b_R%{#bQ#ebQ%}#cW&Q#e%}({+bQ({&cR+b0gQ$OsS&e$O&fR&f$PQ&v$_R)_&vQ&V#jR(t&VQ&m$VS)T&m+hR+h)UQ$Z{R&p$ZQ&t$]R)[&tQ+n)bR-U+nQ#hfR&S#hQ)f&zR+q)fQ&}$dS)m&})nR)n'OQ'V$kR)u'VQ'[$lS*P'[,ZR,Z*QQ,a*VR-i,aWjOn)t,PR#ljQ-k,eR.U-kd.{.]/b/i/n/|0O0Q0]0a0bR/h.{U.s.W/a0PR/`.sQ/{/nS0X/{0YR0Y/|S/v/b/cR0T/vQ.}.]R/k.}R!ZPXmOn)t,PWlOn)t,PR'T$jYfOn$j)t,PR&R#g[sOn#g$j)t,PR&d#}&dQOYZ[dnprxy}!P!Q!U!i!k!o!p!q!s!t#[#d#g#y#{#}$Q$h$j$}%S%Z%^%`%g%l%n%w%|&Z&_&j&k&u&x'P'W'Z'l'm'p'r's'w(O(W(^(d(g(p(r(z)^)e)g)p)t)z*O*Y*d*g*h*k*q*r*t*v*y*z*}+U+V+Y+a+d+k,P,X,Y,],g,h,i,k,l,o,q,s,u,w,y,z-O-d-f-m-p-s.f.g/V/Z/s0c0d0e0f0h0i0j0k0n0rQ!nTQ#caQ#poU$Rt%c(SS$d!R$gQ$p!XQ$u!cQ$v!dQ$w!eQ$x!fQ$y!gQ$z!hQ%e!zQ%j#OQ%p#SQ%q#TQ&`#xQ'O$eQ'g$qQ(q&OU(|&h(}+cW)j&|)l+x+yQ*o'|Q*x(]Q+w)kQ,v+QR0g0lQ!yYQ!}ZQ$b!PQ$c!QQ%R!kQ't%S^'{%`%g(O(W*q*t*v^*f'p*h,k,l-p.g/ZQ*l'rQ*m'sQ+t)gQ,j*gQ,n*kQ-n,hQ-o,iQ-r,oQ.e-mR/Y.f[bOn#g$j)t,P!^!vYZ!P!Q!k%S%`%g'p'r's(O(W)g*g*h*k*q*t*v,h,i,k,l,o-m-p.f.g/ZQ#R[Q#fdS#wrxQ$UyW$_}$Q'P)pS$l!U$hW${!i'm*d,gS%v#[+Y`&P#d%|(p(r(z+a-O0kQ&a#yQ&b#{Q&c#}Q'j$}Q'z%^W([%l(^*y*}Q(`%nQ(i%wQ(v&ZS(y&_0iQ)P&jQ)Q&kU)]&u)^+kQ)d&xQ)y'WY)}'Z*O,X,Y-dQ*b'lS*n'w0jW+P(d*z,s,wW+T(g+V,y,zQ+p)eQ,U)zQ,c*YQ,x+UQ-P+dQ-e,]Q-v,uQ.S-fR/q/VhUOn#d#g$j%|&_'w(p(r)t,P%U!uYZ[drxy}!P!Q!U!i!k#[#y#{#}$Q$h$}%S%^%`%g%l%n%w&Z&j&k&u&x'P'W'Z'l'm'p'r's(O(W(^(d(g(z)^)e)g)p)z*O*Y*d*g*h*k*q*t*v*y*z*}+U+V+Y+a+d+k,X,Y,],g,h,i,k,l,o,s,u,w,y,z-O-d-f-m-p.f.g/V/Z0i0j0kQ#qpW%W!o!s0d0nQ%X!pQ%Y!qQ%[!tQ%f0cS'v%Z0hQ'x0eQ'y0fQ,p*rQ-u,qS.i-s/sR0p0rU#uq.k0qR(w&][cOn#g$j)t,PZ!xY#[#}$Q+YQ#W[Q#zrR$TxQ%b!yQ%i!}Q%o#RQ'j${Q(V%eQ(Z%jQ(c%pQ(f%qQ*|(`Q,f*bQ-t,pQ.m-uR/].lQ$StQ(R%cR*s(SQ.l-sR/}/sR#QZR#V[R%Q!iQ%O!iV*c'm*d,g!Z!lQ!n#c#p$R$d$p$u$v$w$x$y$z%e%j%p%q&`'O'g(q(|)j*o*x+w,v0gR%T!kT#]^#_Q%x#[R,{+YQ(m%xS+_(n(oQ,}+`Q-x,{S.n-y-zR/^.oT+Z(k+]Q$`}Q&g$QQ)o'PR+{)pQ$XzQ)W&qR+i)XQ$XzQ&o$WQ)W&qR+i)XQ#khW$Vz$W&q)XQ$[{Q&r$ZZ)R&l)S+f+g-RR$^|R)c&wXlOn)t,PQ$f!RR'Q$gQ$m!UR'R$hR*X'_Q*V'_V-g,`-h.TQ.d-lQ/P.^R/Q._U.]-l.^._Q/U.aQ/b.tQ/g.zU/i.|/j/yQ/n/RQ/|/oQ0O/tU0Q/u0S0[Q0]0UQ0a0ZR0b0^R/T.`R/d.t",nodeNames:"⚠ print Escape { Comment Script AssignStatement * BinaryExpression BitOp BitOp BitOp BitOp ArithOp ArithOp @ ArithOp ** UnaryExpression ArithOp BitOp AwaitExpression await ) ( ParenthesizedExpression BinaryExpression or and CompareOp in not is UnaryExpression ConditionalExpression if else LambdaExpression lambda ParamList VariableName AssignOp , : NamedExpression AssignOp YieldExpression yield from TupleExpression ComprehensionExpression async for LambdaExpression ] [ ArrayExpression ArrayComprehensionExpression } { DictionaryExpression DictionaryComprehensionExpression SetExpression SetComprehensionExpression CallExpression ArgList AssignOp MemberExpression . PropertyName Number String FormatString FormatReplacement FormatSelfDoc FormatConversion FormatSpec FormatReplacement FormatSelfDoc ContinuedString Ellipsis None Boolean TypeDef AssignOp UpdateStatement UpdateOp ExpressionStatement DeleteStatement del PassStatement pass BreakStatement break ContinueStatement continue ReturnStatement return YieldStatement PrintStatement RaiseStatement raise ImportStatement import as ScopeStatement global nonlocal AssertStatement assert TypeDefinition type TypeParamList TypeParam StatementGroup ; IfStatement Body elif WhileStatement while ForStatement TryStatement try except finally WithStatement with FunctionDefinition def ParamList AssignOp TypeDef ClassDefinition class DecoratedStatement Decorator At MatchStatement match MatchBody MatchClause case CapturePattern LiteralPattern ArithOp ArithOp AsPattern OrPattern LogicOp AttributePattern SequencePattern MappingPattern StarPattern ClassPattern PatternArgList KeywordPattern KeywordPattern Guard",maxTerm:277,context:$P,nodeProps:[["isolate",-5,4,71,72,73,77,""],["group",-15,6,85,87,88,90,92,94,96,98,99,100,102,105,108,110,"Statement Statement",-22,8,18,21,25,40,49,50,56,57,60,61,62,63,64,67,70,71,72,79,80,81,82,"Expression",-10,114,116,119,121,122,126,128,133,135,138,"Statement",-9,143,144,147,148,150,151,152,153,154,"Pattern"],["openedBy",23,"(",54,"[",58,"{"],["closedBy",24,")",55,"]",59,"}"]],propSources:[XP],skippedNodes:[0,4],repeatNodeCount:34,tokenData:"!2|~R!`OX%TXY%oY[%T[]%o]p%Tpq%oqr'ars)Yst*xtu%Tuv,dvw-hwx.Uxy/tyz0[z{0r{|2S|}2p}!O3W!O!P4_!P!Q:Z!Q!R;k!R![>_![!]Do!]!^Es!^!_FZ!_!`Gk!`!aHX!a!b%T!b!cIf!c!dJU!d!eK^!e!hJU!h!i!#f!i!tJU!t!u!,|!u!wJU!w!x!.t!x!}JU!}#O!0S#O#P&o#P#Q!0j#Q#R!1Q#R#SJU#S#T%T#T#UJU#U#VK^#V#YJU#Y#Z!#f#Z#fJU#f#g!,|#g#iJU#i#j!.t#j#oJU#o#p!1n#p#q!1s#q#r!2a#r#s!2f#s$g%T$g;'SJU;'S;=`KW<%lOJU`%YT&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%T`%lP;=`<%l%To%v]&n`%c_OX%TXY%oY[%T[]%o]p%Tpq%oq#O%T#O#P&o#P#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%To&tX&n`OY%TYZ%oZ]%T]^%o^#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tc'f[&n`O!_%T!_!`([!`#T%T#T#U(r#U#f%T#f#g(r#g#h(r#h#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tc(cTmR&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tc(yT!mR&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk)aV&n`&[ZOr%Trs)vs#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk){V&n`Or%Trs*bs#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk*iT&n`&^ZO#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%To+PZS_&n`OY*xYZ%TZ]*x]^%T^#o*x#o#p+r#p#q*x#q#r+r#r;'S*x;'S;=`,^<%lO*x_+wTS_OY+rZ]+r^;'S+r;'S;=`,W<%lO+r_,ZP;=`<%l+ro,aP;=`<%l*xj,kV%rQ&n`O!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tj-XT!xY&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tj-oV%lQ&n`O!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk.]V&n`&ZZOw%Twx.rx#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk.wV&n`Ow%Twx/^x#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk/eT&n`&]ZO#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk/{ThZ&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tc0cTgR&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk0yXVZ&n`Oz%Tz{1f{!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk1mVaR&n`O!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk2ZV%oZ&n`O!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tc2wTzR&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%To3_W%pZ&n`O!_%T!_!`-Q!`!a3w!a#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Td4OT&{S&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk4fX!fQ&n`O!O%T!O!P5R!P!Q%T!Q![6T![#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk5WV&n`O!O%T!O!P5m!P#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk5tT!rZ&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Ti6[a!hX&n`O!Q%T!Q![6T![!g%T!g!h7a!h!l%T!l!m9s!m#R%T#R#S6T#S#X%T#X#Y7a#Y#^%T#^#_9s#_#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Ti7fZ&n`O{%T{|8X|}%T}!O8X!O!Q%T!Q![8s![#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Ti8^V&n`O!Q%T!Q![8s![#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Ti8z]!hX&n`O!Q%T!Q![8s![!l%T!l!m9s!m#R%T#R#S8s#S#^%T#^#_9s#_#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Ti9zT!hX&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk:bX%qR&n`O!P%T!P!Q:}!Q!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tj;UV%sQ&n`O!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Ti;ro!hX&n`O!O%T!O!P=s!P!Q%T!Q![>_![!d%T!d!e?q!e!g%T!g!h7a!h!l%T!l!m9s!m!q%T!q!rA]!r!z%T!z!{Bq!{#R%T#R#S>_#S#U%T#U#V?q#V#X%T#X#Y7a#Y#^%T#^#_9s#_#c%T#c#dA]#d#l%T#l#mBq#m#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Ti=xV&n`O!Q%T!Q![6T![#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Ti>fc!hX&n`O!O%T!O!P=s!P!Q%T!Q![>_![!g%T!g!h7a!h!l%T!l!m9s!m#R%T#R#S>_#S#X%T#X#Y7a#Y#^%T#^#_9s#_#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Ti?vY&n`O!Q%T!Q!R@f!R!S@f!S#R%T#R#S@f#S#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Ti@mY!hX&n`O!Q%T!Q!R@f!R!S@f!S#R%T#R#S@f#S#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TiAbX&n`O!Q%T!Q!YA}!Y#R%T#R#SA}#S#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TiBUX!hX&n`O!Q%T!Q!YA}!Y#R%T#R#SA}#S#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TiBv]&n`O!Q%T!Q![Co![!c%T!c!iCo!i#R%T#R#SCo#S#T%T#T#ZCo#Z#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TiCv]!hX&n`O!Q%T!Q![Co![!c%T!c!iCo!i#R%T#R#SCo#S#T%T#T#ZCo#Z#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%ToDvV{_&n`O!_%T!_!`E]!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TcEdT%{R&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TkEzT#gZ&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TkFbXmR&n`O!^%T!^!_F}!_!`([!`!a([!a#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TjGUV%mQ&n`O!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TkGrV%zZ&n`O!_%T!_!`([!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TkH`WmR&n`O!_%T!_!`([!`!aHx!a#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TjIPV%nQ&n`O!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TkIoV_Q#}P&n`O!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%ToJ_]&n`&YS%uZO!Q%T!Q![JU![!c%T!c!}JU!}#R%T#R#SJU#S#T%T#T#oJU#p#q%T#r$g%T$g;'SJU;'S;=`KW<%lOJUoKZP;=`<%lJUoKge&n`&YS%uZOr%Trs)Ysw%Twx.Ux!Q%T!Q![JU![!c%T!c!tJU!t!uLx!u!}JU!}#R%T#R#SJU#S#T%T#T#fJU#f#gLx#g#oJU#p#q%T#r$g%T$g;'SJU;'S;=`KW<%lOJUoMRa&n`&YS%uZOr%TrsNWsw%Twx! vx!Q%T!Q![JU![!c%T!c!}JU!}#R%T#R#SJU#S#T%T#T#oJU#p#q%T#r$g%T$g;'SJU;'S;=`KW<%lOJUkN_V&n`&`ZOr%TrsNts#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TkNyV&n`Or%Trs! `s#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk! gT&n`&bZO#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk! }V&n`&_ZOw%Twx!!dx#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!!iV&n`Ow%Twx!#Ox#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!#VT&n`&aZO#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%To!#oe&n`&YS%uZOr%Trs!%Qsw%Twx!&px!Q%T!Q![JU![!c%T!c!tJU!t!u!(`!u!}JU!}#R%T#R#SJU#S#T%T#T#fJU#f#g!(`#g#oJU#p#q%T#r$g%T$g;'SJU;'S;=`KW<%lOJUk!%XV&n`&dZOr%Trs!%ns#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!%sV&n`Or%Trs!&Ys#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!&aT&n`&fZO#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!&wV&n`&cZOw%Twx!'^x#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!'cV&n`Ow%Twx!'xx#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!(PT&n`&eZO#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%To!(ia&n`&YS%uZOr%Trs!)nsw%Twx!+^x!Q%T!Q![JU![!c%T!c!}JU!}#R%T#R#SJU#S#T%T#T#oJU#p#q%T#r$g%T$g;'SJU;'S;=`KW<%lOJUk!)uV&n`&hZOr%Trs!*[s#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!*aV&n`Or%Trs!*vs#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!*}T&n`&jZO#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!+eV&n`&gZOw%Twx!+zx#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!,PV&n`Ow%Twx!,fx#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!,mT&n`&iZO#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%To!-Vi&n`&YS%uZOr%TrsNWsw%Twx! vx!Q%T!Q![JU![!c%T!c!dJU!d!eLx!e!hJU!h!i!(`!i!}JU!}#R%T#R#SJU#S#T%T#T#UJU#U#VLx#V#YJU#Y#Z!(`#Z#oJU#p#q%T#r$g%T$g;'SJU;'S;=`KW<%lOJUo!.}a&n`&YS%uZOr%Trs)Ysw%Twx.Ux!Q%T!Q![JU![!c%T!c!}JU!}#R%T#R#SJU#S#T%T#T#oJU#p#q%T#r$g%T$g;'SJU;'S;=`KW<%lOJUk!0ZT!XZ&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tc!0qT!WR&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tj!1XV%kQ&n`O!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%T~!1sO!]~k!1zV%jR&n`O!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%T~!2fO![~i!2mT%tX&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%T",tokenizers:[PP,wP,yP,TP,0,1,2,3,4],topRules:{Script:[0,5]},specialized:[{term:221,get:i=>RP[i]||-1}],tokenPrec:7668}),Hu=new Th,og=new Set(["Script","Body","FunctionDefinition","ClassDefinition","LambdaExpression","ForStatement","MatchClause"]);function is(i){return(e,t,n)=>{if(n)return!1;let r=e.node.getChild("VariableName");return r&&t(r,i),!0}}const AP={FunctionDefinition:is("function"),ClassDefinition:is("class"),ForStatement(i,e,t){if(t){for(let n=i.node.firstChild;n;n=n.nextSibling)if(n.name=="VariableName")e(n,"variable");else if(n.name=="in")break}},ImportStatement(i,e){var t,n;let{node:r}=i,s=((t=r.firstChild)===null||t===void 0?void 0:t.name)=="from";for(let o=r.getChild("import");o;o=o.nextSibling)o.name=="VariableName"&&((n=o.nextSibling)===null||n===void 0?void 0:n.name)!="as"&&e(o,s?"variable":"namespace")},AssignStatement(i,e){for(let t=i.node.firstChild;t;t=t.nextSibling)if(t.name=="VariableName")e(t,"variable");else if(t.name==":"||t.name=="AssignOp")break},ParamList(i,e){for(let t=null,n=i.node.firstChild;n;n=n.nextSibling)n.name=="VariableName"&&(!t||!/\*|AssignOp/.test(t.name))&&e(n,"variable"),t=n},CapturePattern:is("variable"),AsPattern:is("variable"),__proto__:null};function lg(i,e){let t=Hu.get(e);if(t)return t;let n=[],r=!0;function s(o,l){let a=i.sliceString(o.from,o.to);n.push({label:a,type:l})}return e.cursor(le.IncludeAnonymous).iterate(o=>{if(o.name){let l=AP[o.name];if(l&&l(o,s,r)||!r&&og.has(o.name))return!1;r=!1}else if(o.to-o.from>8192){for(let l of lg(i,o.node))n.push(l);return!1}}),Hu.set(e,n),n}const Ku=/^[\w\xa1-\uffff][\w\d\xa1-\uffff]*$/,ag=["String","FormatString","Comment","PropertyName"];function jP(i){let e=ce(i.state).resolveInner(i.pos,-1);if(ag.indexOf(e.name)>-1)return null;let t=e.name=="VariableName"||e.to-e.from<20&&Ku.test(i.state.sliceDoc(e.from,e.to));if(!t&&!i.explicit)return null;let n=[];for(let r=e;r;r=r.parent)og.has(r.name)&&(n=n.concat(lg(i.state.doc,r)));return{options:n,from:t?e.from:i.pos,validFor:Ku}}const MP=["__annotations__","__builtins__","__debug__","__doc__","__import__","__name__","__loader__","__package__","__spec__","False","None","True"].map(i=>({label:i,type:"constant"})).concat(["ArithmeticError","AssertionError","AttributeError","BaseException","BlockingIOError","BrokenPipeError","BufferError","BytesWarning","ChildProcessError","ConnectionAbortedError","ConnectionError","ConnectionRefusedError","ConnectionResetError","DeprecationWarning","EOFError","Ellipsis","EncodingWarning","EnvironmentError","Exception","FileExistsError","FileNotFoundError","FloatingPointError","FutureWarning","GeneratorExit","IOError","ImportError","ImportWarning","IndentationError","IndexError","InterruptedError","IsADirectoryError","KeyError","KeyboardInterrupt","LookupError","MemoryError","ModuleNotFoundError","NameError","NotADirectoryError","NotImplemented","NotImplementedError","OSError","OverflowError","PendingDeprecationWarning","PermissionError","ProcessLookupError","RecursionError","ReferenceError","ResourceWarning","RuntimeError","RuntimeWarning","StopAsyncIteration","StopIteration","SyntaxError","SyntaxWarning","SystemError","SystemExit","TabError","TimeoutError","TypeError","UnboundLocalError","UnicodeDecodeError","UnicodeEncodeError","UnicodeError","UnicodeTranslateError","UnicodeWarning","UserWarning","ValueError","Warning","ZeroDivisionError"].map(i=>({label:i,type:"type"}))).concat(["bool","bytearray","bytes","classmethod","complex","float","frozenset","int","list","map","memoryview","object","range","set","staticmethod","str","super","tuple","type"].map(i=>({label:i,type:"class"}))).concat(["abs","aiter","all","anext","any","ascii","bin","breakpoint","callable","chr","compile","delattr","dict","dir","divmod","enumerate","eval","exec","exit","filter","format","getattr","globals","hasattr","hash","help","hex","id","input","isinstance","issubclass","iter","len","license","locals","max","min","next","oct","open","ord","pow","print","property","quit","repr","reversed","round","setattr","slice","sorted","sum","vars","zip"].map(i=>({label:i,type:"function"}))),EP=[Qe("def ${name}(${params}):\n ${}",{label:"def",detail:"function",type:"keyword"}),Qe("for ${name} in ${collection}:\n ${}",{label:"for",detail:"loop",type:"keyword"}),Qe("while ${}:\n ${}",{label:"while",detail:"loop",type:"keyword"}),Qe("try:\n ${}\nexcept ${error}:\n ${}",{label:"try",detail:"/ except block",type:"keyword"}),Qe(`if \${}:
|
|
134
134
|
|
|
135
|
-
`,{label:"if",detail:"block",type:"keyword"}),Qe("if ${}:\n ${}\nelse:\n ${}",{label:"if",detail:"/ else block",type:"keyword"}),Qe("class ${name}:\n def __init__(self, ${params}):\n ${}",{label:"class",detail:"definition",type:"keyword"}),Qe("import ${module}",{label:"import",detail:"statement",type:"keyword"}),Qe("from ${module} import ${names}",{label:"from",detail:"import",type:"keyword"})],zP=Zp(ag,Mh(MP.concat(EP)));function vl(i){let{node:e,pos:t}=i,n=i.lineIndent(t,-1),r=null;for(;;){let s=e.childBefore(t);if(s)if(s.name=="Comment")t=s.from;else if(s.name=="Body"||s.name=="MatchBody")i.baseIndentFor(s)+i.unit<=n&&(r=s),e=s;else if(s.name=="MatchClause")e=s;else if(s.type.is("Statement"))e=s;else break;else break}return r}function $l(i,e){let t=i.baseIndentFor(e),n=i.lineAt(i.pos,-1),r=n.from+n.text.length;return/^\s*($|#)/.test(n.text)&&i.node.to<r+100&&!/\S/.test(i.state.sliceDoc(r,i.node.to))&&i.lineIndent(i.pos,-1)<=t||/^\s*(else:|elif |except |finally:|case\s+[^=:]+:)/.test(i.textAfter)&&i.lineIndent(i.pos,-1)>t?null:t+i.unit}const Pl=Oi.define({name:"python",parser:ZP.configure({props:[Vi.add({Body:i=>{var e;let t=/^\s*(#|$)/.test(i.textAfter)&&vl(i)||i.node;return(e=$l(i,t))!==null&&e!==void 0?e:i.continue()},MatchBody:i=>{var e;let t=vl(i);return(e=$l(i,t||i.node))!==null&&e!==void 0?e:i.continue()},IfStatement:i=>/^\s*(else:|elif )/.test(i.textAfter)?i.baseIndent:i.continue(),"ForStatement WhileStatement":i=>/^\s*else:/.test(i.textAfter)?i.baseIndent:i.continue(),TryStatement:i=>/^\s*(except[ :]|finally:|else:)/.test(i.textAfter)?i.baseIndent:i.continue(),MatchStatement:i=>/^\s*case /.test(i.textAfter)?i.baseIndent+i.unit:i.continue(),"TupleExpression ComprehensionExpression ParamList ArgList ParenthesizedExpression":ps({closing:")"}),"DictionaryExpression DictionaryComprehensionExpression SetExpression SetComprehensionExpression":ps({closing:"}"}),"ArrayExpression ArrayComprehensionExpression":ps({closing:"]"}),MemberExpression:i=>i.baseIndent+i.unit,"String FormatString":()=>null,Script:i=>{var e;let t=vl(i);return(e=t&&$l(i,t))!==null&&e!==void 0?e:i.continue()}}),Si.add({"ArrayExpression DictionaryExpression SetExpression TupleExpression":So,Body:(i,e)=>({from:i.from+1,to:i.to-(i.to==e.doc.length?0:1)}),"String FormatString":(i,e)=>({from:e.doc.lineAt(i.from).to,to:i.to})})]}),languageData:{closeBrackets:{brackets:["(","[","{","'",'"',"'''",'"""'],stringPrefixes:["f","fr","rf","r","u","b","br","rb","F","FR","RF","R","U","B","BR","RB"]},commentTokens:{line:"#"},indentOnInput:/^\s*([\}\]\)]|else:|elif |except |finally:|case\s+[^:]*:?)$/}});function qP(){return new zi(Pl,[Pl.data.of({autocomplete:jP}),Pl.data.of({autocomplete:zP})])}const _P=new Set([".txt",".md",".markdown",".json",".yaml",".yml",".toml",".ini",".cfg",".conf",".js",".jsx",".ts",".tsx",".mjs",".cjs",".html",".htm",".css",".scss",".sass",".less",".py",".rb",".go",".rs",".java",".kt",".swift",".c",".h",".cpp",".hpp",".cs",".php",".sh",".bash",".zsh",".fish",".ps1",".bat",".cmd",".sql",".xml",".svg",".csv",".tsv",".env",".lock",".gitignore",".dockerignore",".editorconfig",".prettierrc",".eslintrc"]),hg=new Set([".png",".jpg",".jpeg",".gif",".webp",".svg",".ico",".bmp"]),cg=new Set([".mp4",".webm",".mov"]),fg=new Set([".mp3",".wav",".ogg",".flac"]),WP=new Set([".pdf"]),io=new Set([".md",".markdown"]),ug=new Set([".html",".htm"]);function LP(i){return io.has(i)?[O$()]:ug.has(i)?[Bm()]:i===".js"||i===".jsx"||i===".mjs"||i===".cjs"?[qa()]:i===".ts"||i===".tsx"?[qa({typescript:!0,jsx:i===".tsx"})]:i===".json"?[y$()]:i===".css"||i===".scss"||i===".sass"||i===".less"?[$m()]:i===".py"?[qP()]:[]}function rc(i){const e=i.lastIndexOf(".");return e<0?"":i.slice(e).toLowerCase()}function La(i,e){const t=decodeURIComponent(e.split("#")[0].split("?")[0]);if(!t)return"";const n=i&&i.includes("/")?i.slice(0,i.lastIndexOf("/")):"",r=(n?`${n}/${t}`:t).replace(/\\/g,"/").split("/"),s=[];for(const o of r)if(!(o==="."||o==="")){if(o===".."){s.pop();continue}s.push(o)}return s.join("/")}function VP(i){return i==null?"":i<1024?`${i} B`:i<1024*1024?`${(i/1024).toFixed(1)} KB`:i<1024*1024*1024?`${(i/1024/1024).toFixed(1)} MB`:`${(i/1024/1024/1024).toFixed(2)} GB`}function sc(i,e){if(i.type==="directory")return e?p.jsx(ks,{className:"w-4 h-4 text-amber-500 shrink-0"}):p.jsx(W0,{className:"w-4 h-4 text-amber-500 shrink-0"});const t=rc(i.name);return hg.has(t)?p.jsx(gx,{className:"w-4 h-4 text-purple-500 shrink-0"}):cg.has(t)?p.jsx(Sx,{className:"w-4 h-4 text-pink-500 shrink-0"}):fg.has(t)?p.jsx(px,{className:"w-4 h-4 text-pink-400 shrink-0"}):_P.has(t)?p.jsx(C0,{className:"w-4 h-4 text-sky-500 shrink-0"}):p.jsx(Sn,{className:"w-4 h-4 text-warm-400 shrink-0"})}function NP(i){return{name:i.split("/").pop()||i,type:"file",size:null,mtime:null,hidden:!1}}const Ju=i=>/\s/.test(i)?`"${i}"`:i,Va="application/x-vault-path";function DP({entry:i,depth:e,state:t,fullPath:n,selectedPath:r,onToggle:s,onSelect:o,onContextMenu:l,onMove:a,dropTargetPath:h,setDropTargetPath:c}){const f=i.type==="directory",u=(t==null?void 0:t.expanded)??!1,d=r===n,O=f&&h===n,m=f?{onDragOver:g=>{g.preventDefault(),g.dataTransfer.dropEffect="move",c(n)},onDragLeave:()=>c(g=>g===n?null:g),onDrop:g=>{g.preventDefault(),g.stopPropagation();const S=g.dataTransfer.getData(Va)||g.dataTransfer.getData("text/plain");c(null),S&&a(S,n)}}:{};return p.jsxs("button",{type:"button",draggable:!0,onDragStart:g=>{g.dataTransfer.setData(Va,n),g.dataTransfer.setData("text/plain",n),g.dataTransfer.effectAllowed="move"},onDragEnd:()=>c(null),...m,onClick:()=>{f?s(n,i):o(n,i)},onDoubleClick:()=>{f&&o(n,i)},onContextMenu:g=>l(g,n,i),className:`w-full flex items-center gap-1.5 py-0.5 px-1 text-xs text-left rounded-md transition-colors ${O?"bg-accent/25 ring-1 ring-accent":d?"bg-accent/15 text-warm-800":"hover:bg-warm-100 text-warm-700"}`,style:{paddingLeft:4+e*12},title:i.name,children:[f?u?p.jsx(vs,{className:"w-3 h-3 shrink-0 text-warm-400"}):p.jsx(Hn,{className:"w-3 h-3 shrink-0 text-warm-400"}):p.jsx("span",{className:"w-3 h-3 shrink-0"}),sc(i,u),p.jsx("span",{className:`truncate ${i.hidden?"opacity-60 italic":""}`,children:i.name})]})}function dg({projectId:i,parentPath:e,entries:t,depth:n,nodeStates:r,setNodeStates:s,showHidden:o,selectedPath:l,onSelect:a,onContextMenu:h,onMove:c,dropTargetPath:f,setDropTargetPath:u}){const d=Q.useCallback(async(O,m)=>{const g=r.get(O);if(g!=null&&g.expanded){s(S=>{const b=new Map(S);return b.set(O,{...g,expanded:!1}),b});return}if(g!=null&&g.children){s(S=>{const b=new Map(S);return b.set(O,{...g,expanded:!0}),b});return}s(S=>{const b=new Map(S);return b.set(O,{expanded:!0,loading:!0}),b});try{const S=await Ll(i,O,o);s(b=>{const y=new Map(b);return y.set(O,{expanded:!0,loading:!1,children:S.entries}),y})}catch(S){const b=S instanceof Error?S.message:"failed";s(y=>{const T=new Map(y);return T.set(O,{expanded:!0,loading:!1,error:b}),T})}},[r,i,s,o]);return p.jsx(p.Fragment,{children:t.map(O=>{const m=e?`${e}/${O.name}`:O.name,g=r.get(m);return p.jsxs("div",{children:[p.jsx(DP,{entry:O,depth:n,state:g,fullPath:m,selectedPath:l,onToggle:d,onSelect:a,onContextMenu:h,onMove:c,dropTargetPath:f,setDropTargetPath:u}),O.type==="directory"&&(g==null?void 0:g.expanded)&&p.jsxs(p.Fragment,{children:[g.loading&&p.jsxs("div",{className:"flex items-center gap-1 text-xs text-warm-400 py-0.5",style:{paddingLeft:8+(n+1)*12},children:[p.jsx(an,{className:"w-3 h-3 animate-spin"}),p.jsx("span",{children:"loading…"})]}),g.error&&p.jsxs("div",{className:"flex items-center gap-1 text-xs text-status-error py-0.5",style:{paddingLeft:8+(n+1)*12},children:[p.jsx(ho,{className:"w-3 h-3"})," ",g.error]}),g.children&&p.jsx(dg,{projectId:i,parentPath:m,entries:g.children,depth:n+1,nodeStates:r,setNodeStates:s,showHidden:o,selectedPath:l,onSelect:a,onContextMenu:h,onMove:c,dropTargetPath:f,setDropTargetPath:u})]})]},m)})})}function YP({items:i,selectedPath:e,onSelect:t,onContextMenu:n}){const{t:r}=Xe();return i.length===0?null:p.jsxs("div",{className:"border-b border-warm-200 py-1",children:[p.jsx("div",{className:"px-2 py-0.5 text-[10px] uppercase tracking-wider text-warm-400 font-medium",children:r("files.pinned")}),i.map(s=>{const o={name:s.name,type:s.type,size:null,mtime:null,hidden:!1},l=e===s.path;return p.jsxs("button",{type:"button",onClick:()=>t(s.path,o),onContextMenu:a=>n(a,s.path,o),className:`w-full flex items-center gap-1.5 py-0.5 px-1 text-xs text-left rounded-md transition-colors ${l?"bg-accent/15 text-warm-800":"hover:bg-warm-100 text-warm-700"}`,style:{paddingLeft:4},title:s.path,children:[p.jsx(jd,{className:"w-3 h-3 shrink-0 text-status-warning"}),sc(o,!1),p.jsx("span",{className:"truncate",children:s.name})]},s.path)})]})}function BP({state:i,projectId:e,isPinned:t,onTogglePin:n,onHide:r,onUnhide:s,onClose:o,terminals:l,onSendToTerminal:a,onSendToNewTerminal:h,onCreateTask:c,linkedCount:f,includeLinks:u,onToggleIncludeLinks:d}){const{t:O}=Xe(),m=Q.useRef(null),[g,S]=Q.useState({top:i.y,left:i.x,visible:!1});Q.useLayoutEffect(()=>{const k=m.current;if(!k)return;const w=window.innerWidth,P=window.innerHeight,Z=k.offsetWidth,v=k.offsetHeight;let A=i.x,M=i.y;A+Z>w-8&&(A=Math.max(8,w-8-Z)),M+v>P-8&&(M=Math.max(8,P-8-v)),A<8&&(A=8),M<8&&(M=8),S({top:M,left:A,visible:!0})},[i.x,i.y]),Q.useEffect(()=>{const k=Z=>{var v;(v=m.current)!=null&&v.contains(Z.target)||o()},w=Z=>{Z.key==="Escape"&&o()},P=()=>o();return document.addEventListener("mousedown",k),document.addEventListener("keydown",w),window.addEventListener("scroll",P,!0),window.addEventListener("resize",o),()=>{document.removeEventListener("mousedown",k),document.removeEventListener("keydown",w),window.removeEventListener("scroll",P,!0),window.removeEventListener("resize",o)}},[o]);const b=i.entry.type==="directory",y=k=>{Vl(e,i.path,k).catch(()=>{}),o()},T=()=>{navigator.clipboard.writeText(i.path).catch(()=>{}),o()};return eh.createPortal(p.jsxs("div",{ref:m,className:"fixed z-tooltip min-w-[180px] rounded-lg py-1 shadow-elevated text-xs",style:{top:g.top,left:g.left,opacity:g.visible?1:0,backgroundColor:"var(--color-bg-card)",border:"1px solid var(--color-border)"},children:[b?p.jsxs("button",{type:"button",onClick:()=>y("open"),className:"w-full text-left px-3 py-1.5 hover:bg-warm-100 text-warm-700 flex items-center gap-2",children:[p.jsx(ks,{className:"w-3.5 h-3.5"}),p.jsx("span",{children:O("files.openFolder")})]}):p.jsxs(p.Fragment,{children:[p.jsxs("button",{type:"button",onClick:()=>y("open"),className:"w-full text-left px-3 py-1.5 hover:bg-warm-100 text-warm-700 flex items-center gap-2",children:[p.jsx(zl,{className:"w-3.5 h-3.5"}),p.jsx("span",{children:O("files.openInOS")})]}),p.jsxs("button",{type:"button",onClick:()=>y("reveal"),className:"w-full text-left px-3 py-1.5 hover:bg-warm-100 text-warm-700 flex items-center gap-2",children:[p.jsx(ks,{className:"w-3.5 h-3.5"}),p.jsx("span",{children:O("files.revealInExplorer")})]})]}),p.jsx("div",{className:"my-1 border-t border-warm-200"}),p.jsxs("button",{type:"button",onClick:()=>{n(),o()},className:"w-full text-left px-3 py-1.5 hover:bg-warm-100 text-warm-700 flex items-center gap-2",children:[t?p.jsx(Rx,{className:"w-3.5 h-3.5"}):p.jsx(jd,{className:"w-3.5 h-3.5"}),p.jsx("span",{children:O(t?"files.unpin":"files.pin")})]}),p.jsxs("button",{type:"button",onClick:T,className:"w-full text-left px-3 py-1.5 hover:bg-warm-100 text-warm-700 flex items-center gap-2",children:[p.jsx(Xd,{className:"w-3.5 h-3.5"}),p.jsx("span",{children:O("files.copyPath")})]}),!b&&p.jsxs(p.Fragment,{children:[p.jsx("div",{className:"my-1 border-t border-warm-200"}),p.jsxs("div",{className:"px-3 py-1 text-warm-500 flex items-center gap-2",children:[p.jsx(Z0,{className:"w-3.5 h-3.5"}),p.jsx("span",{children:O("files.sendToTerminal")})]}),f>0&&p.jsxs("button",{type:"button",onClick:k=>{k.stopPropagation(),d()},className:"w-full text-left px-3 py-1 text-warm-600 flex items-center gap-2",children:[u?p.jsx(Wx,{size:14}):p.jsx(A0,{size:14}),p.jsxs("span",{children:[O("files.includeLinks")," (",f,")"]})]}),p.jsx("div",{className:"max-h-40 overflow-y-auto",children:l.map(k=>p.jsx("button",{type:"button",onClick:()=>{a(k.sessionId),o()},className:"w-full text-left pl-8 pr-3 py-1.5 hover:bg-warm-100 text-warm-700 flex items-center gap-2",children:p.jsx("span",{className:"truncate",children:k.label})},k.sessionId))}),p.jsx("button",{type:"button",onClick:()=>{h(),o()},className:"w-full text-left pl-8 pr-3 py-1.5 hover:bg-warm-100 text-warm-700 flex items-center gap-2",children:p.jsxs("span",{children:["+ ",O("files.newTerminal")]})}),c&&p.jsxs("button",{type:"button",onClick:()=>{c(),o()},className:"w-full text-left px-3 py-1.5 hover:bg-warm-100 text-warm-700 flex items-center gap-2",children:[p.jsx(vx,{className:"w-3.5 h-3.5"}),p.jsx("span",{children:O("files.sendToTask")})]})]}),i.entry.ignored?p.jsxs("button",{type:"button",onClick:()=>{s(),o()},className:"w-full text-left px-3 py-1.5 hover:bg-warm-100 text-warm-700 flex items-center gap-2",children:[p.jsx(rh,{className:"w-3.5 h-3.5"}),p.jsx("span",{children:O("files.unhide")})]}):p.jsxs("button",{type:"button",onClick:()=>{r(),o()},className:"w-full text-left px-3 py-1.5 hover:bg-warm-100 text-warm-700 flex items-center gap-2",children:[p.jsx(sh,{className:"w-3.5 h-3.5"}),p.jsx("span",{children:O("files.hide")})]})]}),document.body)}function IP({projectId:i,activeFile:e,onSelectFile:t,onVaultIgnoreChanged:n,onCreateTask:r,edges:s,refreshToken:o}){const{t:l}=Xe(),a=X0(),{success:h,error:c}=Cd(),f=`vault:fileExplorer:${i}`,[u,d]=Q.useState(null),[O,m]=Q.useState(null),[g,S]=Q.useState(!1),[b,y]=Q.useState(new Map),T=Q.useRef(!1),[k,w]=Q.useState(()=>{try{return localStorage.getItem(`${f}:showHidden`)==="1"}catch{}return!1}),[P,Z]=Q.useState(()=>{try{const E=localStorage.getItem(`${f}:pinned`);if(!E)return[];const I=JSON.parse(E);return Array.isArray(I)?I.filter(G=>G&&typeof G.path=="string"&&typeof G.name=="string"&&(G.type==="file"||G.type==="directory"||G.type==="symlink"||G.type==="other")):[]}catch{return[]}}),[v,A]=Q.useState(null),[M,z]=Q.useState(!1),N=Q.useMemo(()=>v?Jx(s,v.path):[],[v,s]),[U,K]=Q.useState(null);Q.useEffect(()=>{try{localStorage.setItem(`${f}:pinned`,JSON.stringify(P))}catch{}},[P,f]);const te=Q.useMemo(()=>new Set(P.map(E=>E.path)),[P]),oe=Q.useCallback((E,I)=>{Z(G=>G.some(se=>se.path===E)?G.filter(se=>se.path!==E):[...G,{path:E,type:I.type,name:I.name}])},[]);Q.useEffect(()=>{try{localStorage.setItem(`${f}:showHidden`,k?"1":"0")}catch{}},[k,f]),Q.useEffect(()=>{if(T.current)try{const E=[...b.entries()].filter(([,I])=>I.expanded).map(([I])=>I);localStorage.setItem(`${f}:expanded`,JSON.stringify(E))}catch{}},[b,f]);const R=Q.useCallback(async()=>{S(!0),m(null);try{const E=await Ll(i,"",k);d(E.entries);let I=[];try{const G=localStorage.getItem(`${f}:expanded`);G&&(I=JSON.parse(G))}catch{}if(I.length===0)y(new Map);else{const G=new Map;for(const nt of I){const Le=nt.split("/").filter(Boolean).length,Re=G.get(Le);Re?Re.push(nt):G.set(Le,[nt])}const se=new Map;for(const nt of[...G.keys()].sort((Le,Re)=>Le-Re)){const Le=await Promise.all(G.get(nt).map(async Re=>{try{const rt=await Ll(i,Re,k);return{path:Re,entries:rt.entries}}catch{return null}}));for(const Re of Le)Re&&se.set(Re.path,{expanded:!0,loading:!1,children:Re.entries})}y(se)}T.current=!0}catch(E){m(E instanceof Error?E.message:"failed"),d(null),y(new Map)}finally{S(!1)}},[i,k,f]);Q.useEffect(()=>{R()},[R]),Q.useEffect(()=>{(o??0)>0&&R()},[o]);const _=Q.useCallback((E,I)=>{I.type==="file"&&t(E)},[t]),D=Q.useCallback((E,I,G)=>{E.preventDefault(),A({x:E.clientX,y:E.clientY,path:I,entry:G})},[]),ie=Q.useCallback(async(E,I)=>{try{await Y0(i,E,I.type==="directory"),await R(),n==null||n()}catch{}},[i,R,n]),fe=Q.useCallback(async(E,I)=>{try{await B0(i,E,I.type==="directory"),await R(),n==null||n()}catch{}},[i,R,n]),me=Q.useCallback(async(E,I)=>{const G=E.split("/").filter(Boolean).pop()??E,se=I?`${I}/${G}`:G,nt=E.includes("/")?E.slice(0,E.lastIndexOf("/")):"";if(!(E===se||nt===I)&&!(I===E||I.startsWith(E+"/")))try{await Kx(i,E,se),await R(),n==null||n()}catch(Le){console.warn("[vault] move failed:",Le)}},[i,R,n]),ge=Q.useMemo(()=>(u==null?void 0:u.length)??0,[u]);return p.jsxs("div",{className:"flex flex-col h-full min-h-0",children:[p.jsxs("div",{className:`flex items-center gap-1 px-2 py-1.5 border-b border-warm-200 text-xs transition-colors ${U===""?"bg-accent/20 ring-1 ring-accent ring-inset":""}`,onDragOver:E=>{E.preventDefault(),E.dataTransfer.dropEffect="move",K("")},onDragLeave:()=>K(E=>E===""?null:E),onDrop:E=>{E.preventDefault();const I=E.dataTransfer.getData(Va)||E.dataTransfer.getData("text/plain");K(null),I&&me(I,"")},children:[p.jsx("span",{className:"font-medium text-warm-700 truncate flex-1",children:l("files.root")}),p.jsx("span",{className:"text-warm-400 shrink-0",children:ge}),p.jsx("button",{onClick:()=>w(E=>!E),className:"p-1 rounded-md hover:bg-warm-100 text-warm-500 hover:text-warm-700",title:l(k?"files.hideHidden":"files.showHidden"),children:k?p.jsx(rh,{className:"w-3.5 h-3.5"}):p.jsx(sh,{className:"w-3.5 h-3.5"})}),p.jsx("button",{onClick:R,className:"p-1 rounded-md hover:bg-warm-100 text-warm-500 hover:text-warm-700",title:l("files.refresh"),disabled:g,children:p.jsx(R0,{className:`w-3.5 h-3.5 ${g?"animate-spin":""}`})})]}),p.jsxs("div",{className:"flex-1 min-h-0 overflow-auto py-1",children:[p.jsx(YP,{items:P,selectedPath:e,onSelect:_,onContextMenu:D}),g&&!u&&p.jsxs("div",{className:"flex items-center gap-1 text-xs text-warm-400 px-2 py-1",children:[p.jsx(an,{className:"w-3 h-3 animate-spin"})," ",l("files.loading")]}),O&&p.jsxs("div",{className:"flex items-center gap-1 text-xs text-status-error px-2 py-1",children:[p.jsx(ho,{className:"w-3 h-3"})," ",O]}),u&&u.length===0&&!g&&p.jsx("div",{className:"text-xs text-warm-400 px-2 py-2",children:l("files.empty")}),u&&u.length>0&&p.jsx(dg,{projectId:i,parentPath:"",entries:u,depth:0,nodeStates:b,setNodeStates:y,showHidden:k,selectedPath:e,onSelect:_,onContextMenu:D,onMove:me,dropTargetPath:U,setDropTargetPath:K})]}),v&&p.jsx(BP,{state:v,projectId:i,isPinned:te.has(v.path),onTogglePin:()=>oe(v.path,v.entry),onHide:()=>ie(v.path,v.entry),onUnhide:()=>fe(v.path,v.entry),onClose:()=>A(null),linkedCount:N.length,includeLinks:M,onToggleIncludeLinks:()=>z(E=>!E),terminals:(a==null?void 0:a.listOpenTerminals())??[],onSendToTerminal:E=>{if(!a)return;const I=M?[v.path,...N]:[v.path];a.sendToSession(E,I.map(Ju).join(" ")),h(l("files.sentToTerminal"))},onSendToNewTerminal:()=>{if(!a)return;const E=M?[v.path,...N]:[v.path];a.sendToNewTerminal(E.map(Ju).join(" "),v.entry.name).catch(()=>{}),h(l("files.sentToTerminal"))},onCreateTask:r?async()=>{try{await r(v.path,M?N:[]),h(l("files.taskCreated"))}catch{c(l("files.taskCreateFailed"))}}:void 0})]})}function GP({files:i,activeFile:e,onSelectFile:t}){const{t:n}=Xe(),[r,s]=Q.useState(""),o=Q.useMemo(()=>{const l=r.trim().toLowerCase();if(!l)return[];const a=[];for(const h of i){const c=h.stem.toLowerCase(),f=h.title.toLowerCase(),u=h.bodyPreview.toLowerCase(),d=h.tags.map(k=>k.toLowerCase()),O=c.includes(l),m=f.includes(l),g=d.some(k=>k.includes(l)),S=u.indexOf(l),b=S>=0;if(!O&&!m&&!g&&!b)continue;let y="";if(b){const k=Math.max(0,S-30),w=Math.min(h.bodyPreview.length,S+l.length+50);y=(k>0?"…":"")+h.bodyPreview.slice(k,w)+(w<h.bodyPreview.length?"…":"")}else y=h.bodyPreview.slice(0,80);const T=(m?4:0)+(O?3:0)+(g?2:0)+(b?1:0);a.push({file:h,snippet:y,score:T})}return a.sort((h,c)=>c.score-h.score)},[i,r]);return p.jsxs("div",{className:"flex flex-col h-full min-h-0",children:[p.jsx("div",{className:"p-2 border-b border-warm-200 shrink-0",children:p.jsxs("div",{className:"relative",children:[p.jsx(th,{className:"absolute left-2 top-1/2 -translate-y-1/2 text-warm-400 w-3 h-3"}),p.jsx("input",{value:r,onChange:l=>s(l.target.value),placeholder:n("vault.search.prompt"),className:"w-full pl-7 pr-2 py-1 rounded-md border border-warm-200 bg-warm-0 text-xs focus:outline-none focus:ring-1 focus:ring-warm-400",autoFocus:!0})]})}),p.jsxs("div",{className:"flex-1 min-h-0 overflow-auto p-1",children:[!r.trim()&&p.jsx("div",{className:"text-xs text-warm-400 px-2 py-4 text-center",children:n("vault.search.prompt")}),r.trim()&&o.length===0&&p.jsx("div",{className:"text-xs text-warm-400 px-2 py-4 text-center",children:n("vault.search.empty")}),o.map(({file:l,snippet:a})=>p.jsxs("button",{onClick:()=>t(l.relativePath),className:`w-full text-left px-2 py-1.5 rounded-md hover:bg-warm-100 ${e===l.relativePath?"bg-warm-200":""}`,children:[p.jsxs("div",{className:"flex items-center gap-1.5 text-xs",children:[p.jsx(Sn,{className:"w-3 h-3 text-sky-500 shrink-0"}),p.jsx("span",{className:"font-medium text-warm-800 truncate",children:l.stem})]}),p.jsx("div",{className:"text-[10px] text-warm-500 truncate pl-[18px] mt-0.5",children:l.relativePath}),a&&p.jsx("div",{className:"text-[10px] text-warm-600 line-clamp-2 pl-[18px] mt-0.5 leading-snug",children:a})]},l.relativePath))]})]})}function UP({files:i,activeFile:e,onSelectFile:t}){const{t:n}=Xe(),[r,s]=Q.useState(new Set),o=Q.useMemo(()=>{const a=new Map;for(const h of i)for(const c of h.tags){const f=c.toLowerCase(),u=a.get(f);u?u.push(h):a.set(f,[h])}return[...a.entries()].map(([h,c])=>({tag:h,files:c.slice().sort((f,u)=>f.stem.localeCompare(u.stem))})).sort((h,c)=>c.files.length-h.files.length||h.tag.localeCompare(c.tag))},[i]),l=a=>{s(h=>{const c=new Set(h);return c.has(a)?c.delete(a):c.add(a),c})};return o.length===0?p.jsx("div",{className:"text-xs text-warm-400 px-3 py-4 text-center",children:n("vault.tags.empty")}):p.jsx("div",{className:"flex flex-col py-1",children:o.map(({tag:a,files:h})=>{const c=r.has(a);return p.jsxs("div",{children:[p.jsxs("button",{onClick:()=>l(a),className:"w-full flex items-center gap-1.5 px-2 py-1 text-xs hover:bg-warm-100 text-warm-700",children:[c?p.jsx(vs,{className:"w-3 h-3 shrink-0 text-warm-400"}):p.jsx(Hn,{className:"w-3 h-3 shrink-0 text-warm-400"}),p.jsx(Md,{className:"w-3 h-3 text-emerald-500 shrink-0"}),p.jsx("span",{className:"truncate font-medium",children:a}),p.jsx("span",{className:"text-[10px] text-warm-400 ml-auto",children:h.length})]}),c&&h.map(f=>p.jsxs("button",{onClick:()=>t(f.relativePath),className:`w-full flex items-center gap-1.5 px-2 py-1 text-xs hover:bg-warm-100 ${e===f.relativePath?"bg-warm-200 text-warm-800 font-medium":"text-warm-700"}`,style:{paddingLeft:32},title:f.relativePath,children:[p.jsx(Sn,{className:"w-3 h-3 text-sky-500 shrink-0"}),p.jsx("span",{className:"truncate",children:f.stem})]},f.relativePath))]},a)})})}const ed=8,FP=22,HP={stroke:"#6B7280",strokeWidth:1,strokeDasharray:"4 3",opacity:.6},td="## 관련 문서";function KP(i,e){const t=`[[${e}]]`;if(i.includes(t))return null;const n=`- ${t}`,r=i.split(`
|
|
135
|
+
`,{label:"if",detail:"block",type:"keyword"}),Qe("if ${}:\n ${}\nelse:\n ${}",{label:"if",detail:"/ else block",type:"keyword"}),Qe("class ${name}:\n def __init__(self, ${params}):\n ${}",{label:"class",detail:"definition",type:"keyword"}),Qe("import ${module}",{label:"import",detail:"statement",type:"keyword"}),Qe("from ${module} import ${names}",{label:"from",detail:"import",type:"keyword"})],zP=Zp(ag,Mh(MP.concat(EP)));function vl(i){let{node:e,pos:t}=i,n=i.lineIndent(t,-1),r=null;for(;;){let s=e.childBefore(t);if(s)if(s.name=="Comment")t=s.from;else if(s.name=="Body"||s.name=="MatchBody")i.baseIndentFor(s)+i.unit<=n&&(r=s),e=s;else if(s.name=="MatchClause")e=s;else if(s.type.is("Statement"))e=s;else break;else break}return r}function $l(i,e){let t=i.baseIndentFor(e),n=i.lineAt(i.pos,-1),r=n.from+n.text.length;return/^\s*($|#)/.test(n.text)&&i.node.to<r+100&&!/\S/.test(i.state.sliceDoc(r,i.node.to))&&i.lineIndent(i.pos,-1)<=t||/^\s*(else:|elif |except |finally:|case\s+[^=:]+:)/.test(i.textAfter)&&i.lineIndent(i.pos,-1)>t?null:t+i.unit}const Pl=Oi.define({name:"python",parser:ZP.configure({props:[Vi.add({Body:i=>{var e;let t=/^\s*(#|$)/.test(i.textAfter)&&vl(i)||i.node;return(e=$l(i,t))!==null&&e!==void 0?e:i.continue()},MatchBody:i=>{var e;let t=vl(i);return(e=$l(i,t||i.node))!==null&&e!==void 0?e:i.continue()},IfStatement:i=>/^\s*(else:|elif )/.test(i.textAfter)?i.baseIndent:i.continue(),"ForStatement WhileStatement":i=>/^\s*else:/.test(i.textAfter)?i.baseIndent:i.continue(),TryStatement:i=>/^\s*(except[ :]|finally:|else:)/.test(i.textAfter)?i.baseIndent:i.continue(),MatchStatement:i=>/^\s*case /.test(i.textAfter)?i.baseIndent+i.unit:i.continue(),"TupleExpression ComprehensionExpression ParamList ArgList ParenthesizedExpression":ps({closing:")"}),"DictionaryExpression DictionaryComprehensionExpression SetExpression SetComprehensionExpression":ps({closing:"}"}),"ArrayExpression ArrayComprehensionExpression":ps({closing:"]"}),MemberExpression:i=>i.baseIndent+i.unit,"String FormatString":()=>null,Script:i=>{var e;let t=vl(i);return(e=t&&$l(i,t))!==null&&e!==void 0?e:i.continue()}}),Si.add({"ArrayExpression DictionaryExpression SetExpression TupleExpression":So,Body:(i,e)=>({from:i.from+1,to:i.to-(i.to==e.doc.length?0:1)}),"String FormatString":(i,e)=>({from:e.doc.lineAt(i.from).to,to:i.to})})]}),languageData:{closeBrackets:{brackets:["(","[","{","'",'"',"'''",'"""'],stringPrefixes:["f","fr","rf","r","u","b","br","rb","F","FR","RF","R","U","B","BR","RB"]},commentTokens:{line:"#"},indentOnInput:/^\s*([\}\]\)]|else:|elif |except |finally:|case\s+[^:]*:?)$/}});function qP(){return new zi(Pl,[Pl.data.of({autocomplete:jP}),Pl.data.of({autocomplete:zP})])}const _P=new Set([".txt",".md",".markdown",".json",".yaml",".yml",".toml",".ini",".cfg",".conf",".js",".jsx",".ts",".tsx",".mjs",".cjs",".html",".htm",".css",".scss",".sass",".less",".py",".rb",".go",".rs",".java",".kt",".swift",".c",".h",".cpp",".hpp",".cs",".php",".sh",".bash",".zsh",".fish",".ps1",".bat",".cmd",".sql",".xml",".svg",".csv",".tsv",".env",".lock",".gitignore",".dockerignore",".editorconfig",".prettierrc",".eslintrc"]),hg=new Set([".png",".jpg",".jpeg",".gif",".webp",".svg",".ico",".bmp"]),cg=new Set([".mp4",".webm",".mov"]),fg=new Set([".mp3",".wav",".ogg",".flac"]),WP=new Set([".pdf"]),io=new Set([".md",".markdown"]),ug=new Set([".html",".htm"]);function LP(i){return io.has(i)?[O$()]:ug.has(i)?[Bm()]:i===".js"||i===".jsx"||i===".mjs"||i===".cjs"?[qa()]:i===".ts"||i===".tsx"?[qa({typescript:!0,jsx:i===".tsx"})]:i===".json"?[y$()]:i===".css"||i===".scss"||i===".sass"||i===".less"?[$m()]:i===".py"?[qP()]:[]}function rc(i){const e=i.lastIndexOf(".");return e<0?"":i.slice(e).toLowerCase()}function La(i,e){const t=decodeURIComponent(e.split("#")[0].split("?")[0]);if(!t)return"";const n=t.startsWith("/")?"":i&&i.includes("/")?i.slice(0,i.lastIndexOf("/")):"",r=(n?`${n}/${t}`:t).replace(/\\/g,"/").split("/"),s=[];for(const o of r)if(!(o==="."||o==="")){if(o===".."){s.pop();continue}s.push(o)}return s.join("/")}function VP(i){return i==null?"":i<1024?`${i} B`:i<1024*1024?`${(i/1024).toFixed(1)} KB`:i<1024*1024*1024?`${(i/1024/1024).toFixed(1)} MB`:`${(i/1024/1024/1024).toFixed(2)} GB`}function sc(i,e){if(i.type==="directory")return e?p.jsx(ks,{className:"w-4 h-4 text-amber-500 shrink-0"}):p.jsx(W0,{className:"w-4 h-4 text-amber-500 shrink-0"});const t=rc(i.name);return hg.has(t)?p.jsx(gx,{className:"w-4 h-4 text-purple-500 shrink-0"}):cg.has(t)?p.jsx(Sx,{className:"w-4 h-4 text-pink-500 shrink-0"}):fg.has(t)?p.jsx(px,{className:"w-4 h-4 text-pink-400 shrink-0"}):_P.has(t)?p.jsx(C0,{className:"w-4 h-4 text-sky-500 shrink-0"}):p.jsx(Sn,{className:"w-4 h-4 text-warm-400 shrink-0"})}function NP(i){return{name:i.split("/").pop()||i,type:"file",size:null,mtime:null,hidden:!1}}const Ju=i=>/\s/.test(i)?`"${i}"`:i,Va="application/x-vault-path";function DP({entry:i,depth:e,state:t,fullPath:n,selectedPath:r,onToggle:s,onSelect:o,onContextMenu:l,onMove:a,dropTargetPath:h,setDropTargetPath:c}){const f=i.type==="directory",u=(t==null?void 0:t.expanded)??!1,d=r===n,O=f&&h===n,m=f?{onDragOver:g=>{g.preventDefault(),g.dataTransfer.dropEffect="move",c(n)},onDragLeave:()=>c(g=>g===n?null:g),onDrop:g=>{g.preventDefault(),g.stopPropagation();const S=g.dataTransfer.getData(Va)||g.dataTransfer.getData("text/plain");c(null),S&&a(S,n)}}:{};return p.jsxs("button",{type:"button",draggable:!0,onDragStart:g=>{g.dataTransfer.setData(Va,n),g.dataTransfer.setData("text/plain",n),g.dataTransfer.effectAllowed="move"},onDragEnd:()=>c(null),...m,onClick:()=>{f?s(n,i):o(n,i)},onDoubleClick:()=>{f&&o(n,i)},onContextMenu:g=>l(g,n,i),className:`w-full flex items-center gap-1.5 py-0.5 px-1 text-xs text-left rounded-md transition-colors ${O?"bg-accent/25 ring-1 ring-accent":d?"bg-accent/15 text-warm-800":"hover:bg-warm-100 text-warm-700"}`,style:{paddingLeft:4+e*12},title:i.name,children:[f?u?p.jsx(vs,{className:"w-3 h-3 shrink-0 text-warm-400"}):p.jsx(Hn,{className:"w-3 h-3 shrink-0 text-warm-400"}):p.jsx("span",{className:"w-3 h-3 shrink-0"}),sc(i,u),p.jsx("span",{className:`truncate ${i.hidden?"opacity-60 italic":""}`,children:i.name})]})}function dg({projectId:i,parentPath:e,entries:t,depth:n,nodeStates:r,setNodeStates:s,showHidden:o,selectedPath:l,onSelect:a,onContextMenu:h,onMove:c,dropTargetPath:f,setDropTargetPath:u}){const d=Q.useCallback(async(O,m)=>{const g=r.get(O);if(g!=null&&g.expanded){s(S=>{const b=new Map(S);return b.set(O,{...g,expanded:!1}),b});return}if(g!=null&&g.children){s(S=>{const b=new Map(S);return b.set(O,{...g,expanded:!0}),b});return}s(S=>{const b=new Map(S);return b.set(O,{expanded:!0,loading:!0}),b});try{const S=await Ll(i,O,o);s(b=>{const y=new Map(b);return y.set(O,{expanded:!0,loading:!1,children:S.entries}),y})}catch(S){const b=S instanceof Error?S.message:"failed";s(y=>{const T=new Map(y);return T.set(O,{expanded:!0,loading:!1,error:b}),T})}},[r,i,s,o]);return p.jsx(p.Fragment,{children:t.map(O=>{const m=e?`${e}/${O.name}`:O.name,g=r.get(m);return p.jsxs("div",{children:[p.jsx(DP,{entry:O,depth:n,state:g,fullPath:m,selectedPath:l,onToggle:d,onSelect:a,onContextMenu:h,onMove:c,dropTargetPath:f,setDropTargetPath:u}),O.type==="directory"&&(g==null?void 0:g.expanded)&&p.jsxs(p.Fragment,{children:[g.loading&&p.jsxs("div",{className:"flex items-center gap-1 text-xs text-warm-400 py-0.5",style:{paddingLeft:8+(n+1)*12},children:[p.jsx(an,{className:"w-3 h-3 animate-spin"}),p.jsx("span",{children:"loading…"})]}),g.error&&p.jsxs("div",{className:"flex items-center gap-1 text-xs text-status-error py-0.5",style:{paddingLeft:8+(n+1)*12},children:[p.jsx(ho,{className:"w-3 h-3"})," ",g.error]}),g.children&&p.jsx(dg,{projectId:i,parentPath:m,entries:g.children,depth:n+1,nodeStates:r,setNodeStates:s,showHidden:o,selectedPath:l,onSelect:a,onContextMenu:h,onMove:c,dropTargetPath:f,setDropTargetPath:u})]})]},m)})})}function YP({items:i,selectedPath:e,onSelect:t,onContextMenu:n}){const{t:r}=Xe();return i.length===0?null:p.jsxs("div",{className:"border-b border-warm-200 py-1",children:[p.jsx("div",{className:"px-2 py-0.5 text-[10px] uppercase tracking-wider text-warm-400 font-medium",children:r("files.pinned")}),i.map(s=>{const o={name:s.name,type:s.type,size:null,mtime:null,hidden:!1},l=e===s.path;return p.jsxs("button",{type:"button",onClick:()=>t(s.path,o),onContextMenu:a=>n(a,s.path,o),className:`w-full flex items-center gap-1.5 py-0.5 px-1 text-xs text-left rounded-md transition-colors ${l?"bg-accent/15 text-warm-800":"hover:bg-warm-100 text-warm-700"}`,style:{paddingLeft:4},title:s.path,children:[p.jsx(jd,{className:"w-3 h-3 shrink-0 text-status-warning"}),sc(o,!1),p.jsx("span",{className:"truncate",children:s.name})]},s.path)})]})}function BP({state:i,projectId:e,isPinned:t,onTogglePin:n,onHide:r,onUnhide:s,onClose:o,terminals:l,onSendToTerminal:a,onSendToNewTerminal:h,onCreateTask:c,linkedCount:f,includeLinks:u,onToggleIncludeLinks:d}){const{t:O}=Xe(),m=Q.useRef(null),[g,S]=Q.useState({top:i.y,left:i.x,visible:!1});Q.useLayoutEffect(()=>{const k=m.current;if(!k)return;const w=window.innerWidth,P=window.innerHeight,Z=k.offsetWidth,v=k.offsetHeight;let A=i.x,M=i.y;A+Z>w-8&&(A=Math.max(8,w-8-Z)),M+v>P-8&&(M=Math.max(8,P-8-v)),A<8&&(A=8),M<8&&(M=8),S({top:M,left:A,visible:!0})},[i.x,i.y]),Q.useEffect(()=>{const k=Z=>{var v;(v=m.current)!=null&&v.contains(Z.target)||o()},w=Z=>{Z.key==="Escape"&&o()},P=()=>o();return document.addEventListener("mousedown",k),document.addEventListener("keydown",w),window.addEventListener("scroll",P,!0),window.addEventListener("resize",o),()=>{document.removeEventListener("mousedown",k),document.removeEventListener("keydown",w),window.removeEventListener("scroll",P,!0),window.removeEventListener("resize",o)}},[o]);const b=i.entry.type==="directory",y=k=>{Vl(e,i.path,k).catch(()=>{}),o()},T=()=>{navigator.clipboard.writeText(i.path).catch(()=>{}),o()};return eh.createPortal(p.jsxs("div",{ref:m,className:"fixed z-tooltip min-w-[180px] rounded-lg py-1 shadow-elevated text-xs",style:{top:g.top,left:g.left,opacity:g.visible?1:0,backgroundColor:"var(--color-bg-card)",border:"1px solid var(--color-border)"},children:[b?p.jsxs("button",{type:"button",onClick:()=>y("open"),className:"w-full text-left px-3 py-1.5 hover:bg-warm-100 text-warm-700 flex items-center gap-2",children:[p.jsx(ks,{className:"w-3.5 h-3.5"}),p.jsx("span",{children:O("files.openFolder")})]}):p.jsxs(p.Fragment,{children:[p.jsxs("button",{type:"button",onClick:()=>y("open"),className:"w-full text-left px-3 py-1.5 hover:bg-warm-100 text-warm-700 flex items-center gap-2",children:[p.jsx(zl,{className:"w-3.5 h-3.5"}),p.jsx("span",{children:O("files.openInOS")})]}),p.jsxs("button",{type:"button",onClick:()=>y("reveal"),className:"w-full text-left px-3 py-1.5 hover:bg-warm-100 text-warm-700 flex items-center gap-2",children:[p.jsx(ks,{className:"w-3.5 h-3.5"}),p.jsx("span",{children:O("files.revealInExplorer")})]})]}),p.jsx("div",{className:"my-1 border-t border-warm-200"}),p.jsxs("button",{type:"button",onClick:()=>{n(),o()},className:"w-full text-left px-3 py-1.5 hover:bg-warm-100 text-warm-700 flex items-center gap-2",children:[t?p.jsx(Rx,{className:"w-3.5 h-3.5"}):p.jsx(jd,{className:"w-3.5 h-3.5"}),p.jsx("span",{children:O(t?"files.unpin":"files.pin")})]}),p.jsxs("button",{type:"button",onClick:T,className:"w-full text-left px-3 py-1.5 hover:bg-warm-100 text-warm-700 flex items-center gap-2",children:[p.jsx(Xd,{className:"w-3.5 h-3.5"}),p.jsx("span",{children:O("files.copyPath")})]}),!b&&p.jsxs(p.Fragment,{children:[p.jsx("div",{className:"my-1 border-t border-warm-200"}),p.jsxs("div",{className:"px-3 py-1 text-warm-500 flex items-center gap-2",children:[p.jsx(Z0,{className:"w-3.5 h-3.5"}),p.jsx("span",{children:O("files.sendToTerminal")})]}),f>0&&p.jsxs("button",{type:"button",onClick:k=>{k.stopPropagation(),d()},className:"w-full text-left px-3 py-1 text-warm-600 flex items-center gap-2",children:[u?p.jsx(Wx,{size:14}):p.jsx(A0,{size:14}),p.jsxs("span",{children:[O("files.includeLinks")," (",f,")"]})]}),p.jsx("div",{className:"max-h-40 overflow-y-auto",children:l.map(k=>p.jsx("button",{type:"button",onClick:()=>{a(k.sessionId),o()},className:"w-full text-left pl-8 pr-3 py-1.5 hover:bg-warm-100 text-warm-700 flex items-center gap-2",children:p.jsx("span",{className:"truncate",children:k.label})},k.sessionId))}),p.jsx("button",{type:"button",onClick:()=>{h(),o()},className:"w-full text-left pl-8 pr-3 py-1.5 hover:bg-warm-100 text-warm-700 flex items-center gap-2",children:p.jsxs("span",{children:["+ ",O("files.newTerminal")]})}),c&&p.jsxs("button",{type:"button",onClick:()=>{c(),o()},className:"w-full text-left px-3 py-1.5 hover:bg-warm-100 text-warm-700 flex items-center gap-2",children:[p.jsx(vx,{className:"w-3.5 h-3.5"}),p.jsx("span",{children:O("files.sendToTask")})]})]}),i.entry.ignored?p.jsxs("button",{type:"button",onClick:()=>{s(),o()},className:"w-full text-left px-3 py-1.5 hover:bg-warm-100 text-warm-700 flex items-center gap-2",children:[p.jsx(rh,{className:"w-3.5 h-3.5"}),p.jsx("span",{children:O("files.unhide")})]}):p.jsxs("button",{type:"button",onClick:()=>{r(),o()},className:"w-full text-left px-3 py-1.5 hover:bg-warm-100 text-warm-700 flex items-center gap-2",children:[p.jsx(sh,{className:"w-3.5 h-3.5"}),p.jsx("span",{children:O("files.hide")})]})]}),document.body)}function IP({projectId:i,activeFile:e,onSelectFile:t,onVaultIgnoreChanged:n,onCreateTask:r,edges:s,refreshToken:o}){const{t:l}=Xe(),a=X0(),{success:h,error:c}=Cd(),f=`vault:fileExplorer:${i}`,[u,d]=Q.useState(null),[O,m]=Q.useState(null),[g,S]=Q.useState(!1),[b,y]=Q.useState(new Map),T=Q.useRef(!1),[k,w]=Q.useState(()=>{try{return localStorage.getItem(`${f}:showHidden`)==="1"}catch{}return!1}),[P,Z]=Q.useState(()=>{try{const E=localStorage.getItem(`${f}:pinned`);if(!E)return[];const I=JSON.parse(E);return Array.isArray(I)?I.filter(G=>G&&typeof G.path=="string"&&typeof G.name=="string"&&(G.type==="file"||G.type==="directory"||G.type==="symlink"||G.type==="other")):[]}catch{return[]}}),[v,A]=Q.useState(null),[M,z]=Q.useState(!1),N=Q.useMemo(()=>v?Jx(s,v.path):[],[v,s]),[U,K]=Q.useState(null);Q.useEffect(()=>{try{localStorage.setItem(`${f}:pinned`,JSON.stringify(P))}catch{}},[P,f]);const te=Q.useMemo(()=>new Set(P.map(E=>E.path)),[P]),oe=Q.useCallback((E,I)=>{Z(G=>G.some(se=>se.path===E)?G.filter(se=>se.path!==E):[...G,{path:E,type:I.type,name:I.name}])},[]);Q.useEffect(()=>{try{localStorage.setItem(`${f}:showHidden`,k?"1":"0")}catch{}},[k,f]),Q.useEffect(()=>{if(T.current)try{const E=[...b.entries()].filter(([,I])=>I.expanded).map(([I])=>I);localStorage.setItem(`${f}:expanded`,JSON.stringify(E))}catch{}},[b,f]);const R=Q.useCallback(async()=>{S(!0),m(null);try{const E=await Ll(i,"",k);d(E.entries);let I=[];try{const G=localStorage.getItem(`${f}:expanded`);G&&(I=JSON.parse(G))}catch{}if(I.length===0)y(new Map);else{const G=new Map;for(const nt of I){const Le=nt.split("/").filter(Boolean).length,Re=G.get(Le);Re?Re.push(nt):G.set(Le,[nt])}const se=new Map;for(const nt of[...G.keys()].sort((Le,Re)=>Le-Re)){const Le=await Promise.all(G.get(nt).map(async Re=>{try{const rt=await Ll(i,Re,k);return{path:Re,entries:rt.entries}}catch{return null}}));for(const Re of Le)Re&&se.set(Re.path,{expanded:!0,loading:!1,children:Re.entries})}y(se)}T.current=!0}catch(E){m(E instanceof Error?E.message:"failed"),d(null),y(new Map)}finally{S(!1)}},[i,k,f]);Q.useEffect(()=>{R()},[R]),Q.useEffect(()=>{(o??0)>0&&R()},[o]);const _=Q.useCallback((E,I)=>{I.type==="file"&&t(E)},[t]),D=Q.useCallback((E,I,G)=>{E.preventDefault(),A({x:E.clientX,y:E.clientY,path:I,entry:G})},[]),ie=Q.useCallback(async(E,I)=>{try{await Y0(i,E,I.type==="directory"),await R(),n==null||n()}catch{}},[i,R,n]),fe=Q.useCallback(async(E,I)=>{try{await B0(i,E,I.type==="directory"),await R(),n==null||n()}catch{}},[i,R,n]),me=Q.useCallback(async(E,I)=>{const G=E.split("/").filter(Boolean).pop()??E,se=I?`${I}/${G}`:G,nt=E.includes("/")?E.slice(0,E.lastIndexOf("/")):"";if(!(E===se||nt===I)&&!(I===E||I.startsWith(E+"/")))try{await Kx(i,E,se),await R(),n==null||n()}catch(Le){console.warn("[vault] move failed:",Le)}},[i,R,n]),ge=Q.useMemo(()=>(u==null?void 0:u.length)??0,[u]);return p.jsxs("div",{className:"flex flex-col h-full min-h-0",children:[p.jsxs("div",{className:`flex items-center gap-1 px-2 py-1.5 border-b border-warm-200 text-xs transition-colors ${U===""?"bg-accent/20 ring-1 ring-accent ring-inset":""}`,onDragOver:E=>{E.preventDefault(),E.dataTransfer.dropEffect="move",K("")},onDragLeave:()=>K(E=>E===""?null:E),onDrop:E=>{E.preventDefault();const I=E.dataTransfer.getData(Va)||E.dataTransfer.getData("text/plain");K(null),I&&me(I,"")},children:[p.jsx("span",{className:"font-medium text-warm-700 truncate flex-1",children:l("files.root")}),p.jsx("span",{className:"text-warm-400 shrink-0",children:ge}),p.jsx("button",{onClick:()=>w(E=>!E),className:"p-1 rounded-md hover:bg-warm-100 text-warm-500 hover:text-warm-700",title:l(k?"files.hideHidden":"files.showHidden"),children:k?p.jsx(rh,{className:"w-3.5 h-3.5"}):p.jsx(sh,{className:"w-3.5 h-3.5"})}),p.jsx("button",{onClick:R,className:"p-1 rounded-md hover:bg-warm-100 text-warm-500 hover:text-warm-700",title:l("files.refresh"),disabled:g,children:p.jsx(R0,{className:`w-3.5 h-3.5 ${g?"animate-spin":""}`})})]}),p.jsxs("div",{className:"flex-1 min-h-0 overflow-auto py-1",children:[p.jsx(YP,{items:P,selectedPath:e,onSelect:_,onContextMenu:D}),g&&!u&&p.jsxs("div",{className:"flex items-center gap-1 text-xs text-warm-400 px-2 py-1",children:[p.jsx(an,{className:"w-3 h-3 animate-spin"})," ",l("files.loading")]}),O&&p.jsxs("div",{className:"flex items-center gap-1 text-xs text-status-error px-2 py-1",children:[p.jsx(ho,{className:"w-3 h-3"})," ",O]}),u&&u.length===0&&!g&&p.jsx("div",{className:"text-xs text-warm-400 px-2 py-2",children:l("files.empty")}),u&&u.length>0&&p.jsx(dg,{projectId:i,parentPath:"",entries:u,depth:0,nodeStates:b,setNodeStates:y,showHidden:k,selectedPath:e,onSelect:_,onContextMenu:D,onMove:me,dropTargetPath:U,setDropTargetPath:K})]}),v&&p.jsx(BP,{state:v,projectId:i,isPinned:te.has(v.path),onTogglePin:()=>oe(v.path,v.entry),onHide:()=>ie(v.path,v.entry),onUnhide:()=>fe(v.path,v.entry),onClose:()=>A(null),linkedCount:N.length,includeLinks:M,onToggleIncludeLinks:()=>z(E=>!E),terminals:(a==null?void 0:a.listOpenTerminals())??[],onSendToTerminal:E=>{if(!a)return;const I=M?[v.path,...N]:[v.path];a.sendToSession(E,I.map(Ju).join(" ")),h(l("files.sentToTerminal"))},onSendToNewTerminal:()=>{if(!a)return;const E=M?[v.path,...N]:[v.path];a.sendToNewTerminal(E.map(Ju).join(" "),v.entry.name).catch(()=>{}),h(l("files.sentToTerminal"))},onCreateTask:r?async()=>{try{await r(v.path,M?N:[]),h(l("files.taskCreated"))}catch{c(l("files.taskCreateFailed"))}}:void 0})]})}function GP({files:i,activeFile:e,onSelectFile:t}){const{t:n}=Xe(),[r,s]=Q.useState(""),o=Q.useMemo(()=>{const l=r.trim().toLowerCase();if(!l)return[];const a=[];for(const h of i){const c=h.stem.toLowerCase(),f=h.title.toLowerCase(),u=h.bodyPreview.toLowerCase(),d=h.tags.map(k=>k.toLowerCase()),O=c.includes(l),m=f.includes(l),g=d.some(k=>k.includes(l)),S=u.indexOf(l),b=S>=0;if(!O&&!m&&!g&&!b)continue;let y="";if(b){const k=Math.max(0,S-30),w=Math.min(h.bodyPreview.length,S+l.length+50);y=(k>0?"…":"")+h.bodyPreview.slice(k,w)+(w<h.bodyPreview.length?"…":"")}else y=h.bodyPreview.slice(0,80);const T=(m?4:0)+(O?3:0)+(g?2:0)+(b?1:0);a.push({file:h,snippet:y,score:T})}return a.sort((h,c)=>c.score-h.score)},[i,r]);return p.jsxs("div",{className:"flex flex-col h-full min-h-0",children:[p.jsx("div",{className:"p-2 border-b border-warm-200 shrink-0",children:p.jsxs("div",{className:"relative",children:[p.jsx(th,{className:"absolute left-2 top-1/2 -translate-y-1/2 text-warm-400 w-3 h-3"}),p.jsx("input",{value:r,onChange:l=>s(l.target.value),placeholder:n("vault.search.prompt"),className:"w-full pl-7 pr-2 py-1 rounded-md border border-warm-200 bg-warm-0 text-xs focus:outline-none focus:ring-1 focus:ring-warm-400",autoFocus:!0})]})}),p.jsxs("div",{className:"flex-1 min-h-0 overflow-auto p-1",children:[!r.trim()&&p.jsx("div",{className:"text-xs text-warm-400 px-2 py-4 text-center",children:n("vault.search.prompt")}),r.trim()&&o.length===0&&p.jsx("div",{className:"text-xs text-warm-400 px-2 py-4 text-center",children:n("vault.search.empty")}),o.map(({file:l,snippet:a})=>p.jsxs("button",{onClick:()=>t(l.relativePath),className:`w-full text-left px-2 py-1.5 rounded-md hover:bg-warm-100 ${e===l.relativePath?"bg-warm-200":""}`,children:[p.jsxs("div",{className:"flex items-center gap-1.5 text-xs",children:[p.jsx(Sn,{className:"w-3 h-3 text-sky-500 shrink-0"}),p.jsx("span",{className:"font-medium text-warm-800 truncate",children:l.stem})]}),p.jsx("div",{className:"text-[10px] text-warm-500 truncate pl-[18px] mt-0.5",children:l.relativePath}),a&&p.jsx("div",{className:"text-[10px] text-warm-600 line-clamp-2 pl-[18px] mt-0.5 leading-snug",children:a})]},l.relativePath))]})]})}function UP({files:i,activeFile:e,onSelectFile:t}){const{t:n}=Xe(),[r,s]=Q.useState(new Set),o=Q.useMemo(()=>{const a=new Map;for(const h of i)for(const c of h.tags){const f=c.toLowerCase(),u=a.get(f);u?u.push(h):a.set(f,[h])}return[...a.entries()].map(([h,c])=>({tag:h,files:c.slice().sort((f,u)=>f.stem.localeCompare(u.stem))})).sort((h,c)=>c.files.length-h.files.length||h.tag.localeCompare(c.tag))},[i]),l=a=>{s(h=>{const c=new Set(h);return c.has(a)?c.delete(a):c.add(a),c})};return o.length===0?p.jsx("div",{className:"text-xs text-warm-400 px-3 py-4 text-center",children:n("vault.tags.empty")}):p.jsx("div",{className:"flex flex-col py-1",children:o.map(({tag:a,files:h})=>{const c=r.has(a);return p.jsxs("div",{children:[p.jsxs("button",{onClick:()=>l(a),className:"w-full flex items-center gap-1.5 px-2 py-1 text-xs hover:bg-warm-100 text-warm-700",children:[c?p.jsx(vs,{className:"w-3 h-3 shrink-0 text-warm-400"}):p.jsx(Hn,{className:"w-3 h-3 shrink-0 text-warm-400"}),p.jsx(Md,{className:"w-3 h-3 text-emerald-500 shrink-0"}),p.jsx("span",{className:"truncate font-medium",children:a}),p.jsx("span",{className:"text-[10px] text-warm-400 ml-auto",children:h.length})]}),c&&h.map(f=>p.jsxs("button",{onClick:()=>t(f.relativePath),className:`w-full flex items-center gap-1.5 px-2 py-1 text-xs hover:bg-warm-100 ${e===f.relativePath?"bg-warm-200 text-warm-800 font-medium":"text-warm-700"}`,style:{paddingLeft:32},title:f.relativePath,children:[p.jsx(Sn,{className:"w-3 h-3 text-sky-500 shrink-0"}),p.jsx("span",{className:"truncate",children:f.stem})]},f.relativePath))]},a)})})}const ed=8,FP=22,HP={stroke:"#6B7280",strokeWidth:1,strokeDasharray:"4 3",opacity:.6},td="## 관련 문서";function KP(i,e){const t=`[[${e}]]`;if(i.includes(t))return null;const n=`- ${t}`,r=i.split(`
|
|
136
136
|
`),s=r.findIndex(a=>a.trim()===td);if(s===-1)return`${i.replace(/\s+$/,"")}
|
|
137
137
|
|
|
138
138
|
${td}
|