| 249 | `}get readOnly(){return this.facet(kJ)}phrase(A,...t){for(let n of this.facet(i.phrases))if(Object.prototype.hasOwnProperty.call(n,A)){A=n[A];break}return t.length&&(A=A.replace(/\$(\$|\d*)/g,(n,o)=>{if(o=="$")return"$";let a=+(o||1);return!a||a>t.length?n:t[a-1]})),A}languageDataAt(A,t,n=-1){let o=[];for(let a of this.facet(SJ))for(let r of a(this,t,n))Object.prototype.hasOwnProperty.call(r,A)&&o.push(r[A]);return o}charCategorizer(A){let t=this.languageDataAt("wordChars",A);return JgA(t.length?t[0]:"")}wordAt(A){let{text:t,from:n,length:o}=this.doc.lineAt(A),a=this.charCategorizer(A),r=A-n,s=A-n;for(;r>0;){let l=tr(t,r,!1);if(a(t.slice(l,r))!=$o.Word)break;r=l}for(;s<o;){let l=tr(t,s);if(a(t.slice(s,l))!=$o.Word)break;s=l}return r==s?null:Be.range(r+n,s+n)}}return i.allowMultipleSelections=HM,i.tabSize=nt.define({combine:e=>e.length?e[0]:4}),i.lineSeparator=LJ,i.readOnly=kJ,i.phrases=nt.define({compare(e,A){let t=Object.keys(e),n=Object.keys(A);return t.length==n.length&&t.every(o=>e[o]==A[o])}}),i.languageData=SJ,i.changeFilter=GJ,i.transactionFilter=KJ,i.transactionExtender=UJ,i})();g0.reconfigure=ln.define();function Lr(i,e,A={}){let t={};for(let n of i)for(let o of Object.keys(n)){let a=n[o],r=t[o];if(r===void 0)t[o]=a;else if(!(r===a||a===void 0))if(Object.hasOwnProperty.call(A,o))t[o]=A[o](r,a);else throw new Error("Config merge conflict for field "+o)}for(let n in e)t[n]===void 0&&(t[n]=e[n]);return t}var cg=class{eq(e){return this==e}range(e,A=e){return ju.create(e,A,this)}};cg.prototype.startSide=cg.prototype.endSide=0;cg.prototype.point=!1;cg.prototype.mapMode=Wr.TrackDel;function a9(i,e){return i==e||i.constructor==e.constructor&&i.eq(e)}var ju=class i{constructor(e,A,t){this.from=e,this.to=A,this.value=t}static create(e,A,t){return new i(e,A,t)}};function e9(i,e){return i.from-e.from||i.value.startSide-e.value.startSide}var t9=class i{constructor(e,A,t,n){this.from=e,this.to=A,this.value=t,this.maxPoint=n}get length(){return this.to[this.to.length-1]}findIndex(e,A,t,n=0){let o=t?this.to:this.from;for(let a=n,r=o.length;;){if(a==r)return a;let s=a+r>>1,l=o[s]-e||(t?this.value[s].endSide:this.value[s].startSide)-A;if(s==a)return l>=0?a:r;l>=0?r=s:a=s+1}}between(e,A,t,n){for(let o=this.findIndex(A,-1e9,!0),a=this.findIndex(t,1e9,!1,o);o<a;o++)if(n(this.from[o]+e,this.to[o]+e,this.value[o])===!1)return!1}map(e,A){let t=[],n=[],o=[],a=-1,r=-1;for(let s=0;s<this.value.length;s++){let l=this.value[s],g=this.from[s]+e,C=this.to[s]+e,d,B;if(g==C){let u=A.mapPos(g,l.startSide,l.mapMode);if(u==null||(d=B=u,l.startSide!=l.endSide&&(B=A.mapPos(g,l.endSide),B<d)))continue}else if(d=A.mapPos(g,l.startSide),B=A.mapPos(C,l.endSide),d>B||d==B&&l.startSide>0&&l.endSide<=0)continue;(B-d||l.endSide-l.startSide)<0||(a<0&&(a=d),l.point&&(r=Math.max(r,B-d)),t.push(l),n.push(d-a),o.push(B-a))}return{mapped:t.length?new i(n,o,t,r):null,pos:a}}},uo=(()=>{class i{constructor(A,t,n,o){this.chunkPos=A,this.chunk=t,this.nextLayer=n,this.maxPoint=o}static create(A,t,n,o){return new i(A,t,n,o)}get length(){let A=this.chunk.length-1;return A<0?0:Math.max(this.chunkEnd(A),this.nextLayer.length)}get size(){if(this.isEmpty)return 0;let A=this.nextLayer.size;for(let t of this.chunk)A+=t.value.length;return A}chunkEnd(A){return this.chunkPos[A]+this.chunk[A].length}update(A){let{add:t=[],sort:n=!1,filterFrom:o=0,filterTo:a=this.length}=A,r=A.filter;if(t.length==0&&!r)return this;if(n&&(t=t.slice().sort(e9)),this.isEmpty)return t.length?i.of(t):this;let s=new L6(this,null,-1).goto(0),l=0,g=[],C=new Xr;for(;s.value||l<t.length;)if(l<t.length&&(s.from-t[l].from||s.startSide-t[l].value.startSide)>=0){let d=t[l++];C.addInner(d.from,d.to,d.value)||g.push(d)}else s.rangeIndex==1&&s.chunkIndex<this.chunk.length&&(l==t.length||this.chunkEnd(s.chunkIndex)<t[l].from)&&(!r||o>this.chunkEnd(s.chunkIndex)||a<this.chunkPos[s.chunkIndex])&&C.addChunk(this.chunkPos[s.chunkIndex],this.chunk[s.chunkIndex])?s.nextChunk():((!r||o>s.to||a<s.from||r(s.from,s.to,s.value))&&(C.addInner(s.from,s.to,s.value)||g.push(ju.create(s.from,s.to,s.value))),s.next());return C.finishInner(this.nextLayer.isEmpty&&!g.length?i.empty:this.nextLayer.update({add:g,filter:r,filterFrom:o,filterTo:a}))}map(A){if(A.empty||this.isEmpty)return this;let t=[],n=[],o=-1;for(let r=0;r<this.chunk.length;r++){let s=this.chunkPos[r],l=this.chunk[r],g=A.touchesRange(s,s+l.length);if(g===!1)o=Math.max(o,l.maxPoint),t.push(l),n.push(A.mapPos(s));else if(g===!0){let{mapped:C,pos:d}=l.map(s,A);C&&(o=Math.max(o,C.maxPoint),t.push(C),n.push(d))}}let a=this.nextLayer.map(A);return t.length==0?a:new i(n,t,a||i.empty,o)}between(A,t,n){if(!this.isEmpty){for(let o=0;o<this.chunk.length;o++){let a=this.chunkPos[o],r=this.chunk[o];if(t>=a&&A<=a+r.length&&r.between(a,A-a,t-a,n)===!1)return}this.nextLayer.between(A,t,n)}}iter(A=0){return Vu.from([this]).goto(A)}get isEmpty(){return this.nextLayer==this}static iter(A,t=0){return Vu.from(A).goto(t)}static compare(A,t,n,o,a=-1){let r=A.filter(d=>d.maxPoint>0||!d.isEmpty&&d.maxPoint>=a),s=t.filter(d=>d.maxPoint>0||!d.isEmpty&&d.maxPoint>=a),l=_J(r,s,n),g=new Ed(r,l,a),C=new Ed(s,l,a);n.iterGaps((d,B,u)=>xJ(g,d,C,B,u,o)),n.empty&&n.length==0&&xJ(g,0,C,0,0,o)}static eq(A,t,n=0,o){o==null&&(o=999999999);let a=A.filter(C=>!C.isEmpty&&t.indexOf(C)<0),r=t.filter(C=>!C.isEmpty&&A.indexOf(C)<0);if(a.length!=r.length)return!1;if(!a.length)return!0;let s=_J(a,r),l=new Ed(a,s,0).goto(n),g=new Ed(r,s,0).goto(n);for(;;){if(l.to!=g.to||!i9(l.active,g.active)||l.point&&(!g.point||!a9(l.point,g.point)))return!1;if(l.to>o)return!0;l.next(),g.next()}}static spans(A,t,n,o,a=-1){let r=new Ed(A,null,a).goto(t),s=t,l=r.openStart;for(;;){let g=Math.min(r.to,n);if(r.point){let C=r.activeForPoint(r.to),d=r.pointFrom<t?C.length+1:r.point.startSide<0?C.length:Math.min(C.length,l);o.point(s,g,r.point,C,d,r.pointRank),l=Math.min(r.openEnd(g),C.length)}else g>s&&(o.span(s,g,r.active,l),l=r.openEnd(g));if(r.to>n)return l+(r.point&&r.to>n?1:0);s=r.to,r.next()}}static of(A,t=!1){let n=new Xr;for(let o of A instanceof ju?[A]:t?YgA(A):A)n.add(o.from,o.to,o.value);return n.finish()}static join(A){if(!A.length)return i.empty;let t=A[A.length-1];for(let n=A.length-2;n>=0;n--)for(let o=A[n];o!=i.empty;o=o.nextLayer)t=new i(o.chunkPos,o.chunk,t,Math.max(o.maxPoint,t.maxPoint));return t}}return i.empty=new i([],[],null,-1),i})();function YgA(i){if(i.length>1)for(let e=i[0],A=1;A<i.length;A++){let t=i[A];if(e9(e,t)>0)return i.slice().sort(e9);e=t}return i}uo.empty.nextLayer=uo.empty;var Xr=class i{finishChunk(e){this.chunks.push(new t9(this.from,this.to,this.value,this.maxPoint)),this.chunkPos.push(this.chunkStart),this.chunkStart=-1,this.setMaxPoint=Math.max(this.setMaxPoint,this.maxPoint),this.maxPoint=-1,e&&(this.from=[],this.to=[],this.value=[])}constructor(){this.chunks=[],this.chunkPos=[],this.chunkStart=-1,this.last=null,this.lastFrom=-1e9,this.lastTo=-1e9,this.from=[],this.to=[],this.value=[],this.maxPoint=-1,this.setMaxPoint=-1,this.nextLayer=null}add(e,A,t){this.addInner(e,A,t)||(this.nextLayer||(this.nextLayer=new i)).add(e,A,t)}addInner(e,A,t){let n=e-this.lastTo||t.startSide-this.last.endSide;if(n<=0&&(e-this.lastFrom||t.startSide-this.last.startSide)<0)throw new Error("Ranges must be added sorted by `from` position and `startSide`");return n<0?!1:(this.from.length==250&&this.finishChunk(!0),this.chunkStart<0&&(this.chunkStart=e),this.from.push(e-this.chunkStart),this.to.push(A-this.chunkStart),this.last=t,this.lastFrom=e,this.lastTo=A,this.value.push(t),t.point&&(this.maxPoint=Math.max(this.maxPoint,A-e)),!0)}addChunk(e,A){if((e-this.lastTo||A.value[0].startSide-this.last.endSide)<0)return!1;this.from.length&&this.finishChunk(!0),this.setMaxPoint=Math.max(this.setMaxPoint,A.maxPoint),this.chunks.push(A),this.chunkPos.push(e);let t=A.value.length-1;return this.last=A.value[t],this.lastFrom=A.from[t]+e,this.lastTo=A.to[t]+e,!0}finish(){return this.finishInner(uo.empty)}finishInner(e){if(this.from.length&&this.finishChunk(!1),this.chunks.length==0)return e;let A=uo.create(this.chunkPos,this.chunks,this.nextLayer?this.nextLayer.finishInner(e):e,this.setMaxPoint);return this.from=null,A}};function _J(i,e,A){let t=new Map;for(let o of i)for(let a=0;a<o.chunk.length;a++)o.chunk[a].maxPoint<=0&&t.set(o.chunk[a],o.chunkPos[a]);let n=new Set;for(let o of e)for(let a=0;a<o.chunk.length;a++){let r=t.get(o.chunk[a]);r!=null&&(A?A.mapPos(r):r)==o.chunkPos[a]&&!A?.touchesRange(r,r+o.chunk[a].length)&&n.add(o.chunk[a])}return n}var L6=class{constructor(e,A,t,n=0){this.layer=e,this.skip=A,this.minPoint=t,this.rank=n}get startSide(){return this.value?this.value.startSide:0}get endSide(){return this.value?this.value.endSide:0}goto(e,A=-1e9){return this.chunkIndex=this.rangeIndex=0,this.gotoInner(e,A,!1),this}gotoInner(e,A,t){for(;this.chunkIndex<this.layer.chunk.length;){let n=this.layer.chunk[this.chunkIndex];if(!(this.skip&&this.skip.has(n)||this.layer.chunkEnd(this.chunkIndex)<e||n.maxPoint<this.minPoint))break;this.chunkIndex++,t=!1}if(this.chunkIndex<this.layer.chunk.length){let n=this.layer.chunk[this.chunkIndex].findIndex(e-this.layer.chunkPos[this.chunkIndex],A,!0);(!t||this.rangeIndex<n)&&this.setRangeIndex(n)}this.next()}forward(e,A){(this.to-e||this.endSide-A)<0&&this.gotoInner(e,A,!0)}next(){for(;;)if(this.chunkIndex==this.layer.chunk.length){this.from=this.to=1e9,this.value=null;break}else{let e=this.layer.chunkPos[this.chunkIndex],A=this.layer.chunk[this.chunkIndex],t=e+A.from[this.rangeIndex];if(this.from=t,this.to=e+A.to[this.rangeIndex],this.value=A.value[this.rangeIndex],this.setRangeIndex(this.rangeIndex+1),this.minPoint<0||this.value.point&&this.to-this.from>=this.minPoint)break}}setRangeIndex(e){if(e==this.layer.chunk[this.chunkIndex].value.length){if(this.chunkIndex++,this.skip)for(;this.chunkIndex<this.layer.chunk.length&&this.skip.has(this.layer.chunk[this.chunkIndex]);)this.chunkIndex++;this.rangeIndex=0}else this.rangeIndex=e}nextChunk(){this.chunkIndex++,this.rangeIndex=0,this.next()}compare(e){return this.from-e.from||this.startSide-e.startSide||this.rank-e.rank||this.to-e.to||this.endSide-e.endSide}},Vu=class i{constructor(e){this.heap=e}static from(e,A=null,t=-1){let n=[];for(let o=0;o<e.length;o++)for(let a=e[o];!a.isEmpty;a=a.nextLayer)a.maxPoint>=t&&n.push(new L6(a,A,t,o));return n.length==1?n[0]:new i(n)}get startSide(){return this.value?this.value.startSide:0}goto(e,A=-1e9){for(let t of this.heap)t.goto(e,A);for(let t=this.heap.length>>1;t>=0;t--)zM(this.heap,t);return this.next(),this}forward(e,A){for(let t of this.heap)t.forward(e,A);for(let t=this.heap.length>>1;t>=0;t--)zM(this.heap,t);(this.to-e||this.value.endSide-A)<0&&this.next()}next(){if(this.heap.length==0)this.from=this.to=1e9,this.value=null,this.rank=-1;else{let e=this.heap[0];this.from=e.from,this.to=e.to,this.value=e.value,this.rank=e.rank,e.value&&e.next(),zM(this.heap,0)}}};function zM(i,e){for(let A=i[e];;){let t=(e<<1)+1;if(t>=i.length)break;let n=i[t];if(t+1<i.length&&n.compare(i[t+1])>=0&&(n=i[t+1],t++),A.compare(n)<0)break;i[t]=A,i[e]=n,e=t}}var Ed=class{constructor(e,A,t){this.minPoint=t,this.active=[],this.activeTo=[],this.activeRank=[],this.minActive=-1,this.point=null,this.pointFrom=0,this.pointRank=0,this.to=-1e9,this.endSide=0,this.openStart=-1,this.cursor=Vu.from(e,A,t)}goto(e,A=-1e9){return this.cursor.goto(e,A),this.active.length=this.activeTo.length=this.activeRank.length=0,this.minActive=-1,this.to=e,this.endSide=A,this.openStart=-1,this.next(),this}forward(e,A){for(;this.minActive>-1&&(this.activeTo[this.minActive]-e||this.active[this.minActive].endSide-A)<0;)this.removeActive(this.minActive);this.cursor.forward(e,A)}removeActive(e){M6(this.active,e),M6(this.activeTo,e),M6(this.activeRank,e),this.minActive=RJ(this.active,this.activeTo)}addActive(e){let A=0,{value:t,to:n,rank:o}=this.cursor;for(;A<this.activeRank.length&&(o-this.activeRank[A]||n-this.activeTo[A])>0;)A++;S6(this.active,A,t),S6(this.activeTo,A,n),S6(this.activeRank,A,o),e&&S6(e,A,this.cursor.from),this.minActive=RJ(this.active,this.activeTo)}next(){let e=this.to,A=this.point;this.point=null;let t=this.openStart<0?[]:null;for(;;){let n=this.minActive;if(n>-1&&(this.activeTo[n]-this.cursor.from||this.active[n].endSide-this.cursor.startSide)<0){if(this.activeTo[n]>e){this.to=this.activeTo[n],this.endSide=this.active[n].endSide;break}this.removeActive(n),t&&M6(t,n)}else if(this.cursor.value)if(this.cursor.from>e){this.to=this.cursor.from,this.endSide=this.cursor.startSide;break}else{let o=this.cursor.value;if(!o.point)this.addActive(t),this.cursor.next();else if(A&&this.cursor.to==this.to&&this.cursor.from<this.cursor.to)this.cursor.next();else{this.point=o,this.pointFrom=this.cursor.from,this.pointRank=this.cursor.rank,this.to=this.cursor.to,this.endSide=o.endSide,this.cursor.next(),this.forward(this.to,this.endSide);break}}else{this.to=this.endSide=1e9;break}}if(t){this.openStart=0;for(let n=t.length-1;n>=0&&t[n]<e;n--)this.openStart++}}activeForPoint(e){if(!this.active.length)return this.active;let A=[];for(let t=this.active.length-1;t>=0&&!(this.activeRank[t]<this.pointRank);t--)(this.activeTo[t]>e||this.activeTo[t]==e&&this.active[t].endSide>=this.point.endSide)&&A.push(this.active[t]);return A.reverse()}openEnd(e){let A=0;for(let t=this.activeTo.length-1;t>=0&&this.activeTo[t]>e;t--)A++;return A}};function xJ(i,e,A,t,n,o){i.goto(e),A.goto(t);let a=t+n,r=t,s=t-e,l=!!o.boundChange;for(let g=!1;;){let C=i.to+s-A.to,d=C||i.endSide-A.endSide,B=d<0?i.to+s:A.to,u=Math.min(B,a);if(i.point||A.point?(i.point&&A.point&&a9(i.point,A.point)&&i9(i.activeForPoint(i.to),A.activeForPoint(A.to))||o.comparePoint(r,u,i.point,A.point),g=!1):(g&&o.boundChange(r),u>r&&!i9(i.active,A.active)&&o.compareRange(r,u,i.active,A.active),l&&u<a&&(C||i.openEnd(B)!=A.openEnd(B))&&(g=!0)),B>a)break;r=B,d<=0&&i.next(),d>=0&&A.next()}}function i9(i,e){if(i.length!=e.length)return!1;for(let A=0;A<i.length;A++)if(i[A]!=e[A]&&!a9(i[A],e[A]))return!1;return!0}function M6(i,e){for(let A=e,t=i.length-1;A<t;A++)i[A]=i[A+1];i.pop()}function S6(i,e,A){for(let t=i.length-1;t>=e;t--)i[t+1]=i[t];i[e]=A}function RJ(i,e){let A=-1,t=1e9;for(let n=0;n<e.length;n++)(e[n]-t||i[n].endSide-i[A].endSide)<0&&(A=n,t=e[n]);return A}function rC(i,e,A=i.length){let t=0;for(let n=0;n<A&&n<i.length;)i.charCodeAt(n)==9?(t+=e-t%e,n++):(t++,n=tr(i,n));return t}function G6(i,e,A,t){for(let n=0,o=0;;){if(o>=e)return n;if(n==i.length)break;o+=i.charCodeAt(n)==9?A-o%A:1,n=tr(i,n)}return t===!0?-1:i.length}var JJ=typeof Symbol>"u"?"__\u037C":Symbol.for("\u037C"),r9=typeof Symbol>"u"?"__styleSet"+Math.floor(Math.random()*1e8):Symbol("styleSet"),YJ=typeof globalThis<"u"?globalThis:typeof window<"u"?window:{},Cg=class{constructor(e,A){this.rules=[];let{finish:t}=A||{};function n(a){return/^@/.test(a)?[a]:a.split(/,\s*/)}function o(a,r,s,l){let g=[],C=/^@(\w+)\b/.exec(a[0]),d=C&&C[1]=="keyframes";if(C&&r==null)return s.push(a[0]+";");for(let B in r){let u=r[B];if(/&/.test(B))o(B.split(/,\s*/).map(E=>a.map(f=>E.replace(/&/,f))).reduce((E,f)=>E.concat(f)),u,s);else if(u&&typeof u=="object"){if(!C)throw new RangeError("The value of a property ("+B+") should be a primitive value.");o(n(B),u,g,d)}else u!=null&&g.push(B.replace(/_.*/,"").replace(/[A-Z]/g,E=>"-"+E.toLowerCase())+": "+u+";")}(g.length||d)&&s.push((t&&!C&&!l?a.map(t):a).join(", ")+" {"+g.join(" ")+"}")}for(let a in e)o(n(a),e[a],this.rules)}getRules(){return this.rules.join(` |
| 250 | `)}static newName(){let e=YJ[JJ]||1;return YJ[JJ]=e+1,"\u037C"+e.toString(36)}static mount(e,A,t){let n=e[r9],o=t&&t.nonce;n?o&&n.setNonce(o):n=new s9(e,o),n.mount(Array.isArray(A)?A:[A],e)}},HJ=new Map,s9=class{constructor(e,A){let t=e.ownerDocument||e,n=t.defaultView;if(!e.head&&e.adoptedStyleSheets&&n.CSSStyleSheet){let o=HJ.get(t);if(o)return e[r9]=o;this.sheet=new n.CSSStyleSheet,HJ.set(t,this)}else this.styleTag=t.createElement("style"),A&&this.styleTag.setAttribute("nonce",A);this.modules=[],e[r9]=this}mount(e,A){let t=this.sheet,n=0,o=0;for(let a=0;a<e.length;a++){let r=e[a],s=this.modules.indexOf(r);if(s<o&&s>-1&&(this.modules.splice(s,1),o--,s=-1),s==-1){if(this.modules.splice(o++,0,r),t)for(let l=0;l<r.rules.length;l++)t.insertRule(r.rules[l],n++)}else{for(;o<s;)n+=this.modules[o++].rules.length;n+=r.rules.length,o++}}if(t)A.adoptedStyleSheets.indexOf(this.sheet)<0&&(A.adoptedStyleSheets=[this.sheet,...A.adoptedStyleSheets]);else{let a="";for(let s=0;s<this.modules.length;s++)a+=this.modules[s].getRules()+` |
| 251 | `;this.styleTag.textContent=a;let r=A.head||A;this.styleTag.parentNode!=r&&r.insertBefore(this.styleTag,r.firstChild)}}setNonce(e){this.styleTag&&this.styleTag.getAttribute("nonce")!=e&&this.styleTag.setAttribute("nonce",e)}};var sC={8:"Backspace",9:"Tab",10:"Enter",12:"NumLock",13:"Enter",16:"Shift",17:"Control",18:"Alt",20:"CapsLock",27:"Escape",32:" ",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"ArrowLeft",38:"ArrowUp",39:"ArrowRight",40:"ArrowDown",44:"PrintScreen",45:"Insert",46:"Delete",59:";",61:"=",91:"Meta",92:"Meta",106:"*",107:"+",108:",",109:"-",110:".",111:"/",144:"NumLock",145:"ScrollLock",160:"Shift",161:"Shift",162:"Control",163:"Control",164:"Alt",165:"Alt",173:"-",186:";",187:"=",188:",",189:"-",190:".",191:"/",192:"`",219:"[",220:"\\",221:"]",222:"'"},WB={48:")",49:"!",50:"@",51:"#",52:"$",53:"%",54:"^",55:"&",56:"*",57:"(",59:":",61:"+",173:"_",186:":",187:"+",188:"<",189:"_",190:">",191:"?",192:"~",219:"{",220:"|",221:"}",222:'"'},HgA=typeof navigator<"u"&&/Mac/.test(navigator.platform),zgA=typeof navigator<"u"&&/MSIE \d|Trident\/(?:[7-9]|\d{2,})\..*rv:(\d+)/.exec(navigator.userAgent);for(lr=0;lr<10;lr++)sC[48+lr]=sC[96+lr]=String(lr);var lr;for(lr=1;lr<=24;lr++)sC[lr+111]="F"+lr;var lr;for(lr=65;lr<=90;lr++)sC[lr]=String.fromCharCode(lr+32),WB[lr]=String.fromCharCode(lr);var lr;for(K6 in sC)WB.hasOwnProperty(K6)||(WB[K6]=sC[K6]);var K6;function zJ(i){var e=HgA&&i.metaKey&&i.shiftKey&&!i.ctrlKey&&!i.altKey||zgA&&i.shiftKey&&i.key&&i.key.length==1||i.key=="Unidentified",A=!e&&i.key||(i.shiftKey?WB:sC)[i.keyCode]||i.key||"Unidentified";return A=="Esc"&&(A="Escape"),A=="Del"&&(A="Delete"),A=="Left"&&(A="ArrowLeft"),A=="Up"&&(A="ArrowUp"),A=="Right"&&(A="ArrowRight"),A=="Down"&&(A="ArrowDown"),A}function po(){var i=arguments[0];typeof i=="string"&&(i=document.createElement(i));var e=1,A=arguments[1];if(A&&typeof A=="object"&&A.nodeType==null&&!Array.isArray(A)){for(var t in A)if(Object.prototype.hasOwnProperty.call(A,t)){var n=A[t];typeof n=="string"?i.setAttribute(t,n):n!=null&&(i[t]=n)}e++}for(;e<arguments.length;e++)PJ(i,arguments[e]);return i}function PJ(i,e){if(typeof e=="string")i.appendChild(document.createTextNode(e));else if(e!=null)if(e.nodeType!=null)i.appendChild(e);else if(Array.isArray(e))for(var A=0;A<e.length;A++)PJ(i,e[A]);else throw new RangeError("Unsupported child node: "+e)}var Us=typeof navigator<"u"?navigator:{userAgent:"",vendor:"",platform:""},p9=typeof document<"u"?document:{documentElement:{style:{}}},f9=/Edge\/(\d+)/.exec(Us.userAgent),NY=/MSIE \d/.test(Us.userAgent),m9=/Trident\/(?:[7-9]|\d{2,})\..*rv:(\d+)/.exec(Us.userAgent),E8=!!(NY||m9||f9),jJ=!E8&&/gecko\/(\d+)/i.test(Us.userAgent),l9=!E8&&/Chrome\/(\d+)/.exec(Us.userAgent),VJ="webkitFontSmoothing"in p9.documentElement.style,w9=!E8&&/Apple Computer/.test(Us.vendor),qJ=w9&&(/Mobile\/\w+/.test(Us.userAgent)||Us.maxTouchPoints>2),Ct={mac:qJ||/Mac/.test(Us.platform),windows:/Win/.test(Us.platform),linux:/Linux|X11/.test(Us.platform),ie:E8,ie_version:NY?p9.documentMode||6:m9?+m9[1]:f9?+f9[1]:0,gecko:jJ,gecko_version:jJ?+(/Firefox\/(\d+)/.exec(Us.userAgent)||[0,0])[1]:0,chrome:!!l9,chrome_version:l9?+l9[1]:0,ios:qJ,android:/Android\b/.test(Us.userAgent),webkit:VJ,webkit_version:VJ?+(/\bAppleWebKit\/(\d+)/.exec(Us.userAgent)||[0,0])[1]:0,safari:w9,safari_version:w9?+(/\bVersion\/(\d+(\.\d+)?)/.exec(Us.userAgent)||[0,0])[1]:0,tabSize:p9.documentElement.style.tabSize!=null?"tab-size":"-moz-tab-size"};function IS(i,e){for(let A in i)A=="class"&&e.class?e.class+=" "+i.class:A=="style"&&e.style?e.style+=";"+i.style:e[A]=i[A];return e}var $6=Object.create(null);function BS(i,e,A){if(i==e)return!0;i||(i=$6),e||(e=$6);let t=Object.keys(i),n=Object.keys(e);if(t.length-(A&&t.indexOf(A)>-1?1:0)!=n.length-(A&&n.indexOf(A)>-1?1:0))return!1;for(let o of t)if(o!=A&&(n.indexOf(o)==-1||i[o]!==e[o]))return!1;return!0}function PgA(i,e){for(let A=i.attributes.length-1;A>=0;A--){let t=i.attributes[A].name;e[t]==null&&i.removeAttribute(t)}for(let A in e){let t=e[A];A=="style"?i.style.cssText=t:i.getAttribute(A)!=t&&i.setAttribute(A,t)}}function WJ(i,e,A){let t=!1;if(e)for(let n in e)A&&n in A||(t=!0,n=="style"?i.style.cssText="":i.removeAttribute(n));if(A)for(let n in A)e&&e[n]==A[n]||(t=!0,n=="style"?i.style.cssText=A[n]:i.setAttribute(n,A[n]));return t}function jgA(i){let e=Object.create(null);for(let A=0;A<i.attributes.length;A++){let t=i.attributes[A];e[t.name]=t.value}return e}var gl=class{eq(e){return!1}updateDOM(e,A,t){return!1}compare(e){return this==e||this.constructor==e.constructor&&this.eq(e)}get estimatedHeight(){return-1}get lineBreaks(){return 0}ignoreEvent(e){return!0}coordsAt(e,A,t){return null}get isHidden(){return!1}get editable(){return!1}destroy(e){}},As=(function(i){return i[i.Text=0]="Text",i[i.WidgetBefore=1]="WidgetBefore",i[i.WidgetAfter=2]="WidgetAfter",i[i.WidgetRange=3]="WidgetRange",i})(As||(As={})),Lt=class extends cg{constructor(e,A,t,n){super(),this.startSide=e,this.endSide=A,this.widget=t,this.spec=n}get heightRelevant(){return!1}static mark(e){return new s4(e)}static widget(e){let A=Math.max(-1e4,Math.min(1e4,e.side||0)),t=!!e.block;return A+=t&&!e.inlineOrder?A>0?3e8:-4e8:A>0?1e8:-1e8,new wd(e,A,A,t,e.widget||null,!1)}static replace(e){let A=!!e.block,t,n;if(e.isBlockGap)t=-5e8,n=4e8;else{let{start:o,end:a}=FY(e,A);t=(o?A?-3e8:-1:5e8)-1,n=(a?A?2e8:1:-6e8)+1}return new wd(e,t,n,A,e.widget||null,!0)}static line(e){return new l4(e)}static set(e,A=!1){return uo.of(e,A)}hasHeight(){return this.widget?this.widget.estimatedHeight>-1:!1}};Lt.none=uo.empty;var s4=class i extends Lt{constructor(e){let{start:A,end:t}=FY(e);super(A?-1:5e8,t?1:-6e8,null,e),this.tagName=e.tagName||"span",this.attrs=e.class&&e.attributes?IS(e.attributes,{class:e.class}):e.class?{class:e.class}:e.attributes||$6}eq(e){return this==e||e instanceof i&&this.tagName==e.tagName&&BS(this.attrs,e.attrs)}range(e,A=e){if(e>=A)throw new RangeError("Mark decorations may not be empty");return super.range(e,A)}};s4.prototype.point=!1;var l4=class i extends Lt{constructor(e){super(-2e8,-2e8,null,e)}eq(e){return e instanceof i&&this.spec.class==e.spec.class&&BS(this.spec.attributes,e.spec.attributes)}range(e,A=e){if(A!=e)throw new RangeError("Line decoration ranges must be zero-length");return super.range(e,A)}};l4.prototype.mapMode=Wr.TrackBefore;l4.prototype.point=!0;var wd=class i extends Lt{constructor(e,A,t,n,o,a){super(A,t,o,e),this.block=n,this.isReplace=a,this.mapMode=n?A<=0?Wr.TrackBefore:Wr.TrackAfter:Wr.TrackDel}get type(){return this.startSide!=this.endSide?As.WidgetRange:this.startSide<=0?As.WidgetBefore:As.WidgetAfter}get heightRelevant(){return this.block||!!this.widget&&(this.widget.estimatedHeight>=5||this.widget.lineBreaks>0)}eq(e){return e instanceof i&&VgA(this.widget,e.widget)&&this.block==e.block&&this.startSide==e.startSide&&this.endSide==e.endSide}range(e,A=e){if(this.isReplace&&(e>A||e==A&&this.startSide>0&&this.endSide<=0))throw new RangeError("Invalid range for replacement decoration");if(!this.isReplace&&A!=e)throw new RangeError("Widget decorations can only have zero-length ranges");return super.range(e,A)}};wd.prototype.point=!0;function FY(i,e=!1){let{inclusiveStart:A,inclusiveEnd:t}=i;return A==null&&(A=i.inclusive),t==null&&(t=i.inclusive),{start:A??e,end:t??e}}function VgA(i,e){return i==e||!!(i&&e&&i.compare(e))}function th(i,e,A,t=0){let n=A.length-1;n>=0&&A[n]+t>=i?A[n]=Math.max(A[n],e):A.push(i,e)}var A8=class i extends cg{constructor(e,A){super(),this.tagName=e,this.attributes=A}eq(e){return e==this||e instanceof i&&this.tagName==e.tagName&&BS(this.attributes,e.attributes)}static create(e){return new i(e.tagName,e.attributes||$6)}static set(e,A=!1){return uo.of(e,A)}};A8.prototype.startSide=A8.prototype.endSide=-1;function g4(i){let e;return i.nodeType==11?e=i.getSelection?i:i.ownerDocument:e=i,e.getSelection()}function y9(i,e){return e?i==e||i.contains(e.nodeType!=1?e.parentNode:e):!1}function $u(i,e){if(!e.anchorNode)return!1;try{return y9(i,e.anchorNode)}catch(A){return!1}}function V6(i){return i.nodeType==3?c4(i,0,i.nodeValue.length).getClientRects():i.nodeType==1?i.getClientRects():[]}function A4(i,e,A,t){return A?ZJ(i,e,A,t,-1)||ZJ(i,e,A,t,1):!1}function S2(i){for(var e=0;;e++)if(i=i.previousSibling,!i)return e}function e8(i){return i.nodeType==1&&/^(DIV|P|LI|UL|OL|BLOCKQUOTE|DD|DT|H\d|SECTION|PRE)$/.test(i.nodeName)}function ZJ(i,e,A,t,n){for(;;){if(i==A&&e==t)return!0;if(e==(n<0?0:cC(i))){if(i.nodeName=="DIV")return!1;let o=i.parentNode;if(!o||o.nodeType!=1)return!1;e=S2(i)+(n<0?0:1),i=o}else if(i.nodeType==1){if(i=i.childNodes[e+(n<0?-1:0)],i.nodeType==1&&i.contentEditable=="false")return!1;e=n<0?cC(i):0}else return!1}}function cC(i){return i.nodeType==3?i.nodeValue.length:i.childNodes.length}function t8(i,e){let A=e?i.left:i.right;return{left:A,right:A,top:i.top,bottom:i.bottom}}function qgA(i){let e=i.visualViewport;return e?{left:0,right:e.width,top:0,bottom:e.height}:{left:0,right:i.innerWidth,top:0,bottom:i.innerHeight}}function LY(i,e){let A=e.width/i.offsetWidth,t=e.height/i.offsetHeight;return(A>.995&&A<1.005||!isFinite(A)||Math.abs(e.width-i.offsetWidth)<1)&&(A=1),(t>.995&&t<1.005||!isFinite(t)||Math.abs(e.height-i.offsetHeight)<1)&&(t=1),{scaleX:A,scaleY:t}}function WgA(i,e,A,t,n,o,a,r){let s=i.ownerDocument,l=s.defaultView||window;for(let g=i,C=!1;g&&!C;)if(g.nodeType==1){let d,B=g==s.body,u=1,E=1;if(B)d=qgA(l);else{if(/^(fixed|sticky)$/.test(getComputedStyle(g).position)&&(C=!0),g.scrollHeight<=g.clientHeight&&g.scrollWidth<=g.clientWidth){g=g.assignedSlot||g.parentNode;continue}let v=g.getBoundingClientRect();({scaleX:u,scaleY:E}=LY(g,v)),d={left:v.left,right:v.left+g.clientWidth*u,top:v.top,bottom:v.top+g.clientHeight*E}}let f=0,m=0;if(n=="nearest")e.top<d.top?(m=e.top-(d.top+a),A>0&&e.bottom>d.bottom+m&&(m=e.bottom-d.bottom+a)):e.bottom>d.bottom&&(m=e.bottom-d.bottom+a,A<0&&e.top-m<d.top&&(m=e.top-(d.top+a)));else{let v=e.bottom-e.top,S=d.bottom-d.top;m=(n=="center"&&v<=S?e.top+v/2-S/2:n=="start"||n=="center"&&A<0?e.top-a:e.bottom-S+a)-d.top}if(t=="nearest"?e.left<d.left?(f=e.left-(d.left+o),A>0&&e.right>d.right+f&&(f=e.right-d.right+o)):e.right>d.right&&(f=e.right-d.right+o,A<0&&e.left<d.left+f&&(f=e.left-(d.left+o))):f=(t=="center"?e.left+(e.right-e.left)/2-(d.right-d.left)/2:t=="start"==r?e.left-o:e.right-(d.right-d.left)+o)-d.left,f||m)if(B)l.scrollBy(f,m);else{let v=0,S=0;if(m){let k=g.scrollTop;g.scrollTop+=m/E,S=(g.scrollTop-k)*E}if(f){let k=g.scrollLeft;g.scrollLeft+=f/u,v=(g.scrollLeft-k)*u}e={left:e.left-v,top:e.top-S,right:e.right-v,bottom:e.bottom-S},v&&Math.abs(v-f)<1&&(t="nearest"),S&&Math.abs(S-m)<1&&(n="nearest")}if(B)break;(e.top<d.top||e.bottom>d.bottom||e.left<d.left||e.right>d.right)&&(e={left:Math.max(e.left,d.left),right:Math.min(e.right,d.right),top:Math.max(e.top,d.top),bottom:Math.min(e.bottom,d.bottom)}),g=g.assignedSlot||g.parentNode}else if(g.nodeType==11)g=g.host;else break}function GY(i,e=!0){let A=i.ownerDocument,t=null,n=null;for(let o=i.parentNode;o&&!(o==A.body||(!e||t)&&n);)if(o.nodeType==1)!n&&o.scrollHeight>o.clientHeight&&(n=o),e&&!t&&o.scrollWidth>o.clientWidth&&(t=o),o=o.assignedSlot||o.parentNode;else if(o.nodeType==11)o=o.host;else break;return{x:t,y:n}}var D9=class{constructor(){this.anchorNode=null,this.anchorOffset=0,this.focusNode=null,this.focusOffset=0}eq(e){return this.anchorNode==e.anchorNode&&this.anchorOffset==e.anchorOffset&&this.focusNode==e.focusNode&&this.focusOffset==e.focusOffset}setRange(e){let{anchorNode:A,focusNode:t}=e;this.set(A,Math.min(e.anchorOffset,A?cC(A):0),t,Math.min(e.focusOffset,t?cC(t):0))}set(e,A,t,n){this.anchorNode=e,this.anchorOffset=A,this.focusNode=t,this.focusOffset=n}},pd=null;Ct.safari&&Ct.safari_version>=26&&(pd=!1);function KY(i){if(i.setActive)return i.setActive();if(pd)return i.focus(pd);let e=[];for(let A=i;A&&(e.push(A,A.scrollTop,A.scrollLeft),A!=A.ownerDocument);A=A.parentNode);if(i.focus(pd==null?{get preventScroll(){return pd={preventScroll:!0},!0}}:void 0),!pd){pd=!1;for(let A=0;A<e.length;){let t=e[A++],n=e[A++],o=e[A++];t.scrollTop!=n&&(t.scrollTop=n),t.scrollLeft!=o&&(t.scrollLeft=o)}}}var XJ;function c4(i,e,A=e){let t=XJ||(XJ=document.createRange());return t.setEnd(i,A),t.setStart(i,e),t}function ih(i,e,A,t){let n={key:e,code:e,keyCode:A,which:A,cancelable:!0};t&&({altKey:n.altKey,ctrlKey:n.ctrlKey,shiftKey:n.shiftKey,metaKey:n.metaKey}=t);let o=new KeyboardEvent("keydown",n);o.synthetic=!0,i.dispatchEvent(o);let a=new KeyboardEvent("keyup",n);return a.synthetic=!0,i.dispatchEvent(a),o.defaultPrevented||a.defaultPrevented}function ZgA(i){for(;i;){if(i&&(i.nodeType==9||i.nodeType==11&&i.host))return i;i=i.assignedSlot||i.parentNode}return null}function XgA(i,e){let A=e.focusNode,t=e.focusOffset;if(!A||e.anchorNode!=A||e.anchorOffset!=t)return!1;for(t=Math.min(t,cC(A));;)if(t){if(A.nodeType!=1)return!1;let n=A.childNodes[t-1];n.contentEditable=="false"?t--:(A=n,t=cC(A))}else{if(A==i)return!0;t=S2(A),A=A.parentNode}}function UY(i){return i instanceof Window?i.pageYOffset>Math.max(0,i.document.documentElement.scrollHeight-i.innerHeight-4):i.scrollTop>Math.max(1,i.scrollHeight-i.clientHeight-4)}function TY(i,e){for(let A=i,t=e;;){if(A.nodeType==3&&t>0)return{node:A,offset:t};if(A.nodeType==1&&t>0){if(A.contentEditable=="false")return null;A=A.childNodes[t-1],t=cC(A)}else if(A.parentNode&&!e8(A))t=S2(A),A=A.parentNode;else return null}}function OY(i,e){for(let A=i,t=e;;){if(A.nodeType==3&&t<A.nodeValue.length)return{node:A,offset:t};if(A.nodeType==1&&t<A.childNodes.length){if(A.contentEditable=="false")return null;A=A.childNodes[t],t=0}else if(A.parentNode&&!e8(A))t=S2(A)+1,A=A.parentNode;else return null}}var C0=class i{constructor(e,A,t=!0){this.node=e,this.offset=A,this.precise=t}static before(e,A){return new i(e.parentNode,S2(e),A)}static after(e,A){return new i(e.parentNode,S2(e)+1,A)}},Lo=(function(i){return i[i.LTR=0]="LTR",i[i.RTL=1]="RTL",i})(Lo||(Lo={})),yd=Lo.LTR,hS=Lo.RTL;function JY(i){let e=[];for(let A=0;A<i.length;A++)e.push(1<<+i[A]);return e}var $gA=JY("88888888888888888888888888888888888666888888787833333333337888888000000000000000000000000008888880000000000000000000000000088888888888888888888888888888888888887866668888088888663380888308888800000000000000000000000800000000000000000000000000000008"),AcA=JY("4444448826627288999999999992222222222222222222222222222222222222222222222229999999999999999999994444444444644222822222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222999999949999999229989999223333333333"),v9=Object.create(null),c0=[];for(let i of["()","[]","{}"]){let e=i.charCodeAt(0),A=i.charCodeAt(1);v9[e]=A,v9[A]=-e}function YY(i){return i<=247?$gA[i]:1424<=i&&i<=1524?2:1536<=i&&i<=1785?AcA[i-1536]:1774<=i&&i<=2220?4:8192<=i&&i<=8204?256:64336<=i&&i<=65023?4:1}var ecA=/[\u0590-\u05f4\u0600-\u06ff\u0700-\u08ac\ufb50-\ufdff]/,Bg=class{get dir(){return this.level%2?hS:yd}constructor(e,A,t){this.from=e,this.to=A,this.level=t}side(e,A){return this.dir==A==e?this.to:this.from}forward(e,A){return e==(this.dir==A)}static find(e,A,t,n){let o=-1;for(let a=0;a<e.length;a++){let r=e[a];if(r.from<=A&&r.to>=A){if(r.level==t)return a;(o<0||(n!=0?n<0?r.from<A:r.to>A:e[o].level>r.level))&&(o=a)}}if(o<0)throw new RangeError("Index out of range");return o}};function HY(i,e){if(i.length!=e.length)return!1;for(let A=0;A<i.length;A++){let t=i[A],n=e[A];if(t.from!=n.from||t.to!=n.to||t.direction!=n.direction||!HY(t.inner,n.inner))return!1}return!0}var la=[];function tcA(i,e,A,t,n){for(let o=0;o<=t.length;o++){let a=o?t[o-1].to:e,r=o<t.length?t[o].from:A,s=o?256:n;for(let l=a,g=s,C=s;l<r;l++){let d=YY(i.charCodeAt(l));d==512?d=g:d==8&&C==4&&(d=16),la[l]=d==4?2:d,d&7&&(C=d),g=d}for(let l=a,g=s,C=s;l<r;l++){let d=la[l];if(d==128)l<r-1&&g==la[l+1]&&g&24?d=la[l]=g:la[l]=256;else if(d==64){let B=l+1;for(;B<r&&la[B]==64;)B++;let u=l&&g==8||B<A&&la[B]==8?C==1?1:8:256;for(let E=l;E<B;E++)la[E]=u;l=B-1}else d==8&&C==1&&(la[l]=1);g=d,d&7&&(C=d)}}}function icA(i,e,A,t,n){let o=n==1?2:1;for(let a=0,r=0,s=0;a<=t.length;a++){let l=a?t[a-1].to:e,g=a<t.length?t[a].from:A;for(let C=l,d,B,u;C<g;C++)if(B=v9[d=i.charCodeAt(C)])if(B<0){for(let E=r-3;E>=0;E-=3)if(c0[E+1]==-B){let f=c0[E+2],m=f&2?n:f&4?f&1?o:n:0;m&&(la[C]=la[c0[E]]=m),r=E;break}}else{if(c0.length==189)break;c0[r++]=C,c0[r++]=d,c0[r++]=s}else if((u=la[C])==2||u==1){let E=u==n;s=E?0:1;for(let f=r-3;f>=0;f-=3){let m=c0[f+2];if(m&2)break;if(E)c0[f+2]|=2;else{if(m&4)break;c0[f+2]|=4}}}}}function ncA(i,e,A,t){for(let n=0,o=t;n<=A.length;n++){let a=n?A[n-1].to:i,r=n<A.length?A[n].from:e;for(let s=a;s<r;){let l=la[s];if(l==256){let g=s+1;for(;;)if(g==r){if(n==A.length)break;g=A[n++].to,r=n<A.length?A[n].from:e}else if(la[g]==256)g++;else break;let C=o==1,d=(g<e?la[g]:t)==1,B=C==d?C?1:2:t;for(let u=g,E=n,f=E?A[E-1].to:i;u>s;)u==f&&(u=A[--E].from,f=E?A[E-1].to:i),la[--u]=B;s=g}else o=l,s++}}}function b9(i,e,A,t,n,o,a){let r=t%2?2:1;if(t%2==n%2)for(let s=e,l=0;s<A;){let g=!0,C=!1;if(l==o.length||s<o[l].from){let E=la[s];E!=r&&(g=!1,C=E==16)}let d=!g&&r==1?[]:null,B=g?t:t+1,u=s;A:for(;;)if(l<o.length&&u==o[l].from){if(C)break A;let E=o[l];if(!g)for(let f=E.to,m=l+1;;){if(f==A)break A;if(m<o.length&&o[m].from==f)f=o[m++].to;else{if(la[f]==r)break A;break}}if(l++,d)d.push(E);else{E.from>s&&a.push(new Bg(s,E.from,B));let f=E.direction==yd!=!(B%2);M9(i,f?t+1:t,n,E.inner,E.from,E.to,a),s=E.to}u=E.to}else{if(u==A||(g?la[u]!=r:la[u]==r))break;u++}d?b9(i,s,u,t+1,n,d,a):s<u&&a.push(new Bg(s,u,B)),s=u}else for(let s=A,l=o.length;s>e;){let g=!0,C=!1;if(!l||s>o[l-1].to){let E=la[s-1];E!=r&&(g=!1,C=E==16)}let d=!g&&r==1?[]:null,B=g?t:t+1,u=s;A:for(;;)if(l&&u==o[l-1].to){if(C)break A;let E=o[--l];if(!g)for(let f=E.from,m=l;;){if(f==e)break A;if(m&&o[m-1].to==f)f=o[--m].from;else{if(la[f-1]==r)break A;break}}if(d)d.push(E);else{E.to<s&&a.push(new Bg(E.to,s,B));let f=E.direction==yd!=!(B%2);M9(i,f?t+1:t,n,E.inner,E.from,E.to,a),s=E.from}u=E.from}else{if(u==e||(g?la[u-1]!=r:la[u-1]==r))break;u--}d?b9(i,u,s,t+1,n,d,a):u<s&&a.push(new Bg(u,s,B)),s=u}}function M9(i,e,A,t,n,o,a){let r=e%2?2:1;tcA(i,n,o,t,r),icA(i,n,o,t,r),ncA(n,o,t,r),b9(i,n,o,e,A,t,a)}function ocA(i,e,A){if(!i)return[new Bg(0,0,e==hS?1:0)];if(e==yd&&!A.length&&!ecA.test(i))return zY(i.length);if(A.length)for(;i.length>la.length;)la[la.length]=256;let t=[],n=e==yd?0:1;return M9(i,n,n,A,0,i.length,t),t}function zY(i){return[new Bg(0,i,0)]}var PY="";function acA(i,e,A,t,n){var o;let a=t.head-i.from,r=Bg.find(e,a,(o=t.bidiLevel)!==null&&o!==void 0?o:-1,t.assoc),s=e[r],l=s.side(n,A);if(a==l){let d=r+=n?1:-1;if(d<0||d>=e.length)return null;s=e[r=d],a=s.side(!n,A),l=s.side(n,A)}let g=tr(i.text,a,s.forward(n,A));(g<s.from||g>s.to)&&(g=l),PY=i.text.slice(Math.min(a,g),Math.max(a,g));let C=r==(n?e.length-1:0)?null:e[r+(n?1:-1)];return C&&g==l&&C.level+(n?0:1)<s.level?Be.cursor(C.side(!n,A)+i.from,C.forward(n,A)?1:-1,C.level):Be.cursor(g+i.from,s.forward(n,A)?-1:1,s.level)}function rcA(i,e,A){for(let t=e;t<A;t++){let n=YY(i.charCodeAt(t));if(n==1)return yd;if(n==2||n==4)return hS}return yd}var jY=nt.define(),VY=nt.define(),qY=nt.define(),WY=nt.define(),g9=nt.define(),ZY=nt.define(),XY=nt.define(),ES=nt.define(),QS=nt.define(),$J=nt.define({combine:i=>i.some(e=>e)}),$Y=nt.define({combine:i=>i.some(e=>e)}),AH=nt.define(),e4=class i{constructor(e,A="nearest",t="nearest",n=5,o=5,a=!1){this.range=e,this.y=A,this.x=t,this.yMargin=n,this.xMargin=o,this.isSnapshot=a}map(e){return e.empty?this:new i(this.range.map(e),this.y,this.x,this.yMargin,this.xMargin,this.isSnapshot)}clip(e){return this.range.to<=e.doc.length?this:new i(Be.cursor(e.doc.length),this.y,this.x,this.yMargin,this.xMargin,this.isSnapshot)}},U6=ln.define({map:(i,e)=>i.map(e)}),eH=ln.define();function Gr(i,e,A){let t=i.facet(WY);t.length?t[0](e):window.onerror&&window.onerror(String(e),A,void 0,void 0,e)||(A?console.error(A+":",e):console.error(e))}var lC=nt.define({combine:i=>i.length?i[0]:!0}),scA=0,XB=nt.define({combine(i){return i.filter((e,A)=>{for(let t=0;t<A;t++)if(i[t].plugin==e.plugin)return!1;return!0})}}),Po=class i{constructor(e,A,t,n,o){this.id=e,this.create=A,this.domEventHandlers=t,this.domEventObservers=n,this.baseExtensions=o(this),this.extension=this.baseExtensions.concat(XB.of({plugin:this,arg:void 0}))}of(e){return this.baseExtensions.concat(XB.of({plugin:this,arg:e}))}static define(e,A){let{eventHandlers:t,eventObservers:n,provide:o,decorations:a}=A||{};return new i(scA++,e,t,n,r=>{let s=[];return a&&s.push(Q8.of(l=>{let g=l.plugin(r);return g?a(g):Lt.none})),o&&s.push(o(r)),s})}static fromClass(e,A){return i.define((t,n)=>new e(t,n),A)}},t4=class{constructor(e){this.spec=e,this.mustUpdate=null,this.value=null}get plugin(){return this.spec&&this.spec.plugin}update(e){if(this.value){if(this.mustUpdate){let A=this.mustUpdate;if(this.mustUpdate=null,this.value.update)try{this.value.update(A)}catch(t){if(Gr(A.state,t,"CodeMirror plugin crashed"),this.value.destroy)try{this.value.destroy()}catch(n){}this.deactivate()}}}else if(this.spec)try{this.value=this.spec.plugin.create(e,this.spec.arg)}catch(A){Gr(e.state,A,"CodeMirror plugin crashed"),this.deactivate()}return this}destroy(e){var A;if(!((A=this.value)===null||A===void 0)&&A.destroy)try{this.value.destroy()}catch(t){Gr(e.state,t,"CodeMirror plugin crashed")}}deactivate(){this.spec=this.value=null}},AY=nt.define(),S9=nt.define(),Q8=nt.define(),tH=nt.define(),uS=nt.define(),C4=nt.define(),iH=nt.define();function eY(i,e){let A=i.state.facet(iH);if(!A.length)return A;let t=A.map(o=>o instanceof Function?o(i):o),n=[];return uo.spans(t,e.from,e.to,{point(){},span(o,a,r,s){let l=o-e.from,g=a-e.from,C=n;for(let d=r.length-1;d>=0;d--,s--){let B=r[d].spec.bidiIsolate,u;if(B==null&&(B=rcA(e.text,l,g)),s>0&&C.length&&(u=C[C.length-1]).to==l&&u.direction==B)u.to=g,C=u.inner;else{let E={from:l,to:g,direction:B,inner:[]};C.push(E),C=E.inner}}}}),n}var nH=nt.define();function pS(i){let e=0,A=0,t=0,n=0;for(let o of i.state.facet(nH)){let a=o(i);a&&(a.left!=null&&(e=Math.max(e,a.left)),a.right!=null&&(A=Math.max(A,a.right)),a.top!=null&&(t=Math.max(t,a.top)),a.bottom!=null&&(n=Math.max(n,a.bottom)))}return{left:e,right:A,top:t,bottom:n}}var Wu=nt.define(),rc=class i{constructor(e,A,t,n){this.fromA=e,this.toA=A,this.fromB=t,this.toB=n}join(e){return new i(Math.min(this.fromA,e.fromA),Math.max(this.toA,e.toA),Math.min(this.fromB,e.fromB),Math.max(this.toB,e.toB))}addToSet(e){let A=e.length,t=this;for(;A>0;A--){let n=e[A-1];if(!(n.fromA>t.toA)){if(n.toA<t.fromA)break;t=t.join(n),e.splice(A-1,1)}}return e.splice(A,0,t),e}static extendWithRanges(e,A){if(A.length==0)return e;let t=[];for(let n=0,o=0,a=0;;){let r=n<e.length?e[n].fromB:1e9,s=o<A.length?A[o]:1e9,l=Math.min(r,s);if(l==1e9)break;let g=l+a,C=l,d=g;for(;;)if(o<A.length&&A[o]<=C){let B=A[o+1];o+=2,C=Math.max(C,B);for(let u=n;u<e.length&&e[u].fromB<=C;u++)a=e[u].toA-e[u].toB;d=Math.max(d,B+a)}else if(n<e.length&&e[n].fromB<=C){let B=e[n++];C=Math.max(C,B.toB),d=Math.max(d,B.toA),a=B.toA-B.toB}else break;t.push(new i(g,d,l,C))}return t}},i8=class i{constructor(e,A,t){this.view=e,this.state=A,this.transactions=t,this.flags=0,this.startState=e.state,this.changes=Zr.empty(this.startState.doc.length);for(let o of t)this.changes=this.changes.compose(o.changes);let n=[];this.changes.iterChangedRanges((o,a,r,s)=>n.push(new rc(o,a,r,s))),this.changedRanges=n}static create(e,A,t){return new i(e,A,t)}get viewportChanged(){return(this.flags&4)>0}get viewportMoved(){return(this.flags&8)>0}get heightChanged(){return(this.flags&2)>0}get geometryChanged(){return this.docChanged||(this.flags&18)>0}get focusChanged(){return(this.flags&1)>0}get docChanged(){return!this.changes.empty}get selectionSet(){return this.transactions.some(e=>e.selection)}get empty(){return this.flags==0&&this.transactions.length==0}},lcA=[],_a=class{constructor(e,A,t=0){this.dom=e,this.length=A,this.flags=t,this.parent=null,e.cmTile=this}get breakAfter(){return this.flags&1}get children(){return lcA}isWidget(){return!1}get isHidden(){return!1}isComposite(){return!1}isLine(){return!1}isText(){return!1}isBlock(){return!1}get domAttrs(){return null}sync(e){if(this.flags|=2,this.flags&4){this.flags&=-5;let A=this.domAttrs;A&&PgA(this.dom,A)}}toString(){return this.constructor.name+(this.children.length?`(${this.children})`:"")+(this.breakAfter?"#":"")}destroy(){this.parent=null}setDOM(e){this.dom=e,e.cmTile=this}get posAtStart(){return this.parent?this.parent.posBefore(this):0}get posAtEnd(){return this.posAtStart+this.length}posBefore(e,A=this.posAtStart){let t=A;for(let n of this.children){if(n==e)return t;t+=n.length+n.breakAfter}throw new RangeError("Invalid child in posBefore")}posAfter(e){return this.posBefore(e)+e.length}covers(e){return!0}coordsIn(e,A){return null}domPosFor(e,A){let t=S2(this.dom),n=this.length?e>0:A>0;return new C0(this.parent.dom,t+(n?1:0),e==0||e==this.length)}markDirty(e){this.flags&=-3,e&&(this.flags|=4),this.parent&&this.parent.flags&2&&this.parent.markDirty(!1)}get overrideDOMText(){return null}get root(){for(let e=this;e;e=e.parent)if(e instanceof oh)return e;return null}static get(e){return e.cmTile}},nh=class extends _a{constructor(e){super(e,0),this._children=[]}isComposite(){return!0}get children(){return this._children}get lastChild(){return this.children.length?this.children[this.children.length-1]:null}append(e){this.children.push(e),e.parent=this}sync(e){if(this.flags&2)return;super.sync(e);let A=this.dom,t=null,n,o=e?.node==A?e:null,a=0;for(let r of this.children){if(r.sync(e),a+=r.length+r.breakAfter,n=t?t.nextSibling:A.firstChild,o&&n!=r.dom&&(o.written=!0),r.dom.parentNode==A)for(;n&&n!=r.dom;)n=tY(n);else A.insertBefore(r.dom,n);t=r.dom}for(n=t?t.nextSibling:A.firstChild,o&&n&&(o.written=!0);n;)n=tY(n);this.length=a}};function tY(i){let e=i.nextSibling;return i.parentNode.removeChild(i),e}var oh=class extends nh{constructor(e,A){super(A),this.view=e}owns(e){for(;e;e=e.parent)if(e==this)return!0;return!1}isBlock(){return!0}nearest(e){for(;;){if(!e)return null;let A=_a.get(e);if(A&&this.owns(A))return A;e=e.parentNode}}blockTiles(e){for(let A=[],t=this,n=0,o=0;;)if(n==t.children.length){if(!A.length)return;t=t.parent,t.breakAfter&&o++,n=A.pop()}else{let a=t.children[n++];if(a instanceof gC)A.push(n),t=a,n=0;else{let r=o+a.length,s=e(a,o);if(s!==void 0)return s;o=r+a.breakAfter}}}resolveBlock(e,A){let t,n=-1,o,a=-1;if(this.blockTiles((r,s)=>{let l=s+r.length;if(e>=s&&e<=l){if(r.isWidget()&&A>=-1&&A<=1){if(r.flags&32)return!0;r.flags&16&&(t=void 0)}(s<e||e==l&&(A<-1?r.length:r.covers(1)))&&(!t||!r.isWidget()&&t.isWidget())&&(t=r,n=e-s),(l>e||e==s&&(A>1?r.length:r.covers(-1)))&&(!o||!r.isWidget()&&o.isWidget())&&(o=r,a=e-s)}}),!t&&!o)throw new Error("No tile at position "+e);return t&&A<0||!o?{tile:t,offset:n}:{tile:o,offset:a}}},gC=class i extends nh{constructor(e,A){super(e),this.wrapper=A}isBlock(){return!0}covers(e){return this.children.length?e<0?this.children[0].covers(-1):this.lastChild.covers(1):!1}get domAttrs(){return this.wrapper.attributes}static of(e,A){let t=new i(A||document.createElement(e.tagName),e);return A||(t.flags|=4),t}},ah=class i extends nh{constructor(e,A){super(e),this.attrs=A}isLine(){return!0}static start(e,A,t){let n=new i(A||document.createElement("div"),e);return(!A||!t)&&(n.flags|=4),n}get domAttrs(){return this.attrs}resolveInline(e,A,t){let n=null,o=-1,a=null,r=-1;function s(g,C){for(let d=0,B=0;d<g.children.length&&B<=C;d++){let u=g.children[d],E=B+u.length;E>=C&&(u.isComposite()?s(u,C-B):(!a||a.isHidden&&(A>0||t&&ccA(a,u)))&&(E>C||u.flags&32)?(a=u,r=C-B):(B<C||u.flags&16&&!u.isHidden)&&(n=u,o=C-B)),B=E}}s(this,e);let l=(A<0?n:a)||n||a;return l?{tile:l,offset:l==n?o:r}:null}coordsIn(e,A){let t=this.resolveInline(e,A,!0);return t?t.tile.coordsIn(Math.max(0,t.offset),A):gcA(this)}domIn(e,A){let t=this.resolveInline(e,A);if(t){let{tile:n,offset:o}=t;if(this.dom.contains(n.dom))return n.isText()?new C0(n.dom,Math.min(n.dom.nodeValue.length,o)):n.domPosFor(o,n.flags&16?1:n.flags&32?-1:A);let a=t.tile.parent,r=!1;for(let s of a.children){if(r)return new C0(s.dom,0);s==t.tile&&(r=!0)}}return new C0(this.dom,0)}};function gcA(i){let e=i.dom.lastChild;if(!e)return i.dom.getBoundingClientRect();let A=V6(e);return A[A.length-1]||null}function ccA(i,e){let A=i.coordsIn(0,1),t=e.coordsIn(0,1);return A&&t&&t.top<A.bottom}var ll=class i extends nh{constructor(e,A){super(e),this.mark=A}get domAttrs(){return this.mark.attrs}static of(e,A){let t=new i(A||document.createElement(e.tagName),e);return A||(t.flags|=4),t}},fd=class i extends _a{constructor(e,A){super(e,A.length),this.text=A}sync(e){this.flags&2||(super.sync(e),this.dom.nodeValue!=this.text&&(e&&e.node==this.dom&&(e.written=!0),this.dom.nodeValue=this.text))}isText(){return!0}toString(){return JSON.stringify(this.text)}coordsIn(e,A){let t=this.dom.nodeValue.length;e>t&&(e=t);let n=e,o=e,a=0;e==0&&A<0||e==t&&A>=0?Ct.chrome||Ct.gecko||(e?(n--,a=1):o<t&&(o++,a=-1)):A<0?n--:o<t&&o++;let r=c4(this.dom,n,o).getClientRects();if(!r.length)return null;let s=r[(a?a<0:A>=0)?0:r.length-1];return Ct.safari&&!a&&s.width==0&&(s=Array.prototype.find.call(r,l=>l.width)||s),a?t8(s,a<0):s||null}static of(e,A){let t=new i(A||document.createTextNode(e),e);return A||(t.flags|=2),t}},Dd=class i extends _a{constructor(e,A,t,n){super(e,A,n),this.widget=t}isWidget(){return!0}get isHidden(){return this.widget.isHidden}covers(e){return this.flags&48?!1:(this.flags&(e<0?64:128))>0}coordsIn(e,A){return this.coordsInWidget(e,A,!1)}coordsInWidget(e,A,t){let n=this.widget.coordsAt(this.dom,e,A);if(n)return n;if(t)return t8(this.dom.getBoundingClientRect(),this.length?e==0:A<=0);{let o=this.dom.getClientRects(),a=null;if(!o.length)return null;let r=this.flags&16?!0:this.flags&32?!1:e>0;for(let s=r?o.length-1:0;a=o[s],!(e>0?s==0:s==o.length-1||a.top<a.bottom);s+=r?-1:1);return t8(a,!r)}}get overrideDOMText(){if(!this.length)return On.empty;let{root:e}=this;if(!e)return On.empty;let A=this.posAtStart;return e.view.state.doc.slice(A,A+this.length)}destroy(){super.destroy(),this.widget.destroy(this.dom)}static of(e,A,t,n,o){return o||(o=e.toDOM(A),e.editable||(o.contentEditable="false")),new i(o,t,e,n)}},rh=class extends _a{constructor(e){let A=document.createElement("img");A.className="cm-widgetBuffer",A.setAttribute("aria-hidden","true"),super(A,0,e)}get isHidden(){return!0}get overrideDOMText(){return On.empty}coordsIn(e){return this.dom.getBoundingClientRect()}},k9=class{constructor(e){this.index=0,this.beforeBreak=!1,this.parents=[],this.tile=e}advance(e,A,t){let{tile:n,index:o,beforeBreak:a,parents:r}=this;for(;e||A>0;)if(n.isComposite())if(a){if(!e)break;t&&t.break(),e--,a=!1}else if(o==n.children.length){if(!e&&!r.length)break;t&&t.leave(n),a=!!n.breakAfter,{tile:n,index:o}=r.pop(),o++}else{let s=n.children[o],l=s.breakAfter;(A>0?s.length<=e:s.length<e)&&(!t||t.skip(s,0,s.length)!==!1||!s.isComposite)?(a=!!l,o++,e-=s.length):(r.push({tile:n,index:o}),n=s,o=0,t&&s.isComposite()&&t.enter(s))}else if(o==n.length)a=!!n.breakAfter,{tile:n,index:o}=r.pop(),o++;else if(e){let s=Math.min(e,n.length-o);t&&t.skip(n,o,o+s),e-=s,o+=s}else break;return this.tile=n,this.index=o,this.beforeBreak=a,this}get root(){return this.parents.length?this.parents[0].tile:this.tile}},_9=class{constructor(e,A,t,n){this.from=e,this.to=A,this.wrapper=t,this.rank=n}},x9=class{constructor(e,A,t){this.cache=e,this.root=A,this.blockWrappers=t,this.curLine=null,this.lastBlock=null,this.afterWidget=null,this.pos=0,this.wrappers=[],this.wrapperPos=0}addText(e,A,t,n){var o;this.flushBuffer();let a=this.ensureMarks(A,t),r=a.lastChild;if(r&&r.isText()&&!(r.flags&8)&&r.length+e.length<512){this.cache.reused.set(r,2);let s=a.children[a.children.length-1]=new fd(r.dom,r.text+e);s.parent=a}else a.append(n||fd.of(e,(o=this.cache.find(fd))===null||o===void 0?void 0:o.dom));this.pos+=e.length,this.afterWidget=null}addComposition(e,A){let t=this.curLine;t.dom!=A.line.dom&&(t.setDOM(this.cache.reused.has(A.line)?c9(A.line.dom):A.line.dom),this.cache.reused.set(A.line,2));let n=t;for(let r=A.marks.length-1;r>=0;r--){let s=A.marks[r],l=n.lastChild;if(l instanceof ll&&l.mark.eq(s.mark))l.dom!=s.dom&&l.setDOM(c9(s.dom)),n=l;else{if(this.cache.reused.get(s)){let C=_a.get(s.dom);C&&C.setDOM(c9(s.dom))}let g=ll.of(s.mark,s.dom);n.append(g),n=g}this.cache.reused.set(s,2)}let o=_a.get(e.text);o&&this.cache.reused.set(o,2);let a=new fd(e.text,e.text.nodeValue);a.flags|=8,n.append(a)}addInlineWidget(e,A,t){let n=this.afterWidget&&e.flags&48&&(this.afterWidget.flags&48)==(e.flags&48);n||this.flushBuffer();let o=this.ensureMarks(A,t);!n&&!(e.flags&16)&&o.append(this.getBuffer(1)),o.append(e),this.pos+=e.length,this.afterWidget=e}addMark(e,A,t){this.flushBuffer(),this.ensureMarks(A,t).append(e),this.pos+=e.length,this.afterWidget=null}addBlockWidget(e){this.getBlockPos().append(e),this.pos+=e.length,this.lastBlock=e,this.endLine()}continueWidget(e){let A=this.afterWidget||this.lastBlock;A.length+=e,this.pos+=e}addLineStart(e,A){var t;e||(e=oH);let n=ah.start(e,A||((t=this.cache.find(ah))===null||t===void 0?void 0:t.dom),!!A);this.getBlockPos().append(this.lastBlock=this.curLine=n)}addLine(e){this.getBlockPos().append(e),this.pos+=e.length,this.lastBlock=e,this.endLine()}addBreak(){this.lastBlock.flags|=1,this.endLine(),this.pos++}addLineStartIfNotCovered(e){this.blockPosCovered()||this.addLineStart(e)}ensureLine(e){this.curLine||this.addLineStart(e)}ensureMarks(e,A){var t;let n=this.curLine;for(let o=e.length-1;o>=0;o--){let a=e[o],r;if(A>0&&(r=n.lastChild)&&r instanceof ll&&r.mark.eq(a))n=r,A--;else{let s=ll.of(a,(t=this.cache.find(ll,l=>l.mark.eq(a)))===null||t===void 0?void 0:t.dom);n.append(s),n=s,A=0}}return n}endLine(){if(this.curLine){this.flushBuffer();let e=this.curLine.lastChild;(!e||!iY(this.curLine,!1)||e.dom.nodeName!="BR"&&e.isWidget()&&!(Ct.ios&&iY(this.curLine,!0)))&&this.curLine.append(this.cache.findWidget(C9,0,32)||new Dd(C9.toDOM(),0,C9,32)),this.curLine=this.afterWidget=null}}updateBlockWrappers(){this.wrapperPos>this.pos+1e4&&(this.blockWrappers.goto(this.pos),this.wrappers.length=0);for(let e=this.wrappers.length-1;e>=0;e--)this.wrappers[e].to<this.pos&&this.wrappers.splice(e,1);for(let e=this.blockWrappers;e.value&&e.from<=this.pos;e.next())if(e.to>=this.pos){let A=new _9(e.from,e.to,e.value,e.rank),t=this.wrappers.length;for(;t>0&&(this.wrappers[t-1].rank-A.rank||this.wrappers[t-1].to-A.to)<0;)t--;this.wrappers.splice(t,0,A)}this.wrapperPos=this.pos}getBlockPos(){var e;this.updateBlockWrappers();let A=this.root;for(let t of this.wrappers){let n=A.lastChild;if(t.from<this.pos&&n instanceof gC&&n.wrapper.eq(t.wrapper))A=n;else{let o=gC.of(t.wrapper,(e=this.cache.find(gC,a=>a.wrapper.eq(t.wrapper)))===null||e===void 0?void 0:e.dom);A.append(o),A=o}}return A}blockPosCovered(){let e=this.lastBlock;return e!=null&&!e.breakAfter&&(!e.isWidget()||(e.flags&160)>0)}getBuffer(e){let A=2|(e<0?16:32),t=this.cache.find(rh,void 0,1);return t&&(t.flags=A),t||new rh(A)}flushBuffer(){this.afterWidget&&!(this.afterWidget.flags&32)&&(this.afterWidget.parent.append(this.getBuffer(-1)),this.afterWidget=null)}},R9=class{constructor(e){this.skipCount=0,this.text="",this.textOff=0,this.cursor=e.iter()}skip(e){this.textOff+e<=this.text.length?this.textOff+=e:(this.skipCount+=e-(this.text.length-this.textOff),this.text="",this.textOff=0)}next(e){if(this.textOff==this.text.length){let{value:n,lineBreak:o,done:a}=this.cursor.next(this.skipCount);if(this.skipCount=0,a)throw new Error("Ran out of text content when drawing inline views");this.text=n;let r=this.textOff=Math.min(e,n.length);return o?null:n.slice(0,r)}let A=Math.min(this.text.length,this.textOff+e),t=this.text.slice(this.textOff,A);return this.textOff=A,t}},n8=[Dd,ah,fd,ll,rh,gC,oh];for(let i=0;i<n8.length;i++)n8[i].bucket=i;var N9=class{constructor(e){this.view=e,this.buckets=n8.map(()=>[]),this.index=n8.map(()=>0),this.reused=new Map}add(e){let A=e.constructor.bucket,t=this.buckets[A];t.length<6?t.push(e):t[this.index[A]=(this.index[A]+1)%6]=e}find(e,A,t=2){let n=e.bucket,o=this.buckets[n],a=this.index[n];for(let r=o.length-1;r>=0;r--){let s=(r+a)%o.length,l=o[s];if((!A||A(l))&&!this.reused.has(l))return o.splice(s,1),s<a&&this.index[n]--,this.reused.set(l,t),l}return null}findWidget(e,A,t){let n=this.buckets[0];if(n.length)for(let o=0,a=0;;o++){if(o==n.length){if(a)return null;a=1,o=0}let r=n[o];if(!this.reused.has(r)&&(a==0?r.widget.compare(e):r.widget.constructor==e.constructor&&e.updateDOM(r.dom,this.view,r.widget)))return n.splice(o,1),o<this.index[0]&&this.index[0]--,r.widget==e&&r.length==A&&(r.flags&497)==t?(this.reused.set(r,1),r):(this.reused.set(r,2),new Dd(r.dom,A,e,r.flags&-498|t))}}reuse(e){return this.reused.set(e,1),e}maybeReuse(e,A=2){if(!this.reused.has(e))return this.reused.set(e,A),e.dom}clear(){for(let e=0;e<this.buckets.length;e++)this.buckets[e].length=this.index[e]=0}},F9=class{constructor(e,A,t,n,o){this.view=e,this.decorations=n,this.disallowBlockEffectsFor=o,this.openWidget=!1,this.openMarks=0,this.cache=new N9(e),this.text=new R9(e.state.doc),this.builder=new x9(this.cache,new oh(e,e.contentDOM),uo.iter(t)),this.cache.reused.set(A,2),this.old=new k9(A),this.reuseWalker={skip:(a,r,s)=>{if(this.cache.add(a),a.isComposite())return!1},enter:a=>this.cache.add(a),leave:()=>{},break:()=>{}}}run(e,A){let t=A&&this.getCompositionContext(A.text);for(let n=0,o=0,a=0;;){let r=a<e.length?e[a++]:null,s=r?r.fromA:this.old.root.length;if(s>n){let l=s-n;this.preserve(l,!a,!r),n=s,o+=l}if(!r)break;A&&r.fromA<=A.range.fromA&&r.toA>=A.range.toA?(this.forward(r.fromA,A.range.fromA,A.range.fromA<A.range.toA?1:-1),this.emit(o,A.range.fromB),this.cache.clear(),this.builder.addComposition(A,t),this.text.skip(A.range.toB-A.range.fromB),this.forward(A.range.fromA,r.toA),this.emit(A.range.toB,r.toB)):(this.forward(r.fromA,r.toA),this.emit(o,r.toB)),o=r.toB,n=r.toA}return this.builder.curLine&&this.builder.endLine(),this.builder.root}preserve(e,A,t){let n=IcA(this.old),o=this.openMarks;this.old.advance(e,t?1:-1,{skip:(a,r,s)=>{if(a.isWidget())if(this.openWidget)this.builder.continueWidget(s-r);else{let l=s>0||r<a.length?Dd.of(a.widget,this.view,s-r,a.flags&496,this.cache.maybeReuse(a)):this.cache.reuse(a);l.flags&256?(l.flags&=-2,this.builder.addBlockWidget(l)):(this.builder.ensureLine(null),this.builder.addInlineWidget(l,n,o),o=n.length)}else if(a.isText())this.builder.ensureLine(null),!r&&s==a.length&&!this.cache.reused.has(a)?this.builder.addText(a.text,n,o,this.cache.reuse(a)):(this.cache.add(a),this.builder.addText(a.text.slice(r,s),n,o)),o=n.length;else if(a.isLine())a.flags&=-2,this.cache.reused.set(a,1),this.builder.addLine(a);else if(a instanceof rh)this.cache.add(a);else if(a instanceof ll)this.builder.ensureLine(null),this.builder.addMark(a,n,o),this.cache.reused.set(a,1),o=n.length;else return!1;this.openWidget=!1},enter:a=>{a.isLine()?this.builder.addLineStart(a.attrs,this.cache.maybeReuse(a)):(this.cache.add(a),a instanceof ll&&n.unshift(a.mark)),this.openWidget=!1},leave:a=>{a.isLine()?n.length&&(n.length=o=0):a instanceof ll&&(n.shift(),o=Math.min(o,n.length))},break:()=>{this.builder.addBreak(),this.openWidget=!1}}),this.text.skip(e)}emit(e,A){let t=null,n=this.builder,o=0,a=uo.spans(this.decorations,e,A,{point:(r,s,l,g,C,d)=>{if(l instanceof wd){if(this.disallowBlockEffectsFor[d]){if(l.block)throw new RangeError("Block decorations may not be specified via plugins");if(s>this.view.state.doc.lineAt(r).to)throw new RangeError("Decorations that replace line breaks may not be specified via plugins")}if(o=g.length,C>g.length)n.continueWidget(s-r);else{let B=l.widget||(l.block?nY.block:nY.inline),u=CcA(l),E=this.cache.findWidget(B,s-r,u)||Dd.of(B,this.view,s-r,u);l.block?(l.startSide>0&&n.addLineStartIfNotCovered(t),n.addBlockWidget(E)):(n.ensureLine(t),n.addInlineWidget(E,g,C))}t=null}else t=dcA(t,l);s>r&&this.text.skip(s-r)},span:(r,s,l,g)=>{for(let C=r;C<s;){let d=this.text.next(Math.min(512,s-C));d==null?(n.addLineStartIfNotCovered(t),n.addBreak(),C++):(n.ensureLine(t),n.addText(d,l,C==r?g:l.length),C+=d.length),t=null}}});n.addLineStartIfNotCovered(t),this.openWidget=a>o,this.openMarks=a}forward(e,A,t=1){A-e<=10?this.old.advance(A-e,t,this.reuseWalker):(this.old.advance(5,-1,this.reuseWalker),this.old.advance(A-e-10,-1),this.old.advance(5,t,this.reuseWalker))}getCompositionContext(e){let A=[],t=null;for(let n=e.parentNode;;n=n.parentNode){let o=_a.get(n);if(n==this.view.contentDOM)break;o instanceof ll?A.push(o):o?.isLine()?t=o:o instanceof gC||(n.nodeName=="DIV"&&!t&&n!=this.view.contentDOM?t=new ah(n,oH):t||A.push(ll.of(new s4({tagName:n.nodeName.toLowerCase(),attributes:jgA(n)}),n)))}return{line:t,marks:A}}};function iY(i,e){let A=t=>{for(let n of t.children)if((e?n.isText():n.length)||A(n))return!0;return!1};return A(i)}function CcA(i){let e=i.isReplace?(i.startSide<0?64:0)|(i.endSide>0?128:0):i.startSide>0?32:16;return i.block&&(e|=256),e}var oH={class:"cm-line"};function dcA(i,e){let A=e.spec.attributes,t=e.spec.class;return!A&&!t||(i||(i={class:"cm-line"}),A&&IS(A,i),t&&(i.class+=" "+t)),i}function IcA(i){let e=[];for(let A=i.parents.length;A>1;A--){let t=A==i.parents.length?i.tile:i.parents[A].tile;t instanceof ll&&e.push(t.mark)}return e}function c9(i){let e=_a.get(i);return e&&e.setDOM(i.cloneNode()),i}var nY=(()=>{class i extends gl{constructor(A){super(),this.tag=A}eq(A){return A.tag==this.tag}toDOM(){return document.createElement(this.tag)}updateDOM(A){return A.nodeName.toLowerCase()==this.tag}get isHidden(){return!0}}return i.inline=new i("span"),i.block=new i("div"),i})(),C9=new class extends gl{toDOM(){return document.createElement("br")}get isHidden(){return!0}get editable(){return!0}},o8=class{constructor(e){this.view=e,this.decorations=[],this.blockWrappers=[],this.dynamicDecorationMap=[!1],this.domChanged=null,this.hasComposition=null,this.editContextFormatting=Lt.none,this.lastCompositionAfterCursor=!1,this.minWidth=0,this.minWidthFrom=0,this.minWidthTo=0,this.impreciseAnchor=null,this.impreciseHead=null,this.forceSelection=!1,this.lastUpdate=Date.now(),this.updateDeco(),this.tile=new oh(e,e.contentDOM),this.updateInner([new rc(0,0,0,e.state.doc.length)],null)}update(e){var A;let t=e.changedRanges;this.minWidth>0&&t.length&&(t.every(({fromA:g,toA:C})=>C<this.minWidthFrom||g>this.minWidthTo)?(this.minWidthFrom=e.changes.mapPos(this.minWidthFrom,1),this.minWidthTo=e.changes.mapPos(this.minWidthTo,1)):this.minWidth=this.minWidthFrom=this.minWidthTo=0),this.updateEditContextFormatting(e);let n=-1;this.view.inputState.composing>=0&&!this.view.observer.editContext&&(!((A=this.domChanged)===null||A===void 0)&&A.newSel?n=this.domChanged.newSel.head:!mcA(e.changes,this.hasComposition)&&!e.selectionSet&&(n=e.state.selection.main.head));let o=n>-1?hcA(this.view,e.changes,n):null;if(this.domChanged=null,this.hasComposition){let{from:g,to:C}=this.hasComposition;t=new rc(g,C,e.changes.mapPos(g,-1),e.changes.mapPos(C,1)).addToSet(t.slice())}this.hasComposition=o?{from:o.range.fromB,to:o.range.toB}:null,(Ct.ie||Ct.chrome)&&!o&&e&&e.state.doc.lines!=e.startState.doc.lines&&(this.forceSelection=!0);let a=this.decorations,r=this.blockWrappers;this.updateDeco();let s=ucA(a,this.decorations,e.changes);s.length&&(t=rc.extendWithRanges(t,s));let l=pcA(r,this.blockWrappers,e.changes);return l.length&&(t=rc.extendWithRanges(t,l)),o&&!t.some(g=>g.fromA<=o.range.fromA&&g.toA>=o.range.toA)&&(t=o.range.addToSet(t.slice())),this.tile.flags&2&&t.length==0?!1:(this.updateInner(t,o),e.transactions.length&&(this.lastUpdate=Date.now()),!0)}updateInner(e,A){this.view.viewState.mustMeasureContent=!0;let{observer:t}=this.view;t.ignore(()=>{if(A||e.length){let a=this.tile,r=new F9(this.view,a,this.blockWrappers,this.decorations,this.dynamicDecorationMap);A&&_a.get(A.text)&&r.cache.reused.set(_a.get(A.text),2),this.tile=r.run(e,A),L9(a,r.cache.reused)}this.tile.dom.style.height=this.view.viewState.contentHeight/this.view.scaleY+"px",this.tile.dom.style.flexBasis=this.minWidth?this.minWidth+"px":"";let o=Ct.chrome||Ct.ios?{node:t.selectionRange.focusNode,written:!1}:void 0;this.tile.sync(o),o&&(o.written||t.selectionRange.focusNode!=o.node||!this.tile.dom.contains(o.node))&&(this.forceSelection=!0),this.tile.dom.style.height=""});let n=[];if(this.view.viewport.from||this.view.viewport.to<this.view.state.doc.length)for(let o of this.tile.children)o.isWidget()&&o.widget instanceof i4&&n.push(o.dom);t.updateGaps(n)}updateEditContextFormatting(e){this.editContextFormatting=this.editContextFormatting.map(e.changes);for(let A of e.transactions)for(let t of A.effects)t.is(eH)&&(this.editContextFormatting=t.value)}updateSelection(e=!1,A=!1){(e||!this.view.observer.selectionRange.focusNode)&&this.view.observer.readSelectionRange();let{dom:t}=this.tile,n=this.view.root.activeElement,o=n==t,a=!o&&!(this.view.state.facet(lC)||t.tabIndex>-1)&&$u(t,this.view.observer.selectionRange)&&!(n&&t.contains(n));if(!(o||A||a))return;let r=this.forceSelection;this.forceSelection=!1;let s=this.view.state.selection.main,l,g;if(s.empty?g=l=this.inlineDOMNearPos(s.anchor,s.assoc||1):(g=this.inlineDOMNearPos(s.head,s.head==s.from?1:-1),l=this.inlineDOMNearPos(s.anchor,s.anchor==s.from?1:-1)),Ct.gecko&&s.empty&&!this.hasComposition&&BcA(l)){let d=document.createTextNode("");this.view.observer.ignore(()=>l.node.insertBefore(d,l.node.childNodes[l.offset]||null)),l=g=new C0(d,0),r=!0}let C=this.view.observer.selectionRange;(r||!C.focusNode||(!A4(l.node,l.offset,C.anchorNode,C.anchorOffset)||!A4(g.node,g.offset,C.focusNode,C.focusOffset))&&!this.suppressWidgetCursorChange(C,s))&&(this.view.observer.ignore(()=>{Ct.android&&Ct.chrome&&t.contains(C.focusNode)&&fcA(C.focusNode,t)&&(t.blur(),t.focus({preventScroll:!0}));let d=g4(this.view.root);if(d)if(s.empty){if(Ct.gecko){let B=EcA(l.node,l.offset);if(B&&B!=3){let u=(B==1?TY:OY)(l.node,l.offset);u&&(l=new C0(u.node,u.offset))}}d.collapse(l.node,l.offset),s.bidiLevel!=null&&d.caretBidiLevel!==void 0&&(d.caretBidiLevel=s.bidiLevel)}else if(d.extend){d.collapse(l.node,l.offset);try{d.extend(g.node,g.offset)}catch(B){}}else{let B=document.createRange();s.anchor>s.head&&([l,g]=[g,l]),B.setEnd(g.node,g.offset),B.setStart(l.node,l.offset),d.removeAllRanges(),d.addRange(B)}a&&this.view.root.activeElement==t&&(t.blur(),n&&n.focus())}),this.view.observer.setSelectionRange(l,g)),this.impreciseAnchor=l.precise?null:new C0(C.anchorNode,C.anchorOffset),this.impreciseHead=g.precise?null:new C0(C.focusNode,C.focusOffset)}suppressWidgetCursorChange(e,A){return this.hasComposition&&A.empty&&A4(e.focusNode,e.focusOffset,e.anchorNode,e.anchorOffset)&&this.posFromDOM(e.focusNode,e.focusOffset)==A.head}enforceCursorAssoc(){if(this.hasComposition)return;let{view:e}=this,A=e.state.selection.main,t=g4(e.root),{anchorNode:n,anchorOffset:o}=e.observer.selectionRange;if(!t||!A.empty||!A.assoc||!t.modify)return;let a=this.lineAt(A.head,A.assoc);if(!a)return;let r=a.posAtStart;if(A.head==r||A.head==r+a.length)return;let s=this.coordsAt(A.head,-1),l=this.coordsAt(A.head,1);if(!s||!l||s.bottom>l.top)return;let g=this.domAtPos(A.head+A.assoc,A.assoc);t.collapse(g.node,g.offset),t.modify("move",A.assoc<0?"forward":"backward","lineboundary"),e.observer.readSelectionRange();let C=e.observer.selectionRange;e.docView.posFromDOM(C.anchorNode,C.anchorOffset)!=A.from&&t.collapse(n,o)}posFromDOM(e,A){let t=this.tile.nearest(e);if(!t)return this.tile.dom.compareDocumentPosition(e)&2?0:this.view.state.doc.length;let n=t.posAtStart;if(t.isComposite()){let o;if(e==t.dom)o=t.dom.childNodes[A];else{let a=cC(e)==0?0:A==0?-1:1;for(;;){let r=e.parentNode;if(r==t.dom)break;a==0&&r.firstChild!=r.lastChild&&(e==r.firstChild?a=-1:a=1),e=r}a<0?o=e:o=e.nextSibling}if(o==t.dom.firstChild)return n;for(;o&&!_a.get(o);)o=o.nextSibling;if(!o)return n+t.length;for(let a=0,r=n;;a++){let s=t.children[a];if(s.dom==o)return r;r+=s.length+s.breakAfter}}else return t.isText()?e==t.dom?n+A:n+(A?t.length:0):n}domAtPos(e,A){let{tile:t,offset:n}=this.tile.resolveBlock(e,A);return t.isWidget()?t.domPosFor(e,A):t.domIn(n,A)}inlineDOMNearPos(e,A){let t,n=-1,o=!1,a,r=-1,s=!1;return this.tile.blockTiles((l,g)=>{if(l.isWidget()){if(l.flags&32&&g>=e)return!0;l.flags&16&&(o=!0)}else{let C=g+l.length;if(g<=e&&(t=l,n=e-g,o=C<e),C>=e&&!a&&(a=l,r=e-g,s=g>e),g>e&&a)return!0}}),!t&&!a?this.domAtPos(e,A):(o&&a?t=null:s&&t&&(a=null),t&&A<0||!a?t.domIn(n,A):a.domIn(r,A))}coordsAt(e,A){let{tile:t,offset:n}=this.tile.resolveBlock(e,A);return t.isWidget()?t.widget instanceof i4?null:t.coordsInWidget(n,A,!0):t.coordsIn(n,A)}lineAt(e,A){let{tile:t}=this.tile.resolveBlock(e,A);return t.isLine()?t:null}coordsForChar(e){let{tile:A,offset:t}=this.tile.resolveBlock(e,1);if(!A.isLine())return null;function n(o,a){if(o.isComposite())for(let r of o.children){if(r.length>=a){let s=n(r,a);if(s)return s}if(a-=r.length,a<0)break}else if(o.isText()&&a<o.length){let r=tr(o.text,a);if(r==a)return null;let s=c4(o.dom,a,r).getClientRects();for(let l=0;l<s.length;l++){let g=s[l];if(l==s.length-1||g.top<g.bottom&&g.left<g.right)return g}}return null}return n(A,t)}measureVisibleLineHeights(e){let A=[],{from:t,to:n}=e,o=this.view.contentDOM.clientWidth,a=o>Math.max(this.view.scrollDOM.clientWidth,this.minWidth)+1,r=-1,s=this.view.textDirection==Lo.LTR,l=0,g=(C,d,B)=>{for(let u=0;u<C.children.length&&!(d>n);u++){let E=C.children[u],f=d+E.length,m=E.dom.getBoundingClientRect(),{height:v}=m;if(B&&!u&&(l+=m.top-B.top),E instanceof gC)f>t&&g(E,d,m);else if(d>=t&&(l>0&&A.push(-l),A.push(v+l),l=0,a)){let S=E.dom.lastChild,k=S?V6(S):[];if(k.length){let M=k[k.length-1],x=s?M.right-m.left:m.right-M.left;x>r&&(r=x,this.minWidth=o,this.minWidthFrom=d,this.minWidthTo=f)}}B&&u==C.children.length-1&&(l+=B.bottom-m.bottom),d=f+E.breakAfter}};return g(this.tile,0,null),A}textDirectionAt(e){let{tile:A}=this.tile.resolveBlock(e,1);return getComputedStyle(A.dom).direction=="rtl"?Lo.RTL:Lo.LTR}measureTextSize(){let e=this.tile.blockTiles(a=>{if(a.isLine()&&a.children.length&&a.length<=20){let r=0,s;for(let l of a.children){if(!l.isText()||/[^ -~]/.test(l.text))return;let g=V6(l.dom);if(g.length!=1)return;r+=g[0].width,s=g[0].height}if(r)return{lineHeight:a.dom.getBoundingClientRect().height,charWidth:r/a.length,textHeight:s}}});if(e)return e;let A=document.createElement("div"),t,n,o;return A.className="cm-line",A.style.width="99999px",A.style.position="absolute",A.textContent="abc def ghi jkl mno pqr stu",this.view.observer.ignore(()=>{this.tile.dom.appendChild(A);let a=V6(A.firstChild)[0];t=A.getBoundingClientRect().height,n=a&&a.width?a.width/27:7,o=a&&a.height?a.height:t,A.remove()}),{lineHeight:t,charWidth:n,textHeight:o}}computeBlockGapDeco(){let e=[],A=this.view.viewState;for(let t=0,n=0;;n++){let o=n==A.viewports.length?null:A.viewports[n],a=o?o.from-1:this.view.state.doc.length;if(a>t){let r=(A.lineBlockAt(a).bottom-A.lineBlockAt(t).top)/this.view.scaleY;e.push(Lt.replace({widget:new i4(r),block:!0,inclusive:!0,isBlockGap:!0}).range(t,a))}if(!o)break;t=o.to+1}return Lt.set(e)}updateDeco(){let e=1,A=this.view.state.facet(Q8).map(o=>(this.dynamicDecorationMap[e++]=typeof o=="function")?o(this.view):o),t=!1,n=this.view.state.facet(uS).map((o,a)=>{let r=typeof o=="function";return r&&(t=!0),r?o(this.view):o});for(n.length&&(this.dynamicDecorationMap[e++]=t,A.push(uo.join(n))),this.decorations=[this.editContextFormatting,...A,this.computeBlockGapDeco(),this.view.viewState.lineGapDeco];e<this.decorations.length;)this.dynamicDecorationMap[e++]=!1;this.blockWrappers=this.view.state.facet(tH).map(o=>typeof o=="function"?o(this.view):o)}scrollIntoView(e){var A;if(e.isSnapshot){let g=this.view.viewState.lineBlockAt(e.range.head);this.view.scrollDOM.scrollTop=g.top-e.yMargin,this.view.scrollDOM.scrollLeft=e.xMargin;return}for(let g of this.view.state.facet(AH))try{if(g(this.view,e.range,e))return!0}catch(C){Gr(this.view.state,C,"scroll handler")}let{range:t}=e,n=this.coordsAt(t.head,(A=t.assoc)!==null&&A!==void 0?A:t.empty?0:t.head>t.anchor?-1:1),o;if(!n)return;!t.empty&&(o=this.coordsAt(t.anchor,t.anchor>t.head?-1:1))&&(n={left:Math.min(n.left,o.left),top:Math.min(n.top,o.top),right:Math.max(n.right,o.right),bottom:Math.max(n.bottom,o.bottom)});let a=pS(this.view),r={left:n.left-a.left,top:n.top-a.top,right:n.right+a.right,bottom:n.bottom+a.bottom},{offsetWidth:s,offsetHeight:l}=this.view.scrollDOM;if(WgA(this.view.scrollDOM,r,t.head<t.anchor?-1:1,e.x,e.y,Math.max(Math.min(e.xMargin,s),-s),Math.max(Math.min(e.yMargin,l),-l),this.view.textDirection==Lo.LTR),window.visualViewport&&window.innerHeight-window.visualViewport.height>1&&(n.top>window.pageYOffset+window.visualViewport.offsetTop+window.visualViewport.height||n.bottom<window.pageYOffset+window.visualViewport.offsetTop)){let g=this.view.docView.lineAt(t.head,1);g&&g.dom.scrollIntoView({block:"nearest"})}}lineHasWidget(e){let A=t=>t.isWidget()||t.children.some(A);return A(this.tile.resolveBlock(e,1).tile)}destroy(){L9(this.tile)}};function L9(i,e){let A=e?.get(i);if(A!=1){A==null&&i.destroy();for(let t of i.children)L9(t,e)}}function BcA(i){return i.node.nodeType==1&&i.node.firstChild&&(i.offset==0||i.node.childNodes[i.offset-1].contentEditable=="false")&&(i.offset==i.node.childNodes.length||i.node.childNodes[i.offset].contentEditable=="false")}function aH(i,e){let A=i.observer.selectionRange;if(!A.focusNode)return null;let t=TY(A.focusNode,A.focusOffset),n=OY(A.focusNode,A.focusOffset),o=t||n;if(n&&t&&n.node!=t.node){let r=_a.get(n.node);if(!r||r.isText()&&r.text!=n.node.nodeValue)o=n;else if(i.docView.lastCompositionAfterCursor){let s=_a.get(t.node);!s||s.isText()&&s.text!=t.node.nodeValue||(o=n)}}if(i.docView.lastCompositionAfterCursor=o!=t,!o)return null;let a=e-o.offset;return{from:a,to:a+o.node.nodeValue.length,node:o.node}}function hcA(i,e,A){let t=aH(i,A);if(!t)return null;let{node:n,from:o,to:a}=t,r=n.nodeValue;if(/[\n\r]/.test(r)||i.state.doc.sliceString(t.from,t.to)!=r)return null;let s=e.invertedDesc;return{range:new rc(s.mapPos(o),s.mapPos(a),o,a),text:n}}function EcA(i,e){return i.nodeType!=1?0:(e&&i.childNodes[e-1].contentEditable=="false"?1:0)|(e<i.childNodes.length&&i.childNodes[e].contentEditable=="false"?2:0)}var QcA=class{constructor(){this.changes=[]}compareRange(e,A){th(e,A,this.changes)}comparePoint(e,A){th(e,A,this.changes)}boundChange(e){th(e,e,this.changes)}};function ucA(i,e,A){let t=new QcA;return uo.compare(i,e,A,t),t.changes}var G9=class{constructor(){this.changes=[]}compareRange(e,A){th(e,A,this.changes)}comparePoint(){}boundChange(e){th(e,e,this.changes)}};function pcA(i,e,A){let t=new G9;return uo.compare(i,e,A,t),t.changes}function fcA(i,e){for(let A=i;A&&A!=e;A=A.assignedSlot||A.parentNode)if(A.nodeType==1&&A.contentEditable=="false")return!0;return!1}function mcA(i,e){let A=!1;return e&&i.iterChangedRanges((t,n)=>{t<e.to&&n>e.from&&(A=!0)}),A}var i4=class extends gl{constructor(e){super(),this.height=e}toDOM(){let e=document.createElement("div");return e.className="cm-gap",this.updateDOM(e),e}eq(e){return e.height==this.height}updateDOM(e){return e.style.height=this.height+"px",!0}get editable(){return!0}get estimatedHeight(){return this.height}ignoreEvent(){return!1}};function wcA(i,e,A=1){let t=i.charCategorizer(e),n=i.doc.lineAt(e),o=e-n.from;if(n.length==0)return Be.cursor(e);o==0?A=1:o==n.length&&(A=-1);let a=o,r=o;A<0?a=tr(n.text,o,!1):r=tr(n.text,o);let s=t(n.text.slice(a,r));for(;a>0;){let l=tr(n.text,a,!1);if(t(n.text.slice(l,a))!=s)break;a=l}for(;r<n.length;){let l=tr(n.text,r);if(t(n.text.slice(r,l))!=s)break;r=l}return Be.range(a+n.from,r+n.from)}function ycA(i,e,A,t,n){let o=Math.round((t-e.left)*i.defaultCharacterWidth);if(i.lineWrapping&&A.height>i.defaultLineHeight*1.5){let r=i.viewState.heightOracle.textHeight,s=Math.floor((n-A.top-(i.defaultLineHeight-r)*.5)/r);o+=s*i.viewState.heightOracle.lineLength}let a=i.state.sliceDoc(A.from,A.to);return A.from+G6(a,o,i.state.tabSize)}function K9(i,e,A){let t=i.lineBlockAt(e);if(Array.isArray(t.type)){let n;for(let o of t.type){if(o.from>e)break;if(!(o.to<e)){if(o.from<e&&o.to>e)return o;(!n||o.type==As.Text&&(n.type!=o.type||(A<0?o.from<e:o.to>e)))&&(n=o)}}return n||t}return t}function DcA(i,e,A,t){let n=K9(i,e.head,e.assoc||-1),o=!t||n.type!=As.Text||!(i.lineWrapping||n.widgetLineBreaks)?null:i.coordsAtPos(e.assoc<0&&e.head>n.from?e.head-1:e.head);if(o){let a=i.dom.getBoundingClientRect(),r=i.textDirectionAt(n.from),s=i.posAtCoords({x:A==(r==Lo.LTR)?a.right-1:a.left+1,y:(o.top+o.bottom)/2});if(s!=null)return Be.cursor(s,A?-1:1)}return Be.cursor(A?n.to:n.from,A?-1:1)}function oY(i,e,A,t){let n=i.state.doc.lineAt(e.head),o=i.bidiSpans(n),a=i.textDirectionAt(n.from);for(let r=e,s=null;;){let l=acA(n,o,a,r,A),g=PY;if(!l){if(n.number==(A?i.state.doc.lines:1))return r;g=` |
| 252 | `,n=i.state.doc.line(n.number+(A?1:-1)),o=i.bidiSpans(n),l=i.visualLineSide(n,!A)}if(s){if(!s(g))return r}else{if(!t)return l;s=t(g)}r=l}}function vcA(i,e,A){let t=i.state.charCategorizer(e),n=t(A);return o=>{let a=t(o);return n==$o.Space&&(n=a),n==a}}function bcA(i,e,A,t){let n=e.head,o=A?1:-1;if(n==(A?i.state.doc.length:0))return Be.cursor(n,e.assoc);let a=e.goalColumn,r,s=i.contentDOM.getBoundingClientRect(),l=i.coordsAtPos(n,e.assoc||((e.empty?A:e.head==e.from)?1:-1)),g=i.documentTop;if(l)a==null&&(a=l.left-s.left),r=o<0?l.top:l.bottom;else{let u=i.viewState.lineBlockAt(n);a==null&&(a=Math.min(s.right-s.left,i.defaultCharacterWidth*(n-u.from))),r=(o<0?u.top:u.bottom)+g}let C=s.left+a,d=i.viewState.heightOracle.textHeight>>1,B=t??d;for(let u=0;;u+=d){let E=r+(B+u)*o,f=U9(i,{x:C,y:E},!1,o);if(A?E>s.bottom:E<s.top)return Be.cursor(f.pos,f.assoc);let m=i.coordsAtPos(f.pos,f.assoc),v=m?(m.top+m.bottom)/2:0;if(!m||(A?v>r:v<r))return Be.cursor(f.pos,f.assoc,void 0,a)}}function n4(i,e,A){for(;;){let t=0;for(let n of i)n.between(e-1,e+1,(o,a,r)=>{if(e>o&&e<a){let s=t||A||(e-o<a-e?-1:1);e=s<0?o:a,t=s}});if(!t)return e}}function rH(i,e){let A=null;for(let t=0;t<e.ranges.length;t++){let n=e.ranges[t],o=null;if(n.empty){let a=n4(i,n.from,0);a!=n.from&&(o=Be.cursor(a,-1))}else{let a=n4(i,n.from,-1),r=n4(i,n.to,1);(a!=n.from||r!=n.to)&&(o=Be.range(n.from==n.anchor?a:r,n.from==n.head?a:r))}o&&(A||(A=e.ranges.slice()),A[t]=o)}return A?Be.create(A,e.mainIndex):e}function d9(i,e,A){let t=n4(i.state.facet(C4).map(n=>n(i)),A.from,e.head>A.from?-1:1);return t==A.from?A:Be.cursor(t,t<A.from?1:-1)}var Ig=class{constructor(e,A){this.pos=e,this.assoc=A}};function U9(i,e,A,t){let n=i.contentDOM.getBoundingClientRect(),o=n.top+i.viewState.paddingTop,{x:a,y:r}=e,s=r-o,l;for(;;){if(s<0)return new Ig(0,1);if(s>i.viewState.docHeight)return new Ig(i.state.doc.length,-1);if(l=i.elementAtHeight(s),t==null)break;if(l.type==As.Text){if(t<0?l.to<i.viewport.from:l.from>i.viewport.to)break;let d=i.docView.coordsAt(t<0?l.from:l.to,t>0?-1:1);if(d&&(t<0?d.top<=s+o:d.bottom>=s+o))break}let C=i.viewState.heightOracle.textHeight/2;s=t>0?l.bottom+C:l.top-C}if(i.viewport.from>=l.to||i.viewport.to<=l.from){if(A)return null;if(l.type==As.Text){let C=ycA(i,n,l,a,r);return new Ig(C,C==l.from?1:-1)}}if(l.type!=As.Text)return s<(l.top+l.bottom)/2?new Ig(l.from,1):new Ig(l.to,-1);let g=i.docView.lineAt(l.from,2);return(!g||g.length!=l.length)&&(g=i.docView.lineAt(l.from,-2)),new T9(i,a,r,i.textDirectionAt(l.from)).scanTile(g,l.from)}var T9=class{constructor(e,A,t,n){this.view=e,this.x=A,this.y=t,this.baseDir=n,this.line=null,this.spans=null}bidiSpansAt(e){return(!this.line||this.line.from>e||this.line.to<e)&&(this.line=this.view.state.doc.lineAt(e),this.spans=this.view.bidiSpans(this.line)),this}baseDirAt(e,A){let{line:t,spans:n}=this.bidiSpansAt(e);return n[Bg.find(n,e-t.from,-1,A)].level==this.baseDir}dirAt(e,A){let{line:t,spans:n}=this.bidiSpansAt(e);return n[Bg.find(n,e-t.from,-1,A)].dir}bidiIn(e,A){let{spans:t,line:n}=this.bidiSpansAt(e);return t.length>1||t.length&&(t[0].level!=this.baseDir||t[0].to+n.from<A)}scan(e,A){let t=0,n=e.length-1,o=new Set,a=this.bidiIn(e[0],e[n]),r,s,l=-1,g=1e9,C;A:for(;t<n;){let B=n-t,u=t+n>>1;e:if(o.has(u)){let f=t+Math.floor(Math.random()*B);for(let m=0;m<B;m++){if(!o.has(f)){u=f;break e}f++,f==n&&(f=t)}break A}o.add(u);let E=A(u);if(E)for(let f=0;f<E.length;f++){let m=E[f],v=0;if(!(m.width==0&&E.length>1)){if(m.bottom<this.y)(!r||r.bottom<m.bottom)&&(r=m),v=1;else if(m.top>this.y)(!s||s.top>m.top)&&(s=m),v=-1;else{let S=m.left>this.x?this.x-m.left:m.right<this.x?this.x-m.right:0,k=Math.abs(S);k<g&&(l=u,g=k,C=m),S&&(v=S<0==(this.baseDir==Lo.LTR)?-1:1)}v==-1&&(!a||this.baseDirAt(e[u],1))?n=u:v==1&&(!a||this.baseDirAt(e[u+1],-1))&&(t=u+1)}}}if(!C){let B=r&&(!s||this.y-r.bottom<s.top-this.y)?r:s;return this.y=(B.top+B.bottom)/2,this.scan(e,A)}let d=(a?this.dirAt(e[l],1):this.baseDir)==Lo.LTR;return{i:l,after:this.x>(C.left+C.right)/2==d}}scanText(e,A){let t=[];for(let o=0;o<e.length;o=tr(e.text,o))t.push(A+o);t.push(A+e.length);let n=this.scan(t,o=>{let a=t[o]-A,r=t[o+1]-A;return c4(e.dom,a,r).getClientRects()});return n.after?new Ig(t[n.i+1],-1):new Ig(t[n.i],1)}scanTile(e,A){if(!e.length)return new Ig(A,1);if(e.children.length==1){let r=e.children[0];if(r.isText())return this.scanText(r,A);if(r.isComposite())return this.scanTile(r,A)}let t=[A];for(let r=0,s=A;r<e.children.length;r++)t.push(s+=e.children[r].length);let n=this.scan(t,r=>{let s=e.children[r];return s.flags&48?null:(s.dom.nodeType==1?s.dom:c4(s.dom,0,s.length)).getClientRects()}),o=e.children[n.i],a=t[n.i];return o.isText()?this.scanText(o,a):o.isComposite()?this.scanTile(o,a):n.after?new Ig(t[n.i+1],-1):new Ig(a,1)}},ZB="\uFFFF",O9=class{constructor(e,A){this.points=e,this.view=A,this.text="",this.lineSeparator=A.state.facet(ir.lineSeparator)}append(e){this.text+=e}lineBreak(){this.text+=ZB}readRange(e,A){if(!e)return this;let t=e.parentNode;for(let n=e;;){this.findPointBefore(t,n);let o=this.text.length;this.readNode(n);let a=_a.get(n),r=n.nextSibling;if(r==A){a?.breakAfter&&!r&&t!=this.view.contentDOM&&this.lineBreak();break}let s=_a.get(r);(a&&s?a.breakAfter:(a?a.breakAfter:e8(n))||e8(r)&&(n.nodeName!="BR"||a?.isWidget())&&this.text.length>o)&&!ScA(r,A)&&this.lineBreak(),n=r}return this.findPointBefore(t,A),this}readTextNode(e){let A=e.nodeValue;for(let t of this.points)t.node==e&&(t.pos=this.text.length+Math.min(t.offset,A.length));for(let t=0,n=this.lineSeparator?null:/\r\n?|\n/g;;){let o=-1,a=1,r;if(this.lineSeparator?(o=A.indexOf(this.lineSeparator,t),a=this.lineSeparator.length):(r=n.exec(A))&&(o=r.index,a=r[0].length),this.append(A.slice(t,o<0?A.length:o)),o<0)break;if(this.lineBreak(),a>1)for(let s of this.points)s.node==e&&s.pos>this.text.length&&(s.pos-=a-1);t=o+a}}readNode(e){let A=_a.get(e),t=A&&A.overrideDOMText;if(t!=null){this.findPointInside(e,t.length);for(let n=t.iter();!n.next().done;)n.lineBreak?this.lineBreak():this.append(n.value)}else e.nodeType==3?this.readTextNode(e):e.nodeName=="BR"?e.nextSibling&&this.lineBreak():e.nodeType==1&&this.readRange(e.firstChild,null)}findPointBefore(e,A){for(let t of this.points)t.node==e&&e.childNodes[t.offset]==A&&(t.pos=this.text.length)}findPointInside(e,A){for(let t of this.points)(e.nodeType==3?t.node==e:e.contains(t.node))&&(t.pos=this.text.length+(McA(e,t.node,t.offset)?A:0))}};function McA(i,e,A){for(;;){if(!e||A<cC(e))return!1;if(e==i)return!0;A=S2(e)+1,e=e.parentNode}}function ScA(i,e){let A;for(;!(i==e||!i);i=i.nextSibling){let t=_a.get(i);if(!t?.isWidget())return!1;t&&(A||(A=[])).push(t)}if(A)for(let t of A){let n=t.overrideDOMText;if(n?.length)return!1}return!0}var a8=class{constructor(e,A){this.node=e,this.offset=A,this.pos=-1}},J9=class{constructor(e,A,t,n){this.typeOver=n,this.bounds=null,this.text="",this.domChanged=A>-1;let{impreciseHead:o,impreciseAnchor:a}=e.docView,r=e.state.selection;if(e.state.readOnly&&A>-1)this.newSel=null;else if(A>-1&&(this.bounds=sH(e.docView.tile,A,t,0))){let s=o||a?[]:_cA(e),l=new O9(s,e);l.readRange(this.bounds.startDOM,this.bounds.endDOM),this.text=l.text,this.newSel=xcA(s,this.bounds.from)}else{let s=e.observer.selectionRange,l=o&&o.node==s.focusNode&&o.offset==s.focusOffset||!y9(e.contentDOM,s.focusNode)?r.main.head:e.docView.posFromDOM(s.focusNode,s.focusOffset),g=a&&a.node==s.anchorNode&&a.offset==s.anchorOffset||!y9(e.contentDOM,s.anchorNode)?r.main.anchor:e.docView.posFromDOM(s.anchorNode,s.anchorOffset),C=e.viewport;if((Ct.ios||Ct.chrome)&&r.main.empty&&l!=g&&(C.from>0||C.to<e.state.doc.length)){let d=Math.min(l,g),B=Math.max(l,g),u=C.from-d,E=C.to-B;(u==0||u==1||d==0)&&(E==0||E==-1||B==e.state.doc.length)&&(l=0,g=e.state.doc.length)}if(e.inputState.composing>-1&&r.ranges.length>1)this.newSel=r.replaceRange(Be.range(g,l));else if(e.lineWrapping&&g==l&&!(r.main.empty&&r.main.head==l)&&e.inputState.lastTouchTime>Date.now()-100){let d=e.coordsAtPos(l,-1),B=0;d&&(B=e.inputState.lastTouchY<=d.bottom?-1:1),this.newSel=Be.create([Be.cursor(l,B)])}else this.newSel=Be.single(g,l)}}};function sH(i,e,A,t){if(i.isComposite()){let n=-1,o=-1,a=-1,r=-1;for(let s=0,l=t,g=t;s<i.children.length;s++){let C=i.children[s],d=l+C.length;if(l<e&&d>A)return sH(C,e,A,l);if(d>=e&&n==-1&&(n=s,o=l),l>A&&C.dom.parentNode==i.dom){a=s,r=g;break}g=d,l=d+C.breakAfter}return{from:o,to:r<0?t+i.length:r,startDOM:(n?i.children[n-1].dom.nextSibling:null)||i.dom.firstChild,endDOM:a<i.children.length&&a>=0?i.children[a].dom:null}}else return i.isText()?{from:t,to:t+i.length,startDOM:i.dom,endDOM:i.dom.nextSibling}:null}function lH(i,e){let A,{newSel:t}=e,{state:n}=i,o=n.selection.main,a=i.inputState.lastKeyTime>Date.now()-100?i.inputState.lastKeyCode:-1;if(e.bounds){let{from:r,to:s}=e.bounds,l=o.from,g=null;(a===8||Ct.android&&e.text.length<s-r)&&(l=o.to,g="end");let C=n.doc.sliceString(r,s,ZB),d,B;!o.empty&&o.from>=r&&o.to<=s&&(e.typeOver||C!=e.text)&&C.slice(0,o.from-r)==e.text.slice(0,o.from-r)&&C.slice(o.to-r)==e.text.slice(d=e.text.length-(C.length-(o.to-r)))?A={from:o.from,to:o.to,insert:On.of(e.text.slice(o.from-r,d).split(ZB))}:(B=gH(C,e.text,l-r,g))&&(Ct.chrome&&a==13&&B.toB==B.from+2&&e.text.slice(B.from,B.toB)==ZB+ZB&&B.toB--,A={from:r+B.from,to:r+B.toA,insert:On.of(e.text.slice(B.from,B.toB).split(ZB))})}else t&&(!i.hasFocus&&n.facet(lC)||r8(t,o))&&(t=null);if(!A&&!t)return!1;if((Ct.mac||Ct.android)&&A&&A.from==A.to&&A.from==o.head-1&&/^\. ?$/.test(A.insert.toString())&&i.contentDOM.getAttribute("autocorrect")=="off"?(t&&A.insert.length==2&&(t=Be.single(t.main.anchor-1,t.main.head-1)),A={from:A.from,to:A.to,insert:On.of([A.insert.toString().replace("."," ")])}):n.doc.lineAt(o.from).to<o.to&&i.docView.lineHasWidget(o.to)&&i.inputState.insertingTextAt>Date.now()-50?A={from:o.from,to:o.to,insert:n.toText(i.inputState.insertingText)}:Ct.chrome&&A&&A.from==A.to&&A.from==o.head&&A.insert.toString()==` |
| 253 | `&&i.lineWrapping&&(t&&(t=Be.single(t.main.anchor-1,t.main.head-1)),A={from:o.from,to:o.to,insert:On.of([" "])}),A)return fS(i,A,t,a);if(t&&!r8(t,o)){let r=!1,s="select";return i.inputState.lastSelectionTime>Date.now()-50&&(i.inputState.lastSelectionOrigin=="select"&&(r=!0),s=i.inputState.lastSelectionOrigin,s=="select.pointer"&&(t=rH(n.facet(C4).map(l=>l(i)),t))),i.dispatch({selection:t,scrollIntoView:r,userEvent:s}),!0}else return!1}function fS(i,e,A,t=-1){if(Ct.ios&&i.inputState.flushIOSKey(e))return!0;let n=i.state.selection.main;if(Ct.android&&(e.to==n.to&&(e.from==n.from||e.from==n.from-1&&i.state.sliceDoc(e.from,n.from)==" ")&&e.insert.length==1&&e.insert.lines==2&&ih(i.contentDOM,"Enter",13)||(e.from==n.from-1&&e.to==n.to&&e.insert.length==0||t==8&&e.insert.length<e.to-e.from&&e.to>n.head)&&ih(i.contentDOM,"Backspace",8)||e.from==n.from&&e.to==n.to+1&&e.insert.length==0&&ih(i.contentDOM,"Delete",46)))return!0;let o=e.insert.toString();i.inputState.composing>=0&&i.inputState.composing++;let a,r=()=>a||(a=kcA(i,e,A));return i.state.facet(ZY).some(s=>s(i,e.from,e.to,o,r))||i.dispatch(r()),!0}function kcA(i,e,A){let t,n=i.state,o=n.selection.main,a=-1;if(e.from==e.to&&e.from<o.from||e.from>o.to){let s=e.from<o.from?-1:1,l=s<0?o.from:o.to,g=n4(n.facet(C4).map(C=>C(i)),l,s);e.from==g&&(a=g)}if(a>-1)t={changes:e,selection:Be.cursor(e.from+e.insert.length,-1)};else if(e.from>=o.from&&e.to<=o.to&&e.to-e.from>=(o.to-o.from)/3&&(!A||A.main.empty&&A.main.from==e.from+e.insert.length)&&i.inputState.composing<0){let s=o.from<e.from?n.sliceDoc(o.from,e.from):"",l=o.to>e.to?n.sliceDoc(e.to,o.to):"";t=n.replaceSelection(i.state.toText(s+e.insert.sliceString(0,void 0,i.state.lineBreak)+l))}else{let s=n.changes(e),l=A&&A.main.to<=s.newLength?A.main:void 0;if(n.selection.ranges.length>1&&(i.inputState.composing>=0||i.inputState.compositionPendingChange)&&e.to<=o.to+10&&e.to>=o.to-10){let g=i.state.sliceDoc(e.from,e.to),C,d=A&&aH(i,A.main.head);if(d){let u=e.insert.length-(e.to-e.from);C={from:d.from,to:d.to-u}}else C=i.state.doc.lineAt(o.head);let B=o.to-e.to;t=n.changeByRange(u=>{if(u.from==o.from&&u.to==o.to)return{changes:s,range:l||u.map(s)};let E=u.to-B,f=E-g.length;if(i.state.sliceDoc(f,E)!=g||E>=C.from&&f<=C.to)return{range:u};let m=n.changes({from:f,to:E,insert:e.insert}),v=u.to-o.to;return{changes:m,range:l?Be.range(Math.max(0,l.anchor+v),Math.max(0,l.head+v)):u.map(m)}})}else t={changes:s,selection:l&&n.selection.replaceRange(l)}}let r="input.type";return(i.composing||i.inputState.compositionPendingChange&&i.inputState.compositionEndedAt>Date.now()-50)&&(i.inputState.compositionPendingChange=!1,r+=".compose",i.inputState.compositionFirstChange&&(r+=".start",i.inputState.compositionFirstChange=!1)),n.update(t,{userEvent:r,scrollIntoView:!0})}function gH(i,e,A,t){let n=Math.min(i.length,e.length),o=0;for(;o<n&&i.charCodeAt(o)==e.charCodeAt(o);)o++;if(o==n&&i.length==e.length)return null;let a=i.length,r=e.length;for(;a>0&&r>0&&i.charCodeAt(a-1)==e.charCodeAt(r-1);)a--,r--;if(t=="end"){let s=Math.max(0,o-Math.min(a,r));A-=a+s-o}if(a<o&&i.length<e.length){let s=A<=o&&A>=a?o-A:0;o-=s,r=o+(r-a),a=o}else if(r<o){let s=A<=o&&A>=r?o-A:0;o-=s,a=o+(a-r),r=o}return{from:o,toA:a,toB:r}}function _cA(i){let e=[];if(i.root.activeElement!=i.contentDOM)return e;let{anchorNode:A,anchorOffset:t,focusNode:n,focusOffset:o}=i.observer.selectionRange;return A&&(e.push(new a8(A,t)),(n!=A||o!=t)&&e.push(new a8(n,o))),e}function xcA(i,e){if(i.length==0)return null;let A=i[0].pos,t=i.length==2?i[1].pos:A;return A>-1&&t>-1?Be.single(A+e,t+e):null}function r8(i,e){return e.head==i.main.head&&e.anchor==i.main.anchor}var Y9=class{setSelectionOrigin(e){this.lastSelectionOrigin=e,this.lastSelectionTime=Date.now()}constructor(e){this.view=e,this.lastKeyCode=0,this.lastKeyTime=0,this.lastTouchTime=0,this.lastTouchX=0,this.lastTouchY=0,this.lastFocusTime=0,this.lastScrollTop=0,this.lastScrollLeft=0,this.lastWheelEvent=0,this.pendingIOSKey=void 0,this.tabFocusMode=-1,this.lastSelectionOrigin=null,this.lastSelectionTime=0,this.lastContextMenu=0,this.scrollHandlers=[],this.handlers=Object.create(null),this.composing=-1,this.compositionFirstChange=null,this.compositionEndedAt=0,this.compositionPendingKey=!1,this.compositionPendingChange=!1,this.insertingText="",this.insertingTextAt=0,this.mouseSelection=null,this.draggedContent=null,this.handleEvent=this.handleEvent.bind(this),this.notifiedFocused=e.hasFocus,Ct.safari&&e.contentDOM.addEventListener("input",()=>null),Ct.gecko&&PcA(e.contentDOM.ownerDocument)}handleEvent(e){!UcA(this.view,e)||this.ignoreDuringComposition(e)||e.type=="keydown"&&this.keydown(e)||(this.view.updateState!=0?Promise.resolve().then(()=>this.runHandlers(e.type,e)):this.runHandlers(e.type,e))}runHandlers(e,A){let t=this.handlers[e];if(t){for(let n of t.observers)n(this.view,A);for(let n of t.handlers){if(A.defaultPrevented)break;if(n(this.view,A)){A.preventDefault();break}}}}ensureHandlers(e){let A=RcA(e),t=this.handlers,n=this.view.contentDOM;for(let o in A)if(o!="scroll"){let a=!A[o].handlers.length,r=t[o];r&&a!=!r.handlers.length&&(n.removeEventListener(o,this.handleEvent),r=null),r||n.addEventListener(o,this.handleEvent,{passive:a})}for(let o in t)o!="scroll"&&!A[o]&&n.removeEventListener(o,this.handleEvent);this.handlers=A}keydown(e){if(this.lastKeyCode=e.keyCode,this.lastKeyTime=Date.now(),e.keyCode==9&&this.tabFocusMode>-1&&(!this.tabFocusMode||Date.now()<=this.tabFocusMode))return!0;if(this.tabFocusMode>0&&e.keyCode!=27&&CH.indexOf(e.keyCode)<0&&(this.tabFocusMode=-1),Ct.android&&Ct.chrome&&!e.synthetic&&(e.keyCode==13||e.keyCode==8))return this.view.observer.delayAndroidKey(e.key,e.keyCode),!0;let A;return Ct.ios&&!e.synthetic&&!e.altKey&&!e.metaKey&&!e.shiftKey&&((A=cH.find(t=>t.keyCode==e.keyCode))&&!e.ctrlKey||NcA.indexOf(e.key)>-1&&e.ctrlKey)?(this.pendingIOSKey=A||e,setTimeout(()=>this.flushIOSKey(),250),!0):(e.keyCode!=229&&this.view.observer.forceFlush(),!1)}flushIOSKey(e){let A=this.pendingIOSKey;return!A||A.key=="Enter"&&e&&e.from<e.to&&/^\S+$/.test(e.insert.toString())?!1:(this.pendingIOSKey=void 0,ih(this.view.contentDOM,A.key,A.keyCode,A instanceof KeyboardEvent?A:void 0))}ignoreDuringComposition(e){return!/^key/.test(e.type)||e.synthetic?!1:this.composing>0?!0:Ct.safari&&!Ct.ios&&this.compositionPendingKey&&Date.now()-this.compositionEndedAt<100?(this.compositionPendingKey=!1,!0):!1}startMouseSelection(e){this.mouseSelection&&this.mouseSelection.destroy(),this.mouseSelection=e}update(e){this.view.observer.update(e),this.mouseSelection&&this.mouseSelection.update(e),this.draggedContent&&e.docChanged&&(this.draggedContent=this.draggedContent.map(e.changes)),e.transactions.length&&(this.lastKeyCode=this.lastSelectionTime=0)}destroy(){this.mouseSelection&&this.mouseSelection.destroy()}};function aY(i,e){return(A,t)=>{try{return e.call(i,t,A)}catch(n){Gr(A.state,n)}}}function RcA(i){let e=Object.create(null);function A(t){return e[t]||(e[t]={observers:[],handlers:[]})}for(let t of i){let n=t.spec,o=n&&n.plugin.domEventHandlers,a=n&&n.plugin.domEventObservers;if(o)for(let r in o){let s=o[r];s&&A(r).handlers.push(aY(t.value,s))}if(a)for(let r in a){let s=a[r];s&&A(r).observers.push(aY(t.value,s))}}for(let t in sc)A(t).handlers.push(sc[t]);for(let t in cl)A(t).observers.push(cl[t]);return e}var cH=[{key:"Backspace",keyCode:8,inputType:"deleteContentBackward"},{key:"Enter",keyCode:13,inputType:"insertParagraph"},{key:"Enter",keyCode:13,inputType:"insertLineBreak"},{key:"Delete",keyCode:46,inputType:"deleteContentForward"}],NcA="dthko",CH=[16,17,18,20,91,92,224,225],T6=6;function O6(i){return Math.max(0,i)*.7+8}function FcA(i,e){return Math.max(Math.abs(i.clientX-e.clientX),Math.abs(i.clientY-e.clientY))}var H9=class{constructor(e,A,t,n){this.view=e,this.startEvent=A,this.style=t,this.mustSelect=n,this.scrollSpeed={x:0,y:0},this.scrolling=-1,this.lastEvent=A,this.scrollParents=GY(e.contentDOM),this.atoms=e.state.facet(C4).map(a=>a(e));let o=e.contentDOM.ownerDocument;o.addEventListener("mousemove",this.move=this.move.bind(this)),o.addEventListener("mouseup",this.up=this.up.bind(this)),this.extend=A.shiftKey,this.multiple=e.state.facet(ir.allowMultipleSelections)&&LcA(e,A),this.dragging=KcA(e,A)&&BH(A)==1?null:!1}start(e){this.dragging===!1&&this.select(e)}move(e){if(e.buttons==0)return this.destroy();if(this.dragging||this.dragging==null&&FcA(this.startEvent,e)<10)return;this.select(this.lastEvent=e);let A=0,t=0,n=0,o=0,a=this.view.win.innerWidth,r=this.view.win.innerHeight;this.scrollParents.x&&({left:n,right:a}=this.scrollParents.x.getBoundingClientRect()),this.scrollParents.y&&({top:o,bottom:r}=this.scrollParents.y.getBoundingClientRect());let s=pS(this.view);e.clientX-s.left<=n+T6?A=-O6(n-e.clientX):e.clientX+s.right>=a-T6&&(A=O6(e.clientX-a)),e.clientY-s.top<=o+T6?t=-O6(o-e.clientY):e.clientY+s.bottom>=r-T6&&(t=O6(e.clientY-r)),this.setScrollSpeed(A,t)}up(e){this.dragging==null&&this.select(this.lastEvent),this.dragging||e.preventDefault(),this.destroy()}destroy(){this.setScrollSpeed(0,0);let e=this.view.contentDOM.ownerDocument;e.removeEventListener("mousemove",this.move),e.removeEventListener("mouseup",this.up),this.view.inputState.mouseSelection=this.view.inputState.draggedContent=null}setScrollSpeed(e,A){this.scrollSpeed={x:e,y:A},e||A?this.scrolling<0&&(this.scrolling=setInterval(()=>this.scroll(),50)):this.scrolling>-1&&(clearInterval(this.scrolling),this.scrolling=-1)}scroll(){let{x:e,y:A}=this.scrollSpeed;e&&this.scrollParents.x&&(this.scrollParents.x.scrollLeft+=e,e=0),A&&this.scrollParents.y&&(this.scrollParents.y.scrollTop+=A,A=0),(e||A)&&this.view.win.scrollBy(e,A),this.dragging===!1&&this.select(this.lastEvent)}select(e){let{view:A}=this,t=rH(this.atoms,this.style.get(e,this.extend,this.multiple));(this.mustSelect||!t.eq(A.state.selection,this.dragging===!1))&&this.view.dispatch({selection:t,userEvent:"select.pointer"}),this.mustSelect=!1}update(e){e.transactions.some(A=>A.isUserEvent("input.type"))?this.destroy():this.style.update(e)&&setTimeout(()=>this.select(this.lastEvent),20)}};function LcA(i,e){let A=i.state.facet(jY);return A.length?A[0](e):Ct.mac?e.metaKey:e.ctrlKey}function GcA(i,e){let A=i.state.facet(VY);return A.length?A[0](e):Ct.mac?!e.altKey:!e.ctrlKey}function KcA(i,e){let{main:A}=i.state.selection;if(A.empty)return!1;let t=g4(i.root);if(!t||t.rangeCount==0)return!0;let n=t.getRangeAt(0).getClientRects();for(let o=0;o<n.length;o++){let a=n[o];if(a.left<=e.clientX&&a.right>=e.clientX&&a.top<=e.clientY&&a.bottom>=e.clientY)return!0}return!1}function UcA(i,e){if(!e.bubbles)return!0;if(e.defaultPrevented)return!1;for(let A=e.target,t;A!=i.contentDOM;A=A.parentNode)if(!A||A.nodeType==11||(t=_a.get(A))&&t.isWidget()&&!t.isHidden&&t.widget.ignoreEvent(e))return!1;return!0}var sc=Object.create(null),cl=Object.create(null),dH=Ct.ie&&Ct.ie_version<15||Ct.ios&&Ct.webkit_version<604;function TcA(i){let e=i.dom.parentNode;if(!e)return;let A=e.appendChild(document.createElement("textarea"));A.style.cssText="position: fixed; left: -10000px; top: 10px",A.focus(),setTimeout(()=>{i.focus(),A.remove(),IH(i,A.value)},50)}function u8(i,e,A){for(let t of i.facet(e))A=t(A,i);return A}function IH(i,e){e=u8(i.state,ES,e);let{state:A}=i,t,n=1,o=A.toText(e),a=o.lines==A.selection.ranges.length;if(z9!=null&&A.selection.ranges.every(s=>s.empty)&&z9==o.toString()){let s=-1;t=A.changeByRange(l=>{let g=A.doc.lineAt(l.from);if(g.from==s)return{range:l};s=g.from;let C=A.toText((a?o.line(n++).text:e)+A.lineBreak);return{changes:{from:g.from,insert:C},range:Be.cursor(l.from+C.length)}})}else a?t=A.changeByRange(s=>{let l=o.line(n++);return{changes:{from:s.from,to:s.to,insert:l.text},range:Be.cursor(s.from+l.length)}}):t=A.replaceSelection(o);i.dispatch(t,{userEvent:"input.paste",scrollIntoView:!0})}cl.scroll=i=>{i.inputState.lastScrollTop=i.scrollDOM.scrollTop,i.inputState.lastScrollLeft=i.scrollDOM.scrollLeft};cl.wheel=cl.mousewheel=i=>{i.inputState.lastWheelEvent=Date.now()};sc.keydown=(i,e)=>(i.inputState.setSelectionOrigin("select"),e.keyCode==27&&i.inputState.tabFocusMode!=0&&(i.inputState.tabFocusMode=Date.now()+2e3),!1);cl.touchstart=(i,e)=>{let A=i.inputState,t=e.targetTouches[0];A.lastTouchTime=Date.now(),t&&(A.lastTouchX=t.clientX,A.lastTouchY=t.clientY),A.setSelectionOrigin("select.pointer")};cl.touchmove=i=>{i.inputState.setSelectionOrigin("select.pointer")};sc.mousedown=(i,e)=>{if(i.observer.flush(),i.inputState.lastTouchTime>Date.now()-2e3)return!1;let A=null;for(let t of i.state.facet(qY))if(A=t(i,e),A)break;if(!A&&e.button==0&&(A=JcA(i,e)),A){let t=!i.hasFocus;i.inputState.startMouseSelection(new H9(i,e,A,t)),t&&i.observer.ignore(()=>{KY(i.contentDOM);let o=i.root.activeElement;o&&!o.contains(i.contentDOM)&&o.blur()});let n=i.inputState.mouseSelection;if(n)return n.start(e),n.dragging===!1}else i.inputState.setSelectionOrigin("select.pointer");return!1};function rY(i,e,A,t){if(t==1)return Be.cursor(e,A);if(t==2)return wcA(i.state,e,A);{let n=i.docView.lineAt(e,A),o=i.state.doc.lineAt(n?n.posAtEnd:e),a=n?n.posAtStart:o.from,r=n?n.posAtEnd:o.to;return r<i.state.doc.length&&r==o.to&&r++,Be.range(a,r)}}var OcA=Ct.ie&&Ct.ie_version<=11,sY=null,lY=0,gY=0;function BH(i){if(!OcA)return i.detail;let e=sY,A=gY;return sY=i,gY=Date.now(),lY=!e||A>Date.now()-400&&Math.abs(e.clientX-i.clientX)<2&&Math.abs(e.clientY-i.clientY)<2?(lY+1)%3:1}function JcA(i,e){let A=i.posAndSideAtCoords({x:e.clientX,y:e.clientY},!1),t=BH(e),n=i.state.selection;return{update(o){o.docChanged&&(A.pos=o.changes.mapPos(A.pos),n=n.map(o.changes))},get(o,a,r){let s=i.posAndSideAtCoords({x:o.clientX,y:o.clientY},!1),l,g=rY(i,s.pos,s.assoc,t);if(A.pos!=s.pos&&!a){let C=rY(i,A.pos,A.assoc,t),d=Math.min(C.from,g.from),B=Math.max(C.to,g.to);g=d<g.from?Be.range(d,B,g.assoc):Be.range(B,d,g.assoc)}return a?n.replaceRange(n.main.extend(g.from,g.to,g.assoc)):r&&t==1&&n.ranges.length>1&&(l=YcA(n,s.pos))?l:r?n.addRange(g):Be.create([g])}}}function YcA(i,e){for(let A=0;A<i.ranges.length;A++){let{from:t,to:n}=i.ranges[A];if(t<=e&&n>=e)return Be.create(i.ranges.slice(0,A).concat(i.ranges.slice(A+1)),i.mainIndex==A?0:i.mainIndex-(i.mainIndex>A?1:0))}return null}sc.dragstart=(i,e)=>{let{selection:{main:A}}=i.state;if(e.target.draggable){let n=i.docView.tile.nearest(e.target);if(n&&n.isWidget()){let o=n.posAtStart,a=o+n.length;(o>=A.to||a<=A.from)&&(A=Be.range(o,a))}}let{inputState:t}=i;return t.mouseSelection&&(t.mouseSelection.dragging=!0),t.draggedContent=A,e.dataTransfer&&(e.dataTransfer.setData("Text",u8(i.state,QS,i.state.sliceDoc(A.from,A.to))),e.dataTransfer.effectAllowed="copyMove"),!1};sc.dragend=i=>(i.inputState.draggedContent=null,!1);function cY(i,e,A,t){if(A=u8(i.state,ES,A),!A)return;let n=i.posAtCoords({x:e.clientX,y:e.clientY},!1),{draggedContent:o}=i.inputState,a=t&&o&&GcA(i,e)?{from:o.from,to:o.to}:null,r={from:n,insert:A},s=i.state.changes(a?[a,r]:r);i.focus(),i.dispatch({changes:s,selection:{anchor:s.mapPos(n,-1),head:s.mapPos(n,1)},userEvent:a?"move.drop":"input.drop"}),i.inputState.draggedContent=null}sc.drop=(i,e)=>{if(!e.dataTransfer)return!1;if(i.state.readOnly)return!0;let A=e.dataTransfer.files;if(A&&A.length){let t=Array(A.length),n=0,o=()=>{++n==A.length&&cY(i,e,t.filter(a=>a!=null).join(i.state.lineBreak),!1)};for(let a=0;a<A.length;a++){let r=new FileReader;r.onerror=o,r.onload=()=>{/[\x00-\x08\x0e-\x1f]{2}/.test(r.result)||(t[a]=r.result),o()},r.readAsText(A[a])}return!0}else{let t=e.dataTransfer.getData("Text");if(t)return cY(i,e,t,!0),!0}return!1};sc.paste=(i,e)=>{if(i.state.readOnly)return!0;i.observer.flush();let A=dH?null:e.clipboardData;return A?(IH(i,A.getData("text/plain")||A.getData("text/uri-list")),!0):(TcA(i),!1)};function HcA(i,e){let A=i.dom.parentNode;if(!A)return;let t=A.appendChild(document.createElement("textarea"));t.style.cssText="position: fixed; left: -10000px; top: 10px",t.value=e,t.focus(),t.selectionEnd=e.length,t.selectionStart=0,setTimeout(()=>{t.remove(),i.focus()},50)}function zcA(i){let e=[],A=[],t=!1;for(let n of i.selection.ranges)n.empty||(e.push(i.sliceDoc(n.from,n.to)),A.push(n));if(!e.length){let n=-1;for(let{from:o}of i.selection.ranges){let a=i.doc.lineAt(o);a.number>n&&(e.push(a.text),A.push({from:a.from,to:Math.min(i.doc.length,a.to+1)})),n=a.number}t=!0}return{text:u8(i,QS,e.join(i.lineBreak)),ranges:A,linewise:t}}var z9=null;sc.copy=sc.cut=(i,e)=>{if(!$u(i.contentDOM,i.observer.selectionRange))return!1;let{text:A,ranges:t,linewise:n}=zcA(i.state);if(!A&&!n)return!1;z9=n?A:null,e.type=="cut"&&!i.state.readOnly&&i.dispatch({changes:t,scrollIntoView:!0,userEvent:"delete.cut"});let o=dH?null:e.clipboardData;return o?(o.clearData(),o.setData("text/plain",A),!0):(HcA(i,A),!1)};var hH=sl.define();function EH(i,e){let A=[];for(let t of i.facet(XY)){let n=t(i,e);n&&A.push(n)}return A.length?i.update({effects:A,annotations:hH.of(!0)}):null}function QH(i){setTimeout(()=>{let e=i.hasFocus;if(e!=i.inputState.notifiedFocused){let A=EH(i.state,e);A?i.dispatch(A):i.update([])}},10)}cl.focus=i=>{i.inputState.lastFocusTime=Date.now(),!i.scrollDOM.scrollTop&&(i.inputState.lastScrollTop||i.inputState.lastScrollLeft)&&(i.scrollDOM.scrollTop=i.inputState.lastScrollTop,i.scrollDOM.scrollLeft=i.inputState.lastScrollLeft),QH(i)};cl.blur=i=>{i.observer.clearSelectionRange(),QH(i)};cl.compositionstart=cl.compositionupdate=i=>{i.observer.editContext||(i.inputState.compositionFirstChange==null&&(i.inputState.compositionFirstChange=!0),i.inputState.composing<0&&(i.inputState.composing=0))};cl.compositionend=i=>{i.observer.editContext||(i.inputState.composing=-1,i.inputState.compositionEndedAt=Date.now(),i.inputState.compositionPendingKey=!0,i.inputState.compositionPendingChange=i.observer.pendingRecords().length>0,i.inputState.compositionFirstChange=null,Ct.chrome&&Ct.android?i.observer.flushSoon():i.inputState.compositionPendingChange?Promise.resolve().then(()=>i.observer.flush()):setTimeout(()=>{i.inputState.composing<0&&i.docView.hasComposition&&i.update([])},50))};cl.contextmenu=i=>{i.inputState.lastContextMenu=Date.now()};sc.beforeinput=(i,e)=>{var A,t;if((e.inputType=="insertText"||e.inputType=="insertCompositionText")&&(i.inputState.insertingText=e.data,i.inputState.insertingTextAt=Date.now()),e.inputType=="insertReplacementText"&&i.observer.editContext){let o=(A=e.dataTransfer)===null||A===void 0?void 0:A.getData("text/plain"),a=e.getTargetRanges();if(o&&a.length){let r=a[0],s=i.posAtDOM(r.startContainer,r.startOffset),l=i.posAtDOM(r.endContainer,r.endOffset);return fS(i,{from:s,to:l,insert:i.state.toText(o)},null),!0}}let n;if(Ct.chrome&&Ct.android&&(n=cH.find(o=>o.inputType==e.inputType))&&(i.observer.delayAndroidKey(n.key,n.keyCode),n.key=="Backspace"||n.key=="Delete")){let o=((t=window.visualViewport)===null||t===void 0?void 0:t.height)||0;setTimeout(()=>{var a;(((a=window.visualViewport)===null||a===void 0?void 0:a.height)||0)>o+10&&i.hasFocus&&(i.contentDOM.blur(),i.focus())},100)}return Ct.ios&&e.inputType=="deleteContentForward"&&i.observer.flushSoon(),Ct.safari&&e.inputType=="insertText"&&i.inputState.composing>=0&&setTimeout(()=>cl.compositionend(i,e),20),!1};var CY=new Set;function PcA(i){CY.has(i)||(CY.add(i),i.addEventListener("copy",()=>{}),i.addEventListener("cut",()=>{}))}var dY=["pre-wrap","normal","pre-line","break-spaces"],sh=!1;function IY(){sh=!1}var P9=class{constructor(e){this.lineWrapping=e,this.doc=On.empty,this.heightSamples={},this.lineHeight=14,this.charWidth=7,this.textHeight=14,this.lineLength=30}heightForGap(e,A){let t=this.doc.lineAt(A).number-this.doc.lineAt(e).number+1;return this.lineWrapping&&(t+=Math.max(0,Math.ceil((A-e-t*this.lineLength*.5)/this.lineLength))),this.lineHeight*t}heightForLine(e){return this.lineWrapping?(1+Math.max(0,Math.ceil((e-this.lineLength)/Math.max(1,this.lineLength-5))))*this.lineHeight:this.lineHeight}setDoc(e){return this.doc=e,this}mustRefreshForWrapping(e){return dY.indexOf(e)>-1!=this.lineWrapping}mustRefreshForHeights(e){let A=!1;for(let t=0;t<e.length;t++){let n=e[t];n<0?t++:this.heightSamples[Math.floor(n*10)]||(A=!0,this.heightSamples[Math.floor(n*10)]=!0)}return A}refresh(e,A,t,n,o,a){let r=dY.indexOf(e)>-1,s=Math.abs(A-this.lineHeight)>.3||this.lineWrapping!=r||Math.abs(t-this.charWidth)>.1;if(this.lineWrapping=r,this.lineHeight=A,this.charWidth=t,this.textHeight=n,this.lineLength=o,s){this.heightSamples={};for(let l=0;l<a.length;l++){let g=a[l];g<0?l++:this.heightSamples[Math.floor(g*10)]=!0}}return s}},j9=class{constructor(e,A){this.from=e,this.heights=A,this.index=0}get more(){return this.index<this.heights.length}},ac=class i{constructor(e,A,t,n,o){this.from=e,this.length=A,this.top=t,this.height=n,this._content=o}get type(){return typeof this._content=="number"?As.Text:Array.isArray(this._content)?this._content:this._content.type}get to(){return this.from+this.length}get bottom(){return this.top+this.height}get widget(){return this._content instanceof wd?this._content.widget:null}get widgetLineBreaks(){return typeof this._content=="number"?this._content:0}join(e){let A=(Array.isArray(this._content)?this._content:[this]).concat(Array.isArray(e._content)?e._content:[e]);return new i(this.from,this.length+e.length,this.top,this.height+e.height,A)}},Qa=(function(i){return i[i.ByPos=0]="ByPos",i[i.ByHeight=1]="ByHeight",i[i.ByPosNoHeight=2]="ByPosNoHeight",i})(Qa||(Qa={})),q6=.001,Nl=class i{constructor(e,A,t=2){this.length=e,this.height=A,this.flags=t}get outdated(){return(this.flags&2)>0}set outdated(e){this.flags=(e?2:0)|this.flags&-3}setHeight(e){this.height!=e&&(Math.abs(this.height-e)>q6&&(sh=!0),this.height=e)}replace(e,A,t){return i.of(t)}decomposeLeft(e,A){A.push(this)}decomposeRight(e,A){A.push(this)}applyChanges(e,A,t,n){let o=this,a=t.doc;for(let r=n.length-1;r>=0;r--){let{fromA:s,toA:l,fromB:g,toB:C}=n[r],d=o.lineAt(s,Qa.ByPosNoHeight,t.setDoc(A),0,0),B=d.to>=l?d:o.lineAt(l,Qa.ByPosNoHeight,t,0,0);for(C+=B.to-l,l=B.to;r>0&&d.from<=n[r-1].toA;)s=n[r-1].fromA,g=n[r-1].fromB,r--,s<d.from&&(d=o.lineAt(s,Qa.ByPosNoHeight,t,0,0));g+=d.from-s,s=d.from;let u=q9.build(t.setDoc(a),e,g,C);o=s8(o,o.replace(s,l,u))}return o.updateHeight(t,0)}static empty(){return new dg(0,0,0)}static of(e){if(e.length==1)return e[0];let A=0,t=e.length,n=0,o=0;for(;;)if(A==t)if(n>o*2){let r=e[A-1];r.break?e.splice(--A,1,r.left,null,r.right):e.splice(--A,1,r.left,r.right),t+=1+r.break,n-=r.size}else if(o>n*2){let r=e[t];r.break?e.splice(t,1,r.left,null,r.right):e.splice(t,1,r.left,r.right),t+=2+r.break,o-=r.size}else break;else if(n<o){let r=e[A++];r&&(n+=r.size)}else{let r=e[--t];r&&(o+=r.size)}let a=0;return e[A-1]==null?(a=1,A--):e[A]==null&&(a=1,t++),new V9(i.of(e.slice(0,A)),a,i.of(e.slice(t)))}};function s8(i,e){return i==e?i:(i.constructor!=e.constructor&&(sh=!0),e)}Nl.prototype.size=1;var jcA=Lt.replace({}),l8=class extends Nl{constructor(e,A,t){super(e,A),this.deco=t,this.spaceAbove=0}mainBlock(e,A){return new ac(A,this.length,e+this.spaceAbove,this.height-this.spaceAbove,this.deco||0)}blockAt(e,A,t,n){return this.spaceAbove&&e<t+this.spaceAbove?new ac(n,0,t,this.spaceAbove,jcA):this.mainBlock(t,n)}lineAt(e,A,t,n,o){let a=this.mainBlock(n,o);return this.spaceAbove?this.blockAt(0,t,n,o).join(a):a}forEachLine(e,A,t,n,o,a){e<=o+this.length&&A>=o&&a(this.lineAt(0,Qa.ByPos,t,n,o))}setMeasuredHeight(e){let A=e.heights[e.index++];A<0?(this.spaceAbove=-A,A=e.heights[e.index++]):this.spaceAbove=0,this.setHeight(A)}updateHeight(e,A=0,t=!1,n){return n&&n.from<=A&&n.more&&this.setMeasuredHeight(n),this.outdated=!1,this}toString(){return`block(${this.length})`}},dg=class i extends l8{constructor(e,A,t){super(e,A,null),this.collapsed=0,this.widgetHeight=0,this.breaks=0,this.spaceAbove=t}mainBlock(e,A){return new ac(A,this.length,e+this.spaceAbove,this.height-this.spaceAbove,this.breaks)}replace(e,A,t){let n=t[0];return t.length==1&&(n instanceof i||n instanceof M2&&n.flags&4)&&Math.abs(this.length-n.length)<10?(n instanceof M2?n=new i(n.length,this.height,this.spaceAbove):n.height=this.height,this.outdated||(n.outdated=!1),n):Nl.of(t)}updateHeight(e,A=0,t=!1,n){return n&&n.from<=A&&n.more?this.setMeasuredHeight(n):(t||this.outdated)&&(this.spaceAbove=0,this.setHeight(Math.max(this.widgetHeight,e.heightForLine(this.length-this.collapsed))+this.breaks*e.lineHeight)),this.outdated=!1,this}toString(){return`line(${this.length}${this.collapsed?-this.collapsed:""}${this.widgetHeight?":"+this.widgetHeight:""})`}},M2=class i extends Nl{constructor(e){super(e,0)}heightMetrics(e,A){let t=e.doc.lineAt(A).number,n=e.doc.lineAt(A+this.length).number,o=n-t+1,a,r=0;if(e.lineWrapping){let s=Math.min(this.height,e.lineHeight*o);a=s/o,this.length>o+1&&(r=(this.height-s)/(this.length-o-1))}else a=this.height/o;return{firstLine:t,lastLine:n,perLine:a,perChar:r}}blockAt(e,A,t,n){let{firstLine:o,lastLine:a,perLine:r,perChar:s}=this.heightMetrics(A,n);if(A.lineWrapping){let l=n+(e<A.lineHeight?0:Math.round(Math.max(0,Math.min(1,(e-t)/this.height))*this.length)),g=A.doc.lineAt(l),C=r+g.length*s,d=Math.max(t,e-C/2);return new ac(g.from,g.length,d,C,0)}else{let l=Math.max(0,Math.min(a-o,Math.floor((e-t)/r))),{from:g,length:C}=A.doc.line(o+l);return new ac(g,C,t+r*l,r,0)}}lineAt(e,A,t,n,o){if(A==Qa.ByHeight)return this.blockAt(e,t,n,o);if(A==Qa.ByPosNoHeight){let{from:B,to:u}=t.doc.lineAt(e);return new ac(B,u-B,0,0,0)}let{firstLine:a,perLine:r,perChar:s}=this.heightMetrics(t,o),l=t.doc.lineAt(e),g=r+l.length*s,C=l.number-a,d=n+r*C+s*(l.from-o-C);return new ac(l.from,l.length,Math.max(n,Math.min(d,n+this.height-g)),g,0)}forEachLine(e,A,t,n,o,a){e=Math.max(e,o),A=Math.min(A,o+this.length);let{firstLine:r,perLine:s,perChar:l}=this.heightMetrics(t,o);for(let g=e,C=n;g<=A;){let d=t.doc.lineAt(g);if(g==e){let u=d.number-r;C+=s*u+l*(e-o-u)}let B=s+l*d.length;a(new ac(d.from,d.length,C,B,0)),C+=B,g=d.to+1}}replace(e,A,t){let n=this.length-A;if(n>0){let o=t[t.length-1];o instanceof i?t[t.length-1]=new i(o.length+n):t.push(null,new i(n-1))}if(e>0){let o=t[0];o instanceof i?t[0]=new i(e+o.length):t.unshift(new i(e-1),null)}return Nl.of(t)}decomposeLeft(e,A){A.push(new i(e-1),null)}decomposeRight(e,A){A.push(null,new i(this.length-e-1))}updateHeight(e,A=0,t=!1,n){let o=A+this.length;if(n&&n.from<=A+this.length&&n.more){let a=[],r=Math.max(A,n.from),s=-1;for(n.from>A&&a.push(new i(n.from-A-1).updateHeight(e,A));r<=o&&n.more;){let g=e.doc.lineAt(r).length;a.length&&a.push(null);let C=n.heights[n.index++],d=0;C<0&&(d=-C,C=n.heights[n.index++]),s==-1?s=C:Math.abs(C-s)>=q6&&(s=-2);let B=new dg(g,C,d);B.outdated=!1,a.push(B),r+=g+1}r<=o&&a.push(null,new i(o-r).updateHeight(e,r));let l=Nl.of(a);return(s<0||Math.abs(l.height-this.height)>=q6||Math.abs(s-this.heightMetrics(e,A).perLine)>=q6)&&(sh=!0),s8(this,l)}else(t||this.outdated)&&(this.setHeight(e.heightForGap(A,A+this.length)),this.outdated=!1);return this}toString(){return`gap(${this.length})`}},V9=class extends Nl{constructor(e,A,t){super(e.length+A+t.length,e.height+t.height,A|(e.outdated||t.outdated?2:0)),this.left=e,this.right=t,this.size=e.size+t.size}get break(){return this.flags&1}blockAt(e,A,t,n){let o=t+this.left.height;return e<o?this.left.blockAt(e,A,t,n):this.right.blockAt(e,A,o,n+this.left.length+this.break)}lineAt(e,A,t,n,o){let a=n+this.left.height,r=o+this.left.length+this.break,s=A==Qa.ByHeight?e<a:e<r,l=s?this.left.lineAt(e,A,t,n,o):this.right.lineAt(e,A,t,a,r);if(this.break||(s?l.to<r:l.from>r))return l;let g=A==Qa.ByPosNoHeight?Qa.ByPosNoHeight:Qa.ByPos;return s?l.join(this.right.lineAt(r,g,t,a,r)):this.left.lineAt(r,g,t,n,o).join(l)}forEachLine(e,A,t,n,o,a){let r=n+this.left.height,s=o+this.left.length+this.break;if(this.break)e<s&&this.left.forEachLine(e,A,t,n,o,a),A>=s&&this.right.forEachLine(e,A,t,r,s,a);else{let l=this.lineAt(s,Qa.ByPos,t,n,o);e<l.from&&this.left.forEachLine(e,l.from-1,t,n,o,a),l.to>=e&&l.from<=A&&a(l),A>l.to&&this.right.forEachLine(l.to+1,A,t,r,s,a)}}replace(e,A,t){let n=this.left.length+this.break;if(A<n)return this.balanced(this.left.replace(e,A,t),this.right);if(e>this.left.length)return this.balanced(this.left,this.right.replace(e-n,A-n,t));let o=[];e>0&&this.decomposeLeft(e,o);let a=o.length;for(let r of t)o.push(r);if(e>0&&BY(o,a-1),A<this.length){let r=o.length;this.decomposeRight(A,o),BY(o,r)}return Nl.of(o)}decomposeLeft(e,A){let t=this.left.length;if(e<=t)return this.left.decomposeLeft(e,A);A.push(this.left),this.break&&(t++,e>=t&&A.push(null)),e>t&&this.right.decomposeLeft(e-t,A)}decomposeRight(e,A){let t=this.left.length,n=t+this.break;if(e>=n)return this.right.decomposeRight(e-n,A);e<t&&this.left.decomposeRight(e,A),this.break&&e<n&&A.push(null),A.push(this.right)}balanced(e,A){return e.size>2*A.size||A.size>2*e.size?Nl.of(this.break?[e,null,A]:[e,A]):(this.left=s8(this.left,e),this.right=s8(this.right,A),this.setHeight(e.height+A.height),this.outdated=e.outdated||A.outdated,this.size=e.size+A.size,this.length=e.length+this.break+A.length,this)}updateHeight(e,A=0,t=!1,n){let{left:o,right:a}=this,r=A+o.length+this.break,s=null;return n&&n.from<=A+o.length&&n.more?s=o=o.updateHeight(e,A,t,n):o.updateHeight(e,A,t),n&&n.from<=r+a.length&&n.more?s=a=a.updateHeight(e,r,t,n):a.updateHeight(e,r,t),s?this.balanced(o,a):(this.height=this.left.height+this.right.height,this.outdated=!1,this)}toString(){return this.left+(this.break?" ":"-")+this.right}};function BY(i,e){let A,t;i[e]==null&&(A=i[e-1])instanceof M2&&(t=i[e+1])instanceof M2&&i.splice(e-1,3,new M2(A.length+1+t.length))}var VcA=5,q9=class i{constructor(e,A){this.pos=e,this.oracle=A,this.nodes=[],this.lineStart=-1,this.lineEnd=-1,this.covering=null,this.writtenTo=e}get isCovered(){return this.covering&&this.nodes[this.nodes.length-1]==this.covering}span(e,A){if(this.lineStart>-1){let t=Math.min(A,this.lineEnd),n=this.nodes[this.nodes.length-1];n instanceof dg?n.length+=t-this.pos:(t>this.pos||!this.isCovered)&&this.nodes.push(new dg(t-this.pos,-1,0)),this.writtenTo=t,A>t&&(this.nodes.push(null),this.writtenTo++,this.lineStart=-1)}this.pos=A}point(e,A,t){if(e<A||t.heightRelevant){let n=t.widget?t.widget.estimatedHeight:0,o=t.widget?t.widget.lineBreaks:0;n<0&&(n=this.oracle.lineHeight);let a=A-e;t.block?this.addBlock(new l8(a,n,t)):(a||o||n>=VcA)&&this.addLineDeco(n,o,a)}else A>e&&this.span(e,A);this.lineEnd>-1&&this.lineEnd<this.pos&&(this.lineEnd=this.oracle.doc.lineAt(this.pos).to)}enterLine(){if(this.lineStart>-1)return;let{from:e,to:A}=this.oracle.doc.lineAt(this.pos);this.lineStart=e,this.lineEnd=A,this.writtenTo<e&&((this.writtenTo<e-1||this.nodes[this.nodes.length-1]==null)&&this.nodes.push(this.blankContent(this.writtenTo,e-1)),this.nodes.push(null)),this.pos>e&&this.nodes.push(new dg(this.pos-e,-1,0)),this.writtenTo=this.pos}blankContent(e,A){let t=new M2(A-e);return this.oracle.doc.lineAt(e).to==A&&(t.flags|=4),t}ensureLine(){this.enterLine();let e=this.nodes.length?this.nodes[this.nodes.length-1]:null;if(e instanceof dg)return e;let A=new dg(0,-1,0);return this.nodes.push(A),A}addBlock(e){this.enterLine();let A=e.deco;A&&A.startSide>0&&!this.isCovered&&this.ensureLine(),this.nodes.push(e),this.writtenTo=this.pos=this.pos+e.length,A&&A.endSide>0&&(this.covering=e)}addLineDeco(e,A,t){let n=this.ensureLine();n.length+=t,n.collapsed+=t,n.widgetHeight=Math.max(n.widgetHeight,e),n.breaks+=A,this.writtenTo=this.pos=this.pos+t}finish(e){let A=this.nodes.length==0?null:this.nodes[this.nodes.length-1];this.lineStart>-1&&!(A instanceof dg)&&!this.isCovered?this.nodes.push(new dg(0,-1,0)):(this.writtenTo<this.pos||A==null)&&this.nodes.push(this.blankContent(this.writtenTo,this.pos));let t=e;for(let n of this.nodes)n instanceof dg&&n.updateHeight(this.oracle,t),t+=n?n.length:1;return this.nodes}static build(e,A,t,n){let o=new i(t,e);return uo.spans(A,t,n,o,0),o.finish(t)}};function qcA(i,e,A){let t=new W9;return uo.compare(i,e,A,t,0),t.changes}var W9=class{constructor(){this.changes=[]}compareRange(){}comparePoint(e,A,t,n){(e<A||t&&t.heightRelevant||n&&n.heightRelevant)&&th(e,A,this.changes,5)}};function WcA(i,e){let A=i.getBoundingClientRect(),t=i.ownerDocument,n=t.defaultView||window,o=Math.max(0,A.left),a=Math.min(n.innerWidth,A.right),r=Math.max(0,A.top),s=Math.min(n.innerHeight,A.bottom);for(let l=i.parentNode;l&&l!=t.body;)if(l.nodeType==1){let g=l,C=window.getComputedStyle(g);if((g.scrollHeight>g.clientHeight||g.scrollWidth>g.clientWidth)&&C.overflow!="visible"){let d=g.getBoundingClientRect();o=Math.max(o,d.left),a=Math.min(a,d.right),r=Math.max(r,d.top),s=Math.min(l==i.parentNode?n.innerHeight:s,d.bottom)}l=C.position=="absolute"||C.position=="fixed"?g.offsetParent:g.parentNode}else if(l.nodeType==11)l=l.host;else break;return{left:o-A.left,right:Math.max(o,a)-A.left,top:r-(A.top+e),bottom:Math.max(r,s)-(A.top+e)}}function ZcA(i){let e=i.getBoundingClientRect(),A=i.ownerDocument.defaultView||window;return e.left<A.innerWidth&&e.right>0&&e.top<A.innerHeight&&e.bottom>0}function XcA(i,e){let A=i.getBoundingClientRect();return{left:0,right:A.right-A.left,top:e,bottom:A.bottom-(A.top+e)}}var o4=class{constructor(e,A,t,n){this.from=e,this.to=A,this.size=t,this.displaySize=n}static same(e,A){if(e.length!=A.length)return!1;for(let t=0;t<e.length;t++){let n=e[t],o=A[t];if(n.from!=o.from||n.to!=o.to||n.size!=o.size)return!1}return!0}draw(e,A){return Lt.replace({widget:new Z9(this.displaySize*(A?e.scaleY:e.scaleX),A)}).range(this.from,this.to)}},Z9=class extends gl{constructor(e,A){super(),this.size=e,this.vertical=A}eq(e){return e.size==this.size&&e.vertical==this.vertical}toDOM(){let e=document.createElement("div");return this.vertical?e.style.height=this.size+"px":(e.style.width=this.size+"px",e.style.height="2px",e.style.display="inline-block"),e}get estimatedHeight(){return this.vertical?this.size:-1}},g8=class{constructor(e,A){this.view=e,this.state=A,this.pixelViewport={left:0,right:window.innerWidth,top:0,bottom:0},this.inView=!0,this.paddingTop=0,this.paddingBottom=0,this.contentDOMWidth=0,this.contentDOMHeight=0,this.editorHeight=0,this.editorWidth=0,this.scaleX=1,this.scaleY=1,this.scrollOffset=0,this.scrolledToBottom=!1,this.scrollAnchorPos=0,this.scrollAnchorHeight=-1,this.scaler=hY,this.scrollTarget=null,this.printing=!1,this.mustMeasureContent=!0,this.defaultTextDirection=Lo.LTR,this.visibleRanges=[],this.mustEnforceCursorAssoc=!1;let t=A.facet(S9).some(n=>typeof n!="function"&&n.class=="cm-lineWrapping");this.heightOracle=new P9(t),this.stateDeco=EY(A),this.heightMap=Nl.empty().applyChanges(this.stateDeco,On.empty,this.heightOracle.setDoc(A.doc),[new rc(0,0,0,A.doc.length)]);for(let n=0;n<2&&(this.viewport=this.getViewport(0,null),!!this.updateForViewport());n++);this.updateViewportLines(),this.lineGaps=this.ensureLineGaps([]),this.lineGapDeco=Lt.set(this.lineGaps.map(n=>n.draw(this,!1))),this.scrollParent=e.scrollDOM,this.computeVisibleRanges()}updateForViewport(){let e=[this.viewport],{main:A}=this.state.selection;for(let t=0;t<=1;t++){let n=t?A.head:A.anchor;if(!e.some(({from:o,to:a})=>n>=o&&n<=a)){let{from:o,to:a}=this.lineBlockAt(n);e.push(new $B(o,a))}}return this.viewports=e.sort((t,n)=>t.from-n.from),this.updateScaler()}updateScaler(){let e=this.scaler;return this.scaler=this.heightMap.height<=7e6?hY:new X9(this.heightOracle,this.heightMap,this.viewports),e.eq(this.scaler)?0:2}updateViewportLines(){this.viewportLines=[],this.heightMap.forEachLine(this.viewport.from,this.viewport.to,this.heightOracle.setDoc(this.state.doc),0,0,e=>{this.viewportLines.push(Zu(e,this.scaler))})}update(e,A=null){this.state=e.state;let t=this.stateDeco;this.stateDeco=EY(this.state);let n=e.changedRanges,o=rc.extendWithRanges(n,qcA(t,this.stateDeco,e?e.changes:Zr.empty(this.state.doc.length))),a=this.heightMap.height,r=this.scrolledToBottom?null:this.scrollAnchorAt(this.scrollOffset);IY(),this.heightMap=this.heightMap.applyChanges(this.stateDeco,e.startState.doc,this.heightOracle.setDoc(this.state.doc),o),(this.heightMap.height!=a||sh)&&(e.flags|=2),r?(this.scrollAnchorPos=e.changes.mapPos(r.from,-1),this.scrollAnchorHeight=r.top):(this.scrollAnchorPos=-1,this.scrollAnchorHeight=a);let s=o.length?this.mapViewport(this.viewport,e.changes):this.viewport;(A&&(A.range.head<s.from||A.range.head>s.to)||!this.viewportIsAppropriate(s))&&(s=this.getViewport(0,A));let l=s.from!=this.viewport.from||s.to!=this.viewport.to;this.viewport=s,e.flags|=this.updateForViewport(),(l||!e.changes.empty||e.flags&2)&&this.updateViewportLines(),(this.lineGaps.length||this.viewport.to-this.viewport.from>4e3)&&this.updateLineGaps(this.ensureLineGaps(this.mapLineGaps(this.lineGaps,e.changes))),e.flags|=this.computeVisibleRanges(e.changes),A&&(this.scrollTarget=A),!this.mustEnforceCursorAssoc&&(e.selectionSet||e.focusChanged)&&e.view.lineWrapping&&e.state.selection.main.empty&&e.state.selection.main.assoc&&!e.state.facet($Y)&&(this.mustEnforceCursorAssoc=!0)}measure(){let{view:e}=this,A=e.contentDOM,t=window.getComputedStyle(A),n=this.heightOracle,o=t.whiteSpace;this.defaultTextDirection=t.direction=="rtl"?Lo.RTL:Lo.LTR;let a=this.heightOracle.mustRefreshForWrapping(o)||this.mustMeasureContent==="refresh",r=A.getBoundingClientRect(),s=a||this.mustMeasureContent||this.contentDOMHeight!=r.height;this.contentDOMHeight=r.height,this.mustMeasureContent=!1;let l=0,g=0;if(r.width&&r.height){let{scaleX:M,scaleY:x}=LY(A,r);(M>.005&&Math.abs(this.scaleX-M)>.005||x>.005&&Math.abs(this.scaleY-x)>.005)&&(this.scaleX=M,this.scaleY=x,l|=16,a=s=!0)}let C=(parseInt(t.paddingTop)||0)*this.scaleY,d=(parseInt(t.paddingBottom)||0)*this.scaleY;(this.paddingTop!=C||this.paddingBottom!=d)&&(this.paddingTop=C,this.paddingBottom=d,l|=18),this.editorWidth!=e.scrollDOM.clientWidth&&(n.lineWrapping&&(s=!0),this.editorWidth=e.scrollDOM.clientWidth,l|=16);let B=GY(this.view.contentDOM,!1).y;B!=this.scrollParent&&(this.scrollParent=B,this.scrollAnchorHeight=-1,this.scrollOffset=0);let u=this.getScrollOffset();this.scrollOffset!=u&&(this.scrollAnchorHeight=-1,this.scrollOffset=u),this.scrolledToBottom=UY(this.scrollParent||e.win);let E=(this.printing?XcA:WcA)(A,this.paddingTop),f=E.top-this.pixelViewport.top,m=E.bottom-this.pixelViewport.bottom;this.pixelViewport=E;let v=this.pixelViewport.bottom>this.pixelViewport.top&&this.pixelViewport.right>this.pixelViewport.left;if(v!=this.inView&&(this.inView=v,v&&(s=!0)),!this.inView&&!this.scrollTarget&&!ZcA(e.dom))return 0;let S=r.width;if((this.contentDOMWidth!=S||this.editorHeight!=e.scrollDOM.clientHeight)&&(this.contentDOMWidth=r.width,this.editorHeight=e.scrollDOM.clientHeight,l|=16),s){let M=e.docView.measureVisibleLineHeights(this.viewport);if(n.mustRefreshForHeights(M)&&(a=!0),a||n.lineWrapping&&Math.abs(S-this.contentDOMWidth)>n.charWidth){let{lineHeight:x,charWidth:F,textHeight:z}=e.docView.measureTextSize();a=x>0&&n.refresh(o,x,F,z,Math.max(5,S/F),M),a&&(e.docView.minWidth=0,l|=16)}f>0&&m>0?g=Math.max(f,m):f<0&&m<0&&(g=Math.min(f,m)),IY();for(let x of this.viewports){let F=x.from==this.viewport.from?M:e.docView.measureVisibleLineHeights(x);this.heightMap=(a?Nl.empty().applyChanges(this.stateDeco,On.empty,this.heightOracle,[new rc(0,0,0,e.state.doc.length)]):this.heightMap).updateHeight(n,0,a,new j9(x.from,F))}sh&&(l|=2)}let k=!this.viewportIsAppropriate(this.viewport,g)||this.scrollTarget&&(this.scrollTarget.range.head<this.viewport.from||this.scrollTarget.range.head>this.viewport.to);return k&&(l&2&&(l|=this.updateScaler()),this.viewport=this.getViewport(g,this.scrollTarget),l|=this.updateForViewport()),(l&2||k)&&this.updateViewportLines(),(this.lineGaps.length||this.viewport.to-this.viewport.from>4e3)&&this.updateLineGaps(this.ensureLineGaps(a?[]:this.lineGaps,e)),l|=this.computeVisibleRanges(),this.mustEnforceCursorAssoc&&(this.mustEnforceCursorAssoc=!1,e.docView.enforceCursorAssoc()),l}get visibleTop(){return this.scaler.fromDOM(this.pixelViewport.top)}get visibleBottom(){return this.scaler.fromDOM(this.pixelViewport.bottom)}getViewport(e,A){let t=.5-Math.max(-.5,Math.min(.5,e/1e3/2)),n=this.heightMap,o=this.heightOracle,{visibleTop:a,visibleBottom:r}=this,s=new $B(n.lineAt(a-t*1e3,Qa.ByHeight,o,0,0).from,n.lineAt(r+(1-t)*1e3,Qa.ByHeight,o,0,0).to);if(A){let{head:l}=A.range;if(l<s.from||l>s.to){let g=Math.min(this.editorHeight,this.pixelViewport.bottom-this.pixelViewport.top),C=n.lineAt(l,Qa.ByPos,o,0,0),d;A.y=="center"?d=(C.top+C.bottom)/2-g/2:A.y=="start"||A.y=="nearest"&&l<s.from?d=C.top:d=C.bottom-g,s=new $B(n.lineAt(d-1e3/2,Qa.ByHeight,o,0,0).from,n.lineAt(d+g+1e3/2,Qa.ByHeight,o,0,0).to)}}return s}mapViewport(e,A){let t=A.mapPos(e.from,-1),n=A.mapPos(e.to,1);return new $B(this.heightMap.lineAt(t,Qa.ByPos,this.heightOracle,0,0).from,this.heightMap.lineAt(n,Qa.ByPos,this.heightOracle,0,0).to)}viewportIsAppropriate({from:e,to:A},t=0){if(!this.inView)return!0;let{top:n}=this.heightMap.lineAt(e,Qa.ByPos,this.heightOracle,0,0),{bottom:o}=this.heightMap.lineAt(A,Qa.ByPos,this.heightOracle,0,0),{visibleTop:a,visibleBottom:r}=this;return(e==0||n<=a-Math.max(10,Math.min(-t,250)))&&(A==this.state.doc.length||o>=r+Math.max(10,Math.min(t,250)))&&n>a-2*1e3&&o<r+2*1e3}mapLineGaps(e,A){if(!e.length||A.empty)return e;let t=[];for(let n of e)A.touchesRange(n.from,n.to)||t.push(new o4(A.mapPos(n.from),A.mapPos(n.to),n.size,n.displaySize));return t}ensureLineGaps(e,A){let t=this.heightOracle.lineWrapping,n=t?1e4:2e3,o=n>>1,a=n<<1;if(this.defaultTextDirection!=Lo.LTR&&!t)return[];let r=[],s=(g,C,d,B)=>{if(C-g<o)return;let u=this.state.selection.main,E=[u.from];u.empty||E.push(u.to);for(let m of E)if(m>g&&m<C){s(g,m-10,d,B),s(m+10,C,d,B);return}let f=A0A(e,m=>m.from>=d.from&&m.to<=d.to&&Math.abs(m.from-g)<o&&Math.abs(m.to-C)<o&&!E.some(v=>m.from<v&&m.to>v));if(!f){if(C<d.to&&A&&t&&A.visibleRanges.some(S=>S.from<=C&&S.to>=C)){let S=A.moveToLineBoundary(Be.cursor(C),!1,!0).head;S>g&&(C=S)}let m=this.gapSize(d,g,C,B),v=t||m<2e6?m:2e6;f=new o4(g,C,m,v)}r.push(f)},l=g=>{if(g.length<a||g.type!=As.Text)return;let C=$cA(g.from,g.to,this.stateDeco);if(C.total<a)return;let d=this.scrollTarget?this.scrollTarget.range.head:null,B,u;if(t){let E=n/this.heightOracle.lineLength*this.heightOracle.lineHeight,f,m;if(d!=null){let v=Y6(C,d),S=((this.visibleBottom-this.visibleTop)/2+E)/g.height;f=v-S,m=v+S}else f=(this.visibleTop-g.top-E)/g.height,m=(this.visibleBottom-g.top+E)/g.height;B=J6(C,f),u=J6(C,m)}else{let E=C.total*this.heightOracle.charWidth,f=n*this.heightOracle.charWidth,m=0;if(E>2e6)for(let x of e)x.from>=g.from&&x.from<g.to&&x.size!=x.displaySize&&x.from*this.heightOracle.charWidth+m<this.pixelViewport.left&&(m=x.size-x.displaySize);let v=this.pixelViewport.left+m,S=this.pixelViewport.right+m,k,M;if(d!=null){let x=Y6(C,d),F=((S-v)/2+f)/E;k=x-F,M=x+F}else k=(v-f)/E,M=(S+f)/E;B=J6(C,k),u=J6(C,M)}B>g.from&&s(g.from,B,g,C),u<g.to&&s(u,g.to,g,C)};for(let g of this.viewportLines)Array.isArray(g.type)?g.type.forEach(l):l(g);return r}gapSize(e,A,t,n){let o=Y6(n,t)-Y6(n,A);return this.heightOracle.lineWrapping?e.height*o:n.total*this.heightOracle.charWidth*o}updateLineGaps(e){o4.same(e,this.lineGaps)||(this.lineGaps=e,this.lineGapDeco=Lt.set(e.map(A=>A.draw(this,this.heightOracle.lineWrapping))))}computeVisibleRanges(e){let A=this.stateDeco;this.lineGaps.length&&(A=A.concat(this.lineGapDeco));let t=[];uo.spans(A,this.viewport.from,this.viewport.to,{span(o,a){t.push({from:o,to:a})},point(){}},20);let n=0;if(t.length!=this.visibleRanges.length)n=12;else for(let o=0;o<t.length&&!(n&8);o++){let a=this.visibleRanges[o],r=t[o];(a.from!=r.from||a.to!=r.to)&&(n|=4,e&&e.mapPos(a.from,-1)==r.from&&e.mapPos(a.to,1)==r.to||(n|=8))}return this.visibleRanges=t,n}lineBlockAt(e){return e>=this.viewport.from&&e<=this.viewport.to&&this.viewportLines.find(A=>A.from<=e&&A.to>=e)||Zu(this.heightMap.lineAt(e,Qa.ByPos,this.heightOracle,0,0),this.scaler)}lineBlockAtHeight(e){return e>=this.viewportLines[0].top&&e<=this.viewportLines[this.viewportLines.length-1].bottom&&this.viewportLines.find(A=>A.top<=e&&A.bottom>=e)||Zu(this.heightMap.lineAt(this.scaler.fromDOM(e),Qa.ByHeight,this.heightOracle,0,0),this.scaler)}getScrollOffset(){return(this.scrollParent==this.view.scrollDOM?this.scrollParent.scrollTop:(this.scrollParent?this.scrollParent.getBoundingClientRect().top:0)-this.view.contentDOM.getBoundingClientRect().top)*this.scaleY}scrollAnchorAt(e){let A=this.lineBlockAtHeight(e+8);return A.from>=this.viewport.from||this.viewportLines[0].top-e>200?A:this.viewportLines[0]}elementAtHeight(e){return Zu(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}},$B=class{constructor(e,A){this.from=e,this.to=A}};function $cA(i,e,A){let t=[],n=i,o=0;return uo.spans(A,i,e,{span(){},point(a,r){a>n&&(t.push({from:n,to:a}),o+=a-n),n=r}},20),n<e&&(t.push({from:n,to:e}),o+=e-n),{total:o,ranges:t}}function J6({total:i,ranges:e},A){if(A<=0)return e[0].from;if(A>=1)return e[e.length-1].to;let t=Math.floor(i*A);for(let n=0;;n++){let{from:o,to:a}=e[n],r=a-o;if(t<=r)return o+t;t-=r}}function Y6(i,e){let A=0;for(let{from:t,to:n}of i.ranges){if(e<=n){A+=e-t;break}A+=n-t}return A/i.total}function A0A(i,e){for(let A of i)if(e(A))return A}var hY={toDOM(i){return i},fromDOM(i){return i},scale:1,eq(i){return i==this}};function EY(i){let e=i.facet(Q8).filter(t=>typeof t!="function"),A=i.facet(uS).filter(t=>typeof t!="function");return A.length&&e.push(uo.join(A)),e}var X9=class i{constructor(e,A,t){let n=0,o=0,a=0;this.viewports=t.map(({from:r,to:s})=>{let l=A.lineAt(r,Qa.ByPos,e,0,0).top,g=A.lineAt(s,Qa.ByPos,e,0,0).bottom;return n+=g-l,{from:r,to:s,top:l,bottom:g,domTop:0,domBottom:0}}),this.scale=(7e6-n)/(A.height-n);for(let r of this.viewports)r.domTop=a+(r.top-o)*this.scale,a=r.domBottom=r.domTop+(r.bottom-r.top),o=r.bottom}toDOM(e){for(let A=0,t=0,n=0;;A++){let o=A<this.viewports.length?this.viewports[A]:null;if(!o||e<o.top)return n+(e-t)*this.scale;if(e<=o.bottom)return o.domTop+(e-o.top);t=o.bottom,n=o.domBottom}}fromDOM(e){for(let A=0,t=0,n=0;;A++){let o=A<this.viewports.length?this.viewports[A]:null;if(!o||e<o.domTop)return t+(e-n)/this.scale;if(e<=o.domBottom)return o.top+(e-o.domTop);t=o.bottom,n=o.domBottom}}eq(e){return e instanceof i?this.scale==e.scale&&this.viewports.length==e.viewports.length&&this.viewports.every((A,t)=>A.from==e.viewports[t].from&&A.to==e.viewports[t].to):!1}};function Zu(i,e){if(e.scale==1)return i;let A=e.toDOM(i.top),t=e.toDOM(i.bottom);return new ac(i.from,i.length,A,t-A,Array.isArray(i._content)?i._content.map(n=>Zu(n,e)):i._content)}var H6=nt.define({combine:i=>i.join(" ")}),I9=nt.define({combine:i=>i.indexOf(!0)>-1}),$9=Cg.newName(),uH=Cg.newName(),pH=Cg.newName(),fH={"&light":"."+uH,"&dark":"."+pH};function AS(i,e,A){return new Cg(e,{finish(t){return/&/.test(t)?t.replace(/&\w*/,n=>{if(n=="&")return i;if(!A||!A[n])throw new RangeError(`Unsupported selector: ${n}`);return A[n]}):i+" "+t}})}var e0A=AS("."+$9,{"&":{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,overflowAnchor:"none"},".cm-content":{margin:0,flexGrow:2,flexShrink:0,display:"block",whiteSpace:"pre",wordWrap:"normal",boxSizing:"border-box",minHeight:"100%",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-scroller > .cm-selectionLayer .cm-selectionBackground":{background:"#d7d4f0"},"&dark.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground":{background:"#233"},".cm-cursorLayer":{pointerEvents:"none"},"&.cm-focused > .cm-scroller > .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:"#ddd"},".cm-selectionHandle":{backgroundColor:"currentColor",width:"1.5px"},".cm-selectionHandle-start::before, .cm-selectionHandle-end::before":{content:'""',backgroundColor:"inherit",borderRadius:"50%",width:"8px",height:"8px",position:"absolute",left:"-3.25px"},".cm-selectionHandle-start::before":{top:"-8px"},".cm-selectionHandle-end::before":{bottom:"-8px"},".cm-dropCursor":{position:"absolute"},"&.cm-focused > .cm-scroller > .cm-cursorLayer .cm-cursor":{display:"block"},".cm-iso":{unicodeBidi:"isolate"},".cm-announced":{position:"fixed",top:"-10000px"},"@media print":{".cm-announced":{display:"none"}},"&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",zIndex:200},".cm-gutters-before":{insetInlineStart:0},".cm-gutters-after":{insetInlineEnd:0},"&light .cm-gutters":{backgroundColor:"#f5f5f5",color:"#6c6c6c",border:"0px solid #ddd","&.cm-gutters-before":{borderRightWidth:"1px"},"&.cm-gutters-after":{borderLeftWidth:"1px"}},"&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,zIndex:300},"&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-dialog":{padding:"2px 19px 4px 6px",position:"relative","& label":{fontSize:"80%"}},".cm-dialog-close":{position:"absolute",top:"3px",right:"4px",backgroundColor:"inherit",border:"none",font:"inherit",fontSize:"14px",padding:"0"},".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",userSelect:"none"},".cm-highlightSpace":{backgroundImage:"radial-gradient(circle at 50% 55%, #aaa 20%, transparent 5%)",backgroundPosition:"center"},".cm-highlightTab":{backgroundImage:`url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" width="200" height="20"><path stroke="%23888" stroke-width="1" fill="none" d="M1 10H196L190 5M190 15L196 10M197 4L197 16"/></svg>')`,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"}},fH),t0A={childList:!0,characterData:!0,subtree:!0,attributes:!0,characterDataOldValue:!0},B9=Ct.ie&&Ct.ie_version<=11,eS=class{constructor(e){this.view=e,this.active=!1,this.editContext=null,this.selectionRange=new D9,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.intersecting=!1,this.gapIntersection=null,this.gaps=[],this.printQuery=null,this.parentCheck=-1,this.dom=e.contentDOM,this.observer=new MutationObserver(A=>{for(let t of A)this.queue.push(t);(Ct.ie&&Ct.ie_version<=11||Ct.ios&&e.composing)&&A.some(t=>t.type=="childList"&&t.removedNodes.length||t.type=="characterData"&&t.oldValue.length>t.target.nodeValue.length)?this.flushSoon():this.flush()}),window.EditContext&&Ct.android&&e.constructor.EDIT_CONTEXT!==!1&&!(Ct.chrome&&Ct.chrome_version<126)&&(this.editContext=new tS(e),e.state.facet(lC)&&(e.contentDOM.editContext=this.editContext.editContext)),B9&&(this.onCharData=A=>{this.queue.push({target:A.target,type:"characterData",oldValue:A.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),window.matchMedia&&(this.printQuery=window.matchMedia("print")),typeof ResizeObserver=="function"&&(this.resizeScroll=new ResizeObserver(()=>{var A;((A=this.view.docView)===null||A===void 0?void 0:A.lastUpdate)<Date.now()-75&&this.onResize()}),this.resizeScroll.observe(e.scrollDOM)),this.addWindowListeners(this.win=e.win),this.start(),typeof IntersectionObserver=="function"&&(this.intersection=new IntersectionObserver(A=>{this.parentCheck<0&&(this.parentCheck=setTimeout(this.listenForScroll.bind(this),1e3)),A.length>0&&A[A.length-1].intersectionRatio>0!=this.intersecting&&(this.intersecting=!this.intersecting,this.intersecting!=this.view.inView&&this.onScrollChanged(document.createEvent("Event")))},{threshold:[0,.001]}),this.intersection.observe(this.dom),this.gapIntersection=new IntersectionObserver(A=>{A.length>0&&A[A.length-1].intersectionRatio>0&&this.onScrollChanged(document.createEvent("Event"))},{})),this.listenForScroll(),this.readSelectionRange()}onScrollChanged(e){this.view.inputState.runHandlers("scroll",e),this.intersecting&&this.view.measure()}onScroll(e){this.intersecting&&this.flush(!1),this.editContext&&this.view.requestMeasure(this.editContext.measureReq),this.onScrollChanged(e)}onResize(){this.resizeTimeout<0&&(this.resizeTimeout=setTimeout(()=>{this.resizeTimeout=-1,this.view.requestMeasure()},50))}onPrint(e){(e.type=="change"||!e.type)&&!e.matches||(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((A,t)=>A!=e[t]))){this.gapIntersection.disconnect();for(let A of e)this.gapIntersection.observe(A);this.gaps=e}}onSelectionChange(e){let A=this.selectionChanged;if(!this.readSelectionRange()||this.delayedAndroidKey)return;let{view:t}=this,n=this.selectionRange;if(t.state.facet(lC)?t.root.activeElement!=this.dom:!$u(this.dom,n))return;let o=n.anchorNode&&t.docView.tile.nearest(n.anchorNode);if(o&&o.isWidget()&&o.widget.ignoreEvent(e)){A||(this.selectionChanged=!1);return}(Ct.ie&&Ct.ie_version<=11||Ct.android&&Ct.chrome)&&!t.state.selection.main.empty&&n.focusNode&&A4(n.focusNode,n.focusOffset,n.anchorNode,n.anchorOffset)?this.flushSoon():this.flush(!1)}readSelectionRange(){let{view:e}=this,A=g4(e.root);if(!A)return!1;let t=Ct.safari&&e.root.nodeType==11&&e.root.activeElement==this.dom&&i0A(this.view,A)||A;if(!t||this.selectionRange.eq(t))return!1;let n=$u(this.dom,t);return n&&!this.selectionChanged&&e.inputState.lastFocusTime>Date.now()-200&&e.inputState.lastTouchTime<Date.now()-300&&XgA(this.dom,t)?(this.view.inputState.lastFocusTime=0,e.docView.updateSelection(),!1):(this.selectionRange.setRange(t),n&&(this.selectionChanged=!0),!0)}setSelectionRange(e,A){this.selectionRange.set(e.node,e.offset,A.node,A.offset),this.selectionChanged=!1}clearSelectionRange(){this.selectionRange.set(null,0,null,0)}listenForScroll(){this.parentCheck=-1;let e=0,A=null;for(let t=this.dom;t;)if(t.nodeType==1)!A&&e<this.scrollTargets.length&&this.scrollTargets[e]==t?e++:A||(A=this.scrollTargets.slice(0,e)),A&&A.push(t),t=t.assignedSlot||t.parentNode;else if(t.nodeType==11)t=t.host;else break;if(e<this.scrollTargets.length&&!A&&(A=this.scrollTargets.slice(0,e)),A){for(let t of this.scrollTargets)t.removeEventListener("scroll",this.onScroll);for(let t of this.scrollTargets=A)t.addEventListener("scroll",this.onScroll)}}ignore(e){if(!this.active)return e();try{return this.stop(),e()}finally{this.start(),this.clear()}}start(){this.active||(this.observer.observe(this.dom,t0A),B9&&this.dom.addEventListener("DOMCharacterDataModified",this.onCharData),this.active=!0)}stop(){this.active&&(this.active=!1,this.observer.disconnect(),B9&&this.dom.removeEventListener("DOMCharacterDataModified",this.onCharData))}clear(){this.processRecords(),this.queue.length=0,this.selectionChanged=!1}delayAndroidKey(e,A){var t;if(!this.delayedAndroidKey){let n=()=>{let o=this.delayedAndroidKey;o&&(this.clearDelayedAndroidKey(),this.view.inputState.lastKeyCode=o.keyCode,this.view.inputState.lastKeyTime=Date.now(),!this.flush()&&o.force&&ih(this.dom,o.key,o.keyCode))};this.flushingAndroidKey=this.view.win.requestAnimationFrame(n)}(!this.delayedAndroidKey||e=="Enter")&&(this.delayedAndroidKey={key:e,keyCode:A,force:this.lastChange<Date.now()-50||!!(!((t=this.delayedAndroidKey)===null||t===void 0)&&t.force)})}clearDelayedAndroidKey(){this.win.cancelAnimationFrame(this.flushingAndroidKey),this.delayedAndroidKey=null,this.flushingAndroidKey=-1}flushSoon(){this.delayedFlush<0&&(this.delayedFlush=this.view.win.requestAnimationFrame(()=>{this.delayedFlush=-1,this.flush()}))}forceFlush(){this.delayedFlush>=0&&(this.view.win.cancelAnimationFrame(this.delayedFlush),this.delayedFlush=-1),this.flush()}pendingRecords(){for(let e of this.observer.takeRecords())this.queue.push(e);return this.queue}processRecords(){let e=this.pendingRecords();e.length&&(this.queue=[]);let A=-1,t=-1,n=!1;for(let o of e){let a=this.readMutation(o);a&&(a.typeOver&&(n=!0),A==-1?{from:A,to:t}=a:(A=Math.min(a.from,A),t=Math.max(a.to,t)))}return{from:A,to:t,typeOver:n}}readChange(){let{from:e,to:A,typeOver:t}=this.processRecords(),n=this.selectionChanged&&$u(this.dom,this.selectionRange);if(e<0&&!n)return null;e>-1&&(this.lastChange=Date.now()),this.view.inputState.lastFocusTime=0,this.selectionChanged=!1;let o=new J9(this.view,e,A,t);return this.view.docView.domChanged={newSel:o.newSel?o.newSel.main:null},o}flush(e=!0){if(this.delayedFlush>=0||this.delayedAndroidKey)return!1;e&&this.readSelectionRange();let A=this.readChange();if(!A)return this.view.requestMeasure(),!1;let t=this.view.state,n=lH(this.view,A);return this.view.state==t&&(A.domChanged||A.newSel&&!r8(this.view.state.selection,A.newSel.main))&&this.view.update([]),n}readMutation(e){let A=this.view.docView.tile.nearest(e.target);if(!A||A.isWidget())return null;if(A.markDirty(e.type=="attributes"),e.type=="childList"){let t=QY(A,e.previousSibling||e.target.previousSibling,-1),n=QY(A,e.nextSibling||e.target.nextSibling,1);return{from:t?A.posAfter(t):A.posAtStart,to:n?A.posBefore(n):A.posAtEnd,typeOver:!1}}else return e.type=="characterData"?{from:A.posAtStart,to:A.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),this.printQuery?this.printQuery.addEventListener?this.printQuery.addEventListener("change",this.onPrint):this.printQuery.addListener(this.onPrint):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),this.printQuery?this.printQuery.removeEventListener?this.printQuery.removeEventListener("change",this.onPrint):this.printQuery.removeListener(this.onPrint):e.removeEventListener("beforeprint",this.onPrint),e.document.removeEventListener("selectionchange",this.onSelectionChange)}update(e){this.editContext&&(this.editContext.update(e),e.startState.facet(lC)!=e.state.facet(lC)&&(e.view.contentDOM.editContext=e.state.facet(lC)?this.editContext.editContext:null))}destroy(){var e,A,t;this.stop(),(e=this.intersection)===null||e===void 0||e.disconnect(),(A=this.gapIntersection)===null||A===void 0||A.disconnect(),(t=this.resizeScroll)===null||t===void 0||t.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),this.editContext&&(this.view.contentDOM.editContext=null,this.editContext.destroy())}};function QY(i,e,A){for(;e;){let t=_a.get(e);if(t&&t.parent==i)return t;let n=e.parentNode;e=n!=i.dom?n:A>0?e.nextSibling:e.previousSibling}return null}function uY(i,e){let A=e.startContainer,t=e.startOffset,n=e.endContainer,o=e.endOffset,a=i.docView.domAtPos(i.state.selection.main.anchor,1);return A4(a.node,a.offset,n,o)&&([A,t,n,o]=[n,o,A,t]),{anchorNode:A,anchorOffset:t,focusNode:n,focusOffset:o}}function i0A(i,e){if(e.getComposedRanges){let n=e.getComposedRanges(i.root)[0];if(n)return uY(i,n)}let A=null;function t(n){n.preventDefault(),n.stopImmediatePropagation(),A=n.getTargetRanges()[0]}return i.contentDOM.addEventListener("beforeinput",t,!0),i.dom.ownerDocument.execCommand("indent"),i.contentDOM.removeEventListener("beforeinput",t,!0),A?uY(i,A):null}var tS=class{constructor(e){this.from=0,this.to=0,this.pendingContextChange=null,this.handlers=Object.create(null),this.composing=null,this.resetRange(e.state);let A=this.editContext=new window.EditContext({text:e.state.doc.sliceString(this.from,this.to),selectionStart:this.toContextPos(Math.max(this.from,Math.min(this.to,e.state.selection.main.anchor))),selectionEnd:this.toContextPos(e.state.selection.main.head)});this.handlers.textupdate=t=>{let n=e.state.selection.main,{anchor:o,head:a}=n,r=this.toEditorPos(t.updateRangeStart),s=this.toEditorPos(t.updateRangeEnd);e.inputState.composing>=0&&!this.composing&&(this.composing={contextBase:t.updateRangeStart,editorBase:r,drifted:!1});let l=s-r>t.text.length;r==this.from&&o<this.from?r=o:s==this.to&&o>this.to&&(s=o);let g=gH(e.state.sliceDoc(r,s),t.text,(l?n.from:n.to)-r,l?"end":null);if(!g){let d=Be.single(this.toEditorPos(t.selectionStart),this.toEditorPos(t.selectionEnd));r8(d,n)||e.dispatch({selection:d,userEvent:"select"});return}let C={from:g.from+r,to:g.toA+r,insert:On.of(t.text.slice(g.from,g.toB).split(` |
| 254 | `))};if((Ct.mac||Ct.android)&&C.from==a-1&&/^\. ?$/.test(t.text)&&e.contentDOM.getAttribute("autocorrect")=="off"&&(C={from:r,to:s,insert:On.of([t.text.replace("."," ")])}),this.pendingContextChange=C,!e.state.readOnly){let d=this.to-this.from+(C.to-C.from+C.insert.length);fS(e,C,Be.single(this.toEditorPos(t.selectionStart,d),this.toEditorPos(t.selectionEnd,d)))}this.pendingContextChange&&(this.revertPending(e.state),this.setSelection(e.state)),C.from<C.to&&!C.insert.length&&e.inputState.composing>=0&&!/[\\p{Alphabetic}\\p{Number}_]/.test(A.text.slice(Math.max(0,t.updateRangeStart-1),Math.min(A.text.length,t.updateRangeStart+1)))&&this.handlers.compositionend(t)},this.handlers.characterboundsupdate=t=>{let n=[],o=null;for(let a=this.toEditorPos(t.rangeStart),r=this.toEditorPos(t.rangeEnd);a<r;a++){let s=e.coordsForChar(a);o=s&&new DOMRect(s.left,s.top,s.right-s.left,s.bottom-s.top)||o||new DOMRect,n.push(o)}A.updateCharacterBounds(t.rangeStart,n)},this.handlers.textformatupdate=t=>{let n=[];for(let o of t.getTextFormats()){let a=o.underlineStyle,r=o.underlineThickness;if(!/none/i.test(a)&&!/none/i.test(r)){let s=this.toEditorPos(o.rangeStart),l=this.toEditorPos(o.rangeEnd);if(s<l){let g=`text-decoration: underline ${/^[a-z]/.test(a)?a+" ":a=="Dashed"?"dashed ":a=="Squiggle"?"wavy ":""}${/thin/i.test(r)?1:2}px`;n.push(Lt.mark({attributes:{style:g}}).range(s,l))}}}e.dispatch({effects:eH.of(Lt.set(n))})},this.handlers.compositionstart=()=>{e.inputState.composing<0&&(e.inputState.composing=0,e.inputState.compositionFirstChange=!0)},this.handlers.compositionend=()=>{if(e.inputState.composing=-1,e.inputState.compositionFirstChange=null,this.composing){let{drifted:t}=this.composing;this.composing=null,t&&this.reset(e.state)}};for(let t in this.handlers)A.addEventListener(t,this.handlers[t]);this.measureReq={read:t=>{this.editContext.updateControlBounds(t.contentDOM.getBoundingClientRect());let n=g4(t.root);n&&n.rangeCount&&this.editContext.updateSelectionBounds(n.getRangeAt(0).getBoundingClientRect())}}}applyEdits(e){let A=0,t=!1,n=this.pendingContextChange;return e.changes.iterChanges((o,a,r,s,l)=>{if(t)return;let g=l.length-(a-o);if(n&&a>=n.to)if(n.from==o&&n.to==a&&n.insert.eq(l)){n=this.pendingContextChange=null,A+=g,this.to+=g;return}else n=null,this.revertPending(e.state);if(o+=A,a+=A,a<=this.from)this.from+=g,this.to+=g;else if(o<this.to){if(o<this.from||a>this.to||this.to-this.from+l.length>3e4){t=!0;return}this.editContext.updateText(this.toContextPos(o),this.toContextPos(a),l.toString()),this.to+=g}A+=g}),n&&!t&&this.revertPending(e.state),!t}update(e){let A=this.pendingContextChange,t=e.startState.selection.main;this.composing&&(this.composing.drifted||!e.changes.touchesRange(t.from,t.to)&&e.transactions.some(n=>!n.isUserEvent("input.type")&&n.changes.touchesRange(this.from,this.to)))?(this.composing.drifted=!0,this.composing.editorBase=e.changes.mapPos(this.composing.editorBase)):!this.applyEdits(e)||!this.rangeIsValid(e.state)?(this.pendingContextChange=null,this.reset(e.state)):(e.docChanged||e.selectionSet||A)&&this.setSelection(e.state),(e.geometryChanged||e.docChanged||e.selectionSet)&&e.view.requestMeasure(this.measureReq)}resetRange(e){let{head:A}=e.selection.main;this.from=Math.max(0,A-1e4),this.to=Math.min(e.doc.length,A+1e4)}reset(e){this.resetRange(e),this.editContext.updateText(0,this.editContext.text.length,e.doc.sliceString(this.from,this.to)),this.setSelection(e)}revertPending(e){let A=this.pendingContextChange;this.pendingContextChange=null,this.editContext.updateText(this.toContextPos(A.from),this.toContextPos(A.from+A.insert.length),e.doc.sliceString(A.from,A.to))}setSelection(e){let{main:A}=e.selection,t=this.toContextPos(Math.max(this.from,Math.min(this.to,A.anchor))),n=this.toContextPos(A.head);(this.editContext.selectionStart!=t||this.editContext.selectionEnd!=n)&&this.editContext.updateSelection(t,n)}rangeIsValid(e){let{head:A}=e.selection.main;return!(this.from>0&&A-this.from<500||this.to<e.doc.length&&this.to-A<500||this.to-this.from>1e4*3)}toEditorPos(e,A=this.to-this.from){e=Math.min(e,A);let t=this.composing;return t&&t.drifted?t.editorBase+(e-t.contextBase):e+this.from}toContextPos(e){let A=this.composing;return A&&A.drifted?A.contextBase+(e-A.editorBase):e-this.from}destroy(){for(let e in this.handlers)this.editContext.removeEventListener(e,this.handlers[e])}},ui=(()=>{class i{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&&this.inputState.composing>0}get compositionStarted(){return!!this.inputState&&this.inputState.composing>=0}get root(){return this._root}get win(){return this.dom.ownerDocument.defaultView||window}constructor(A={}){var t;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.className="cm-announced",this.announceDOM.setAttribute("aria-live","polite"),this.dom=document.createElement("div"),this.dom.appendChild(this.announceDOM),this.dom.appendChild(this.scrollDOM),A.parent&&A.parent.appendChild(this.dom);let{dispatch:n}=A;this.dispatchTransactions=A.dispatchTransactions||n&&(o=>o.forEach(a=>n(a,this)))||(o=>this.update(o)),this.dispatch=this.dispatch.bind(this),this._root=A.root||ZgA(A.parent)||document,this.viewState=new g8(this,A.state||ir.create(A)),A.scrollTo&&A.scrollTo.is(U6)&&(this.viewState.scrollTarget=A.scrollTo.value.clip(this.viewState.state)),this.plugins=this.state.facet(XB).map(o=>new t4(o));for(let o of this.plugins)o.update(this);this.observer=new eS(this),this.inputState=new Y9(this),this.inputState.ensureHandlers(this.plugins),this.docView=new o8(this),this.mountStyles(),this.updateAttrs(),this.updateState=0,this.requestMeasure(),!((t=document.fonts)===null||t===void 0)&&t.ready&&document.fonts.ready.then(()=>{this.viewState.mustMeasureContent="refresh",this.requestMeasure()})}dispatch(...A){let t=A.length==1&&A[0]instanceof l0?A:A.length==1&&Array.isArray(A[0])?A[0]:[this.state.update(...A)];this.dispatchTransactions(t,this)}update(A){if(this.updateState!=0)throw new Error("Calls to EditorView.update are not allowed while an update is in progress");let t=!1,n=!1,o,a=this.state;for(let B of A){if(B.startState!=a)throw new RangeError("Trying to update state with a transaction that doesn't start from the previous state.");a=B.state}if(this.destroyed){this.viewState.state=a;return}let r=this.hasFocus,s=0,l=null;A.some(B=>B.annotation(hH))?(this.inputState.notifiedFocused=r,s=1):r!=this.inputState.notifiedFocused&&(this.inputState.notifiedFocused=r,l=EH(a,r),l||(s=1));let g=this.observer.delayedAndroidKey,C=null;if(g?(this.observer.clearDelayedAndroidKey(),C=this.observer.readChange(),(C&&!this.state.doc.eq(a.doc)||!this.state.selection.eq(a.selection))&&(C=null)):this.observer.clear(),a.facet(ir.phrases)!=this.state.facet(ir.phrases))return this.setState(a);o=i8.create(this,a,A),o.flags|=s;let d=this.viewState.scrollTarget;try{this.updateState=2;for(let B of A){if(d&&(d=d.map(B.changes)),B.scrollIntoView){let{main:u}=B.state.selection;d=new e4(u.empty?u:Be.cursor(u.head,u.head>u.anchor?-1:1))}for(let u of B.effects)u.is(U6)&&(d=u.value.clip(this.state))}this.viewState.update(o,d),this.bidiCache=c8.update(this.bidiCache,o.changes),o.empty||(this.updatePlugins(o),this.inputState.update(o)),t=this.docView.update(o),this.state.facet(Wu)!=this.styleModules&&this.mountStyles(),n=this.updateAttrs(),this.showAnnouncements(A),this.docView.updateSelection(t,A.some(B=>B.isUserEvent("select.pointer")))}finally{this.updateState=0}if(o.startState.facet(H6)!=o.state.facet(H6)&&(this.viewState.mustMeasureContent=!0),(t||n||d||this.viewState.mustEnforceCursorAssoc||this.viewState.mustMeasureContent)&&this.requestMeasure(),t&&this.docViewUpdate(),!o.empty)for(let B of this.state.facet(g9))try{B(o)}catch(u){Gr(this.state,u,"update listener")}(l||C)&&Promise.resolve().then(()=>{l&&this.state==l.startState&&this.dispatch(l),C&&!lH(this,C)&&g.force&&ih(this.contentDOM,g.key,g.keyCode)})}setState(A){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=A;return}this.updateState=2;let t=this.hasFocus;try{for(let n of this.plugins)n.destroy(this);this.viewState=new g8(this,A),this.plugins=A.facet(XB).map(n=>new t4(n)),this.pluginMap.clear();for(let n of this.plugins)n.update(this);this.docView.destroy(),this.docView=new o8(this),this.inputState.ensureHandlers(this.plugins),this.mountStyles(),this.updateAttrs(),this.bidiCache=[]}finally{this.updateState=0}t&&this.focus(),this.requestMeasure()}updatePlugins(A){let t=A.startState.facet(XB),n=A.state.facet(XB);if(t!=n){let o=[];for(let a of n){let r=t.indexOf(a);if(r<0)o.push(new t4(a));else{let s=this.plugins[r];s.mustUpdate=A,o.push(s)}}for(let a of this.plugins)a.mustUpdate!=A&&a.destroy(this);this.plugins=o,this.pluginMap.clear()}else for(let o of this.plugins)o.mustUpdate=A;for(let o=0;o<this.plugins.length;o++)this.plugins[o].update(this);t!=n&&this.inputState.ensureHandlers(this.plugins)}docViewUpdate(){for(let A of this.plugins){let t=A.value;if(t&&t.docViewUpdate)try{t.docViewUpdate(this)}catch(n){Gr(this.state,n,"doc view update listener")}}}measure(A=!0){if(this.destroyed)return;if(this.measureScheduled>-1&&this.win.cancelAnimationFrame(this.measureScheduled),this.observer.delayedAndroidKey){this.measureScheduled=-1,this.requestMeasure();return}this.measureScheduled=0,A&&this.observer.forceFlush();let t=null,n=this.viewState.scrollParent,o=this.viewState.getScrollOffset(),{scrollAnchorPos:a,scrollAnchorHeight:r}=this.viewState;Math.abs(o-this.viewState.scrollOffset)>1&&(r=-1),this.viewState.scrollAnchorHeight=-1;try{for(let s=0;;s++){if(r<0)if(UY(n||this.win))a=-1,r=this.viewState.heightMap.height;else{let u=this.viewState.scrollAnchorAt(o);a=u.from,r=u.top}this.updateState=1;let l=this.viewState.measure();if(!l&&!this.measureRequests.length&&this.viewState.scrollTarget==null)break;if(s>5){console.warn(this.measureRequests.length?"Measure loop restarted more than 5 times":"Viewport failed to stabilize");break}let g=[];l&4||([this.measureRequests,g]=[g,this.measureRequests]);let C=g.map(u=>{try{return u.read(this)}catch(E){return Gr(this.state,E),pY}}),d=i8.create(this,this.state,[]),B=!1;d.flags|=l,t?t.flags|=l:t=d,this.updateState=2,d.empty||(this.updatePlugins(d),this.inputState.update(d),this.updateAttrs(),B=this.docView.update(d),B&&this.docViewUpdate());for(let u=0;u<g.length;u++)if(C[u]!=pY)try{let E=g[u];E.write&&E.write(C[u],this)}catch(E){Gr(this.state,E)}if(B&&this.docView.updateSelection(!0),!d.viewportChanged&&this.measureRequests.length==0){if(this.viewState.editorHeight)if(this.viewState.scrollTarget){this.docView.scrollIntoView(this.viewState.scrollTarget),this.viewState.scrollTarget=null,r=-1;continue}else{let E=((a<0?this.viewState.heightMap.height:this.viewState.lineBlockAt(a).top)-r)/this.scaleY;if((E>1||E<-1)&&(n==this.scrollDOM||this.hasFocus||Math.max(this.inputState.lastWheelEvent,this.inputState.lastTouchTime)>Date.now()-100)){o=o+E,n?n.scrollTop+=E:this.win.scrollBy(0,E),r=-1;continue}}break}}}finally{this.updateState=0,this.measureScheduled=-1}if(t&&!t.empty)for(let s of this.state.facet(g9))s(t)}get themeClasses(){return $9+" "+(this.state.facet(I9)?pH:uH)+" "+this.state.facet(H6)}updateAttrs(){let A=fY(this,AY,{class:"cm-editor"+(this.hasFocus?" cm-focused ":" ")+this.themeClasses}),t={spellcheck:"false",autocorrect:"off",autocapitalize:"off",writingsuggestions:"false",translate:"no",contenteditable:this.state.facet(lC)?"true":"false",class:"cm-content",style:`${Ct.tabSize}: ${this.state.tabSize}`,role:"textbox","aria-multiline":"true"};this.state.readOnly&&(t["aria-readonly"]="true"),fY(this,S9,t);let n=this.observer.ignore(()=>{let o=WJ(this.contentDOM,this.contentAttrs,t),a=WJ(this.dom,this.editorAttrs,A);return o||a});return this.editorAttrs=A,this.contentAttrs=t,n}showAnnouncements(A){let t=!0;for(let n of A)for(let o of n.effects)if(o.is(i.announce)){t&&(this.announceDOM.textContent=""),t=!1;let a=this.announceDOM.appendChild(document.createElement("div"));a.textContent=o.value}}mountStyles(){this.styleModules=this.state.facet(Wu);let A=this.state.facet(i.cspNonce);Cg.mount(this.root,this.styleModules.concat(e0A).reverse(),A?{nonce:A}:void 0)}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(A){if(this.measureScheduled<0&&(this.measureScheduled=this.win.requestAnimationFrame(()=>this.measure())),A){if(this.measureRequests.indexOf(A)>-1)return;if(A.key!=null){for(let t=0;t<this.measureRequests.length;t++)if(this.measureRequests[t].key===A.key){this.measureRequests[t]=A;return}}this.measureRequests.push(A)}}plugin(A){let t=this.pluginMap.get(A);return(t===void 0||t&&t.plugin!=A)&&this.pluginMap.set(A,t=this.plugins.find(n=>n.plugin==A)||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}}get scaleX(){return this.viewState.scaleX}get scaleY(){return this.viewState.scaleY}elementAtHeight(A){return this.readMeasured(),this.viewState.elementAtHeight(A)}lineBlockAtHeight(A){return this.readMeasured(),this.viewState.lineBlockAtHeight(A)}get viewportLineBlocks(){return this.viewState.viewportLines}lineBlockAt(A){return this.viewState.lineBlockAt(A)}get contentHeight(){return this.viewState.contentHeight}moveByChar(A,t,n){return d9(this,A,oY(this,A,t,n))}moveByGroup(A,t){return d9(this,A,oY(this,A,t,n=>vcA(this,A.head,n)))}visualLineSide(A,t){let n=this.bidiSpans(A),o=this.textDirectionAt(A.from),a=n[t?n.length-1:0];return Be.cursor(a.side(t,o)+A.from,a.forward(!t,o)?1:-1)}moveToLineBoundary(A,t,n=!0){return DcA(this,A,t,n)}moveVertically(A,t,n){return d9(this,A,bcA(this,A,t,n))}domAtPos(A,t=1){return this.docView.domAtPos(A,t)}posAtDOM(A,t=0){return this.docView.posFromDOM(A,t)}posAtCoords(A,t=!0){this.readMeasured();let n=U9(this,A,t);return n&&n.pos}posAndSideAtCoords(A,t=!0){return this.readMeasured(),U9(this,A,t)}coordsAtPos(A,t=1){this.readMeasured();let n=this.docView.coordsAt(A,t);if(!n||n.left==n.right)return n;let o=this.state.doc.lineAt(A),a=this.bidiSpans(o),r=a[Bg.find(a,A-o.from,-1,t)];return t8(n,r.dir==Lo.LTR==t>0)}coordsForChar(A){return this.readMeasured(),this.docView.coordsForChar(A)}get defaultCharacterWidth(){return this.viewState.heightOracle.charWidth}get defaultLineHeight(){return this.viewState.heightOracle.lineHeight}get textDirection(){return this.viewState.defaultTextDirection}textDirectionAt(A){return!this.state.facet($J)||A<this.viewport.from||A>this.viewport.to?this.textDirection:(this.readMeasured(),this.docView.textDirectionAt(A))}get lineWrapping(){return this.viewState.heightOracle.lineWrapping}bidiSpans(A){if(A.length>n0A)return zY(A.length);let t=this.textDirectionAt(A.from),n;for(let a of this.bidiCache)if(a.from==A.from&&a.dir==t&&(a.fresh||HY(a.isolates,n=eY(this,A))))return a.order;n||(n=eY(this,A));let o=ocA(A.text,t,n);return this.bidiCache.push(new c8(A.from,A.to,t,n,!0,o)),o}get hasFocus(){var A;return(this.dom.ownerDocument.hasFocus()||Ct.safari&&((A=this.inputState)===null||A===void 0?void 0:A.lastContextMenu)>Date.now()-3e4)&&this.root.activeElement==this.contentDOM}focus(){this.observer.ignore(()=>{KY(this.contentDOM),this.docView.updateSelection()})}setRoot(A){this._root!=A&&(this._root=A,this.observer.setWindow((A.nodeType==9?A:A.ownerDocument).defaultView||window),this.mountStyles())}destroy(){this.root.activeElement==this.contentDOM&&this.contentDOM.blur();for(let A of this.plugins)A.destroy(this);this.plugins=[],this.inputState.destroy(),this.docView.destroy(),this.dom.remove(),this.observer.destroy(),this.measureScheduled>-1&&this.win.cancelAnimationFrame(this.measureScheduled),this.destroyed=!0}static scrollIntoView(A,t={}){return U6.of(new e4(typeof A=="number"?Be.cursor(A):A,t.y,t.x,t.yMargin,t.xMargin))}scrollSnapshot(){let{scrollTop:A,scrollLeft:t}=this.scrollDOM,n=this.viewState.scrollAnchorAt(A);return U6.of(new e4(Be.cursor(n.from),"start","start",n.top-A,t,!0))}setTabFocusMode(A){A==null?this.inputState.tabFocusMode=this.inputState.tabFocusMode<0?0:-1:typeof A=="boolean"?this.inputState.tabFocusMode=A?0:-1:this.inputState.tabFocusMode!=0&&(this.inputState.tabFocusMode=Date.now()+A)}static domEventHandlers(A){return Po.define(()=>({}),{eventHandlers:A})}static domEventObservers(A){return Po.define(()=>({}),{eventObservers:A})}static theme(A,t){let n=Cg.newName(),o=[H6.of(n),Wu.of(AS(`.${n}`,A))];return t&&t.dark&&o.push(I9.of(!0)),o}static baseTheme(A){return oc.lowest(Wu.of(AS("."+$9,A,fH)))}static findFromDOM(A){var t;let n=A.querySelector(".cm-content"),o=n&&_a.get(n)||_a.get(A);return((t=o?.root)===null||t===void 0?void 0:t.view)||null}}return i.styleModule=Wu,i.inputHandler=ZY,i.clipboardInputFilter=ES,i.clipboardOutputFilter=QS,i.scrollHandler=AH,i.focusChangeEffect=XY,i.perLineTextDirection=$J,i.exceptionSink=WY,i.updateListener=g9,i.editable=lC,i.mouseSelectionStyle=qY,i.dragMovesSelection=VY,i.clickAddsSelectionRange=jY,i.decorations=Q8,i.blockWrappers=tH,i.outerDecorations=uS,i.atomicRanges=C4,i.bidiIsolatedRanges=iH,i.scrollMargins=nH,i.darkTheme=I9,i.cspNonce=nt.define({combine:e=>e.length?e[0]:""}),i.contentAttributes=S9,i.editorAttributes=AY,i.lineWrapping=i.contentAttributes.of({class:"cm-lineWrapping"}),i.announce=ln.define(),i})(),n0A=4096,pY={},c8=class i{constructor(e,A,t,n,o,a){this.from=e,this.to=A,this.dir=t,this.isolates=n,this.fresh=o,this.order=a}static update(e,A){if(A.empty&&!e.some(o=>o.fresh))return e;let t=[],n=e.length?e[e.length-1].dir:Lo.LTR;for(let o=Math.max(0,e.length-10);o<e.length;o++){let a=e[o];a.dir==n&&!A.touchesRange(a.from,a.to)&&t.push(new i(A.mapPos(a.from,1),A.mapPos(a.to,-1),a.dir,a.isolates,!1,a.order))}return t}};function fY(i,e,A){for(let t=i.state.facet(e),n=t.length-1;n>=0;n--){let o=t[n],a=typeof o=="function"?o(i):o;a&&IS(a,A)}return A}var o0A=Ct.mac?"mac":Ct.windows?"win":Ct.linux?"linux":"key";function a0A(i,e){let A=i.split(/-(?!$)/),t=A[A.length-1];t=="Space"&&(t=" ");let n,o,a,r;for(let s=0;s<A.length-1;++s){let l=A[s];if(/^(cmd|meta|m)$/i.test(l))r=!0;else if(/^a(lt)?$/i.test(l))n=!0;else if(/^(c|ctrl|control)$/i.test(l))o=!0;else if(/^s(hift)?$/i.test(l))a=!0;else if(/^mod$/i.test(l))e=="mac"?r=!0:o=!0;else throw new Error("Unrecognized modifier name: "+l)}return n&&(t="Alt-"+t),o&&(t="Ctrl-"+t),r&&(t="Meta-"+t),a&&(t="Shift-"+t),t}function z6(i,e,A){return e.altKey&&(i="Alt-"+i),e.ctrlKey&&(i="Ctrl-"+i),e.metaKey&&(i="Meta-"+i),A!==!1&&e.shiftKey&&(i="Shift-"+i),i}var r0A=oc.default(ui.domEventHandlers({keydown(i,e){return yH(mH(e.state),i,e,"editor")}})),gh=nt.define({enables:r0A}),mY=new WeakMap;function mH(i){let e=i.facet(gh),A=mY.get(e);return A||mY.set(e,A=l0A(e.reduce((t,n)=>t.concat(n),[]))),A}function wH(i,e,A){return yH(mH(i.state),e,i,A)}var b2=null,s0A=4e3;function l0A(i,e=o0A){let A=Object.create(null),t=Object.create(null),n=(a,r)=>{let s=t[a];if(s==null)t[a]=r;else if(s!=r)throw new Error("Key binding "+a+" is used both as a regular binding and as a multi-stroke prefix")},o=(a,r,s,l,g)=>{var C,d;let B=A[a]||(A[a]=Object.create(null)),u=r.split(/ (?!$)/).map(m=>a0A(m,e));for(let m=1;m<u.length;m++){let v=u.slice(0,m).join(" ");n(v,!0),B[v]||(B[v]={preventDefault:!0,stopPropagation:!1,run:[S=>{let k=b2={view:S,prefix:v,scope:a};return setTimeout(()=>{b2==k&&(b2=null)},s0A),!0}]})}let E=u.join(" ");n(E,!1);let f=B[E]||(B[E]={preventDefault:!1,stopPropagation:!1,run:((d=(C=B._any)===null||C===void 0?void 0:C.run)===null||d===void 0?void 0:d.slice())||[]});s&&f.run.push(s),l&&(f.preventDefault=!0),g&&(f.stopPropagation=!0)};for(let a of i){let r=a.scope?a.scope.split(" "):["editor"];if(a.any)for(let l of r){let g=A[l]||(A[l]=Object.create(null));g._any||(g._any={preventDefault:!1,stopPropagation:!1,run:[]});let{any:C}=a;for(let d in g)g[d].run.push(B=>C(B,iS))}let s=a[e]||a.key;if(s)for(let l of r)o(l,s,a.run,a.preventDefault,a.stopPropagation),a.shift&&o(l,"Shift-"+s,a.shift,a.preventDefault,a.stopPropagation)}return A}var iS=null;function yH(i,e,A,t){iS=e;let n=zJ(e),o=$r(n,0),a=Rl(o)==n.length&&n!=" ",r="",s=!1,l=!1,g=!1;b2&&b2.view==A&&b2.scope==t&&(r=b2.prefix+" ",CH.indexOf(e.keyCode)<0&&(l=!0,b2=null));let C=new Set,d=f=>{if(f){for(let m of f.run)if(!C.has(m)&&(C.add(m),m(A)))return f.stopPropagation&&(g=!0),!0;f.preventDefault&&(f.stopPropagation&&(g=!0),l=!0)}return!1},B=i[t],u,E;return B&&(d(B[r+z6(n,e,!a)])?s=!0:a&&(e.altKey||e.metaKey||e.ctrlKey)&&!(Ct.windows&&e.ctrlKey&&e.altKey)&&!(Ct.mac&&e.altKey&&!(e.ctrlKey||e.metaKey))&&(u=sC[e.keyCode])&&u!=n?(d(B[r+z6(u,e,!0)])||e.shiftKey&&(E=WB[e.keyCode])!=n&&E!=u&&d(B[r+z6(E,e,!1)]))&&(s=!0):a&&e.shiftKey&&d(B[r+z6(n,e,!0)])&&(s=!0),!s&&d(B._any)&&(s=!0)),l&&(s=!0),s&&g&&e.stopPropagation(),iS=null,s}var md=class i{constructor(e,A,t,n,o){this.className=e,this.left=A,this.top=t,this.width=n,this.height=o}draw(){let e=document.createElement("div");return e.className=this.className,this.adjust(e),e}update(e,A){return A.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,A,t){if(t.empty){let n=e.coordsAtPos(t.head,t.assoc||1);if(!n)return[];let o=DH(e);return[new i(A,n.left-o.left,n.top-o.top,null,n.bottom-n.top)]}else return g0A(e,A,t)}};function DH(i){let e=i.scrollDOM.getBoundingClientRect();return{left:(i.textDirection==Lo.LTR?e.left:e.right-i.scrollDOM.clientWidth*i.scaleX)-i.scrollDOM.scrollLeft*i.scaleX,top:e.top-i.scrollDOM.scrollTop*i.scaleY}}function wY(i,e,A,t){let n=i.coordsAtPos(e,A*2);if(!n)return t;let o=i.dom.getBoundingClientRect(),a=(n.top+n.bottom)/2,r=i.posAtCoords({x:o.left+1,y:a}),s=i.posAtCoords({x:o.right-1,y:a});return r==null||s==null?t:{from:Math.max(t.from,Math.min(r,s)),to:Math.min(t.to,Math.max(r,s))}}function g0A(i,e,A){if(A.to<=i.viewport.from||A.from>=i.viewport.to)return[];let t=Math.max(A.from,i.viewport.from),n=Math.min(A.to,i.viewport.to),o=i.textDirection==Lo.LTR,a=i.contentDOM,r=a.getBoundingClientRect(),s=DH(i),l=a.querySelector(".cm-line"),g=l&&window.getComputedStyle(l),C=r.left+(g?parseInt(g.paddingLeft)+Math.min(0,parseInt(g.textIndent)):0),d=r.right-(g?parseInt(g.paddingRight):0),B=K9(i,t,1),u=K9(i,n,-1),E=B.type==As.Text?B:null,f=u.type==As.Text?u:null;if(E&&(i.lineWrapping||B.widgetLineBreaks)&&(E=wY(i,t,1,E)),f&&(i.lineWrapping||u.widgetLineBreaks)&&(f=wY(i,n,-1,f)),E&&f&&E.from==f.from&&E.to==f.to)return v(S(A.from,A.to,E));{let M=E?S(A.from,null,E):k(B,!1),x=f?S(null,A.to,f):k(u,!0),F=[];return(E||B).to<(f||u).from-(E&&f?1:0)||B.widgetLineBreaks>1&&M.bottom+i.defaultLineHeight/2<x.top?F.push(m(C,M.bottom,d,x.top)):M.bottom<x.top&&i.elementAtHeight((M.bottom+x.top)/2).type==As.Text&&(M.bottom=x.top=(M.bottom+x.top)/2),v(M).concat(F).concat(v(x))}function m(M,x,F,z){return new md(e,M-s.left,x-s.top,Math.max(0,F-M),z-x)}function v({top:M,bottom:x,horizontal:F}){let z=[];for(let j=0;j<F.length;j+=2)z.push(m(F[j],M,F[j+1],x));return z}function S(M,x,F){let z=1e9,j=-1e9,X=[];function eA(wA,BA,QA,RA,dA){let IA=i.coordsAtPos(wA,wA==F.to?-2:2),xA=i.coordsAtPos(QA,QA==F.from?2:-2);!IA||!xA||(z=Math.min(IA.top,xA.top,z),j=Math.max(IA.bottom,xA.bottom,j),dA==Lo.LTR?X.push(o&&BA?C:IA.left,o&&RA?d:xA.right):X.push(!o&&RA?C:xA.left,!o&&BA?d:IA.right))}let Z=M??F.from,CA=x??F.to;for(let wA of i.visibleRanges)if(wA.to>Z&&wA.from<CA)for(let BA=Math.max(wA.from,Z),QA=Math.min(wA.to,CA);;){let RA=i.state.doc.lineAt(BA);for(let dA of i.bidiSpans(RA)){let IA=dA.from+RA.from,xA=dA.to+RA.from;if(IA>=QA)break;xA>BA&&eA(Math.max(IA,BA),M==null&&IA<=Z,Math.min(xA,QA),x==null&&xA>=CA,dA.dir)}if(BA=RA.to+1,BA>=QA)break}return X.length==0&&eA(Z,M==null,CA,x==null,i.textDirection),{top:z,bottom:j,horizontal:X}}function k(M,x){let F=r.top+(x?M.top:M.bottom);return{top:F,bottom:F,horizontal:[]}}}function c0A(i,e){return i.constructor==e.constructor&&i.eq(e)}var nS=class{constructor(e,A){this.view=e,this.layer=A,this.drawn=[],this.scaleX=1,this.scaleY=1,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"),A.above&&this.dom.classList.add("cm-layer-above"),A.class&&this.dom.classList.add(A.class),this.scale(),this.dom.setAttribute("aria-hidden","true"),this.setOrder(e.state),e.requestMeasure(this.measureReq),A.mount&&A.mount(this.dom,e)}update(e){e.startState.facet(W6)!=e.state.facet(W6)&&this.setOrder(e.state),(this.layer.update(e,this.dom)||e.geometryChanged)&&(this.scale(),e.view.requestMeasure(this.measureReq))}docViewUpdate(e){this.layer.updateOnDocViewUpdate!==!1&&e.requestMeasure(this.measureReq)}setOrder(e){let A=0,t=e.facet(W6);for(;A<t.length&&t[A]!=this.layer;)A++;this.dom.style.zIndex=String((this.layer.above?150:-1)-A)}measure(){return this.layer.markers(this.view)}scale(){let{scaleX:e,scaleY:A}=this.view;(e!=this.scaleX||A!=this.scaleY)&&(this.scaleX=e,this.scaleY=A,this.dom.style.transform=`scale(${1/e}, ${1/A})`)}draw(e){if(e.length!=this.drawn.length||e.some((A,t)=>!c0A(A,this.drawn[t]))){let A=this.dom.firstChild,t=0;for(let n of e)n.update&&A&&n.constructor&&this.drawn[t].constructor&&n.update(A,this.drawn[t])?(A=A.nextSibling,t++):this.dom.insertBefore(n.draw(),A);for(;A;){let n=A.nextSibling;A.remove(),A=n}this.drawn=e,Ct.safari&&Ct.safari_version>=26&&(this.dom.style.display=this.dom.firstChild?"":"none")}}destroy(){this.layer.destroy&&this.layer.destroy(this.dom,this.view),this.dom.remove()}},W6=nt.define();function vH(i){return[Po.define(e=>new nS(e,i)),W6.of(i)]}var lh=nt.define({combine(i){return Lr(i,{cursorBlinkRate:1200,drawRangeCursor:!0,iosSelectionHandles:!0},{cursorBlinkRate:(e,A)=>Math.min(e,A),drawRangeCursor:(e,A)=>e||A})}});function bH(i={}){return[lh.of(i),C0A,d0A,I0A,$Y.of(!0)]}function MH(i){return i.startState.facet(lh)!=i.state.facet(lh)}var C0A=vH({above:!0,markers(i){let{state:e}=i,A=e.facet(lh),t=[];for(let n of e.selection.ranges){let o=n==e.selection.main;if(n.empty||A.drawRangeCursor&&!(o&&Ct.ios&&A.iosSelectionHandles)){let a=o?"cm-cursor cm-cursor-primary":"cm-cursor cm-cursor-secondary",r=n.empty?n:Be.cursor(n.head,n.assoc);for(let s of md.forRange(i,a,r))t.push(s)}}return t},update(i,e){i.transactions.some(t=>t.selection)&&(e.style.animationName=e.style.animationName=="cm-blink"?"cm-blink2":"cm-blink");let A=MH(i);return A&&yY(i.state,e),i.docChanged||i.selectionSet||A},mount(i,e){yY(e.state,i)},class:"cm-cursorLayer"});function yY(i,e){e.style.animationDuration=i.facet(lh).cursorBlinkRate+"ms"}var d0A=vH({above:!1,markers(i){let e=[],{main:A,ranges:t}=i.state.selection;for(let n of t)if(!n.empty)for(let o of md.forRange(i,"cm-selectionBackground",n))e.push(o);if(Ct.ios&&!A.empty&&i.state.facet(lh).iosSelectionHandles){for(let n of md.forRange(i,"cm-selectionHandle cm-selectionHandle-start",Be.cursor(A.from,1)))e.push(n);for(let n of md.forRange(i,"cm-selectionHandle cm-selectionHandle-end",Be.cursor(A.to,1)))e.push(n)}return e},update(i,e){return i.docChanged||i.selectionSet||i.viewportChanged||MH(i)},class:"cm-selectionLayer"}),I0A=oc.highest(ui.theme({".cm-line":{"& ::selection, &::selection":{backgroundColor:"transparent !important"},caretColor:"transparent !important"},".cm-content":{caretColor:"transparent !important","& :focus":{caretColor:"initial !important","&::selection, & ::selection":{backgroundColor:"Highlight !important"}}}})),SH=ln.define({map(i,e){return i==null?null:e.mapPos(i)}}),Xu=La.define({create(){return null},update(i,e){return i!=null&&(i=e.changes.mapPos(i)),e.effects.reduce((A,t)=>t.is(SH)?t.value:A,i)}}),B0A=Po.fromClass(class{constructor(i){this.view=i,this.cursor=null,this.measureReq={read:this.readPos.bind(this),write:this.drawCursor.bind(this)}}update(i){var e;let A=i.state.field(Xu);A==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"),(i.startState.field(Xu)!=A||i.docChanged||i.geometryChanged)&&this.view.requestMeasure(this.measureReq))}readPos(){let{view:i}=this,e=i.state.field(Xu),A=e!=null&&i.coordsAtPos(e);if(!A)return null;let t=i.scrollDOM.getBoundingClientRect();return{left:A.left-t.left+i.scrollDOM.scrollLeft*i.scaleX,top:A.top-t.top+i.scrollDOM.scrollTop*i.scaleY,height:A.bottom-A.top}}drawCursor(i){if(this.cursor){let{scaleX:e,scaleY:A}=this.view;i?(this.cursor.style.left=i.left/e+"px",this.cursor.style.top=i.top/A+"px",this.cursor.style.height=i.height/A+"px"):this.cursor.style.left="-100000px"}}destroy(){this.cursor&&this.cursor.remove()}setDropPos(i){this.view.state.field(Xu)!=i&&this.view.dispatch({effects:SH.of(i)})}},{eventObservers:{dragover(i){this.setDropPos(this.view.posAtCoords({x:i.clientX,y:i.clientY}))},dragleave(i){(i.target==this.view.contentDOM||!this.view.contentDOM.contains(i.relatedTarget))&&this.setDropPos(null)},dragend(){this.setDropPos(null)},drop(){this.setDropPos(null)}}});function kH(){return[Xu,B0A]}function DY(i,e,A,t,n){e.lastIndex=0;for(let o=i.iterRange(A,t),a=A,r;!o.next().done;a+=o.value.length)if(!o.lineBreak)for(;r=e.exec(o.value);)n(a+r.index,r)}function h0A(i,e){let A=i.visibleRanges;if(A.length==1&&A[0].from==i.viewport.from&&A[0].to==i.viewport.to)return A;let t=[];for(let{from:n,to:o}of A)n=Math.max(i.state.doc.lineAt(n).from,n-e),o=Math.min(i.state.doc.lineAt(o).to,o+e),t.length&&t[t.length-1].to>=n?t[t.length-1].to=o:t.push({from:n,to:o});return t}var oS=class{constructor(e){let{regexp:A,decoration:t,decorate:n,boundary:o,maxLength:a=1e3}=e;if(!A.global)throw new RangeError("The regular expression given to MatchDecorator should have its 'g' flag set");if(this.regexp=A,n)this.addMatch=(r,s,l,g)=>n(g,l,l+r[0].length,r,s);else if(typeof t=="function")this.addMatch=(r,s,l,g)=>{let C=t(r,s,l);C&&g(l,l+r[0].length,C)};else if(t)this.addMatch=(r,s,l,g)=>g(l,l+r[0].length,t);else throw new RangeError("Either 'decorate' or 'decoration' should be provided to MatchDecorator");this.boundary=o,this.maxLength=a}createDeco(e){let A=new Xr,t=A.add.bind(A);for(let{from:n,to:o}of h0A(e,this.maxLength))DY(e.state.doc,this.regexp,n,o,(a,r)=>this.addMatch(r,e,a,t));return A.finish()}updateDeco(e,A){let t=1e9,n=-1;return e.docChanged&&e.changes.iterChanges((o,a,r,s)=>{s>=e.view.viewport.from&&r<=e.view.viewport.to&&(t=Math.min(r,t),n=Math.max(s,n))}),e.viewportMoved||n-t>1e3?this.createDeco(e.view):n>-1?this.updateRange(e.view,A.map(e.changes),t,n):A}updateRange(e,A,t,n){for(let o of e.visibleRanges){let a=Math.max(o.from,t),r=Math.min(o.to,n);if(r>=a){let s=e.state.doc.lineAt(a),l=s.to<r?e.state.doc.lineAt(r):s,g=Math.max(o.from,s.from),C=Math.min(o.to,l.to);if(this.boundary){for(;a>s.from;a--)if(this.boundary.test(s.text[a-1-s.from])){g=a;break}for(;r<l.to;r++)if(this.boundary.test(l.text[r-l.from])){C=r;break}}let d=[],B,u=(E,f,m)=>d.push(m.range(E,f));if(s==l)for(this.regexp.lastIndex=g-s.from;(B=this.regexp.exec(s.text))&&B.index<C-s.from;)this.addMatch(B,e,B.index+s.from,u);else DY(e.state.doc,this.regexp,g,C,(E,f)=>this.addMatch(f,e,E,u));A=A.update({filterFrom:g,filterTo:C,filter:(E,f)=>E<g||f>C,add:d})}}return A}},aS=/x/.unicode!=null?"gu":"g",E0A=new RegExp(`[\0-\b |