p.fromP));if(!d){if(cp.from<=c&&p.to>=c)){let p=t.moveToLineBoundary(X.cursor(c),!1,!0).head;p>l&&(c=p)}d=new Go(l,c,this.gapSize(h,l,c,Q))}o.push(d)};for(let l of this.viewportLines){if(l.lengthl.from&&a(l.from,Q,l,c),ut.draw(this.heightOracle.lineWrapping))))}computeVisibleRanges(){let e=this.stateDeco;this.lineGaps.length&&(e=e.concat(this.lineGapDeco));let t=[];ce.spans(e,this.viewport.from,this.viewport.to,{span(r,n){t.push({from:r,to:n})},point(){}},20);let i=t.length!=this.visibleRanges.length||this.visibleRanges.some((r,n)=>r.from!=t[n].from||r.to!=t[n].to);return this.visibleRanges=t,i?4:0}lineBlockAt(e){return e>=this.viewport.from&&e<=this.viewport.to&&this.viewportLines.find(t=>t.from<=e&&t.to>=e)||$r(this.heightMap.lineAt(e,ge.ByPos,this.heightOracle,0,0),this.scaler)}lineBlockAtHeight(e){return $r(this.heightMap.lineAt(this.scaler.fromDOM(e),ge.ByHeight,this.heightOracle,0,0),this.scaler)}elementAtHeight(e){return $r(this.heightMap.blockAt(this.scaler.fromDOM(e),this.heightOracle,0,0),this.scaler)}get docHeight(){return this.scaler.toDOM(this.heightMap.height)}get contentHeight(){return this.docHeight+this.paddingTop+this.paddingBottom}}class wn{constructor(e,t){this.from=e,this.to=t}}function h1(O,e,t){let i=[],r=O,n=0;return ce.spans(t,O,e,{span(){},point(s,o){s>r&&(i.push({from:r,to:s}),n+=s-r),r=o}},20),r=1)return e[e.length-1].to;let i=Math.floor(O*t);for(let r=0;;r++){let{from:n,to:s}=e[r],o=s-n;if(i<=o)return n+i;i-=o}}function Tn(O,e){let t=0;for(let{from:i,to:r}of O.ranges){if(e<=r){t+=e-i;break}t+=r-i}return t/O.total}function f1(O,e){for(let t of O)if(e(t))return t}const wf={toDOM(O){return O},fromDOM(O){return O},scale:1};class Q1{constructor(e,t,i){let r=0,n=0,s=0;this.viewports=i.map(({from:o,to:a})=>{let l=t.lineAt(o,ge.ByPos,e,0,0).top,c=t.lineAt(a,ge.ByPos,e,0,0).bottom;return r+=c-l,{from:o,to:a,top:l,bottom:c,domTop:0,domBottom:0}}),this.scale=(7e6-r)/(t.height-r);for(let o of this.viewports)o.domTop=s+(o.top-n)*this.scale,s=o.domBottom=o.domTop+(o.bottom-o.top),n=o.bottom}toDOM(e){for(let t=0,i=0,r=0;;t++){let n=t$r(r,e)):O.type)}const Yn=_.define({combine:O=>O.join(" ")}),al=_.define({combine:O=>O.indexOf(!0)>-1}),ll=IO.newName(),Kd=IO.newName(),Jd=IO.newName(),ep={"&light":"."+Kd,"&dark":"."+Jd};function cl(O,e,t){return new IO(e,{finish(i){return/&/.test(i)?i.replace(/&\w*/,r=>{if(r=="&")return O;if(!t||!t[r])throw new RangeError(`Unsupported selector: ${r}`);return t[r]}):O+" "+i}})}const u1=cl("."+ll,{"&":{position:"relative !important",boxSizing:"border-box","&.cm-focused":{outline:"1px dotted #212121"},display:"flex !important",flexDirection:"column"},".cm-scroller":{display:"flex !important",alignItems:"flex-start !important",fontFamily:"monospace",lineHeight:1.4,height:"100%",overflowX:"auto",position:"relative",zIndex:0},".cm-content":{margin:0,flexGrow:2,flexShrink:0,display:"block",whiteSpace:"pre",wordWrap:"normal",boxSizing:"border-box",padding:"4px 0",outline:"none","&[contenteditable=true]":{WebkitUserModify:"read-write-plaintext-only"}},".cm-lineWrapping":{whiteSpace_fallback:"pre-wrap",whiteSpace:"break-spaces",wordBreak:"break-word",overflowWrap:"anywhere",flexShrink:1},"&light .cm-content":{caretColor:"black"},"&dark .cm-content":{caretColor:"white"},".cm-line":{display:"block",padding:"0 2px 0 6px"},".cm-layer":{position:"absolute",left:0,top:0,contain:"size style","& > *":{position:"absolute"}},"&light .cm-selectionBackground":{background:"#d9d9d9"},"&dark .cm-selectionBackground":{background:"#222"},"&light.cm-focused .cm-selectionBackground":{background:"#d7d4f0"},"&dark.cm-focused .cm-selectionBackground":{background:"#233"},".cm-cursorLayer":{pointerEvents:"none"},"&.cm-focused .cm-cursorLayer":{animation:"steps(1) cm-blink 1.2s infinite"},"@keyframes cm-blink":{"0%":{},"50%":{opacity:0},"100%":{}},"@keyframes cm-blink2":{"0%":{},"50%":{opacity:0},"100%":{}},".cm-cursor, .cm-dropCursor":{borderLeft:"1.2px solid black",marginLeft:"-0.6px",pointerEvents:"none"},".cm-cursor":{display:"none"},"&dark .cm-cursor":{borderLeftColor:"#444"},".cm-dropCursor":{position:"absolute"},"&.cm-focused .cm-cursor":{display:"block"},"&light .cm-activeLine":{backgroundColor:"#cceeff44"},"&dark .cm-activeLine":{backgroundColor:"#99eeff33"},"&light .cm-specialChar":{color:"red"},"&dark .cm-specialChar":{color:"#f78"},".cm-gutters":{flexShrink:0,display:"flex",height:"100%",boxSizing:"border-box",left:0,zIndex:200},"&light .cm-gutters":{backgroundColor:"#f5f5f5",color:"#6c6c6c",borderRight:"1px solid #ddd"},"&dark .cm-gutters":{backgroundColor:"#333338",color:"#ccc"},".cm-gutter":{display:"flex !important",flexDirection:"column",flexShrink:0,boxSizing:"border-box",minHeight:"100%",overflow:"hidden"},".cm-gutterElement":{boxSizing:"border-box"},".cm-lineNumbers .cm-gutterElement":{padding:"0 3px 0 5px",minWidth:"20px",textAlign:"right",whiteSpace:"nowrap"},"&light .cm-activeLineGutter":{backgroundColor:"#e2f2ff"},"&dark .cm-activeLineGutter":{backgroundColor:"#222227"},".cm-panels":{boxSizing:"border-box",position:"sticky",left:0,right:0},"&light .cm-panels":{backgroundColor:"#f5f5f5",color:"black"},"&light .cm-panels-top":{borderBottom:"1px solid #ddd"},"&light .cm-panels-bottom":{borderTop:"1px solid #ddd"},"&dark .cm-panels":{backgroundColor:"#333338",color:"white"},".cm-tab":{display:"inline-block",overflow:"hidden",verticalAlign:"bottom"},".cm-widgetBuffer":{verticalAlign:"text-top",height:"1em",width:0,display:"inline"},".cm-placeholder":{color:"#888",display:"inline-block",verticalAlign:"top"},".cm-highlightSpace:before":{content:"attr(data-display)",position:"absolute",pointerEvents:"none",color:"#888"},".cm-highlightTab":{backgroundImage:`url('data:image/svg+xml,')`,backgroundSize:"auto 100%",backgroundPosition:"right 90%",backgroundRepeat:"no-repeat"},".cm-trailingSpace":{backgroundColor:"#ff332255"},".cm-button":{verticalAlign:"middle",color:"inherit",fontSize:"70%",padding:".2em 1em",borderRadius:"1px"},"&light .cm-button":{backgroundImage:"linear-gradient(#eff1f5, #d9d9df)",border:"1px solid #888","&:active":{backgroundImage:"linear-gradient(#b4b4b4, #d0d3d6)"}},"&dark .cm-button":{backgroundImage:"linear-gradient(#393939, #111)",border:"1px solid #888","&:active":{backgroundImage:"linear-gradient(#111, #333)"}},".cm-textfield":{verticalAlign:"middle",color:"inherit",fontSize:"70%",border:"1px solid silver",padding:".2em .5em"},"&light .cm-textfield":{backgroundColor:"white"},"&dark .cm-textfield":{border:"1px solid #555",backgroundColor:"inherit"}},ep);class $1{constructor(e,t,i,r){this.typeOver=r,this.bounds=null,this.text="";let{impreciseHead:n,impreciseAnchor:s}=e.docView;if(e.state.readOnly&&t>-1)this.newSel=null;else if(t>-1&&(this.bounds=e.docView.domBoundsAround(t,i,0))){let o=n||s?[]:p1(e),a=new _d(o,e.state);a.readRange(this.bounds.startDOM,this.bounds.endDOM),this.text=a.text,this.newSel=m1(o,this.bounds.from)}else{let o=e.observer.selectionRange,a=n&&n.node==o.focusNode&&n.offset==o.focusOffset||!Gi(e.contentDOM,o.focusNode)?e.state.selection.main.head:e.docView.posFromDOM(o.focusNode,o.focusOffset),l=s&&s.node==o.anchorNode&&s.offset==o.anchorOffset||!Gi(e.contentDOM,o.anchorNode)?e.state.selection.main.anchor:e.docView.posFromDOM(o.anchorNode,o.anchorOffset);this.newSel=X.single(l,a)}}}function tp(O,e){let t,{newSel:i}=e,r=O.state.selection.main;if(e.bounds){let{from:n,to:s}=e.bounds,o=r.from,a=null;(O.inputState.lastKeyCode===8&&O.inputState.lastKeyTime>Date.now()-100||j.android&&e.text.length=r.from&&t.to<=r.to&&(t.from!=r.from||t.to!=r.to)&&r.to-r.from-(t.to-t.from)<=4?t={from:r.from,to:r.to,insert:O.state.doc.slice(r.from,t.from).append(t.insert).append(O.state.doc.slice(t.to,r.to))}:(j.mac||j.android)&&t&&t.from==t.to&&t.from==r.head-1&&/^\. ?$/.test(t.insert.toString())&&O.contentDOM.getAttribute("autocorrect")=="off"?(i&&t.insert.length==2&&(i=X.single(i.main.anchor-1,i.main.head-1)),t={from:r.from,to:r.to,insert:le.of([" "])}):j.chrome&&t&&t.from==t.to&&t.from==r.head&&t.insert.toString()==`
+ `&&O.lineWrapping&&(i&&(i=X.single(i.main.anchor-1,i.main.head-1)),t={from:r.from,to:r.to,insert:le.of([" "])}),t){let n=O.state;if(j.ios&&O.inputState.flushIOSKey(O)||j.android&&(t.from==r.from&&t.to==r.to&&t.insert.length==1&&t.insert.lines==2&&ki(O.contentDOM,"Enter",13)||t.from==r.from-1&&t.to==r.to&&t.insert.length==0&&ki(O.contentDOM,"Backspace",8)||t.from==r.from&&t.to==r.to+1&&t.insert.length==0&&ki(O.contentDOM,"Delete",46)))return!0;let s=t.insert.toString();if(O.state.facet(Td).some(l=>l(O,t.from,t.to,s)))return!0;O.inputState.composing>=0&&O.inputState.composing++;let o;if(t.from>=r.from&&t.to<=r.to&&t.to-t.from>=(r.to-r.from)/3&&(!i||i.main.empty&&i.main.from==t.from+t.insert.length)&&O.inputState.composing<0){let l=r.fromt.to?n.sliceDoc(t.to,r.to):"";o=n.replaceSelection(O.state.toText(l+t.insert.sliceString(0,void 0,O.state.lineBreak)+c))}else{let l=n.changes(t),c=i&&!n.selection.main.eq(i.main)&&i.main.to<=l.newLength?i.main:void 0;if(n.selection.ranges.length>1&&O.inputState.composing>=0&&t.to<=r.to&&t.to>=r.to-10){let h=O.state.sliceDoc(t.from,t.to),Q=jd(O)||O.state.doc.lineAt(r.head),u=r.to-t.to,$=r.to-r.from;o=n.changeByRange(d=>{if(d.from==r.from&&d.to==r.to)return{changes:l,range:c||d.map(l)};let p=d.to-u,P=p-h.length;if(d.to-d.from!=$||O.state.sliceDoc(P,p)!=h||Q&&d.to>=Q.from&&d.from<=Q.to)return{range:d};let y=n.changes({from:P,to:p,insert:t.insert}),x=d.to-r.to;return{changes:y,range:c?X.range(Math.max(0,c.anchor+x),Math.max(0,c.head+x)):d.map(y)}})}else o={changes:l,selection:c&&n.selection.replaceRange(c)}}let a="input.type";return O.composing&&(a+=".compose",O.inputState.compositionFirstChange&&(a+=".start",O.inputState.compositionFirstChange=!1)),O.dispatch(o,{scrollIntoView:!0,userEvent:a}),!0}else if(i&&!i.main.eq(r)){let n=!1,s="select";return O.inputState.lastSelectionTime>Date.now()-50&&(O.inputState.lastSelectionOrigin=="select"&&(n=!0),s=O.inputState.lastSelectionOrigin),O.dispatch({selection:i,scrollIntoView:n,userEvent:s}),!0}else return!1}function d1(O,e,t,i){let r=Math.min(O.length,e.length),n=0;for(;n0&&o>0&&O.charCodeAt(s-1)==e.charCodeAt(o-1);)s--,o--;if(i=="end"){let a=Math.max(0,n-Math.min(s,o));t-=s+a-n}if(s=s?n-t:0;n-=a,o=n+(o-s),s=n}else if(o=o?n-t:0;n-=a,s=n+(s-o),o=n}return{from:n,toA:s,toB:o}}function p1(O){let e=[];if(O.root.activeElement!=O.contentDOM)return e;let{anchorNode:t,anchorOffset:i,focusNode:r,focusOffset:n}=O.observer.selectionRange;return t&&(e.push(new of(t,i)),(r!=t||n!=i)&&e.push(new of(r,n))),e}function m1(O,e){if(O.length==0)return null;let t=O[0].pos,i=O.length==2?O[1].pos:t;return t>-1&&i>-1?X.single(t+e,i+e):null}const P1={childList:!0,characterData:!0,subtree:!0,attributes:!0,characterDataOldValue:!0},Co=j.ie&&j.ie_version<=11;class g1{constructor(e){this.view=e,this.active=!1,this.selectionRange=new Qy,this.selectionChanged=!1,this.delayedFlush=-1,this.resizeTimeout=-1,this.queue=[],this.delayedAndroidKey=null,this.flushingAndroidKey=-1,this.lastChange=0,this.scrollTargets=[],this.intersection=null,this.resizeScroll=null,this.resizeContent=null,this.intersecting=!1,this.gapIntersection=null,this.gaps=[],this.parentCheck=-1,this.dom=e.contentDOM,this.observer=new MutationObserver(t=>{for(let i of t)this.queue.push(i);(j.ie&&j.ie_version<=11||j.ios&&e.composing)&&t.some(i=>i.type=="childList"&&i.removedNodes.length||i.type=="characterData"&&i.oldValue.length>i.target.nodeValue.length)?this.flushSoon():this.flush()}),Co&&(this.onCharData=t=>{this.queue.push({target:t.target,type:"characterData",oldValue:t.prevValue}),this.flushSoon()}),this.onSelectionChange=this.onSelectionChange.bind(this),this.onResize=this.onResize.bind(this),this.onPrint=this.onPrint.bind(this),this.onScroll=this.onScroll.bind(this),typeof ResizeObserver=="function"&&(this.resizeScroll=new ResizeObserver(()=>{var t;((t=this.view.docView)===null||t===void 0?void 0:t.lastUpdate)this.view.requestMeasure()),this.resizeContent.observe(e.contentDOM)),this.addWindowListeners(this.win=e.win),this.start(),typeof IntersectionObserver=="function"&&(this.intersection=new IntersectionObserver(t=>{this.parentCheck<0&&(this.parentCheck=setTimeout(this.listenForScroll.bind(this),1e3)),t.length>0&&t[t.length-1].intersectionRatio>0!=this.intersecting&&(this.intersecting=!this.intersecting,this.intersecting!=this.view.inView&&this.onScrollChanged(document.createEvent("Event")))},{}),this.intersection.observe(this.dom),this.gapIntersection=new IntersectionObserver(t=>{t.length>0&&t[t.length-1].intersectionRatio>0&&this.onScrollChanged(document.createEvent("Event"))},{})),this.listenForScroll(),this.readSelectionRange()}onScrollChanged(e){this.view.inputState.runScrollHandlers(this.view,e),this.intersecting&&this.view.measure()}onScroll(e){this.intersecting&&this.flush(!1),this.onScrollChanged(e)}onResize(){this.resizeTimeout<0&&(this.resizeTimeout=setTimeout(()=>{this.resizeTimeout=-1,this.view.requestMeasure()},50))}onPrint(){this.view.viewState.printing=!0,this.view.measure(),setTimeout(()=>{this.view.viewState.printing=!1,this.view.requestMeasure()},500)}updateGaps(e){if(this.gapIntersection&&(e.length!=this.gaps.length||this.gaps.some((t,i)=>t!=e[i]))){this.gapIntersection.disconnect();for(let t of e)this.gapIntersection.observe(t);this.gaps=e}}onSelectionChange(e){let t=this.selectionChanged;if(!this.readSelectionRange()||this.delayedAndroidKey)return;let{view:i}=this,r=this.selectionRange;if(i.state.facet(ao)?i.root.activeElement!=this.dom:!ts(i.dom,r))return;let n=r.anchorNode&&i.docView.nearest(r.anchorNode);if(n&&n.ignoreEvent(e)){t||(this.selectionChanged=!1);return}(j.ie&&j.ie_version<=11||j.android&&j.chrome)&&!i.state.selection.main.empty&&r.focusNode&&ms(r.focusNode,r.focusOffset,r.anchorNode,r.anchorOffset)?this.flushSoon():this.flush(!1)}readSelectionRange(){let{view:e}=this,t=j.safari&&e.root.nodeType==11&&ly(this.dom.ownerDocument)==this.dom&&S1(this.view)||ps(e.root);if(!t||this.selectionRange.eq(t))return!1;let i=ts(this.dom,t);return i&&!this.selectionChanged&&e.inputState.lastFocusTime>Date.now()-200&&e.inputState.lastTouchTime{let n=this.delayedAndroidKey;n&&(this.clearDelayedAndroidKey(),!this.flush()&&n.force&&ki(this.dom,n.key,n.keyCode))};this.flushingAndroidKey=this.view.win.requestAnimationFrame(r)}(!this.delayedAndroidKey||e=="Enter")&&(this.delayedAndroidKey={key:e,keyCode:t,force:this.lastChange{this.delayedFlush=-1,this.flush()}))}forceFlush(){this.delayedFlush>=0&&(this.view.win.cancelAnimationFrame(this.delayedFlush),this.delayedFlush=-1),this.flush()}processRecords(){let e=this.queue;for(let n of this.observer.takeRecords())e.push(n);e.length&&(this.queue=[]);let t=-1,i=-1,r=!1;for(let n of e){let s=this.readMutation(n);s&&(s.typeOver&&(r=!0),t==-1?{from:t,to:i}=s:(t=Math.min(s.from,t),i=Math.max(s.to,i)))}return{from:t,to:i,typeOver:r}}readChange(){let{from:e,to:t,typeOver:i}=this.processRecords(),r=this.selectionChanged&&ts(this.dom,this.selectionRange);return e<0&&!r?null:(e>-1&&(this.lastChange=Date.now()),this.view.inputState.lastFocusTime=0,this.selectionChanged=!1,new $1(this.view,e,t,i))}flush(e=!0){if(this.delayedFlush>=0||this.delayedAndroidKey)return!1;e&&this.readSelectionRange();let t=this.readChange();if(!t)return!1;let i=this.view.state,r=tp(this.view,t);return this.view.state==i&&this.view.update([]),r}readMutation(e){let t=this.view.docView.nearest(e.target);if(!t||t.ignoreMutation(e))return null;if(t.markDirty(e.type=="attributes"),e.type=="attributes"&&(t.dirty|=4),e.type=="childList"){let i=Wf(t,e.previousSibling||e.target.previousSibling,-1),r=Wf(t,e.nextSibling||e.target.nextSibling,1);return{from:i?t.posAfter(i):t.posAtStart,to:r?t.posBefore(r):t.posAtEnd,typeOver:!1}}else return e.type=="characterData"?{from:t.posAtStart,to:t.posAtEnd,typeOver:e.target.nodeValue==e.oldValue}:null}setWindow(e){e!=this.win&&(this.removeWindowListeners(this.win),this.win=e,this.addWindowListeners(this.win))}addWindowListeners(e){e.addEventListener("resize",this.onResize),e.addEventListener("beforeprint",this.onPrint),e.addEventListener("scroll",this.onScroll),e.document.addEventListener("selectionchange",this.onSelectionChange)}removeWindowListeners(e){e.removeEventListener("scroll",this.onScroll),e.removeEventListener("resize",this.onResize),e.removeEventListener("beforeprint",this.onPrint),e.document.removeEventListener("selectionchange",this.onSelectionChange)}destroy(){var e,t,i,r;this.stop(),(e=this.intersection)===null||e===void 0||e.disconnect(),(t=this.gapIntersection)===null||t===void 0||t.disconnect(),(i=this.resizeScroll)===null||i===void 0||i.disconnect(),(r=this.resizeContent)===null||r===void 0||r.disconnect();for(let n of this.scrollTargets)n.removeEventListener("scroll",this.onScroll);this.removeWindowListeners(this.win),clearTimeout(this.parentCheck),clearTimeout(this.resizeTimeout),this.win.cancelAnimationFrame(this.delayedFlush),this.win.cancelAnimationFrame(this.flushingAndroidKey)}}function Wf(O,e,t){for(;e;){let i=Se.get(e);if(i&&i.parent==O)return i;let r=e.parentNode;e=r!=O.dom?r:t>0?e.nextSibling:e.previousSibling}return null}function S1(O){let e=null;function t(a){a.preventDefault(),a.stopImmediatePropagation(),e=a.getTargetRanges()[0]}if(O.contentDOM.addEventListener("beforeinput",t,!0),O.dom.ownerDocument.execCommand("indent"),O.contentDOM.removeEventListener("beforeinput",t,!0),!e)return null;let i=e.startContainer,r=e.startOffset,n=e.endContainer,s=e.endOffset,o=O.docView.domAtPos(O.state.selection.main.anchor);return ms(o.node,o.offset,n,s)&&([i,r,n,s]=[n,s,i,r]),{anchorNode:i,anchorOffset:r,focusNode:n,focusOffset:s}}class z{constructor(e={}){this.plugins=[],this.pluginMap=new Map,this.editorAttrs={},this.contentAttrs={},this.bidiCache=[],this.destroyed=!1,this.updateState=2,this.measureScheduled=-1,this.measureRequests=[],this.contentDOM=document.createElement("div"),this.scrollDOM=document.createElement("div"),this.scrollDOM.tabIndex=-1,this.scrollDOM.className="cm-scroller",this.scrollDOM.appendChild(this.contentDOM),this.announceDOM=document.createElement("div"),this.announceDOM.style.cssText="position: fixed; top: -10000px",this.announceDOM.setAttribute("aria-live","polite"),this.dom=document.createElement("div"),this.dom.appendChild(this.announceDOM),this.dom.appendChild(this.scrollDOM),this._dispatch=e.dispatch||(t=>this.update([t])),this.dispatch=this.dispatch.bind(this),this._root=e.root||uy(e.parent)||document,this.viewState=new bf(e.state||te.create(e)),this.plugins=this.state.facet(Qr).map(t=>new zo(t));for(let t of this.plugins)t.update(this);this.observer=new g1(this),this.inputState=new Ey(this),this.inputState.ensureHandlers(this,this.plugins),this.docView=new af(this),this.mountStyles(),this.updateAttrs(),this.updateState=0,this.requestMeasure(),e.parent&&e.parent.appendChild(this.dom)}get state(){return this.viewState.state}get viewport(){return this.viewState.viewport}get visibleRanges(){return this.viewState.visibleRanges}get inView(){return this.viewState.inView}get composing(){return this.inputState.composing>0}get compositionStarted(){return this.inputState.composing>=0}get root(){return this._root}get win(){return this.dom.ownerDocument.defaultView||window}dispatch(...e){this._dispatch(e.length==1&&e[0]instanceof ze?e[0]:this.state.update(...e))}update(e){if(this.updateState!=0)throw new Error("Calls to EditorView.update are not allowed while an update is in progress");let t=!1,i=!1,r,n=this.state;for(let Q of e){if(Q.startState!=n)throw new RangeError("Trying to update state with a transaction that doesn't start from the previous state.");n=Q.state}if(this.destroyed){this.viewState.state=n;return}let s=this.hasFocus,o=0,a=null;e.some(Q=>Q.annotation(Ld))?(this.inputState.notifiedFocused=s,o=1):s!=this.inputState.notifiedFocused&&(this.inputState.notifiedFocused=s,a=Bd(n,s),a||(o=1));let l=this.observer.delayedAndroidKey,c=null;if(l?(this.observer.clearDelayedAndroidKey(),c=this.observer.readChange(),(c&&!this.state.doc.eq(n.doc)||!this.state.selection.eq(n.selection))&&(c=null)):this.observer.clear(),n.facet(te.phrases)!=this.state.facet(te.phrases))return this.setState(n);r=Ss.create(this,n,e),r.flags|=o;let h=this.viewState.scrollTarget;try{this.updateState=2;for(let Q of e){if(h&&(h=h.map(Q.changes)),Q.scrollIntoView){let{main:u}=Q.state.selection;h=new gs(u.empty?u:X.cursor(u.head,u.head>u.anchor?-1:1))}for(let u of Q.effects)u.is(nf)&&(h=u.value)}this.viewState.update(r,h),this.bidiCache=Xs.update(this.bidiCache,r.changes),r.empty||(this.updatePlugins(r),this.inputState.update(r)),t=this.docView.update(r),this.state.facet(ur)!=this.styleModules&&this.mountStyles(),i=this.updateAttrs(),this.showAnnouncements(e),this.docView.updateSelection(t,e.some(Q=>Q.isUserEvent("select.pointer")))}finally{this.updateState=0}if(r.startState.facet(Yn)!=r.state.facet(Yn)&&(this.viewState.mustMeasureContent=!0),(t||i||h||this.viewState.mustEnforceCursorAssoc||this.viewState.mustMeasureContent)&&this.requestMeasure(),!r.empty)for(let Q of this.state.facet(Ol))Q(r);(a||c)&&Promise.resolve().then(()=>{a&&this.state==a.startState&&this.dispatch(a),c&&!tp(this,c)&&l.force&&ki(this.contentDOM,l.key,l.keyCode)})}setState(e){if(this.updateState!=0)throw new Error("Calls to EditorView.setState are not allowed while an update is in progress");if(this.destroyed){this.viewState.state=e;return}this.updateState=2;let t=this.hasFocus;try{for(let i of this.plugins)i.destroy(this);this.viewState=new bf(e),this.plugins=e.facet(Qr).map(i=>new zo(i)),this.pluginMap.clear();for(let i of this.plugins)i.update(this);this.docView=new af(this),this.inputState.ensureHandlers(this,this.plugins),this.mountStyles(),this.updateAttrs(),this.bidiCache=[]}finally{this.updateState=0}t&&this.focus(),this.requestMeasure()}updatePlugins(e){let t=e.startState.facet(Qr),i=e.state.facet(Qr);if(t!=i){let r=[];for(let n of i){let s=t.indexOf(n);if(s<0)r.push(new zo(n));else{let o=this.plugins[s];o.mustUpdate=e,r.push(o)}}for(let n of this.plugins)n.mustUpdate!=e&&n.destroy(this);this.plugins=r,this.pluginMap.clear(),this.inputState.ensureHandlers(this,this.plugins)}else for(let r of this.plugins)r.mustUpdate=e;for(let r=0;r-1&&this.win.cancelAnimationFrame(this.measureScheduled),this.measureScheduled=0,e&&this.observer.forceFlush();let t=null,{scrollHeight:i,scrollTop:r,clientHeight:n}=this.scrollDOM,s=r>i-n-4?i:r;try{for(let o=0;;o++){this.updateState=1;let a=this.viewport,l=this.viewState.lineBlockAtHeight(s),c=this.viewState.measure(this);if(!c&&!this.measureRequests.length&&this.viewState.scrollTarget==null)break;if(o>5){console.warn(this.measureRequests.length?"Measure loop restarted more than 5 times":"Viewport failed to stabilize");break}let h=[];c&4||([this.measureRequests,h]=[h,this.measureRequests]);let Q=h.map(p=>{try{return p.read(this)}catch(P){return xt(this.state,P),Tf}}),u=Ss.create(this,this.state,[]),$=!1,d=!1;u.flags|=c,t?t.flags|=c:t=u,this.updateState=2,u.empty||(this.updatePlugins(u),this.inputState.update(u),this.updateAttrs(),$=this.docView.update(u));for(let p=0;p1||p<-1)&&(this.scrollDOM.scrollTop+=p,d=!0)}if($&&this.docView.updateSelection(!0),this.viewport.from==a.from&&this.viewport.to==a.to&&!d&&this.measureRequests.length==0)break}}finally{this.updateState=0,this.measureScheduled=-1}if(t&&!t.empty)for(let o of this.state.facet(Ol))o(t)}get themeClasses(){return ll+" "+(this.state.facet(al)?Jd:Kd)+" "+this.state.facet(Yn)}updateAttrs(){let e=Yf(this,kd,{class:"cm-editor"+(this.hasFocus?" cm-focused ":" ")+this.themeClasses}),t={spellcheck:"false",autocorrect:"off",autocapitalize:"off",translate:"no",contenteditable:this.state.facet(ao)?"true":"false",class:"cm-content",style:`${j.tabSize}: ${this.state.tabSize}`,role:"textbox","aria-multiline":"true"};this.state.readOnly&&(t["aria-readonly"]="true"),Yf(this,mc,t);let i=this.observer.ignore(()=>{let r=el(this.contentDOM,this.contentAttrs,t),n=el(this.dom,this.editorAttrs,e);return r||n});return this.editorAttrs=e,this.contentAttrs=t,i}showAnnouncements(e){let t=!0;for(let i of e)for(let r of i.effects)if(r.is(z.announce)){t&&(this.announceDOM.textContent=""),t=!1;let n=this.announceDOM.appendChild(document.createElement("div"));n.textContent=r.value}}mountStyles(){this.styleModules=this.state.facet(ur),IO.mount(this.root,this.styleModules.concat(u1).reverse())}readMeasured(){if(this.updateState==2)throw new Error("Reading the editor layout isn't allowed during an update");this.updateState==0&&this.measureScheduled>-1&&this.measure(!1)}requestMeasure(e){if(this.measureScheduled<0&&(this.measureScheduled=this.win.requestAnimationFrame(()=>this.measure())),e){if(this.measureRequests.indexOf(e)>-1)return;if(e.key!=null){for(let t=0;ti.spec==e)||null),t&&t.update(this).value}get documentTop(){return this.contentDOM.getBoundingClientRect().top+this.viewState.paddingTop}get documentPadding(){return{top:this.viewState.paddingTop,bottom:this.viewState.paddingBottom}}elementAtHeight(e){return this.readMeasured(),this.viewState.elementAtHeight(e)}lineBlockAtHeight(e){return this.readMeasured(),this.viewState.lineBlockAtHeight(e)}get viewportLineBlocks(){return this.viewState.viewportLines}lineBlockAt(e){return this.viewState.lineBlockAt(e)}get contentHeight(){return this.viewState.contentHeight}moveByChar(e,t,i){return jo(this,e,uf(this,e,t,i))}moveByGroup(e,t){return jo(this,e,uf(this,e,t,i=>Cy(this,e.head,i)))}moveToLineBoundary(e,t,i=!0){return Gy(this,e,t,i)}moveVertically(e,t,i){return jo(this,e,Iy(this,e,t,i))}domAtPos(e){return this.docView.domAtPos(e)}posAtDOM(e,t=0){return this.docView.posFromDOM(e,t)}posAtCoords(e,t=!0){return this.readMeasured(),Cd(this,e,t)}coordsAtPos(e,t=1){this.readMeasured();let i=this.docView.coordsAt(e,t);if(!i||i.left==i.right)return i;let r=this.state.doc.lineAt(e),n=this.bidiSpans(r),s=n[Zi.find(n,e-r.from,-1,t)];return uc(i,s.dir==We.LTR==t>0)}get defaultCharacterWidth(){return this.viewState.heightOracle.charWidth}get defaultLineHeight(){return this.viewState.heightOracle.lineHeight}get textDirection(){return this.viewState.defaultTextDirection}textDirectionAt(e){return!this.state.facet(vd)||ethis.viewport.to?this.textDirection:(this.readMeasured(),this.docView.textDirectionAt(e))}get lineWrapping(){return this.viewState.heightOracle.lineWrapping}bidiSpans(e){if(e.length>X1)return Vd(e.length);let t=this.textDirectionAt(e.from);for(let r of this.bidiCache)if(r.from==e.from&&r.dir==t)return r.order;let i=wy(e.text,t);return this.bidiCache.push(new Xs(e.from,e.to,t,i)),i}get hasFocus(){var e;return(this.dom.ownerDocument.hasFocus()||j.safari&&((e=this.inputState)===null||e===void 0?void 0:e.lastContextMenu)>Date.now()-3e4)&&this.root.activeElement==this.contentDOM}focus(){this.observer.ignore(()=>{hd(this.contentDOM),this.docView.updateSelection()})}setRoot(e){this._root!=e&&(this._root=e,this.observer.setWindow((e.nodeType==9?e:e.ownerDocument).defaultView||window),this.mountStyles())}destroy(){for(let e of this.plugins)e.destroy(this);this.plugins=[],this.inputState.destroy(),this.dom.remove(),this.observer.destroy(),this.measureScheduled>-1&&this.win.cancelAnimationFrame(this.measureScheduled),this.destroyed=!0}static scrollIntoView(e,t={}){return nf.of(new gs(typeof e=="number"?X.cursor(e):e,t.y,t.x,t.yMargin,t.xMargin))}static domEventHandlers(e){return qe.define(()=>({}),{eventHandlers:e})}static theme(e,t){let i=IO.newName(),r=[Yn.of(i),ur.of(cl(`.${i}`,e))];return t&&t.dark&&r.push(al.of(!0)),r}static baseTheme(e){return MO.lowest(ur.of(cl("."+ll,e,ep)))}static findFromDOM(e){var t;let i=e.querySelector(".cm-content"),r=i&&Se.get(i)||Se.get(e);return((t=r==null?void 0:r.rootView)===null||t===void 0?void 0:t.view)||null}}z.styleModule=ur;z.inputHandler=Td;z.focusChangeEffect=Yd;z.perLineTextDirection=vd;z.exceptionSink=Wd;z.updateListener=Ol;z.editable=ao;z.mouseSelectionStyle=wd;z.dragMovesSelection=bd;z.clickAddsSelectionRange=xd;z.decorations=Cr;z.atomicRanges=Zd;z.scrollMargins=Rd;z.darkTheme=al;z.contentAttributes=mc;z.editorAttributes=kd;z.lineWrapping=z.contentAttributes.of({class:"cm-lineWrapping"});z.announce=B.define();const X1=4096,Tf={};class Xs{constructor(e,t,i,r){this.from=e,this.to=t,this.dir=i,this.order=r}static update(e,t){if(t.empty)return e;let i=[],r=e.length?e[e.length-1].dir:We.LTR;for(let n=Math.max(0,e.length-10);n=0;r--){let n=i[r],s=typeof n=="function"?n(O):n;s&&Ja(s,t)}return t}const y1=j.mac?"mac":j.windows?"win":j.linux?"linux":"key";function x1(O,e){const t=O.split(/-(?!$)/);let i=t[t.length-1];i=="Space"&&(i=" ");let r,n,s,o;for(let a=0;ai.concat(r),[]))),t}function w1(O,e,t){return ip(Op(O.state),e,O,t)}let qO=null;const W1=4e3;function T1(O,e=y1){let t=Object.create(null),i=Object.create(null),r=(s,o)=>{let a=i[s];if(a==null)i[s]=o;else if(a!=o)throw new Error("Key binding "+s+" is used both as a regular binding and as a multi-stroke prefix")},n=(s,o,a,l)=>{var c,h;let Q=t[s]||(t[s]=Object.create(null)),u=o.split(/ (?!$)/).map(p=>x1(p,e));for(let p=1;p{let x=qO={view:y,prefix:P,scope:s};return setTimeout(()=>{qO==x&&(qO=null)},W1),!0}]})}let $=u.join(" ");r($,!1);let d=Q[$]||(Q[$]={preventDefault:!1,run:((h=(c=Q._any)===null||c===void 0?void 0:c.run)===null||h===void 0?void 0:h.slice())||[]});a&&d.run.push(a),l&&(d.preventDefault=!0)};for(let s of O){let o=s.scope?s.scope.split(" "):["editor"];if(s.any)for(let l of o){let c=t[l]||(t[l]=Object.create(null));c._any||(c._any={preventDefault:!1,run:[]});for(let h in c)c[h].run.push(s.any)}let a=s[e]||s.key;if(a)for(let l of o)n(l,a,s.run,s.preventDefault),s.shift&&n(l,"Shift-"+a,s.shift,s.preventDefault)}return t}function ip(O,e,t,i){let r=ay(e),n=Be(r,0),s=wt(n)==r.length&&r!=" ",o="",a=!1;qO&&qO.view==t&&qO.scope==i&&(o=qO.prefix+" ",(a=Ed.indexOf(e.keyCode)<0)&&(qO=null));let l=new Set,c=$=>{if($){for(let d of $.run)if(!l.has(d)&&(l.add(d),d(t,e)))return!0;$.preventDefault&&(a=!0)}return!1},h=O[i],Q,u;if(h){if(c(h[o+vn(r,e,!s)]))return!0;if(s&&(e.altKey||e.metaKey||e.ctrlKey)&&!(j.windows&&e.ctrlKey&&e.altKey)&&(Q=EO[e.keyCode])&&Q!=r){if(c(h[o+vn(Q,e,!0)]))return!0;if(e.shiftKey&&(u=_r[e.keyCode])!=r&&u!=Q&&c(h[o+vn(u,e,!1)]))return!0}else if(s&&e.shiftKey&&c(h[o+vn(r,e,!0)]))return!0;if(c(h._any))return!0}return a}class sn{constructor(e,t,i,r,n){this.className=e,this.left=t,this.top=i,this.width=r,this.height=n}draw(){let e=document.createElement("div");return e.className=this.className,this.adjust(e),e}update(e,t){return t.className!=this.className?!1:(this.adjust(e),!0)}adjust(e){e.style.left=this.left+"px",e.style.top=this.top+"px",this.width!=null&&(e.style.width=this.width+"px"),e.style.height=this.height+"px"}eq(e){return this.left==e.left&&this.top==e.top&&this.width==e.width&&this.height==e.height&&this.className==e.className}static forRange(e,t,i){if(i.empty){let r=e.coordsAtPos(i.head,i.assoc||1);if(!r)return[];let n=rp(e);return[new sn(t,r.left-n.left,r.top-n.top,null,r.bottom-r.top)]}else return Y1(e,t,i)}}function rp(O){let e=O.scrollDOM.getBoundingClientRect();return{left:(O.textDirection==We.LTR?e.left:e.right-O.scrollDOM.clientWidth)-O.scrollDOM.scrollLeft,top:e.top-O.scrollDOM.scrollTop}}function qf(O,e,t){let i=X.cursor(e);return{from:Math.max(t.from,O.moveToLineBoundary(i,!1,!0).from),to:Math.min(t.to,O.moveToLineBoundary(i,!0,!0).from),type:$e.Text}}function kf(O,e){let t=O.lineBlockAt(e);if(Array.isArray(t.type)){for(let i of t.type)if(i.to>e||i.to==e&&(i.to==t.to||i.type==$e.Text))return i}return t}function Y1(O,e,t){if(t.to<=O.viewport.from||t.from>=O.viewport.to)return[];let i=Math.max(t.from,O.viewport.from),r=Math.min(t.to,O.viewport.to),n=O.textDirection==We.LTR,s=O.contentDOM,o=s.getBoundingClientRect(),a=rp(O),l=s.querySelector(".cm-line"),c=l&&window.getComputedStyle(l),h=o.left+(c?parseInt(c.paddingLeft)+Math.min(0,parseInt(c.textIndent)):0),Q=o.right-(c?parseInt(c.paddingRight):0),u=kf(O,i),$=kf(O,r),d=u.type==$e.Text?u:null,p=$.type==$e.Text?$:null;if(O.lineWrapping&&(d&&(d=qf(O,i,d)),p&&(p=qf(O,r,p))),d&&p&&d.from==p.from)return y(x(t.from,t.to,d));{let Y=d?x(t.from,null,d):b(u,!1),Z=p?x(null,t.to,p):b($,!0),E=[];return(d||u).to<(p||$).from-1?E.push(P(h,Y.bottom,Q,Z.top)):Y.bottomXe&&Ge.from=ne)break;be>ke&&oe(Math.max(fe,ke),Y==null&&fe<=Xe,Math.min(be,ne),Z==null&&be>=Te,F.dir)}if(ke=ie.to+1,ke>=ne)break}return N.length==0&&oe(Xe,Y==null,Te,Z==null,O.textDirection),{top:Oe,bottom:H,horizontal:N}}function b(Y,Z){let E=o.top+(Z?Y.top:Y.bottom);return{top:E,bottom:E,horizontal:[]}}}function v1(O,e){return O.constructor==e.constructor&&O.eq(e)}class q1{constructor(e,t){this.view=e,this.layer=t,this.drawn=[],this.measureReq={read:this.measure.bind(this),write:this.draw.bind(this)},this.dom=e.scrollDOM.appendChild(document.createElement("div")),this.dom.classList.add("cm-layer"),t.above&&this.dom.classList.add("cm-layer-above"),t.class&&this.dom.classList.add(t.class),this.dom.setAttribute("aria-hidden","true"),this.setOrder(e.state),e.requestMeasure(this.measureReq),t.mount&&t.mount(this.dom,e)}update(e){e.startState.facet(is)!=e.state.facet(is)&&this.setOrder(e.state),(this.layer.update(e,this.dom)||e.geometryChanged)&&e.view.requestMeasure(this.measureReq)}setOrder(e){let t=0,i=e.facet(is);for(;t!v1(t,this.drawn[i]))){let t=this.dom.firstChild,i=0;for(let r of e)r.update&&t&&r.constructor&&this.drawn[i].constructor&&r.update(t,this.drawn[i])?(t=t.nextSibling,i++):this.dom.insertBefore(r.draw(),t);for(;t;){let r=t.nextSibling;t.remove(),t=r}this.drawn=e}}destroy(){this.layer.destroy&&this.layer.destroy(this.dom,this.view),this.dom.remove()}}const is=_.define();function np(O){return[qe.define(e=>new q1(e,O)),is.of(O)]}const sp=!j.ios,Ir=_.define({combine(O){return cO(O,{cursorBlinkRate:1200,drawRangeCursor:!0},{cursorBlinkRate:(e,t)=>Math.min(e,t),drawRangeCursor:(e,t)=>e||t})}});function k1(O={}){return[Ir.of(O),Z1,R1,U1,qd.of(!0)]}function op(O){return O.startState.facet(Ir)!=O.state.facet(Ir)}const Z1=np({above:!0,markers(O){let{state:e}=O,t=e.facet(Ir),i=[];for(let r of e.selection.ranges){let n=r==e.selection.main;if(r.empty?!n||sp:t.drawRangeCursor){let s=n?"cm-cursor cm-cursor-primary":"cm-cursor cm-cursor-secondary",o=r.empty?r:X.cursor(r.head,r.head>r.anchor?-1:1);for(let a of sn.forRange(O,s,o))i.push(a)}}return i},update(O,e){O.transactions.some(i=>i.selection)&&(e.style.animationName=e.style.animationName=="cm-blink"?"cm-blink2":"cm-blink");let t=op(O);return t&&Zf(O.state,e),O.docChanged||O.selectionSet||t},mount(O,e){Zf(e.state,O)},class:"cm-cursorLayer"});function Zf(O,e){e.style.animationDuration=O.facet(Ir).cursorBlinkRate+"ms"}const R1=np({above:!1,markers(O){return O.state.selection.ranges.map(e=>e.empty?[]:sn.forRange(O,"cm-selectionBackground",e)).reduce((e,t)=>e.concat(t))},update(O,e){return O.docChanged||O.selectionSet||O.viewportChanged||op(O)},class:"cm-selectionLayer"}),ap={".cm-line":{"& ::selection":{backgroundColor:"transparent !important"},"&::selection":{backgroundColor:"transparent !important"}}};sp&&(ap[".cm-line"].caretColor="transparent !important");const U1=MO.highest(z.theme(ap)),lp=B.define({map(O,e){return O==null?null:e.mapPos(O)}}),dr=Ae.define({create(){return null},update(O,e){return O!=null&&(O=e.changes.mapPos(O)),e.effects.reduce((t,i)=>i.is(lp)?i.value:t,O)}}),V1=qe.fromClass(class{constructor(O){this.view=O,this.cursor=null,this.measureReq={read:this.readPos.bind(this),write:this.drawCursor.bind(this)}}update(O){var e;let t=O.state.field(dr);t==null?this.cursor!=null&&((e=this.cursor)===null||e===void 0||e.remove(),this.cursor=null):(this.cursor||(this.cursor=this.view.scrollDOM.appendChild(document.createElement("div")),this.cursor.className="cm-dropCursor"),(O.startState.field(dr)!=t||O.docChanged||O.geometryChanged)&&this.view.requestMeasure(this.measureReq))}readPos(){let O=this.view.state.field(dr),e=O!=null&&this.view.coordsAtPos(O);if(!e)return null;let t=this.view.scrollDOM.getBoundingClientRect();return{left:e.left-t.left+this.view.scrollDOM.scrollLeft,top:e.top-t.top+this.view.scrollDOM.scrollTop,height:e.bottom-e.top}}drawCursor(O){this.cursor&&(O?(this.cursor.style.left=O.left+"px",this.cursor.style.top=O.top+"px",this.cursor.style.height=O.height+"px"):this.cursor.style.left="-100000px")}destroy(){this.cursor&&this.cursor.remove()}setDropPos(O){this.view.state.field(dr)!=O&&this.view.dispatch({effects:lp.of(O)})}},{eventHandlers:{dragover(O){this.setDropPos(this.view.posAtCoords({x:O.clientX,y:O.clientY}))},dragleave(O){(O.target==this.view.contentDOM||!this.view.contentDOM.contains(O.relatedTarget))&&this.setDropPos(null)},dragend(){this.setDropPos(null)},drop(){this.setDropPos(null)}}});function z1(){return[dr,V1]}function Rf(O,e,t,i,r){e.lastIndex=0;for(let n=O.iterRange(t,i),s=t,o;!n.next().done;s+=n.value.length)if(!n.lineBreak)for(;o=e.exec(n.value);)r(s+o.index,o)}function _1(O,e){let t=O.visibleRanges;if(t.length==1&&t[0].from==O.viewport.from&&t[0].to==O.viewport.to)return t;let i=[];for(let{from:r,to:n}of t)r=Math.max(O.state.doc.lineAt(r).from,r-e),n=Math.min(O.state.doc.lineAt(n).to,n+e),i.length&&i[i.length-1].to>=r?i[i.length-1].to=n:i.push({from:r,to:n});return i}class j1{constructor(e){const{regexp:t,decoration:i,decorate:r,boundary:n,maxLength:s=1e3}=e;if(!t.global)throw new RangeError("The regular expression given to MatchDecorator should have its 'g' flag set");if(this.regexp=t,r)this.addMatch=(o,a,l,c)=>r(c,l,l+o[0].length,o,a);else if(typeof i=="function")this.addMatch=(o,a,l,c)=>{let h=i(o,a,l);h&&c(l,l+o[0].length,h)};else if(i)this.addMatch=(o,a,l,c)=>c(l,l+o[0].length,i);else throw new RangeError("Either 'decorate' or 'decoration' should be provided to MatchDecorator");this.boundary=n,this.maxLength=s}createDeco(e){let t=new CO,i=t.add.bind(t);for(let{from:r,to:n}of _1(e,this.maxLength))Rf(e.state.doc,this.regexp,r,n,(s,o)=>this.addMatch(o,e,s,i));return t.finish()}updateDeco(e,t){let i=1e9,r=-1;return e.docChanged&&e.changes.iterChanges((n,s,o,a)=>{a>e.view.viewport.from&&o1e3?this.createDeco(e.view):r>-1?this.updateRange(e.view,t.map(e.changes),i,r):t}updateRange(e,t,i,r){for(let n of e.visibleRanges){let s=Math.max(n.from,i),o=Math.min(n.to,r);if(o>s){let a=e.state.doc.lineAt(s),l=a.toa.from;s--)if(this.boundary.test(a.text[s-1-a.from])){c=s;break}for(;oQ.push(P.range(d,p));if(a==l)for(this.regexp.lastIndex=c-a.from;(u=this.regexp.exec(a.text))&&u.indexthis.addMatch(p,e,d,$));t=t.update({filterFrom:c,filterTo:h,filter:(d,p)=>dh,add:Q})}}return t}}const hl=/x/.unicode!=null?"gu":"g",G1=new RegExp(`[\0-\b
+--\u2028\u2029\uFEFF-]`,hl),C1={0:"null",7:"bell",8:"backspace",10:"newline",11:"vertical tab",13:"carriage return",27:"escape",8203:"zero width space",8204:"zero width non-joiner",8205:"zero width joiner",8206:"left-to-right mark",8207:"right-to-left mark",8232:"line separator",8237:"left-to-right override",8238:"right-to-left override",8294:"left-to-right isolate",8295:"right-to-left isolate",8297:"pop directional isolate",8233:"paragraph separator",65279:"zero width no-break space",65532:"object replacement"};let Io=null;function I1(){var O;if(Io==null&&typeof document<"u"&&document.body){let e=document.body.style;Io=((O=e.tabSize)!==null&&O!==void 0?O:e.MozTabSize)!=null}return Io||!1}const rs=_.define({combine(O){let e=cO(O,{render:null,specialChars:G1,addSpecialChars:null});return(e.replaceTabs=!I1())&&(e.specialChars=new RegExp(" |"+e.specialChars.source,hl)),e.addSpecialChars&&(e.specialChars=new RegExp(e.specialChars.source+"|"+e.addSpecialChars.source,hl)),e}});function E1(O={}){return[rs.of(O),A1()]}let Uf=null;function A1(){return Uf||(Uf=qe.fromClass(class{constructor(O){this.view=O,this.decorations=I.none,this.decorationCache=Object.create(null),this.decorator=this.makeDecorator(O.state.facet(rs)),this.decorations=this.decorator.createDeco(O)}makeDecorator(O){return new j1({regexp:O.specialChars,decoration:(e,t,i)=>{let{doc:r}=t.state,n=Be(e[0],0);if(n==9){let s=r.lineAt(i),o=t.state.tabSize,a=rn(s.text,o,i-s.from);return I.replace({widget:new L1((o-a%o)*this.view.defaultCharacterWidth)})}return this.decorationCache[n]||(this.decorationCache[n]=I.replace({widget:new N1(O,n)}))},boundary:O.replaceTabs?void 0:/[^]/})}update(O){let e=O.state.facet(rs);O.startState.facet(rs)!=e?(this.decorator=this.makeDecorator(e),this.decorations=this.decorator.createDeco(O.view)):this.decorations=this.decorator.updateDeco(O,this.decorations)}},{decorations:O=>O.decorations}))}const D1="•";function M1(O){return O>=32?D1:O==10?"":String.fromCharCode(9216+O)}class N1 extends hO{constructor(e,t){super(),this.options=e,this.code=t}eq(e){return e.code==this.code}toDOM(e){let t=M1(this.code),i=e.state.phrase("Control character")+" "+(C1[this.code]||"0x"+this.code.toString(16)),r=this.options.render&&this.options.render(this.code,i,t);if(r)return r;let n=document.createElement("span");return n.textContent=t,n.title=i,n.setAttribute("aria-label",i),n.className="cm-specialChar",n}ignoreEvent(){return!1}}class L1 extends hO{constructor(e){super(),this.width=e}eq(e){return e.width==this.width}toDOM(){let e=document.createElement("span");return e.textContent=" ",e.className="cm-tab",e.style.width=this.width+"px",e}ignoreEvent(){return!1}}function B1(){return F1}const H1=I.line({class:"cm-activeLine"}),F1=qe.fromClass(class{constructor(O){this.decorations=this.getDeco(O)}update(O){(O.docChanged||O.selectionSet)&&(this.decorations=this.getDeco(O.view))}getDeco(O){let e=-1,t=[];for(let i of O.state.selection.ranges){let r=O.lineBlockAt(i.head);r.from>e&&(t.push(H1.range(r.from)),e=r.from)}return I.set(t)}},{decorations:O=>O.decorations});class K1 extends hO{constructor(e){super(),this.content=e}toDOM(){let e=document.createElement("span");return e.className="cm-placeholder",e.style.pointerEvents="none",e.appendChild(typeof this.content=="string"?document.createTextNode(this.content):this.content),typeof this.content=="string"?e.setAttribute("aria-label","placeholder "+this.content):e.setAttribute("aria-hidden","true"),e}ignoreEvent(){return!1}}function J1(O){return qe.fromClass(class{constructor(e){this.view=e,this.placeholder=I.set([I.widget({widget:new K1(O),side:1}).range(0)])}get decorations(){return this.view.state.doc.length?I.none:this.placeholder}},{decorations:e=>e.decorations})}const fl=2e3;function ex(O,e,t){let i=Math.min(e.line,t.line),r=Math.max(e.line,t.line),n=[];if(e.off>fl||t.off>fl||e.col<0||t.col<0){let s=Math.min(e.off,t.off),o=Math.max(e.off,t.off);for(let a=i;a<=r;a++){let l=O.doc.line(a);l.length<=o&&n.push(X.range(l.from+s,l.to+o))}}else{let s=Math.min(e.col,t.col),o=Math.max(e.col,t.col);for(let a=i;a<=r;a++){let l=O.doc.line(a),c=Da(l.text,s,O.tabSize,!0);if(c<0)n.push(X.cursor(l.to));else{let h=Da(l.text,o,O.tabSize);n.push(X.range(l.from+c,l.from+h))}}}return n}function tx(O,e){let t=O.coordsAtPos(O.viewport.from);return t?Math.round(Math.abs((t.left-e)/O.defaultCharacterWidth)):-1}function Vf(O,e){let t=O.posAtCoords({x:e.clientX,y:e.clientY},!1),i=O.state.doc.lineAt(t),r=t-i.from,n=r>fl?-1:r==i.length?tx(O,e.clientX):rn(i.text,O.state.tabSize,t-i.from);return{line:i.number,col:n,off:r}}function Ox(O,e){let t=Vf(O,e),i=O.state.selection;return t?{update(r){if(r.docChanged){let n=r.changes.mapPos(r.startState.doc.line(t.line).from),s=r.state.doc.lineAt(n);t={line:s.number,col:t.col,off:Math.min(t.off,s.length)},i=i.map(r.changes)}},get(r,n,s){let o=Vf(O,r);if(!o)return i;let a=ex(O.state,t,o);return a.length?s?X.create(a.concat(i.ranges)):X.create(a):i}}:null}function ix(O){let e=(O==null?void 0:O.eventFilter)||(t=>t.altKey&&t.button==0);return z.mouseSelectionStyle.of((t,i)=>e(i)?Ox(t,i):null)}const rx={Alt:[18,O=>O.altKey],Control:[17,O=>O.ctrlKey],Shift:[16,O=>O.shiftKey],Meta:[91,O=>O.metaKey]},nx={style:"cursor: crosshair"};function sx(O={}){let[e,t]=rx[O.key||"Alt"],i=qe.fromClass(class{constructor(r){this.view=r,this.isDown=!1}set(r){this.isDown!=r&&(this.isDown=r,this.view.update([]))}},{eventHandlers:{keydown(r){this.set(r.keyCode==e||t(r))},keyup(r){(r.keyCode==e||!t(r))&&this.set(!1)},mousemove(r){this.set(t(r))}}});return[i,z.contentAttributes.of(r=>{var n;return!((n=r.plugin(i))===null||n===void 0)&&n.isDown?nx:null})]}const qn="-10000px";class cp{constructor(e,t,i){this.facet=t,this.createTooltipView=i,this.input=e.state.facet(t),this.tooltips=this.input.filter(r=>r),this.tooltipViews=this.tooltips.map(i)}update(e){var t;let i=e.state.facet(this.facet),r=i.filter(s=>s);if(i===this.input){for(let s of this.tooltipViews)s.update&&s.update(e);return!1}let n=[];for(let s=0;s{var e,t,i;return{position:j.ios?"absolute":((e=O.find(r=>r.position))===null||e===void 0?void 0:e.position)||"fixed",parent:((t=O.find(r=>r.parent))===null||t===void 0?void 0:t.parent)||null,tooltipSpace:((i=O.find(r=>r.tooltipSpace))===null||i===void 0?void 0:i.tooltipSpace)||ox}}}),zf=new WeakMap,hp=qe.fromClass(class{constructor(O){this.view=O,this.inView=!0,this.lastTransaction=0,this.measureTimeout=-1;let e=O.state.facet(Eo);this.position=e.position,this.parent=e.parent,this.classes=O.themeClasses,this.createContainer(),this.measureReq={read:this.readMeasure.bind(this),write:this.writeMeasure.bind(this),key:this},this.manager=new cp(O,gc,t=>this.createTooltip(t)),this.intersectionObserver=typeof IntersectionObserver=="function"?new IntersectionObserver(t=>{Date.now()>this.lastTransaction-50&&t.length>0&&t[t.length-1].intersectionRatio<1&&this.measureSoon()},{threshold:[1]}):null,this.observeIntersection(),O.win.addEventListener("resize",this.measureSoon=this.measureSoon.bind(this)),this.maybeMeasure()}createContainer(){this.parent?(this.container=document.createElement("div"),this.container.style.position="relative",this.container.className=this.view.themeClasses,this.parent.appendChild(this.container)):this.container=this.view.dom}observeIntersection(){if(this.intersectionObserver){this.intersectionObserver.disconnect();for(let O of this.manager.tooltipViews)this.intersectionObserver.observe(O.dom)}}measureSoon(){this.measureTimeout<0&&(this.measureTimeout=setTimeout(()=>{this.measureTimeout=-1,this.maybeMeasure()},50))}update(O){O.transactions.length&&(this.lastTransaction=Date.now());let e=this.manager.update(O);e&&this.observeIntersection();let t=e||O.geometryChanged,i=O.state.facet(Eo);if(i.position!=this.position){this.position=i.position;for(let r of this.manager.tooltipViews)r.dom.style.position=this.position;t=!0}if(i.parent!=this.parent){this.parent&&this.container.remove(),this.parent=i.parent,this.createContainer();for(let r of this.manager.tooltipViews)this.container.appendChild(r.dom);t=!0}else this.parent&&this.view.themeClasses!=this.classes&&(this.classes=this.container.className=this.view.themeClasses);t&&this.maybeMeasure()}createTooltip(O){let e=O.create(this.view);if(e.dom.classList.add("cm-tooltip"),O.arrow&&!e.dom.querySelector(".cm-tooltip > .cm-tooltip-arrow")){let t=document.createElement("div");t.className="cm-tooltip-arrow",e.dom.appendChild(t)}return e.dom.style.position=this.position,e.dom.style.top=qn,this.container.appendChild(e.dom),e.mount&&e.mount(this.view),e}destroy(){var O,e;this.view.win.removeEventListener("resize",this.measureSoon);for(let t of this.manager.tooltipViews)t.dom.remove(),(O=t.destroy)===null||O===void 0||O.call(t);(e=this.intersectionObserver)===null||e===void 0||e.disconnect(),clearTimeout(this.measureTimeout)}readMeasure(){let O=this.view.dom.getBoundingClientRect();return{editor:O,parent:this.parent?this.container.getBoundingClientRect():O,pos:this.manager.tooltips.map((e,t)=>{let i=this.manager.tooltipViews[t];return i.getCoords?i.getCoords(e.pos):this.view.coordsAtPos(e.pos)}),size:this.manager.tooltipViews.map(({dom:e})=>e.getBoundingClientRect()),space:this.view.state.facet(Eo).tooltipSpace(this.view)}}writeMeasure(O){var e;let{editor:t,space:i}=O,r=[];for(let n=0;n=Math.min(t.bottom,i.bottom)||l.rightMath.min(t.right,i.right)+.1){a.style.top=qn;continue}let h=s.arrow?o.dom.querySelector(".cm-tooltip-arrow"):null,Q=h?7:0,u=c.right-c.left,$=(e=zf.get(o))!==null&&e!==void 0?e:c.bottom-c.top,d=o.offset||lx,p=this.view.textDirection==We.LTR,P=c.width>i.right-i.left?p?i.left:i.right-c.width:p?Math.min(l.left-(h?14:0)+d.x,i.right-u):Math.max(i.left,l.left-u+(h?14:0)-d.x),y=!!s.above;!s.strictSide&&(y?l.top-(c.bottom-c.top)-d.yi.bottom)&&y==i.bottom-l.bottom>l.top-i.top&&(y=!y);let x=(y?l.top-i.top:i.bottom-l.bottom)-Q;if(x<$&&o.resize!==!1){if(xP&&Z.topb&&(b=y?Z.top-$-2-Q:Z.bottom+Q+2);this.position=="absolute"?(a.style.top=b-O.parent.top+"px",a.style.left=P-O.parent.left+"px"):(a.style.top=b+"px",a.style.left=P+"px"),h&&(h.style.left=`${l.left+(p?d.x:-d.x)-(P+14-7)}px`),o.overlap!==!0&&r.push({left:P,top:b,right:Y,bottom:b+$}),a.classList.toggle("cm-tooltip-above",y),a.classList.toggle("cm-tooltip-below",!y),o.positioned&&o.positioned(O.space)}}maybeMeasure(){if(this.manager.tooltips.length&&(this.view.inView&&this.view.requestMeasure(this.measureReq),this.inView!=this.view.inView&&(this.inView=this.view.inView,!this.inView)))for(let O of this.manager.tooltipViews)O.dom.style.top=qn}},{eventHandlers:{scroll(){this.maybeMeasure()}}}),ax=z.baseTheme({".cm-tooltip":{zIndex:100,boxSizing:"border-box"},"&light .cm-tooltip":{border:"1px solid #bbb",backgroundColor:"#f5f5f5"},"&light .cm-tooltip-section:not(:first-child)":{borderTop:"1px solid #bbb"},"&dark .cm-tooltip":{backgroundColor:"#333338",color:"white"},".cm-tooltip-arrow":{height:`${7}px`,width:`${7*2}px`,position:"absolute",zIndex:-1,overflow:"hidden","&:before, &:after":{content:"''",position:"absolute",width:0,height:0,borderLeft:`${7}px solid transparent`,borderRight:`${7}px solid transparent`},".cm-tooltip-above &":{bottom:`-${7}px`,"&:before":{borderTop:`${7}px solid #bbb`},"&:after":{borderTop:`${7}px solid #f5f5f5`,bottom:"1px"}},".cm-tooltip-below &":{top:`-${7}px`,"&:before":{borderBottom:`${7}px solid #bbb`},"&:after":{borderBottom:`${7}px solid #f5f5f5`,top:"1px"}}},"&dark .cm-tooltip .cm-tooltip-arrow":{"&:before":{borderTopColor:"#333338",borderBottomColor:"#333338"},"&:after":{borderTopColor:"transparent",borderBottomColor:"transparent"}}}),lx={x:0,y:0},gc=_.define({enables:[hp,ax]}),ys=_.define();class Sc{constructor(e){this.view=e,this.mounted=!1,this.dom=document.createElement("div"),this.dom.classList.add("cm-tooltip-hover"),this.manager=new cp(e,ys,t=>this.createHostedView(t))}static create(e){return new Sc(e)}createHostedView(e){let t=e.create(this.view);return t.dom.classList.add("cm-tooltip-section"),this.dom.appendChild(t.dom),this.mounted&&t.mount&&t.mount(this.view),t}mount(e){for(let t of this.manager.tooltipViews)t.mount&&t.mount(e);this.mounted=!0}positioned(e){for(let t of this.manager.tooltipViews)t.positioned&&t.positioned(e)}update(e){this.manager.update(e)}}const cx=gc.compute([ys],O=>{let e=O.facet(ys).filter(t=>t);return e.length===0?null:{pos:Math.min(...e.map(t=>t.pos)),end:Math.max(...e.filter(t=>t.end!=null).map(t=>t.end)),create:Sc.create,above:e[0].above,arrow:e.some(t=>t.arrow)}});class hx{constructor(e,t,i,r,n){this.view=e,this.source=t,this.field=i,this.setHover=r,this.hoverTime=n,this.hoverTimeout=-1,this.restartTimeout=-1,this.pending=null,this.lastMove={x:0,y:0,target:e.dom,time:0},this.checkHover=this.checkHover.bind(this),e.dom.addEventListener("mouseleave",this.mouseleave=this.mouseleave.bind(this)),e.dom.addEventListener("mousemove",this.mousemove=this.mousemove.bind(this))}update(){this.pending&&(this.pending=null,clearTimeout(this.restartTimeout),this.restartTimeout=setTimeout(()=>this.startHover(),20))}get active(){return this.view.state.field(this.field)}checkHover(){if(this.hoverTimeout=-1,this.active)return;let e=Date.now()-this.lastMove.time;ei.bottom||e.xi.right+this.view.defaultCharacterWidth)return;let r=this.view.bidiSpans(this.view.state.doc.lineAt(t)).find(o=>o.from<=t&&o.to>=t),n=r&&r.dir==We.RTL?-1:1,s=this.source(this.view,t,e.x{this.pending==o&&(this.pending=null,a&&this.view.dispatch({effects:this.setHover.of(a)}))},a=>xt(this.view.state,a,"hover tooltip"))}else s&&this.view.dispatch({effects:this.setHover.of(s)})}mousemove(e){var t;this.lastMove={x:e.clientX,y:e.clientY,target:e.target,time:Date.now()},this.hoverTimeout<0&&(this.hoverTimeout=setTimeout(this.checkHover,this.hoverTime));let i=this.active;if(i&&!_f(this.lastMove.target)||this.pending){let{pos:r}=i||this.pending,n=(t=i==null?void 0:i.end)!==null&&t!==void 0?t:r;(r==n?this.view.posAtCoords(this.lastMove)!=r:!fx(this.view,r,n,e.clientX,e.clientY,6))&&(this.view.dispatch({effects:this.setHover.of(null)}),this.pending=null)}}mouseleave(e){clearTimeout(this.hoverTimeout),this.hoverTimeout=-1,this.active&&!_f(e.relatedTarget)&&this.view.dispatch({effects:this.setHover.of(null)})}destroy(){clearTimeout(this.hoverTimeout),this.view.dom.removeEventListener("mouseleave",this.mouseleave),this.view.dom.removeEventListener("mousemove",this.mousemove)}}function _f(O){for(let e=O;e;e=e.parentNode)if(e.nodeType==1&&e.classList.contains("cm-tooltip"))return!0;return!1}function fx(O,e,t,i,r,n){let s=document.createRange(),o=O.domAtPos(e),a=O.domAtPos(t);s.setEnd(a.node,a.offset),s.setStart(o.node,o.offset);let l=s.getClientRects();s.detach();for(let c=0;cys.from(r)});return[i,qe.define(r=>new hx(r,O,i,t,e.hoverTime||300)),cx]}function ux(O,e){let t=O.plugin(hp);if(!t)return null;let i=t.manager.tooltips.indexOf(e);return i<0?null:t.manager.tooltipViews[i]}const $x=B.define(),jf=_.define({combine(O){let e,t;for(let i of O)e=e||i.topContainer,t=t||i.bottomContainer;return{topContainer:e,bottomContainer:t}}});function Er(O,e){let t=O.plugin(fp),i=t?t.specs.indexOf(e):-1;return i>-1?t.panels[i]:null}const fp=qe.fromClass(class{constructor(O){this.input=O.state.facet(Ar),this.specs=this.input.filter(t=>t),this.panels=this.specs.map(t=>t(O));let e=O.state.facet(jf);this.top=new kn(O,!0,e.topContainer),this.bottom=new kn(O,!1,e.bottomContainer),this.top.sync(this.panels.filter(t=>t.top)),this.bottom.sync(this.panels.filter(t=>!t.top));for(let t of this.panels)t.dom.classList.add("cm-panel"),t.mount&&t.mount()}update(O){let e=O.state.facet(jf);this.top.container!=e.topContainer&&(this.top.sync([]),this.top=new kn(O.view,!0,e.topContainer)),this.bottom.container!=e.bottomContainer&&(this.bottom.sync([]),this.bottom=new kn(O.view,!1,e.bottomContainer)),this.top.syncClasses(),this.bottom.syncClasses();let t=O.state.facet(Ar);if(t!=this.input){let i=t.filter(a=>a),r=[],n=[],s=[],o=[];for(let a of i){let l=this.specs.indexOf(a),c;l<0?(c=a(O.view),o.push(c)):(c=this.panels[l],c.update&&c.update(O)),r.push(c),(c.top?n:s).push(c)}this.specs=i,this.panels=r,this.top.sync(n),this.bottom.sync(s);for(let a of o)a.dom.classList.add("cm-panel"),a.mount&&a.mount()}else for(let i of this.panels)i.update&&i.update(O)}destroy(){this.top.sync([]),this.bottom.sync([])}},{provide:O=>z.scrollMargins.of(e=>{let t=e.plugin(O);return t&&{top:t.top.scrollMargin(),bottom:t.bottom.scrollMargin()}})});class kn{constructor(e,t,i){this.view=e,this.top=t,this.container=i,this.dom=void 0,this.classes="",this.panels=[],this.syncClasses()}sync(e){for(let t of this.panels)t.destroy&&e.indexOf(t)<0&&t.destroy();this.panels=e,this.syncDOM()}syncDOM(){if(this.panels.length==0){this.dom&&(this.dom.remove(),this.dom=void 0);return}if(!this.dom){this.dom=document.createElement("div"),this.dom.className=this.top?"cm-panels cm-panels-top":"cm-panels cm-panels-bottom",this.dom.style[this.top?"top":"bottom"]="0";let t=this.container||this.view.dom;t.insertBefore(this.dom,this.top?t.firstChild:null)}let e=this.dom.firstChild;for(let t of this.panels)if(t.dom.parentNode==this.dom){for(;e!=t.dom;)e=Gf(e);e=e.nextSibling}else this.dom.insertBefore(t.dom,e);for(;e;)e=Gf(e)}scrollMargin(){return!this.dom||this.container?0:Math.max(0,this.top?this.dom.getBoundingClientRect().bottom-Math.max(0,this.view.scrollDOM.getBoundingClientRect().top):Math.min(innerHeight,this.view.scrollDOM.getBoundingClientRect().bottom)-this.dom.getBoundingClientRect().top)}syncClasses(){if(!(!this.container||this.classes==this.view.themeClasses)){for(let e of this.classes.split(" "))e&&this.container.classList.remove(e);for(let e of(this.classes=this.view.themeClasses).split(" "))e&&this.container.classList.add(e)}}}function Gf(O){let e=O.nextSibling;return O.remove(),e}const Ar=_.define({enables:fp});class XO extends fi{compare(e){return this==e||this.constructor==e.constructor&&this.eq(e)}eq(e){return!1}destroy(e){}}XO.prototype.elementClass="";XO.prototype.toDOM=void 0;XO.prototype.mapMode=Fe.TrackBefore;XO.prototype.startSide=XO.prototype.endSide=-1;XO.prototype.point=!0;const ns=_.define(),dx={class:"",renderEmptyElements:!1,elementStyle:"",markers:()=>ce.empty,lineMarker:()=>null,lineMarkerChange:null,initialSpacer:null,updateSpacer:null,domEventHandlers:{}},xr=_.define();function px(O){return[Qp(),xr.of(Object.assign(Object.assign({},dx),O))]}const Ql=_.define({combine:O=>O.some(e=>e)});function Qp(O){let e=[mx];return O&&O.fixed===!1&&e.push(Ql.of(!0)),e}const mx=qe.fromClass(class{constructor(O){this.view=O,this.prevViewport=O.viewport,this.dom=document.createElement("div"),this.dom.className="cm-gutters",this.dom.setAttribute("aria-hidden","true"),this.dom.style.minHeight=this.view.contentHeight+"px",this.gutters=O.state.facet(xr).map(e=>new If(O,e));for(let e of this.gutters)this.dom.appendChild(e.dom);this.fixed=!O.state.facet(Ql),this.fixed&&(this.dom.style.position="sticky"),this.syncGutters(!1),O.scrollDOM.insertBefore(this.dom,O.contentDOM)}update(O){if(this.updateGutters(O)){let e=this.prevViewport,t=O.view.viewport,i=Math.min(e.to,t.to)-Math.max(e.from,t.from);this.syncGutters(i<(t.to-t.from)*.8)}O.geometryChanged&&(this.dom.style.minHeight=this.view.contentHeight+"px"),this.view.state.facet(Ql)!=!this.fixed&&(this.fixed=!this.fixed,this.dom.style.position=this.fixed?"sticky":""),this.prevViewport=O.view.viewport}syncGutters(O){let e=this.dom.nextSibling;O&&this.dom.remove();let t=ce.iter(this.view.state.facet(ns),this.view.viewport.from),i=[],r=this.gutters.map(n=>new Px(n,this.view.viewport,-this.view.documentPadding.top));for(let n of this.view.viewportLineBlocks){let s;if(Array.isArray(n.type)){for(let o of n.type)if(o.type==$e.Text){s=o;break}}else s=n.type==$e.Text?n:void 0;if(s){i.length&&(i=[]),up(t,i,n.from);for(let o of r)o.line(this.view,s,i)}}for(let n of r)n.finish();O&&this.view.scrollDOM.insertBefore(this.dom,e)}updateGutters(O){let e=O.startState.facet(xr),t=O.state.facet(xr),i=O.docChanged||O.heightChanged||O.viewportChanged||!ce.eq(O.startState.facet(ns),O.state.facet(ns),O.view.viewport.from,O.view.viewport.to);if(e==t)for(let r of this.gutters)r.update(O)&&(i=!0);else{i=!0;let r=[];for(let n of t){let s=e.indexOf(n);s<0?r.push(new If(this.view,n)):(this.gutters[s].update(O),r.push(this.gutters[s]))}for(let n of this.gutters)n.dom.remove(),r.indexOf(n)<0&&n.destroy();for(let n of r)this.dom.appendChild(n.dom);this.gutters=r}return i}destroy(){for(let O of this.gutters)O.destroy();this.dom.remove()}},{provide:O=>z.scrollMargins.of(e=>{let t=e.plugin(O);return!t||t.gutters.length==0||!t.fixed?null:e.textDirection==We.LTR?{left:t.dom.offsetWidth}:{right:t.dom.offsetWidth}})});function Cf(O){return Array.isArray(O)?O:[O]}function up(O,e,t){for(;O.value&&O.from<=t;)O.from==t&&e.push(O.value),O.next()}class Px{constructor(e,t,i){this.gutter=e,this.height=i,this.i=0,this.cursor=ce.iter(e.markers,t.from)}line(e,t,i){let r=[];up(this.cursor,r,t.from),i.length&&(r=r.concat(i));let n=this.gutter.config.lineMarker(e,t,r);n&&r.unshift(n);let s=this.gutter;if(r.length==0&&!s.config.renderEmptyElements)return;let o=t.top-this.height;if(this.i==s.elements.length){let a=new $p(e,t.height,o,r);s.elements.push(a),s.dom.appendChild(a.dom)}else s.elements[this.i].update(e,t.height,o,r);this.height=t.bottom,this.i++}finish(){let e=this.gutter;for(;e.elements.length>this.i;){let t=e.elements.pop();e.dom.removeChild(t.dom),t.destroy()}}}class If{constructor(e,t){this.view=e,this.config=t,this.elements=[],this.spacer=null,this.dom=document.createElement("div"),this.dom.className="cm-gutter"+(this.config.class?" "+this.config.class:"");for(let i in t.domEventHandlers)this.dom.addEventListener(i,r=>{let n=r.target,s;if(n!=this.dom&&this.dom.contains(n)){for(;n.parentNode!=this.dom;)n=n.parentNode;let a=n.getBoundingClientRect();s=(a.top+a.bottom)/2}else s=r.clientY;let o=e.lineBlockAtHeight(s-e.documentTop);t.domEventHandlers[i](e,o,r)&&r.preventDefault()});this.markers=Cf(t.markers(e)),t.initialSpacer&&(this.spacer=new $p(e,0,0,[t.initialSpacer(e)]),this.dom.appendChild(this.spacer.dom),this.spacer.dom.style.cssText+="visibility: hidden; pointer-events: none")}update(e){let t=this.markers;if(this.markers=Cf(this.config.markers(e.view)),this.spacer&&this.config.updateSpacer){let r=this.config.updateSpacer(this.spacer.markers[0],e);r!=this.spacer.markers[0]&&this.spacer.update(e.view,0,0,[r])}let i=e.view.viewport;return!ce.eq(this.markers,t,i.from,i.to)||(this.config.lineMarkerChange?this.config.lineMarkerChange(e):!1)}destroy(){for(let e of this.elements)e.destroy()}}class $p{constructor(e,t,i,r){this.height=-1,this.above=0,this.markers=[],this.dom=document.createElement("div"),this.dom.className="cm-gutterElement",this.update(e,t,i,r)}update(e,t,i,r){this.height!=t&&(this.dom.style.height=(this.height=t)+"px"),this.above!=i&&(this.dom.style.marginTop=(this.above=i)?i+"px":""),gx(this.markers,r)||this.setMarkers(e,r)}setMarkers(e,t){let i="cm-gutterElement",r=this.dom.firstChild;for(let n=0,s=0;;){let o=s,a=nn(o,a,l)||s(o,a,l):s}return i}})}});class Ao extends XO{constructor(e){super(),this.number=e}eq(e){return this.number==e.number}toDOM(){return document.createTextNode(this.number)}}function Do(O,e){return O.state.facet(xi).formatNumber(e,O.state)}const Xx=xr.compute([xi],O=>({class:"cm-lineNumbers",renderEmptyElements:!1,markers(e){return e.state.facet(Sx)},lineMarker(e,t,i){return i.some(r=>r.toDOM)?null:new Ao(Do(e,e.state.doc.lineAt(t.from).number))},lineMarkerChange:e=>e.startState.facet(xi)!=e.state.facet(xi),initialSpacer(e){return new Ao(Do(e,Ef(e.state.doc.lines)))},updateSpacer(e,t){let i=Do(t.view,Ef(t.view.state.doc.lines));return i==e.number?e:new Ao(i)},domEventHandlers:O.facet(xi).domEventHandlers}));function yx(O={}){return[xi.of(O),Qp(),Xx]}function Ef(O){let e=9;for(;e{let e=[],t=-1;for(let i of O.selection.ranges){let r=O.doc.lineAt(i.head).from;r>t&&(t=r,e.push(xx.range(r)))}return ce.of(e)});function wx(){return bx}const dp=1024;let Wx=0;class Tt{constructor(e,t){this.from=e,this.to=t}}class M{constructor(e={}){this.id=Wx++,this.perNode=!!e.perNode,this.deserialize=e.deserialize||(()=>{throw new Error("This node type doesn't define a deserialize function")})}add(e){if(this.perNode)throw new RangeError("Can't add per-node props to node types");return typeof e!="function"&&(e=je.match(e)),t=>{let i=e(t);return i===void 0?null:[this,i]}}}M.closedBy=new M({deserialize:O=>O.split(" ")});M.openedBy=new M({deserialize:O=>O.split(" ")});M.group=new M({deserialize:O=>O.split(" ")});M.contextHash=new M({perNode:!0});M.lookAhead=new M({perNode:!0});M.mounted=new M({perNode:!0});class Tx{constructor(e,t,i){this.tree=e,this.overlay=t,this.parser=i}}const Yx=Object.create(null);class je{constructor(e,t,i,r=0){this.name=e,this.props=t,this.id=i,this.flags=r}static define(e){let t=e.props&&e.props.length?Object.create(null):Yx,i=(e.top?1:0)|(e.skipped?2:0)|(e.error?4:0)|(e.name==null?8:0),r=new je(e.name||"",t,e.id,i);if(e.props){for(let n of e.props)if(Array.isArray(n)||(n=n(r)),n){if(n[0].perNode)throw new RangeError("Can't store a per-node prop on a node type");t[n[0].id]=n[1]}}return r}prop(e){return this.props[e.id]}get isTop(){return(this.flags&1)>0}get isSkipped(){return(this.flags&2)>0}get isError(){return(this.flags&4)>0}get isAnonymous(){return(this.flags&8)>0}is(e){if(typeof e=="string"){if(this.name==e)return!0;let t=this.prop(M.group);return t?t.indexOf(e)>-1:!1}return this.id==e}static match(e){let t=Object.create(null);for(let i in e)for(let r of i.split(" "))t[r]=e[i];return i=>{for(let r=i.prop(M.group),n=-1;n<(r?r.length:0);n++){let s=t[n<0?i.name:r[n]];if(s)return s}}}}je.none=new je("",Object.create(null),0,8);class on{constructor(e){this.types=e;for(let t=0;t=r&&(s.type.isAnonymous||t(s)!==!1)){if(s.firstChild())continue;o=!0}for(;o&&i&&!s.type.isAnonymous&&i(s),!s.nextSibling();){if(!s.parent())return;o=!0}}}prop(e){return e.perNode?this.props?this.props[e.id]:void 0:this.type.prop(e)}get propValues(){let e=[];if(this.props)for(let t in this.props)e.push([+t,this.props[t]]);return e}balance(e={}){return this.children.length<=8?this:xc(je.none,this.children,this.positions,0,this.children.length,0,this.length,(t,i,r)=>new he(this.type,t,i,r,this.propValues),e.makeTree||((t,i,r)=>new he(je.none,t,i,r)))}static build(e){return qx(e)}}he.empty=new he(je.none,[],[],0);class Xc{constructor(e,t){this.buffer=e,this.index=t}get id(){return this.buffer[this.index-4]}get start(){return this.buffer[this.index-3]}get end(){return this.buffer[this.index-2]}get size(){return this.buffer[this.index-1]}get pos(){return this.index}next(){this.index-=4}fork(){return new Xc(this.buffer,this.index)}}class $i{constructor(e,t,i){this.buffer=e,this.length=t,this.set=i}get type(){return je.none}toString(){let e=[];for(let t=0;t0));a=s[a+3]);return o}slice(e,t,i){let r=this.buffer,n=new Uint16Array(t-e),s=0;for(let o=e,a=0;o=e&&te;case 1:return t<=e&&i>e;case 2:return i>e;case 4:return!0}}function mp(O,e){let t=O.childBefore(e);for(;t;){let i=t.lastChild;if(!i||i.to!=t.to)break;i.type.isError&&i.from==i.to?(O=t,t=i.prevSibling):t=i}return O}function Ei(O,e,t,i){for(var r;O.from==O.to||(t<1?O.from>=e:O.from>e)||(t>-1?O.to<=e:O.to0?o.length:-1;e!=l;e+=t){let c=o[e],h=a[e]+s.from;if(pp(r,i,h,h+c.length)){if(c instanceof $i){if(n&Pe.ExcludeBuffers)continue;let Q=c.findChild(0,c.buffer.length,t,i-h,r);if(Q>-1)return new iO(new vx(s,c,e,h),null,Q)}else if(n&Pe.IncludeAnonymous||!c.type.isAnonymous||yc(c)){let Q;if(!(n&Pe.IgnoreMounts)&&c.props&&(Q=c.prop(M.mounted))&&!Q.overlay)return new qt(Q.tree,h,e,s);let u=new qt(c,h,e,s);return n&Pe.IncludeAnonymous||!u.type.isAnonymous?u:u.nextChild(t<0?c.children.length-1:0,t,i,r)}}}if(n&Pe.IncludeAnonymous||!s.type.isAnonymous||(s.index>=0?e=s.index+t:e=t<0?-1:s._parent._tree.children.length,s=s._parent,!s))return null}}get firstChild(){return this.nextChild(0,1,0,4)}get lastChild(){return this.nextChild(this._tree.children.length-1,-1,0,4)}childAfter(e){return this.nextChild(0,1,e,2)}childBefore(e){return this.nextChild(this._tree.children.length-1,-1,e,-2)}enter(e,t,i=0){let r;if(!(i&Pe.IgnoreOverlays)&&(r=this._tree.prop(M.mounted))&&r.overlay){let n=e-this.from;for(let{from:s,to:o}of r.overlay)if((t>0?s<=n:s=n:o>n))return new qt(r.tree,r.overlay[0].from+this.from,-1,this)}return this.nextChild(0,1,e,t,i)}nextSignificantParent(){let e=this;for(;e.type.isAnonymous&&e._parent;)e=e._parent;return e}get parent(){return this._parent?this._parent.nextSignificantParent():null}get nextSibling(){return this._parent&&this.index>=0?this._parent.nextChild(this.index+1,1,0,4):null}get prevSibling(){return this._parent&&this.index>=0?this._parent.nextChild(this.index-1,-1,0,4):null}cursor(e=0){return new Dr(this,e)}get tree(){return this._tree}toTree(){return this._tree}resolve(e,t=0){return Ei(this,e,t,!1)}resolveInner(e,t=0){return Ei(this,e,t,!0)}enterUnfinishedNodesBefore(e){return mp(this,e)}getChild(e,t=null,i=null){let r=xs(this,e,t,i);return r.length?r[0]:null}getChildren(e,t=null,i=null){return xs(this,e,t,i)}toString(){return this._tree.toString()}get node(){return this}matchContext(e){return bs(this,e)}}function xs(O,e,t,i){let r=O.cursor(),n=[];if(!r.firstChild())return n;if(t!=null){for(;!r.type.is(t);)if(!r.nextSibling())return n}for(;;){if(i!=null&&r.type.is(i))return n;if(r.type.is(e)&&n.push(r.node),!r.nextSibling())return i==null?n:[]}}function bs(O,e,t=e.length-1){for(let i=O.parent;t>=0;i=i.parent){if(!i)return!1;if(!i.type.isAnonymous){if(e[t]&&e[t]!=i.name)return!1;t--}}return!0}class vx{constructor(e,t,i,r){this.parent=e,this.buffer=t,this.index=i,this.start=r}}class iO{get name(){return this.type.name}get from(){return this.context.start+this.context.buffer.buffer[this.index+1]}get to(){return this.context.start+this.context.buffer.buffer[this.index+2]}constructor(e,t,i){this.context=e,this._parent=t,this.index=i,this.type=e.buffer.set.types[e.buffer.buffer[i]]}child(e,t,i){let{buffer:r}=this.context,n=r.findChild(this.index+4,r.buffer[this.index+3],e,t-this.context.start,i);return n<0?null:new iO(this.context,this,n)}get firstChild(){return this.child(1,0,4)}get lastChild(){return this.child(-1,0,4)}childAfter(e){return this.child(1,e,2)}childBefore(e){return this.child(-1,e,-2)}enter(e,t,i=0){if(i&Pe.ExcludeBuffers)return null;let{buffer:r}=this.context,n=r.findChild(this.index+4,r.buffer[this.index+3],t>0?1:-1,e-this.context.start,t);return n<0?null:new iO(this.context,this,n)}get parent(){return this._parent||this.context.parent.nextSignificantParent()}externalSibling(e){return this._parent?null:this.context.parent.nextChild(this.context.index+e,e,0,4)}get nextSibling(){let{buffer:e}=this.context,t=e.buffer[this.index+3];return t<(this._parent?e.buffer[this._parent.index+3]:e.buffer.length)?new iO(this.context,this._parent,t):this.externalSibling(1)}get prevSibling(){let{buffer:e}=this.context,t=this._parent?this._parent.index+4:0;return this.index==t?this.externalSibling(-1):new iO(this.context,this._parent,e.findChild(t,this.index,-1,0,4))}cursor(e=0){return new Dr(this,e)}get tree(){return null}toTree(){let e=[],t=[],{buffer:i}=this.context,r=this.index+4,n=i.buffer[this.index+3];if(n>r){let s=i.buffer[this.index+1];e.push(i.slice(r,n,s)),t.push(0)}return new he(this.type,e,t,this.to-this.from)}resolve(e,t=0){return Ei(this,e,t,!1)}resolveInner(e,t=0){return Ei(this,e,t,!0)}enterUnfinishedNodesBefore(e){return mp(this,e)}toString(){return this.context.buffer.childString(this.index)}getChild(e,t=null,i=null){let r=xs(this,e,t,i);return r.length?r[0]:null}getChildren(e,t=null,i=null){return xs(this,e,t,i)}get node(){return this}matchContext(e){return bs(this,e)}}class Dr{get name(){return this.type.name}constructor(e,t=0){if(this.mode=t,this.buffer=null,this.stack=[],this.index=0,this.bufferNode=null,e instanceof qt)this.yieldNode(e);else{this._tree=e.context.parent,this.buffer=e.context;for(let i=e._parent;i;i=i._parent)this.stack.unshift(i.index);this.bufferNode=e,this.yieldBuf(e.index)}}yieldNode(e){return e?(this._tree=e,this.type=e.type,this.from=e.from,this.to=e.to,!0):!1}yieldBuf(e,t){this.index=e;let{start:i,buffer:r}=this.buffer;return this.type=t||r.set.types[r.buffer[e]],this.from=i+r.buffer[e+1],this.to=i+r.buffer[e+2],!0}yield(e){return e?e instanceof qt?(this.buffer=null,this.yieldNode(e)):(this.buffer=e.context,this.yieldBuf(e.index,e.type)):!1}toString(){return this.buffer?this.buffer.buffer.childString(this.index):this._tree.toString()}enterChild(e,t,i){if(!this.buffer)return this.yield(this._tree.nextChild(e<0?this._tree._tree.children.length-1:0,e,t,i,this.mode));let{buffer:r}=this.buffer,n=r.findChild(this.index+4,r.buffer[this.index+3],e,t-this.buffer.start,i);return n<0?!1:(this.stack.push(this.index),this.yieldBuf(n))}firstChild(){return this.enterChild(1,0,4)}lastChild(){return this.enterChild(-1,0,4)}childAfter(e){return this.enterChild(1,e,2)}childBefore(e){return this.enterChild(-1,e,-2)}enter(e,t,i=this.mode){return this.buffer?i&Pe.ExcludeBuffers?!1:this.enterChild(1,e,t):this.yield(this._tree.enter(e,t,i))}parent(){if(!this.buffer)return this.yieldNode(this.mode&Pe.IncludeAnonymous?this._tree._parent:this._tree.parent);if(this.stack.length)return this.yieldBuf(this.stack.pop());let e=this.mode&Pe.IncludeAnonymous?this.buffer.parent:this.buffer.parent.nextSignificantParent();return this.buffer=null,this.yieldNode(e)}sibling(e){if(!this.buffer)return this._tree._parent?this.yield(this._tree.index<0?null:this._tree._parent.nextChild(this._tree.index+e,e,0,4,this.mode)):!1;let{buffer:t}=this.buffer,i=this.stack.length-1;if(e<0){let r=i<0?0:this.stack[i]+4;if(this.index!=r)return this.yieldBuf(t.findChild(r,this.index,-1,0,4))}else{let r=t.buffer[this.index+3];if(r<(i<0?t.buffer.length:t.buffer[this.stack[i]+3]))return this.yieldBuf(r)}return i<0?this.yield(this.buffer.parent.nextChild(this.buffer.index+e,e,0,4,this.mode)):!1}nextSibling(){return this.sibling(1)}prevSibling(){return this.sibling(-1)}atLastNode(e){let t,i,{buffer:r}=this;if(r){if(e>0){if(this.index-1)for(let n=t+e,s=e<0?-1:i._tree.children.length;n!=s;n+=e){let o=i._tree.children[n];if(this.mode&Pe.IncludeAnonymous||o instanceof $i||!o.type.isAnonymous||yc(o))return!1}return!0}move(e,t){if(t&&this.enterChild(e,0,4))return!0;for(;;){if(this.sibling(e))return!0;if(this.atLastNode(e)||!this.parent())return!1}}next(e=!0){return this.move(1,e)}prev(e=!0){return this.move(-1,e)}moveTo(e,t=0){for(;(this.from==this.to||(t<1?this.from>=e:this.from>e)||(t>-1?this.to<=e:this.to=0;){for(let s=e;s;s=s._parent)if(s.index==r){if(r==this.index)return s;t=s,i=n+1;break e}r=this.stack[--n]}}for(let r=i;r=0;n--){if(n<0)return bs(this.node,e,r);let s=i[t.buffer[this.stack[n]]];if(!s.isAnonymous){if(e[r]&&e[r]!=s.name)return!1;r--}}return!0}}function yc(O){return O.children.some(e=>e instanceof $i||!e.type.isAnonymous||yc(e))}function qx(O){var e;let{buffer:t,nodeSet:i,maxBufferLength:r=dp,reused:n=[],minRepeatType:s=i.types.length}=O,o=Array.isArray(t)?new Xc(t,t.length):t,a=i.types,l=0,c=0;function h(b,Y,Z,E,Oe){let{id:H,start:N,end:oe,size:Xe}=o,Te=c;for(;Xe<0;)if(o.next(),Xe==-1){let F=n[H];Z.push(F),E.push(N-b);return}else if(Xe==-3){l=H;return}else if(Xe==-4){c=H;return}else throw new RangeError(`Unrecognized record size: ${Xe}`);let Ge=a[H],ke,ne,ie=N-b;if(oe-N<=r&&(ne=d(o.pos-Y,Oe))){let F=new Uint16Array(ne.size-ne.skip),fe=o.pos-ne.size,be=F.length;for(;o.pos>fe;)be=p(ne.start,F,be);ke=new $i(F,oe-ne.start,i),ie=ne.start-b}else{let F=o.pos-Xe;o.next();let fe=[],be=[],nt=H>=s?H:-1,Me=0,LO=oe;for(;o.pos>F;)nt>=0&&o.id==nt&&o.size>=0?(o.end<=LO-r&&(u(fe,be,N,Me,o.end,LO,nt,Te),Me=fe.length,LO=o.end),o.next()):h(N,F,fe,be,nt);if(nt>=0&&Me>0&&Me-1&&Me>0){let Qn=Q(Ge);ke=xc(Ge,fe,be,0,fe.length,0,oe-N,Qn,Qn)}else ke=$(Ge,fe,be,oe-N,Te-oe)}Z.push(ke),E.push(ie)}function Q(b){return(Y,Z,E)=>{let Oe=0,H=Y.length-1,N,oe;if(H>=0&&(N=Y[H])instanceof he){if(!H&&N.type==b&&N.length==E)return N;(oe=N.prop(M.lookAhead))&&(Oe=Z[H]+N.length+oe)}return $(b,Y,Z,E,Oe)}}function u(b,Y,Z,E,Oe,H,N,oe){let Xe=[],Te=[];for(;b.length>E;)Xe.push(b.pop()),Te.push(Y.pop()+Z-Oe);b.push($(i.types[N],Xe,Te,H-Oe,oe-H)),Y.push(Oe-Z)}function $(b,Y,Z,E,Oe=0,H){if(l){let N=[M.contextHash,l];H=H?[N].concat(H):[N]}if(Oe>25){let N=[M.lookAhead,Oe];H=H?[N].concat(H):[N]}return new he(b,Y,Z,E,H)}function d(b,Y){let Z=o.fork(),E=0,Oe=0,H=0,N=Z.end-r,oe={size:0,start:0,skip:0};e:for(let Xe=Z.pos-b;Z.pos>Xe;){let Te=Z.size;if(Z.id==Y&&Te>=0){oe.size=E,oe.start=Oe,oe.skip=H,H+=4,E+=4,Z.next();continue}let Ge=Z.pos-Te;if(Te<0||Ge=s?4:0,ne=Z.start;for(Z.next();Z.pos>Ge;){if(Z.size<0)if(Z.size==-3)ke+=4;else break e;else Z.id>=s&&(ke+=4);Z.next()}Oe=ne,E+=Te,H+=ke}return(Y<0||E==b)&&(oe.size=E,oe.start=Oe,oe.skip=H),oe.size>4?oe:void 0}function p(b,Y,Z){let{id:E,start:Oe,end:H,size:N}=o;if(o.next(),N>=0&&E4){let Xe=o.pos-(N-4);for(;o.pos>Xe;)Z=p(b,Y,Z)}Y[--Z]=oe,Y[--Z]=H-b,Y[--Z]=Oe-b,Y[--Z]=E}else N==-3?l=E:N==-4&&(c=E);return Z}let P=[],y=[];for(;o.pos>0;)h(O.start||0,O.bufferStart||0,P,y,-1);let x=(e=O.length)!==null&&e!==void 0?e:P.length?y[0]+P[0].length:0;return new he(a[O.topID],P.reverse(),y.reverse(),x)}const Df=new WeakMap;function ss(O,e){if(!O.isAnonymous||e instanceof $i||e.type!=O)return 1;let t=Df.get(e);if(t==null){t=1;for(let i of e.children){if(i.type!=O||!(i instanceof he)){t=1;break}t+=ss(O,i)}Df.set(e,t)}return t}function xc(O,e,t,i,r,n,s,o,a){let l=0;for(let $=i;$=c)break;Z+=E}if(x==b+1){if(Z>c){let E=$[b];u(E.children,E.positions,0,E.children.length,d[b]+y);continue}h.push($[b])}else{let E=d[x-1]+$[x-1].length-Y;h.push(xc(O,$,d,b,x,Y,E,null,a))}Q.push(Y+y-n)}}return u(e,t,i,r,0),(o||a)(h,Q,s)}class bc{constructor(){this.map=new WeakMap}setBuffer(e,t,i){let r=this.map.get(e);r||this.map.set(e,r=new Map),r.set(t,i)}getBuffer(e,t){let i=this.map.get(e);return i&&i.get(t)}set(e,t){e instanceof iO?this.setBuffer(e.context.buffer,e.index,t):e instanceof qt&&this.map.set(e.tree,t)}get(e){return e instanceof iO?this.getBuffer(e.context.buffer,e.index):e instanceof qt?this.map.get(e.tree):void 0}cursorSet(e,t){e.buffer?this.setBuffer(e.buffer.buffer,e.index,t):this.map.set(e.tree,t)}cursorGet(e){return e.buffer?this.getBuffer(e.buffer.buffer,e.index):this.map.get(e.tree)}}class gO{constructor(e,t,i,r,n=!1,s=!1){this.from=e,this.to=t,this.tree=i,this.offset=r,this.open=(n?1:0)|(s?2:0)}get openStart(){return(this.open&1)>0}get openEnd(){return(this.open&2)>0}static addTree(e,t=[],i=!1){let r=[new gO(0,e.length,e,0,!1,i)];for(let n of t)n.to>e.length&&r.push(n);return r}static applyChanges(e,t,i=128){if(!t.length)return e;let r=[],n=1,s=e.length?e[0]:null;for(let o=0,a=0,l=0;;o++){let c=o=i)for(;s&&s.from=Q.from||h<=Q.to||l){let u=Math.max(Q.from,a)-l,$=Math.min(Q.to,h)-l;Q=u>=$?null:new gO(u,$,Q.tree,Q.offset+l,o>0,!!c)}if(Q&&r.push(Q),s.to>h)break;s=nnew Tt(r.from,r.to)):[new Tt(0,0)]:[new Tt(0,e.length)],this.createParse(e,t||[],i)}parse(e,t,i){let r=this.startParse(e,t,i);for(;;){let n=r.advance();if(n)return n}}}class kx{constructor(e){this.string=e}get length(){return this.string.length}chunk(e){return this.string.slice(e)}get lineChunks(){return!1}read(e,t){return this.string.slice(e,t)}}function bO(O){return(e,t,i,r)=>new Rx(e,O,t,i,r)}class Mf{constructor(e,t,i,r,n){this.parser=e,this.parse=t,this.overlay=i,this.target=r,this.ranges=n}}class Zx{constructor(e,t,i,r,n,s,o){this.parser=e,this.predicate=t,this.mounts=i,this.index=r,this.start=n,this.target=s,this.prev=o,this.depth=0,this.ranges=[]}}const ul=new M({perNode:!0});class Rx{constructor(e,t,i,r,n){this.nest=t,this.input=i,this.fragments=r,this.ranges=n,this.inner=[],this.innerDone=0,this.baseTree=null,this.stoppedAt=null,this.baseParse=e}advance(){if(this.baseParse){let i=this.baseParse.advance();if(!i)return null;if(this.baseParse=null,this.baseTree=i,this.startInner(),this.stoppedAt!=null)for(let r of this.inner)r.parse.stopAt(this.stoppedAt)}if(this.innerDone==this.inner.length){let i=this.baseTree;return this.stoppedAt!=null&&(i=new he(i.type,i.children,i.positions,i.length,i.propValues.concat([[ul,this.stoppedAt]]))),i}let e=this.inner[this.innerDone],t=e.parse.advance();if(t){this.innerDone++;let i=Object.assign(Object.create(null),e.target.props);i[M.mounted.id]=new Tx(t,e.overlay,e.parser),e.target.props=i}return null}get parsedPos(){if(this.baseParse)return 0;let e=this.input.length;for(let t=this.innerDone;tc.frag.from<=r.from&&c.frag.to>=r.to&&c.mount.overlay);if(l)for(let c of l.mount.overlay){let h=c.from+l.pos,Q=c.to+l.pos;h>=r.from&&Q<=r.to&&!t.ranges.some(u=>u.fromh)&&t.ranges.push({from:h,to:Q})}}o=!1}else if(i&&(s=Ux(i.ranges,r.from,r.to)))o=s!=2;else if(!r.type.isAnonymous&&r.fromnew Tt(h.from-r.from,h.to-r.from)):null,r.tree,c)),n.overlay?c.length&&(i={ranges:c,depth:0,prev:i}):o=!1}}else t&&(a=t.predicate(r))&&(a===!0&&(a=new Tt(r.from,r.to)),a.fromnew Tt(c.from-t.start,c.to-t.start)),t.target,l)),t=t.prev}i&&!--i.depth&&(i=i.prev)}}}}function Ux(O,e,t){for(let i of O){if(i.from>=t)break;if(i.to>e)return i.from<=e&&i.to>=t?2:1}return 0}function Nf(O,e,t,i,r,n){if(e=e.to);i++);let s=r.children[i],o=s.buffer;function a(l,c,h,Q,u){let $=l;for(;o[$+2]+n<=e.from;)$=o[$+3];let d=[],p=[];Nf(s,l,$,d,p,Q);let P=o[$+1],y=o[$+2],x=P+n==e.from&&y+n==e.to&&o[$]==e.type.id;return d.push(x?e.toTree():a($+4,o[$+3],s.set.types[o[$]],P,y-P)),p.push(P-Q),Nf(s,o[$+3],c,d,p,Q),new he(h,d,p,u)}r.children[i]=a(0,o.length,je.none,0,s.length);for(let l=0;l<=t;l++)O.childAfter(e.from)}class Lf{constructor(e,t){this.offset=t,this.done=!1,this.cursor=e.cursor(Pe.IncludeAnonymous|Pe.IgnoreMounts)}moveTo(e){let{cursor:t}=this,i=e-this.offset;for(;!this.done&&t.from=e&&t.enter(i,1,Pe.IgnoreOverlays|Pe.ExcludeBuffers)||t.next(!1)||(this.done=!0)}hasNode(e){if(this.moveTo(e.from),!this.done&&this.cursor.from+this.offset==e.from&&this.cursor.tree)for(let t=this.cursor.tree;;){if(t==e.tree)return!0;if(t.children.length&&t.positions[0]==0&&t.children[0]instanceof he)t=t.children[0];else break}return!1}}let zx=class{constructor(e){var t;if(this.fragments=e,this.curTo=0,this.fragI=0,e.length){let i=this.curFrag=e[0];this.curTo=(t=i.tree.prop(ul))!==null&&t!==void 0?t:i.to,this.inner=new Lf(i.tree,-i.offset)}else this.curFrag=this.inner=null}hasNode(e){for(;this.curFrag&&e.from>=this.curTo;)this.nextFrag();return this.curFrag&&this.curFrag.from<=e.from&&this.curTo>=e.to&&this.inner.hasNode(e)}nextFrag(){var e;if(this.fragI++,this.fragI==this.fragments.length)this.curFrag=this.inner=null;else{let t=this.curFrag=this.fragments[this.fragI];this.curTo=(e=t.tree.prop(ul))!==null&&e!==void 0?e:t.to,this.inner=new Lf(t.tree,-t.offset)}}findMounts(e,t){var i;let r=[];if(this.inner){this.inner.cursor.moveTo(e,1);for(let n=this.inner.cursor.node;n;n=n.parent){let s=(i=n.tree)===null||i===void 0?void 0:i.prop(M.mounted);if(s&&s.parser==t)for(let o=this.fragI;o=n.to)break;a.tree==this.curFrag.tree&&r.push({frag:a,pos:n.from-a.offset,mount:s})}}}return r}};function Bf(O,e){let t=null,i=e;for(let r=1,n=0;r