From 7430ab4ec95cd98b2cddd0c51215c8d5f3e9df49 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E6=9D=9C=E6=81=92?= <2323333339@qq.com>
Date: Fri, 11 Jun 2021 09:12:58 +0800
Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
core/factory.php | 4 +-
core/function.php | 2 +-
package.json | 2 +-
public/include.php | 4 +-
typecho/write/dist/index.bundle.js | 915 +----------------------------
typecho/write/package.json | 4 +-
typecho/write/rollup.config.js | 7 +-
7 files changed, 13 insertions(+), 925 deletions(-)
diff --git a/core/factory.php b/core/factory.php
index c0b9be8..3ac83bc 100644
--- a/core/factory.php
+++ b/core/factory.php
@@ -172,7 +172,7 @@ class Editor
-
+
-
+
-
+
@@ -41,5 +41,5 @@
-
+
options->JCustomHeadEnd() ?>
diff --git a/typecho/write/dist/index.bundle.js b/typecho/write/dist/index.bundle.js
index b129522..8070458 100644
--- a/typecho/write/dist/index.bundle.js
+++ b/typecho/write/dist/index.bundle.js
@@ -1,914 +1 @@
-(function () {
- 'use strict';
-
- let extend="lc,34,7n,7,7b,19,,,,2,,2,,,20,b,1c,l,g,,2t,7,2,6,2,2,,4,z,,u,r,2j,b,1m,9,9,,o,4,,9,,3,,5,17,3,3b,f,,w,1j,,,,4,8,4,,3,7,a,2,t,,1m,,,,2,4,8,,9,,a,2,q,,2,2,1l,,4,2,4,2,2,3,3,,u,2,3,,b,2,1l,,4,5,,2,4,,k,2,m,6,,,1m,,,2,,4,8,,7,3,a,2,u,,1n,,,,c,,9,,14,,3,,1l,3,5,3,,4,7,2,b,2,t,,1m,,2,,2,,3,,5,2,7,2,b,2,s,2,1l,2,,,2,4,8,,9,,a,2,t,,20,,4,,2,3,,,8,,29,,2,7,c,8,2q,,2,9,b,6,22,2,r,,,,,,1j,e,,5,,2,5,b,,10,9,,2u,4,,6,,2,2,2,p,2,4,3,g,4,d,,2,2,6,,f,,jj,3,qa,3,t,3,t,2,u,2,1s,2,,7,8,,2,b,9,,19,3,3b,2,y,,3a,3,4,2,9,,6,3,63,2,2,,1m,,,7,,,,,2,8,6,a,2,,1c,h,1r,4,1c,7,,,5,,14,9,c,2,w,4,2,2,,3,1k,,,2,3,,,3,1m,8,2,2,48,3,,d,,7,4,,6,,3,2,5i,1m,,5,ek,,5f,x,2da,3,3x,,2o,w,fe,6,2x,2,n9w,4,,a,w,2,28,2,7k,,3,,4,,p,2,5,,47,2,q,i,d,,12,8,p,b,1a,3,1c,,2,4,2,2,13,,1v,6,2,2,2,2,c,,8,,1b,,1f,,,3,2,2,5,2,,,16,2,8,,6m,,2,,4,,fn4,,kh,g,g,g,a6,2,gt,,6a,,45,5,1ae,3,,2,5,4,14,3,4,,4l,2,fx,4,ar,2,49,b,4w,,1i,f,1k,3,1d,4,2,2,1x,3,10,5,,8,1q,,c,2,1g,9,a,4,2,,2n,3,2,,,2,6,,4g,,3,8,l,2,1l,2,,,,,m,,e,7,3,5,5f,8,2,3,,,n,,29,,2,6,,,2,,,2,,2,6j,,2,4,6,2,,2,r,2,2d,8,2,,,2,2y,,,,2,6,,,2t,3,2,4,,5,77,9,,2,6t,,a,2,,,4,,40,4,2,2,4,,w,a,14,6,2,4,8,,9,6,2,3,1a,d,,2,ba,7,,6,,,2a,m,2,7,,2,,2,3e,6,3,,,2,,7,,,20,2,3,,,,9n,2,f0b,5,1n,7,t4,,1r,4,29,,f5k,2,43q,,,3,4,5,8,8,2,7,u,4,44,3,1iz,1j,4,1e,8,,e,,m,5,,f,11s,7,,h,2,7,,2,,5,79,7,c5,4,15s,7,31,7,240,5,gx7k,2o,3k,6o".split(",").map((e=>e?parseInt(e,36):1));for(let e=1;ee)return extend[t-1]<=e;return !1}function isRegionalIndicator(e){return e>=127462&&e<=127487}const ZWJ=8205;function findClusterBreak(e,t,n=!0){return (n?nextClusterBreak:prevClusterBreak)(e,t)}function nextClusterBreak(e,t){if(t==e.length)return t;t&&surrogateLow(e.charCodeAt(t))&&surrogateHigh(e.charCodeAt(t-1))&&t--;let n=codePointAt(e,t);for(t+=codePointSize(n);t=0&&isRegionalIndicator(codePointAt(e,i));)n++,i-=2;if(n%2==0)break;t+=2;}}}return t}function prevClusterBreak(e,t){for(;t>0;){let n=nextClusterBreak(e,t-2);if(n=56320&&e<57344}function surrogateHigh(e){return e>=55296&&e<56320}function codePointAt(e,t){let n=e.charCodeAt(t);if(!surrogateHigh(n)||t+1==e.length)return n;let i=e.charCodeAt(t+1);return surrogateLow(i)?i-56320+(n-55296<<10)+65536:n}function fromCodePoint(e){return e<=65535?String.fromCharCode(e):(e-=65536,String.fromCharCode(55296+(e>>10),56320+(1023&e)))}function codePointSize(e){return e<65536?1:2}function countColumn(e,t,n){for(let i=0;i=n)return {offset:r,leftOver:0};t+=9==e.charCodeAt(r)?i-t%i:1,r=findClusterBreak(e,r);}return {offset:e.length,leftOver:n-t}}class Text{constructor(){}lineAt(e){if(e<0||e>this.length)throw new RangeError(`Invalid position ${e} in document of length ${this.length}`);return this.lineInner(e,!1,1,0)}line(e){if(e<1||e>this.lines)throw new RangeError(`Invalid line number ${e} in ${this.lines}-line document`);return this.lineInner(e,!0,1,0)}replace(e,t,n){let i=[];return this.decompose(0,e,i,2),n.length&&n.decompose(0,n.length,i,3),this.decompose(t,this.length,i,1),TextNode.from(i,this.length-(t-e)+n.length)}append(e){return this.replace(this.length,this.length,e)}slice(e,t=this.length){let n=[];return this.decompose(e,t,n,0),TextNode.from(n,t-e)}eq(e){if(e==this)return !0;if(e.length!=this.length||e.lines!=this.lines)return !1;let t=new RawTextCursor(this),n=new RawTextCursor(e);for(;;){if(t.next(),n.next(),t.lineBreak!=n.lineBreak||t.done!=n.done||t.value!=n.value)return !1;if(t.done)return !0}}iter(e=1){return new RawTextCursor(this,e)}iterRange(e,t=this.length){return new PartialTextCursor(this,e,t)}toString(){return this.sliceString(0)}toJSON(){let e=[];return this.flatten(e),e}static of(e){if(0==e.length)throw new RangeError("A document must have at least one line");return 1!=e.length||e[0]?e.length<=32?new TextLeaf(e):TextNode.from(TextLeaf.split(e,[])):Text.empty}}"undefined"!=typeof Symbol&&(Text.prototype[Symbol.iterator]=function(){return this.iter()});class TextLeaf extends Text{constructor(e,t=textLength(e)){super(),this.text=e,this.length=t;}get lines(){return this.text.length}get children(){return null}lineInner(e,t,n,i){for(let r=0;;r++){let l=this.text[r],s=i+l.length;if((t?n:s)>=e)return new Line$1(i,s,n,l);i=s+1,n++;}}decompose(e,t,n,i){let r=e<=0&&t>=this.length?this:new TextLeaf(sliceText(this.text,e,t),Math.min(t,this.length)-Math.max(0,e));if(1&i){let e=n.pop(),t=appendText(r.text,e.text.slice(),0,r.length);if(t.length<=32)n.push(new TextLeaf(t,e.length+r.length));else {let e=t.length>>1;n.push(new TextLeaf(t.slice(0,e)),new TextLeaf(t.slice(e)));}}else n.push(r);}replace(e,t,n){if(!(n instanceof TextLeaf))return super.replace(e,t,n);let i=appendText(this.text,appendText(n.text,sliceText(this.text,0,e)),t),r=this.length+n.length-(t-e);return i.length<=32?new TextLeaf(i,r):TextNode.from(TextLeaf.split(i,[]),r)}sliceString(e,t=this.length,n="\n"){let i="";for(let r=0,l=0;r<=t&&le&&l&&(i+=n),er&&(i+=s.slice(Math.max(0,e-r),t-r)),r=h+1;}return i}flatten(e){for(let t of this.text)e.push(t);}static split(e,t){let n=[],i=-1;for(let r of e)n.push(r),i+=r.length+1,32==n.length&&(t.push(new TextLeaf(n,i)),n=[],i=-1);return i>-1&&t.push(new TextLeaf(n,i)),t}}class TextNode extends Text{constructor(e,t){super(),this.children=e,this.length=t,this.lines=0;for(let t of e)this.lines+=t.lines;}lineInner(e,t,n,i){for(let r=0;;r++){let l=this.children[r],s=i+l.length,h=n+l.lines-1;if((t?h:s)>=e)return l.lineInner(e,t,n,i);i=s+1,n=h+1;}}decompose(e,t,n,i){for(let r=0,l=0;l<=t&&r=l){let r=i&((l<=e?1:0)|(h>=t?2:0));l>=e&&h<=t&&!r?n.push(s):s.decompose(e-l,t-l,n,r);}l=h+1;}}replace(e,t,n){if(n.lines=r&&t<=s){let h=l.replace(e-r,t-r,n),o=this.lines-l.lines+h.lines;if(h.lines>4&&h.lines>o>>6){let r=this.children.slice();return r[i]=h,new TextNode(r,this.length-(t-e)+n.length)}return super.replace(r,s,h)}r=s+1;}return super.replace(e,t,n)}sliceString(e,t=this.length,n="\n"){let i="";for(let r=0,l=0;re&&r&&(i+=n),el&&(i+=s.sliceString(e-l,t-l,n)),l=h+1;}return i}flatten(e){for(let t of this.children)t.flatten(e);}static from(e,t=e.reduce(((e,t)=>e+t.length+1),-1)){let n=0;for(let t of e)n+=t.lines;if(n<32){let n=[];for(let t of e)t.flatten(n);return new TextLeaf(n,t)}let i=Math.max(32,n>>5),r=i<<1,l=i>>1,s=[],h=0,o=-1,f=[];function a(e){let t;if(e.lines>r&&e instanceof TextNode)for(let t of e.children)a(t);else e.lines>l&&(h>l||!h)?(u(),s.push(e)):e instanceof TextLeaf&&h&&(t=f[f.length-1])instanceof TextLeaf&&e.lines+t.lines<=32?(h+=e.lines,o+=e.length+1,f[f.length-1]=new TextLeaf(t.text.concat(e.text),t.length+1+e.length)):(h+e.lines>i&&u(),h+=e.lines,o+=e.length+1,f.push(e));}function u(){0!=h&&(s.push(1==f.length?f[0]:TextNode.from(f,o)),o=-1,h=f.length=0);}for(let t of e)a(t);return u(),1==s.length?s[0]:new TextNode(s,t)}}function textLength(e){let t=-1;for(let n of e)t+=n.length+1;return t}function appendText(e,t,n=0,i=1e9){for(let r=0,l=0,s=!0;l=n&&(o>i&&(h=h.slice(0,i-r)),r0?0:e instanceof TextLeaf?e.text.length:e.children.length];}next(e=0){for(;;){let t=this.nodes.length-1;if(t<0)return this.done=!0,this.value="",this.lineBreak=!1,this;let n=this.nodes[t],i=this.offsets[t],r=n instanceof TextLeaf?n.text.length:n.children.length;if(i==(this.dir>0?r:0))this.nodes.pop(),this.offsets.pop();else if(this.lineBreak||i==(this.dir>0?0:r))if(n instanceof TextLeaf){let r=n.text[i-(this.dir<0?1:0)];if(this.offsets[t]=i+=this.dir,this.lineBreak=!1,r.length>Math.max(0,e))return this.value=0==e?r:this.dir>0?r.slice(e):r.slice(0,r.length-e),this;e-=r.length;}else {let r=n.children[this.dir>0?i:i-1];this.offsets[t]=i+this.dir,this.lineBreak=!1,e>r.length?e-=r.length:(this.nodes.push(r),this.offsets.push(this.dir>0?0:r instanceof TextLeaf?r.text.length:r.children.length));}else {if(this.lineBreak=!0,0==e)return this.value="\n",this;e--;}}}}class PartialTextCursor{constructor(e,t,n){this.value="",this.cursor=new RawTextCursor(e,t>n?-1:1),t>n?(this.skip=e.length-t,this.limit=t-n):(this.skip=t,this.limit=n-t);}next(e=0){if(this.limit<=0)this.limit=-1;else {let{value:t,lineBreak:n,done:i}=this.cursor.next(this.skip+e);this.skip=0,this.value=t;let r=n?1:t.length;r>this.limit&&(this.value=this.cursor.dir>0?t.slice(0,this.limit):t.slice(r-this.limit)),i||0==this.value.length?this.limit=-1:this.limit-=this.value.length;}return this}get lineBreak(){return this.cursor.lineBreak}get done(){return this.limit<0}}class Line$1{constructor(e,t,n,i){this.from=e,this.to=t,this.number=n,this.text=i;}get length(){return this.to-this.from}}
-
- const DefaultSplit=/\r\n?|\n/;var MapMode=function(e){return e[e.Simple=0]="Simple",e[e.TrackDel=1]="TrackDel",e[e.TrackBefore=2]="TrackBefore",e[e.TrackAfter=3]="TrackAfter",e}(MapMode||(MapMode={}));class ChangeDesc{constructor(e){this.sections=e;}get length(){let e=0;for(let t=0;te)return i+(e-r);i+=a;}else {if(n!=MapMode.Simple&&l>=e&&(n==MapMode.TrackDel&&re||n==MapMode.TrackBefore&&re))return null;if(l>e||l==e&&t<0&&!a)return e==r||t<0?i:i+o;i+=o;}r=l;}if(e>r)throw new RangeError(`Position ${e} is out of range for changeset of length ${r}`);return i}touchesRange(e,t=e){for(let n=0,r=0;n=0&&r<=t&&i>=e)return !(rt)||"cover";r=i;}return !1}toString(){let e="";for(let t=0;t=0?":"+r:"");}return e}toJSON(){return this.sections}static fromJSON(e){if(!Array.isArray(e)||e.length%2||e.some((e=>"number"!=typeof e)))throw new RangeError("Invalid JSON representation of ChangeDesc");return new ChangeDesc(e)}}class ChangeSet extends ChangeDesc{constructor(e,t){super(e),this.inserted=t;}apply(e){if(this.length!=e.length)throw new RangeError("Applying change set to a document with the wrong length");return iterChanges(this,((t,n,r,i,s)=>e=e.replace(r,r+(n-t),s)),!1),e}mapDesc(e,t=!1){return mapSet(this,e,t,!0)}invert(e){let t=this.sections.slice(),n=[];for(let r=0,i=0;r=0){t[r]=a,t[r+1]=s;let o=r>>1;for(;n.length0&&addInsert(n,t,i.text),i.forward(e),a+=e;}let l=e[s++];for(;a>1].toJSON()));}return e}static of(e,t,n){let r=[],i=[],s=0,a=null;function o(e=!1){if(!e&&!r.length)return;sa||e<0||a>t)throw new RangeError(`Invalid change range ${e} to ${a} (in doc of length ${t})`);let h=c?"string"==typeof c?Text.of(c.split(n||DefaultSplit)):c:Text.empty,f=h.length;if(e==a&&0==f)return;es&&addSection(r,e-s,-1),addSection(r,a-e,f),addInsert(i,r,h),s=a;}}(e),o(!a),a}static empty(e){return new ChangeSet(e?[e,-1]:[],[])}static fromJSON(e){if(!Array.isArray(e))throw new RangeError("Invalid JSON representation of ChangeSet");let t=[],n=[];for(let r=0;rt&&"string"!=typeof e)))throw new RangeError("Invalid JSON representation of ChangeSet");if(1==i.length)t.push(i[0],0);else {for(;n.length=0&&n<=0&&n==e[i+1]?e[i]+=t:0==t&&0==e[i]?e[i+1]+=n:r?(e[i]+=t,e[i+1]+=n):e.push(t,n);}function addInsert(e,t,n){if(0==n.length)return;let r=t.length-2>>1;if(r>1])),!(n||a==e.sections.length||e.sections[a+1]<0);)o=e.sections[a++],l=e.sections[a++];t(i,c,s,h,f),i=c,s=h;}}}function mapSet(e,t,n,r=!1){let i=[],s=r?[]:null,a=new SectionIter(e),o=new SectionIter(t);for(let e=0,t=0;;)if(-1==a.ins)e+=a.len,a.next();else if(-1==o.ins&&t=0&&(a.done||tt&&!a.done&&e+a.len=0)){if(a.done&&o.done)return s?new ChangeSet(i,s):new ChangeDesc(i);throw new Error("Mismatched change set lengths")}{let n=0,r=e+a.len;for(;;)if(o.ins>=0&&t>e&&t+o.lent||a.ins>=0&&a.len>t)&&(e||r.length>n),s.forward2(t),a.forward(t);}}else addSection(r,0,a.ins,e),i&&addInsert(i,r,a.text),a.next();}}class SectionIter{constructor(e){this.set=e,this.i=0,this.next();}next(){let{sections:e}=this.set;this.i>1;return t>=e.length?Text.empty:e[t]}textBit(e){let{inserted:t}=this.set,n=this.i-2>>1;return n>=t.length&&!e?Text.empty:t[n].slice(this.off,null==e?void 0:this.off+e)}forward(e){e==this.len?this.next():(this.len-=e,this.off+=e);}forward2(e){-1==this.ins?this.forward(e):e==this.ins?this.next():(this.ins-=e,this.off+=e);}}class SelectionRange{constructor(e,t,n){this.from=e,this.to=t,this.flags=n;}get anchor(){return 16&this.flags?this.to:this.from}get head(){return 16&this.flags?this.from:this.to}get empty(){return this.from==this.to}get assoc(){return 4&this.flags?-1:8&this.flags?1:0}get bidiLevel(){let e=3&this.flags;return 3==e?null:e}get goalColumn(){let e=this.flags>>5;return 33554431==e?void 0:e}map(e,t=-1){let n=e.mapPos(this.from,t),r=e.mapPos(this.to,t);return n==this.from&&r==this.to?this:new SelectionRange(n,r,this.flags)}extend(e,t=e){if(e<=this.anchor&&t>=this.anchor)return EditorSelection.range(e,t);let n=Math.abs(e-this.anchor)>Math.abs(t-this.anchor)?e:t;return EditorSelection.range(this.anchor,n)}eq(e){return this.anchor==e.anchor&&this.head==e.head}toJSON(){return {anchor:this.anchor,head:this.head}}static fromJSON(e){if(!e||"number"!=typeof e.anchor||"number"!=typeof e.head)throw new RangeError("Invalid JSON representation for SelectionRange");return EditorSelection.range(e.anchor,e.head)}}class EditorSelection{constructor(e,t=0){this.ranges=e,this.mainIndex=t;}map(e,t=-1){return e.empty?this:EditorSelection.create(this.ranges.map((n=>n.map(e,t))),this.mainIndex)}eq(e){if(this.ranges.length!=e.ranges.length||this.mainIndex!=e.mainIndex)return !1;for(let t=0;te.toJSON())),main:this.mainIndex}}static fromJSON(e){if(!e||!Array.isArray(e.ranges)||"number"!=typeof e.main||e.main>=e.ranges.length)throw new RangeError("Invalid JSON representation for EditorSelection");return new EditorSelection(e.ranges.map((e=>SelectionRange.fromJSON(e))),e.main)}static single(e,t=e){return new EditorSelection([EditorSelection.range(e,t)],0)}static create(e,t=0){if(0==e.length)throw new RangeError("A selection needs at least one range");for(let n=0,r=0;re.from-t.from)),t=e.indexOf(n);for(let n=1;nr.head?EditorSelection.range(a,s):EditorSelection.range(s,a));}}return new EditorSelection(e,t)}function checkSelection(e,t){for(let n of e.ranges)if(n.to>t)throw new RangeError("Selection points outside of document")}let nextID=0;class Facet{constructor(e,t,n,r,i){this.combine=e,this.compareInput=t,this.compare=n,this.isStatic=r,this.extensions=i,this.id=nextID++,this.default=e([]);}static define(e={}){return new Facet(e.combine||(e=>e),e.compareInput||((e,t)=>e===t),e.compare||(e.combine?(e,t)=>e===t:sameArray$1),!!e.static,e.enables)}of(e){return new FacetProvider([],this,0,e)}compute(e,t){if(this.isStatic)throw new Error("Can't compute a static facet");return new FacetProvider(e,this,1,t)}computeN(e,t){if(this.isStatic)throw new Error("Can't compute a static facet");return new FacetProvider(e,this,2,t)}from(e,t){return t||(t=e=>e),this.compute([e],(n=>t(n.field(e))))}}function sameArray$1(e,t){return e==t||e.length==t.length&&e.every(((e,n)=>e===t[n]))}class FacetProvider{constructor(e,t,n,r){this.dependencies=e,this.facet=t,this.type=n,this.value=r,this.id=nextID++;}dynamicSlot(e){var t;let n=this.value,r=this.facet.compareInput,i=e[this.id]>>1,s=2==this.type,a=!1,o=!1,l=[];for(let n of this.dependencies)"doc"==n?a=!0:"selection"==n?o=!0:0==(1&(null!==(t=e[n.id])&&void 0!==t?t:1))&&l.push(e[n.id]);return (e,t)=>{if(!t||t.reconfigured)return e.values[i]=n(e),1;{if(!(a&&t.docChanged||o&&(t.docChanged||t.selection)||l.some((t=>(1&ensureAddr(e,t))>0))))return 0;let c=n(e),h=t.startState.values[i];return (s?compareArray(c,h,r):r(c,h))?0:(e.values[i]=c,1)}}}}function compareArray(e,t,n){if(e.length!=t.length)return !1;for(let r=0;re[t.id])),i=n.map((e=>e.type)),s=r.filter((e=>!(1&e))),a=e[t.id]>>1;return (e,n)=>{let o=n?n.reconfigured?n.startState.config.address[t.id]:a<<1:null,l=null==o;for(let t of s)1&ensureAddr(e,t)&&(l=!0);if(!l)return 0;let c=[];for(let t=0;t>1}const initField=Facet.define({static:!0});class StateField{constructor(e,t,n,r,i){this.id=e,this.createF=t,this.updateF=n,this.compareF=r,this.spec=i,this.provides=void 0;}static define(e){let t=new StateField(nextID++,e.create,e.update,e.compare||((e,t)=>e===t),e);return e.provide&&(t.provides=e.provide(t)),t}create(e){let t=e.facet(initField).find((e=>e.field==this));return ((null==t?void 0:t.create)||this.createF)(e)}slot(e){let t=e[this.id]>>1;return (e,n)=>{if(!n||n.reconfigured&&null==maybeIndex(n.startState,this.id))return e.values[t]=this.create(e),1;let r,i=0;n.reconfigured?(r=n.startState.values[maybeIndex(n.startState,this.id)],i=1):r=n.startState.values[t];let s=this.updateF(r,n);return i||this.compareF(r,s)||(i=1),i&&(e.values[t]=s),i}}init(e){return [this,initField.of({field:this,create:e})]}get extension(){return this}}const Prec_={fallback:3,default:2,extend:1,override:0};function prec(e){return t=>new PrecExtension(t,e)}const Prec={fallback:prec(Prec_.fallback),default:prec(Prec_.default),extend:prec(Prec_.extend),override:prec(Prec_.override)};class PrecExtension{constructor(e,t){this.inner=e,this.prec=t;}}class Compartment{of(e){return new CompartmentInstance(this,e)}reconfigure(e){return Compartment.reconfigure.of({compartment:this,extension:e})}get(e){return e.config.compartments.get(this)}}class CompartmentInstance{constructor(e,t){this.compartment=e,this.inner=t;}}class Configuration{constructor(e,t,n,r,i){for(this.base=e,this.compartments=t,this.dynamicSlots=n,this.address=r,this.staticValues=i,this.statusTemplate=[];this.statusTemplate.length>1]}static resolve(e,t,n){let r=[],i=Object.create(null),s=new Map;for(let n of flatten(e,t,s))n instanceof StateField?r.push(n):(i[n.facet.id]||(i[n.facet.id]=[])).push(n);let a=Object.create(null),o=[],l=[];for(let e of r)a[e.id]=l.length<<1,l.push((t=>e.slot(t)));for(let e in i){let t=i[e],r=t[0].facet;if(t.every((e=>0==e.type))){a[r.id]=o.length<<1|1;let e=r.combine(t.map((e=>e.value))),i=n?n.config.address[r.id]:null;if(null!=i){let t=getAddr(n,i);r.compare(e,t)&&(e=t);}o.push(e);}else {for(let e of t)0==e.type?(a[e.id]=o.length<<1|1,o.push(e.value)):(a[e.id]=l.length<<1,l.push((t=>e.dynamicSlot(t))));a[r.id]=l.length<<1,l.push((e=>dynamicFacetSlot(e,r,t)));}}return new Configuration(e,s,l.map((e=>e(a))),a,o)}}function flatten(e,t,n){let r=[[],[],[],[]],i=new Map;return function e(s,a){let o=i.get(s);if(null!=o){if(o>=a)return;let e=r[o].indexOf(s);e>-1&&r[o].splice(e,1),s instanceof CompartmentInstance&&n.delete(s.compartment);}if(i.set(s,a),Array.isArray(s))for(let t of s)e(t,a);else if(s instanceof CompartmentInstance){if(n.has(s.compartment))throw new RangeError("Duplicate use of compartment in extensions");let r=t.get(s.compartment)||s.inner;n.set(s.compartment,r),e(r,a);}else if(s instanceof PrecExtension)e(s.inner,s.prec);else if(s instanceof StateField)r[a].push(s),s.provides&&e(s.provides,a);else if(s instanceof FacetProvider)r[a].push(s),s.facet.extensions&&e(s.facet.extensions,a);else {let t=s.extension;if(!t)throw new Error(`Unrecognized extension value in extension set (${s}). This sometimes happens because multiple instances of @codemirror/state are loaded, breaking instanceof checks.`);e(t,a);}}(e,Prec_.default),r.reduce(((e,t)=>e.concat(t)))}function ensureAddr(e,t){if(1&t)return 2;let n=t>>1,r=e.status[n];if(4==r)throw new Error("Cyclic dependency between fields and/or facets");if(2&r)return r;e.status[n]=4;let i=e.config.dynamicSlots[n](e,e.applying);return e.status[n]=2|i}function getAddr(e,t){return 1&t?e.config.staticValues[t>>1]:e.values[t>>1]}const languageData=Facet.define(),allowMultipleSelections=Facet.define({combine:e=>e.some((e=>e)),static:!0}),lineSeparator=Facet.define({combine:e=>e.length?e[0]:void 0,static:!0}),changeFilter=Facet.define(),transactionFilter=Facet.define(),transactionExtender=Facet.define();class Annotation{constructor(e,t){this.type=e,this.value=t;}static define(){return new AnnotationType}}class AnnotationType{of(e){return new Annotation(this,e)}}class StateEffectType{constructor(e){this.map=e;}of(e){return new StateEffect(this,e)}}class StateEffect{constructor(e,t){this.type=e,this.value=t;}map(e){let t=this.type.map(this.value,e);return void 0===t?void 0:t==this.value?this:new StateEffect(this.type,t)}is(e){return this.type==e}static define(e={}){return new StateEffectType(e.map||(e=>e))}static mapEffects(e,t){if(!e.length)return e;let n=[];for(let r of e){let e=r.map(t);e&&n.push(e);}return n}}StateEffect.reconfigure=StateEffect.define(),StateEffect.appendConfig=StateEffect.define();class Transaction{constructor(e,t,n,r,i,s){this.startState=e,this.changes=t,this.selection=n,this.effects=r,this.annotations=i,this.scrollIntoView=s,this._doc=null,this._state=null,n&&checkSelection(n,t.newLength),i.some((e=>e.type==Transaction.time))||(this.annotations=i.concat(Transaction.time.of(Date.now())));}get newDoc(){return this._doc||(this._doc=this.changes.apply(this.startState.doc))}get newSelection(){return this.selection||this.startState.selection.map(this.changes)}get state(){return this._state||this.startState.applyTransaction(this),this._state}annotation(e){for(let t of this.annotations)if(t.type==e)return t.value}get docChanged(){return !this.changes.empty}get reconfigured(){return this.startState.config!=this.state.config}}function joinRanges(e,t){let n=[];for(let r=0,i=0;;){let s,a;if(r=e[r]))s=e[r++],a=e[r++];else {if(!(i=0;n--){let i=r[n](e);e=i instanceof Transaction?i:Array.isArray(i)&&1==i.length&&i[0]instanceof Transaction?i[0]:resolveTransaction(t,asArray(i),!1);}return e}function extendTransaction(e){let t=e.startState,n=t.facet(transactionExtender),r=e;for(let i=n.length-1;i>=0;i--){let s=n[i](e);s&&Object.keys(s).length&&(r=mergeTransaction(e,resolveTransactionInner(t,s,e.changes.newLength),!0));}return r==e?e:new Transaction(t,e.changes,e.selection,r.effects,r.annotations,r.scrollIntoView)}Transaction.time=Annotation.define(),Transaction.userEvent=Annotation.define(),Transaction.addToHistory=Annotation.define(),Transaction.remote=Annotation.define();const none$5=[];function asArray(e){return null==e?none$5:Array.isArray(e)?e:[e]}var CharCategory=function(e){return e[e.Word=0]="Word",e[e.Space=1]="Space",e[e.Other=2]="Other",e}(CharCategory||(CharCategory={}));const nonASCIISingleCaseWordChar=/[\u00df\u0587\u0590-\u05f4\u0600-\u06ff\u3040-\u309f\u30a0-\u30ff\u3400-\u4db5\u4e00-\u9fcc\uac00-\ud7af]/;let wordChar;try{wordChar=new RegExp("[\\p{Alphabetic}\\p{Number}_]","u");}catch(e){}function hasWordChar(e){if(wordChar)return wordChar.test(e);for(let t=0;t""&&(n.toUpperCase()!=n.toLowerCase()||nonASCIISingleCaseWordChar.test(n)))return !0}return !1}function makeCategorizer(e){return t=>{if(!/\S/.test(t))return CharCategory.Space;if(hasWordChar(t))return CharCategory.Word;for(let n=0;n-1)return CharCategory.Word;return CharCategory.Other}}class EditorState{constructor(e,t,n,r=null){if(this.config=e,this.doc=t,this.selection=n,this.applying=null,this.status=e.statusTemplate.slice(),r&&r.startState.config==e)this.values=r.startState.values.slice();else if(this.values=e.dynamicSlots.map((e=>null)),r)for(let t in e.address){let n=e.address[t],i=r.startState.config.address[t];null!=i&&0==(1&n)&&(this.values[n>>1]=getAddr(r.startState,i));}this.applying=r,r&&(r._state=this);for(let e=0;er.set(t,e))),t=null),r.set(i.value.compartment,i.value.extension)):i.is(StateEffect.reconfigure)?(t=null,n=i.value):i.is(StateEffect.appendConfig)&&(t=null,n=asArray(n).concat(i.value));new EditorState(t||Configuration.resolve(n,r,this),e.newDoc,e.newSelection,e);}replaceSelection(e){return "string"==typeof e&&(e=this.toText(e)),this.changeByRange((t=>({changes:{from:t.from,to:t.to,insert:e},range:EditorSelection.cursor(t.from+e.length)})))}changeByRange(e){let t=this.selection,n=e(t.ranges[0]),r=this.changes(n.changes),i=[n.range],s=asArray(n.effects);for(let n=1;ni.spec.fromJSON(s,e))));}return EditorState.create({doc:e.doc,selection:EditorSelection.fromJSON(e.selection),extensions:t.extensions?r.concat([t.extensions]):r})}static create(e={}){let t=Configuration.resolve(e.extensions||[],new Map),n=e.doc instanceof Text?e.doc:Text.of((e.doc||"").split(t.staticFacet(EditorState.lineSeparator)||DefaultSplit)),r=e.selection?e.selection instanceof EditorSelection?e.selection:EditorSelection.single(e.selection.anchor,e.selection.head):EditorSelection.single(0);return checkSelection(r,n.length),t.staticFacet(allowMultipleSelections)||(r=r.asSingle()),new EditorState(t,n,r)}get tabSize(){return this.facet(EditorState.tabSize)}get lineBreak(){return this.facet(EditorState.lineSeparator)||"\n"}phrase(e){for(let t of this.facet(EditorState.phrases))if(Object.prototype.hasOwnProperty.call(t,e))return t[e];return e}languageDataAt(e,t){let n=[];for(let r of this.facet(languageData))for(let i of r(this,t))Object.prototype.hasOwnProperty.call(i,e)&&n.push(i[e]);return n}charCategorizer(e){return makeCategorizer(this.languageDataAt("wordChars",e).join(""))}wordAt(e){let{text:t,from:n,length:r}=this.doc.lineAt(e),i=this.charCategorizer(e),s=e-n,a=e-n;for(;s>0;){let e=findClusterBreak(t,s,!1);if(i(t.slice(e,s))!=CharCategory.Word)break;s=e;}for(;ae.length?e[0]:4}),EditorState.lineSeparator=lineSeparator,EditorState.phrases=Facet.define(),EditorState.languageData=languageData,EditorState.changeFilter=changeFilter,EditorState.transactionFilter=transactionFilter,EditorState.transactionExtender=transactionExtender,Compartment.reconfigure=StateEffect.define();
-
- const C$1="ͼ",COUNT="undefined"==typeof Symbol?"__ͼ":Symbol.for(C$1),SET="undefined"==typeof Symbol?"__styleSet"+Math.floor(1e8*Math.random()):Symbol("styleSet"),top$1="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:{};class StyleModule{constructor(e,t){this.rules=[];let{finish:l}=t||{};function s(e){return /^@/.test(e)?[e]:e.split(/,\s*/)}function o(e,t,n,i){let r=[],h=/^@(\w+)\b/.exec(e[0]),d=h&&"keyframes"==h[1];if(h&&null==t)return n.push(e[0]+";");for(let l in t){let i=t[l];if(/&/.test(l))o(l.split(/,\s*/).map((t=>e.map((e=>t.replace(/&/,e))))).reduce(((e,t)=>e.concat(t))),i,n);else if(i&&"object"==typeof i){if(!h)throw new RangeError("The value of a property ("+l+") should be a primitive value.");o(s(l),i,r,d);}else null!=i&&r.push(l.replace(/_.*/,"").replace(/[A-Z]/g,(e=>"-"+e.toLowerCase()))+": "+i+";");}(r.length||d)&&n.push((!l||h||i?e:e.map(l)).join(", ")+" {"+r.join(" ")+"}");}for(let t in e)o(s(t),e[t],this.rules);}getRules(){return this.rules.join("\n")}static newName(){let e=top$1[COUNT]||1;return top$1[COUNT]=e+1,C$1+e.toString(36)}static mount(e,t){(e[SET]||new StyleSet(e)).mount(Array.isArray(t)?t:[t]);}}let adoptedSet=null;class StyleSet{constructor(e){if(!e.head&&e.adoptedStyleSheets&&"undefined"!=typeof CSSStyleSheet){if(adoptedSet)return e.adoptedStyleSheets=[adoptedSet.sheet].concat(e.adoptedStyleSheets),e[SET]=adoptedSet;this.sheet=new CSSStyleSheet,e.adoptedStyleSheets=[this.sheet].concat(e.adoptedStyleSheets),adoptedSet=this;}else {this.styleTag=(e.ownerDocument||e).createElement("style");let t=e.head||e;t.insertBefore(this.styleTag,t.firstChild);}this.modules=[],e[SET]=this;}mount(e){let t=this.sheet,l=0,s=0;for(let o=0;o-1&&(this.modules.splice(i,1),s--,i=-1),-1==i){if(this.modules.splice(s++,0,n),t)for(let e=0;e>1,o=s[n]-t||(e<0?this.value[n].startSide:this.value[n].endSide)-i;if(n==h)return o>=0?h:r;o>=0?r=n:h=n+1;}}between(t,e,i,n){for(let s=this.findIndex(e,-1),h=this.findIndex(i,1,void 0,s);su||a==u&&l.startSide>0&&l.endSide<=0)continue;(u-a||l.endSide-l.startSide)<0||(h<0&&(h=a),l.point&&(r=Math.max(r,u-a)),i.push(l),n.push(a-h),s.push(u-h));}return {mapped:i.length?new Chunk(n,s,i,r):null,pos:h}}}class RangeSet{constructor(t,e,i=RangeSet.empty,n){this.chunkPos=t,this.chunk=e,this.nextLayer=i,this.maxPoint=n;}get length(){let t=this.chunk.length-1;return t<0?0:Math.max(this.chunkEnd(t),this.nextLayer.length)}get size(){if(this.isEmpty)return 0;let t=this.nextLayer.size;for(let e of this.chunk)t+=e.value.length;return t}chunkEnd(t){return this.chunkPos[t]+this.chunk[t].length}update(t){let{add:e=[],sort:i=!1,filterFrom:n=0,filterTo:s=this.length}=t,h=t.filter;if(0==e.length&&!h)return this;if(i&&e.slice().sort(cmpRange),this.isEmpty)return e.length?RangeSet.of(e):this;let r=new LayerCursor(this,null,-1).goto(0),o=0,a=[],u=new RangeSetBuilder;for(;r.value||o=0){let t=e[o++];u.addInner(t.from,t.to,t.value)||a.push(t);}else 1==r.rangeIndex&&r.chunkIndexthis.chunkEnd(r.chunkIndex)||sr.to||s=s&&t<=s+h.length&&!1===h.between(s,t-s,e-s,i))return}this.nextLayer.between(t,e,i);}}iter(t=0){return HeapCursor.from([this]).goto(t)}get isEmpty(){return this.nextLayer==this}static iter(t,e=0){return HeapCursor.from(t).goto(e)}static compare(t,e,i,n,s=-1){let h=t.filter((t=>t.maxPoint>=500||!t.isEmpty&&e.indexOf(t)<0&&t.maxPoint>=s)),r=e.filter((e=>e.maxPoint>=500||!e.isEmpty&&t.indexOf(e)<0&&e.maxPoint>=s)),o=findSharedChunks(h,r),a=new SpanCursor(h,o,s),u=new SpanCursor(r,o,s);i.iterGaps(((t,e,i)=>compare(a,t,u,e,i,n))),i.empty&&0==i.length&&compare(a,0,u,0,0,n);}static eq(t,e,i=0,n){null==n&&(n=1e9);let s=t.filter((t=>!t.isEmpty&&e.indexOf(t)<0)),h=e.filter((e=>!e.isEmpty&&t.indexOf(e)<0));if(s.length!=h.length)return !1;if(!s.length)return !0;let r=findSharedChunks(s,h),o=new SpanCursor(s,r,0).goto(i),a=new SpanCursor(h,r,0).goto(i);for(;;){if(o.to!=a.to||!sameValues(o.active,a.active)||o.point&&(!a.point||!o.point.eq(a.point)))return !1;if(o.to>=n)return !0;o.next(),a.next();}}static spans(t,e,i,n,s=-1){let h=new SpanCursor(t,null,s).goto(e),r=e,o=h.openStart;for(;;){let t=Math.min(h.to,i);if(h.point?(n.point(r,t,h.point,h.activeForPoint(h.to),o),o=h.openEnd(t)+(h.to>t?1:0)):t>r&&(n.span(r,t,h.active,o),o=h.openEnd(t)),h.to>i)break;r=h.to,h.next();}return o}static of(t,e=!1){let i=new RangeSetBuilder;for(let n of t instanceof Range?[t]:e?t.slice().sort(cmpRange):t)i.add(n.from,n.to,n.value);return i.finish()}}RangeSet.empty=new RangeSet([],[],null,-1),RangeSet.empty.nextLayer=RangeSet.empty;class RangeSetBuilder{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;}finishChunk(t){this.chunks.push(new Chunk(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,t&&(this.from=[],this.to=[],this.value=[]);}add(t,e,i){this.addInner(t,e,i)||(this.nextLayer||(this.nextLayer=new RangeSetBuilder)).add(t,e,i);}addInner(t,e,i){let n=t-this.lastTo||i.startSide-this.last.endSide;if(n<=0&&(t-this.lastFrom||i.startSide-this.last.startSide)<0)throw new Error("Ranges must be added sorted by `from` position and `startSide`");return !(n<0)&&(250==this.from.length&&this.finishChunk(!0),this.chunkStart<0&&(this.chunkStart=t),this.from.push(t-this.chunkStart),this.to.push(e-this.chunkStart),this.last=i,this.lastFrom=t,this.lastTo=e,this.value.push(i),i.point&&(this.maxPoint=Math.max(this.maxPoint,e-t)),!0)}addChunk(t,e){if((t-this.lastTo||e.value[0].startSide-this.last.endSide)<0)return !1;this.from.length&&this.finishChunk(!0),this.setMaxPoint=Math.max(this.setMaxPoint,e.maxPoint),this.chunks.push(e),this.chunkPos.push(t);let i=e.value.length-1;return this.last=e.value[i],this.lastFrom=e.from[i]+t,this.lastTo=e.to[i]+t,!0}finish(){return this.finishInner(RangeSet.empty)}finishInner(t){if(this.from.length&&this.finishChunk(!1),0==this.chunks.length)return t;let e=new RangeSet(this.chunkPos,this.chunks,this.nextLayer?this.nextLayer.finishInner(t):t,this.setMaxPoint);return this.from=null,e}}function findSharedChunks(t,e){let i=new Map;for(let e of t)for(let t=0;t=this.minPoint)break}}}nextChunk(){this.chunkIndex++,this.rangeIndex=0,this.next();}compare(t){return this.from-t.from||this.startSide-t.startSide||this.to-t.to||this.endSide-t.endSide}}class HeapCursor{constructor(t){this.heap=t;}static from(t,e=null,i=-1){let n=[];for(let s=0;s=i&&n.push(new LayerCursor(h,e,i,s));return 1==n.length?n[0]:new HeapCursor(n)}get startSide(){return this.value?this.value.startSide:0}goto(t,e=-1e9){for(let i of this.heap)i.goto(t,e);for(let t=this.heap.length>>1;t>=0;t--)heapBubble(this.heap,t);return this.next(),this}forward(t,e){for(let i of this.heap)i.forward(t,e);for(let t=this.heap.length>>1;t>=0;t--)heapBubble(this.heap,t);(this.to-t||this.value.endSide-e)<0&&this.next();}next(){if(0==this.heap.length)this.from=this.to=1e9,this.value=null,this.rank=-1;else {let t=this.heap[0];this.from=t.from,this.to=t.to,this.value=t.value,this.rank=t.rank,t.value&&t.next(),heapBubble(this.heap,0);}}}function heapBubble(t,e){for(let i=t[e];;){let n=1+(e<<1);if(n>=t.length)break;let s=t[n];if(n+1=0&&(s=t[n+1],n++),i.compare(s)<0)break;t[n]=i,t[e]=s,e=n;}}class SpanCursor{constructor(t,e,i){this.minPoint=i,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=HeapCursor.from(t,e,i);}goto(t,e=-1e9){return this.cursor.goto(t,e),this.active.length=this.activeTo.length=this.activeRank.length=0,this.minActive=-1,this.to=t,this.endSide=e,this.openStart=-1,this.next(),this}forward(t,e){for(;this.minActive>-1&&(this.activeTo[this.minActive]-t||this.active[this.minActive].endSide-e)<0;)this.removeActive(this.minActive);this.cursor.forward(t,e);}removeActive(t){remove(this.active,t),remove(this.activeTo,t),remove(this.activeRank,t),this.minActive=findMinIndex(this.active,this.activeTo);}addActive(t){let e=0,{value:i,to:n,rank:s}=this.cursor;for(;e-1&&(this.activeTo[s]-this.cursor.from||this.active[s].endSide-this.cursor.startSide)<0){if(this.activeTo[s]>t){this.to=this.activeTo[s],this.endSide=this.active[s].endSide;break}this.removeActive(s),i&&remove(i,s);}else {if(!this.cursor.value){this.to=this.endSide=1e9;break}if(this.cursor.from>t){this.to=this.cursor.from,this.endSide=this.cursor.startSide;break}{let s=this.cursor.value;if(s.point){if(!(e&&this.cursor.to==this.to&&this.cursor.fromt&&this.forward(this.to,this.endSide);break}this.cursor.next();}else this.addActive(i),this.cursor.next();}}}if(i){let e=0;for(;e=0&&!(this.activeRank[i]t||this.activeTo[i]==t&&this.active[i].endSide>this.point.endSide)&&e.push(this.active[i]);return e.reverse()}openEnd(t){let e=0;for(let i=this.activeTo.length-1;i>=0&&this.activeTo[i]>t;i--)e++;return e}}function compare(t,e,i,n,s,h){t.goto(e),i.goto(n);let r=n+s,o=n,a=n-e;for(;;){let e=t.to+a-i.to||t.endSide-i.endSide,n=e<0?t.to+a:i.to,s=Math.min(n,r);if(t.point||i.point?t.point&&i.point&&(t.point==i.point||t.point.eq(i.point))||h.comparePoint(o,s,t.point,i.point):s>o&&!sameValues(t.active,i.active)&&h.compareRange(o,s,t.active,i.active),n>r)break;o=n,e<=0&&t.next(),e>=0&&i.next();}}function sameValues(t,e){if(t.length!=e.length)return !1;for(let i=0;i=e;i--)t[i+1]=t[i];t[e]=i;}function findMinIndex(t,e){let i=-1,n=1e9;for(let s=0;s",191:"?",192:"~",219:"{",220:"|",221:"}",222:'"',229:"Q"};for(var chrome$1="undefined"!=typeof navigator&&/Chrome\/(\d+)/.exec(navigator.userAgent),safari$1="undefined"!=typeof navigator&&/Apple Computer/.test(navigator.vendor),gecko$1="undefined"!=typeof navigator&&/Gecko\/\d+/.test(navigator.userAgent),mac="undefined"!=typeof navigator&&/Mac/.test(navigator.platform),ie$1="undefined"!=typeof navigator&&/MSIE \d|Trident\/(?:[7-9]|\d{2,})\..*rv:(\d+)/.exec(navigator.userAgent),brokenModifierNames=chrome$1&&(mac||+chrome$1[1]<57)||gecko$1&&mac,i$1=0;i$1<10;i$1++)base$2[48+i$1]=base$2[96+i$1]=String(i$1);for(i$1=1;i$1<=24;i$1++)base$2[i$1+111]="F"+i$1;for(i$1=65;i$1<=90;i$1++)base$2[i$1]=String.fromCharCode(i$1+32),shift[i$1]=String.fromCharCode(i$1);for(var code in base$2)shift.hasOwnProperty(code)||(shift[code]=base$2[code]);function keyName(e){var r=!(brokenModifierNames&&(e.ctrlKey||e.altKey||e.metaKey)||(safari$1||ie$1)&&e.shiftKey&&e.key&&1==e.key.length)&&e.key||(e.shiftKey?shift:base$2)[e.keyCode]||e.key||"Unidentified";return "Esc"==r&&(r="Escape"),"Del"==r&&(r="Delete"),"Left"==r&&(r="ArrowLeft"),"Up"==r&&(r="ArrowUp"),"Right"==r&&(r="ArrowRight"),"Down"==r&&(r="ArrowDown"),r}
-
- function getSelection(e){return e.getSelection?e.getSelection():document.getSelection()}function contains$1(e,t){return !!t&&e.contains(1!=t.nodeType?t.parentNode:t)}function deepActiveElement(){let e=document.activeElement;for(;e&&e.shadowRoot;)e=e.shadowRoot.activeElement;return e}function hasSelection(e,t){if(!t.anchorNode)return !1;try{return contains$1(e,t.anchorNode)}catch(e){return !1}}function clientRectsFor(e){return 3==e.nodeType?textRange(e,0,e.nodeValue.length).getClientRects():1==e.nodeType?e.getClientRects():[]}function isEquivalentPosition(e,t,i,n){return !!i&&(scanFor(e,t,i,n,-1)||scanFor(e,t,i,n,1))}function domIndex(e){for(var t=0;;t++)if(!(e=e.previousSibling))return t}function scanFor(e,t,i,n,o){for(;;){if(e==i&&t==n)return !0;if(t==(o<0?0:maxOffset(e))){if("DIV"==e.nodeName)return !1;let i=e.parentNode;if(!i||1!=i.nodeType)return !1;t=domIndex(e)+(o<0?0:1),e=i;}else {if(1!=e.nodeType)return !1;if(1==(e=e.childNodes[t+(o<0?-1:0)]).nodeType&&"false"==e.contentEditable)return !1;t=o<0?maxOffset(e):0;}}}function maxOffset(e){return 3==e.nodeType?e.nodeValue.length:e.childNodes.length}const Rect0={left:0,right:0,top:0,bottom:0};function flattenRect(e,t){let i=t?e.left:e.right;return {left:i,right:i,top:e.top,bottom:e.bottom}}function windowRect(e){return {left:0,right:e.innerWidth,top:0,bottom:e.innerHeight}}function scrollRectIntoView(e,t){let i=e.ownerDocument.defaultView;for(let n=e.parentNode;n;)if(1==n.nodeType){let e,o=n==document.body;if(o)e=windowRect(i);else {if(n.scrollHeight<=n.clientHeight&&n.scrollWidth<=n.clientWidth){n=n.parentNode;continue}let t=n.getBoundingClientRect();e={left:t.left,right:t.left+n.clientWidth,top:t.top,bottom:t.top+n.clientHeight};}let s=0,r=0;if(t.tope.bottom&&(r=t.bottom-e.bottom+5),t.lefte.right&&(s=t.right-e.right+5),s||r)if(o)i.scrollBy(s,r);else {if(r){let e=n.scrollTop;n.scrollTop+=r,r=n.scrollTop-e;}if(s){let e=n.scrollLeft;n.scrollLeft+=s,s=n.scrollLeft-e;}t={left:t.left-s,top:t.top-r,right:t.right-s,bottom:t.bottom-r};}if(o)break;n=n.assignedSlot||n.parentNode;}else {if(11!=n.nodeType)break;n=n.host;}}class DOMSelection{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}set(e){this.anchorNode=e.anchorNode,this.anchorOffset=e.anchorOffset,this.focusNode=e.focusNode,this.focusOffset=e.focusOffset;}}let scratchRange,preventScrollSupported=null;function focusPreventScroll(e){if(e.setActive)return e.setActive();if(preventScrollSupported)return e.focus(preventScrollSupported);let t=[];for(let i=e;i&&(t.push(i,i.scrollTop,i.scrollLeft),i!=i.ownerDocument);i=i.parentNode);if(e.focus(null==preventScrollSupported?{get preventScroll(){return preventScrollSupported={preventScroll:!0},!0}}:void 0),!preventScrollSupported){preventScrollSupported=!1;for(let e=0;et)return i.domBoundsAround(e,t,a);if(c>=e&&-1==n&&(n=l,o=a),a>t&&i.dom.parentNode==this.dom){s=l,r=h;break}h=c,a=c+i.breakAfter;}return {from:o,to:r<0?i+this.length:r,startDOM:(n?this.children[n-1].dom.nextSibling:null)||this.dom.firstChild,endDOM:s=0?this.children[s].dom:null}}markDirty(e=!1){2&this.dirty||(this.dirty|=2,this.markParentsDirty(e));}markParentsDirty(e){for(let t=this.parent;t;t=t.parent){if(e&&(t.dirty|=2),1&t.dirty)return;t.dirty|=1,e=!1;}}setParent(e){this.parent!=e&&(this.parent=e,this.dirty&&this.markParentsDirty(!0));}setDOM(e){this.dom=e,e.cmView=this;}get rootView(){for(let e=this;;){let t=e.parent;if(!t)return e;e=t;}}replaceChildren(e,t,i=none$3){this.markDirty();for(let i=e;ithis.pos||e==this.pos&&(t>0||0==this.i||this.children[this.i-1].breakAfter))return this.off=e-this.pos,this;let i=this.children[--this.i];this.pos-=i.length+i.breakAfter;}}}let[nav,doc]="undefined"!=typeof navigator?[navigator,document]:[{userAgent:"",vendor:"",platform:""},{documentElement:{style:{}}}];const ie_edge=/Edge\/(\d+)/.exec(nav.userAgent),ie_upto10=/MSIE \d/.test(nav.userAgent),ie_11up=/Trident\/(?:[7-9]|\d{2,})\..*rv:(\d+)/.exec(nav.userAgent),ie=!!(ie_upto10||ie_11up||ie_edge),gecko=!ie&&/gecko\/(\d+)/i.test(nav.userAgent),chrome=!ie&&/Chrome\/(\d+)/.exec(nav.userAgent),webkit="webkitFontSmoothing"in doc.documentElement.style,safari=!ie&&/Apple Computer/.test(nav.vendor);var browser={mac:/Mac/.test(nav.platform),ie:ie,ie_version:ie_upto10?doc.documentMode||6:ie_11up?+ie_11up[1]:ie_edge?+ie_edge[1]:0,gecko:gecko,gecko_version:gecko?+(/Firefox\/(\d+)/.exec(nav.userAgent)||[0,0])[1]:0,chrome:!!chrome,chrome_version:chrome?+chrome[1]:0,ios:safari&&(/Mobile\/\w+/.test(nav.userAgent)||nav.maxTouchPoints>2),android:/Android\b/.test(nav.userAgent),webkit:webkit,safari:safari,webkit_version:webkit?+(/\bAppleWebKit\/(\d+)/.exec(navigator.userAgent)||[0,0])[1]:0,tabSize:null!=doc.documentElement.style.tabSize?"tab-size":"-moz-tab-size"};const none$2$1=[];class InlineView extends ContentView{become(e){return !1}getSide(){return 0}}InlineView.prototype.children=none$2$1;class TextView extends InlineView{constructor(e){super(),this.text=e;}get length(){return this.text.length}createDOM(e){this.setDOM(e||document.createTextNode(this.text));}sync(e){this.dom||this.createDOM(),this.dom.nodeValue!=this.text&&(e&&e.node==this.dom&&(e.written=!0),this.dom.nodeValue=this.text);}reuseDOM(e){return 3==e.nodeType&&(this.createDOM(e),!0)}merge(e,t,i){return (!i||i instanceof TextView&&!(this.length-(t-e)+i.length>256))&&(this.text=this.text.slice(0,e)+(i?i.text:"")+this.text.slice(t),this.markDirty(),!0)}slice(e){return new TextView(this.text.slice(e))}localPosFromDOM(e,t){return e==this.dom?t:t?this.text.length:0}domAtPos(e){return new DOMPos(this.dom,e)}domBoundsAround(e,t,i){return {from:i,to:i+this.length,startDOM:this.dom,endDOM:this.dom.nextSibling}}coordsAt(e,t){return textCoords(this.dom,e,t)}}class MarkView extends InlineView{constructor(e,t=[],i=0){super(),this.mark=e,this.children=t,this.length=i;for(let e of t)e.setParent(this);}createDOM(){let e=document.createElement(this.mark.tagName);if(this.mark.class&&(e.className=this.mark.class),this.mark.attrs)for(let t in this.mark.attrs)e.setAttribute(t,this.mark.attrs[t]);this.setDOM(e);}sync(e){this.dom||this.createDOM(),super.sync(e);}merge(e,t,i,n,o){return (!i||!(!(i instanceof MarkView&&i.mark.eq(this.mark))||e&&n<=0||tn&&(t=n);let o=t,s=t,r=0;0==t&&i<0||t==n&&i>=0?browser.chrome||browser.gecko||(t?(o--,r=1):(s++,r=-1)):i<0?o--:s++;let l=textRange(e,o,s).getClientRects();if(!l.length)return Rect0;let a=l[(r?r<0:i>=0)?0:l.length-1];return browser.safari&&!r&&0==a.width&&(a=Array.prototype.find.call(l,(e=>e.width))||a),r?flattenRect(a,r<0):a}class WidgetView extends InlineView{constructor(e,t,i){super(),this.widget=e,this.length=t,this.side=i;}static create(e,t,i){return new(e.customView||WidgetView)(e,t,i)}slice(e){return WidgetView.create(this.widget,this.length-e,this.side)}sync(){this.dom&&this.widget.updateDOM(this.dom)||(this.setDOM(this.widget.toDOM(this.editorView)),this.dom.contentEditable="false");}getSide(){return this.side}merge(e,t,i,n,o){return !(i&&(!(i instanceof WidgetView&&this.widget.compare(i.widget))||e>0&&n<=0||t0?i.length-1:0;n=i[t],!(e>0?0==t:t==i.length-1||n.top0?-1:1);return 0==e&&t>0||e==this.length&&t<=0?n:flattenRect(n,0==e)}}class CompositionView extends WidgetView{domAtPos(e){return new DOMPos(this.widget.text,e)}sync(){this.dom||this.setDOM(this.widget.toDOM());}localPosFromDOM(e,t){return t?3==e.nodeType?Math.min(t,this.length):this.length:0}ignoreMutation(){return !1}get overrideDOMText(){return null}coordsAt(e,t){return textCoords(this.widget.text,e,t)}}function mergeInlineChildren(e,t,i,n,o,s){let r=e.childCursor(),{i:l,off:a}=r.findPos(i,1),{i:h,off:c}=r.findPos(t,-1),d=t-i;for(let e of n)d+=e.length;e.length+=d;let{children:u}=e;if(h==l&&c){let e=u[h];if(1==n.length&&e.merge(c,a,n[0],o,s))return;if(0==n.length)return void e.merge(c,a,null,o,s);let t=e.slice(a);t.merge(0,0,n[n.length-1],0,s)?n[n.length-1]=t:n.push(t),l++,s=a=0;}if(a){let e=u[l];n.length&&e.merge(0,a,n[n.length-1],0,s)?(n.pop(),s=n.length?0:o):e.merge(0,a,null,0,0);}else lt&&i.push(no&&i0;n--){let i=t[n-1].dom;if(i.parentNode==e)return DOMPos.after(i)}return new DOMPos(e,0)}function joinInlineInto(e,t,i){let n,{children:o}=e;i>0&&t instanceof MarkView&&o.length&&(n=o[o.length-1])instanceof MarkView&&n.mark.eq(t.mark)?joinInlineInto(n,t.children[0],i-1):(o.push(t),t.setParent(e)),e.length+=t.length;}function coordsInChildren(e,t,i){for(let n=0,o=0;o=t:r>t)return s.coordsAt(t-n,i);n=r;}}let n=e.dom.lastChild;if(!n)return e.dom.getBoundingClientRect();let o=clientRectsFor(n);return o[o.length-1]}function combineAttrs(e,t){for(let i in e)"class"==i&&t.class?t.class+=" "+e.class:"style"==i&&t.style?t.style+=";"+e.style:t[i]=e[i];return t}function attrsEq(e,t){if(e==t)return !0;if(!e||!t)return !1;let i=Object.keys(e),n=Object.keys(t);if(i.length!=n.length)return !1;for(let o of i)if(-1==n.indexOf(o)||e[o]!==t[o])return !1;return !0}function updateAttrs(e,t,i){if(t)for(let n in t)i&&n in i||e.removeAttribute(n);if(i)for(let n in i)t&&t[n]==i[n]||e.setAttribute(n,i[n]);}class WidgetType{eq(e){return !1}updateDOM(e){return !1}compare(e){return this==e||this.constructor==e.constructor&&this.eq(e)}get estimatedHeight(){return -1}ignoreEvent(e){return !0}get customView(){return null}}var BlockType=function(e){return e[e.Text=0]="Text",e[e.WidgetBefore=1]="WidgetBefore",e[e.WidgetAfter=2]="WidgetAfter",e[e.WidgetRange=3]="WidgetRange",e}(BlockType||(BlockType={}));class Decoration extends RangeValue{constructor(e,t,i,n){super(),this.startSide=e,this.endSide=t,this.widget=i,this.spec=n;}get heightRelevant(){return !1}static mark(e){return new MarkDecoration(e)}static widget(e){let t=e.side||0;return e.block&&(t+=200000001*(t>0?1:-1)),new PointDecoration(e,t,t,!!e.block,e.widget||null,!1)}static replace(e){let t=!!e.block,{start:i,end:n}=getInclusive(e);return new PointDecoration(e,t?-2e8*(i?2:1):1e8*(i?-1:1),t?2e8*(n?2:1):1e8*(n?1:-1),t,e.widget||null,!0)}static line(e){return new LineDecoration(e)}static set(e,t=!1){return RangeSet.of(e,t)}hasHeight(){return !!this.widget&&this.widget.estimatedHeight>-1}}Decoration.none=RangeSet.empty;class MarkDecoration extends Decoration{constructor(e){let{start:t,end:i}=getInclusive(e);super(1e8*(t?-1:1),1e8*(i?1:-1),null,e),this.tagName=e.tagName||"span",this.class=e.class||"",this.attrs=e.attributes||null;}eq(e){return this==e||e instanceof MarkDecoration&&this.tagName==e.tagName&&this.class==e.class&&attrsEq(this.attrs,e.attrs)}range(e,t=e){if(e>=t)throw new RangeError("Mark decorations may not be empty");return super.range(e,t)}}MarkDecoration.prototype.point=!1;class LineDecoration extends Decoration{constructor(e){super(-1e8,-1e8,null,e);}eq(e){return e instanceof LineDecoration&&attrsEq(this.spec.attributes,e.spec.attributes)}range(e,t=e){if(t!=e)throw new RangeError("Line decoration ranges must be zero-length");return super.range(e,t)}}LineDecoration.prototype.mapMode=MapMode.TrackBefore,LineDecoration.prototype.point=!0;class PointDecoration extends Decoration{constructor(e,t,i,n,o,s){super(t,i,o,e),this.block=n,this.isReplace=s,this.mapMode=n?t<0?MapMode.TrackBefore:MapMode.TrackAfter:MapMode.TrackDel;}get type(){return this.startSide=5}eq(e){return e instanceof PointDecoration&&widgetsEq(this.widget,e.widget)&&this.block==e.block&&this.startSide==e.startSide&&this.endSide==e.endSide}range(e,t=e){if(this.isReplace&&(e>t||e==t&&this.startSide>0&&this.endSide<0))throw new RangeError("Invalid range for replacement decoration");if(!this.isReplace&&t!=e)throw new RangeError("Widget decorations can only have zero-length ranges");return super.range(e,t)}}function getInclusive(e){let{inclusiveStart:t,inclusiveEnd:i}=e;return null==t&&(t=e.inclusive),null==i&&(i=e.inclusive),{start:t||!1,end:i||!1}}function widgetsEq(e,t){return e==t||!!(e&&t&&e.compare(t))}function addRange(e,t,i,n=0){let o=i.length-1;o>=0&&i[o]+n>e?i[o]=Math.max(i[o],t):i.push(e,t);}PointDecoration.prototype.point=!0;class LineView extends ContentView{constructor(){super(...arguments),this.children=[],this.length=0,this.prevAttrs=void 0,this.attrs=null,this.breakAfter=0;}merge(e,t,i,n,o,s){if(i){if(!(i instanceof LineView))return !1;this.dom||i.transferDOM(this);}return n&&this.setDeco(i?i.attrs:null),mergeInlineChildren(this,e,t,i?i.children:none$1$1,o,s),!0}split(e){let t=new LineView;if(t.breakAfter=this.breakAfter,0==this.length)return t;let{i:i,off:n}=this.childPos(e);n&&(t.append(this.children[i].slice(n),0),this.children[i].merge(n,this.children[i].length,null,0,0),i++);for(let e=i;e0&&0==this.children[i-1].length;)this.children[i-1].parent=null,i--;return this.children.length=i,this.markDirty(),this.length=e,t}transferDOM(e){this.dom&&(e.setDOM(this.dom),e.prevAttrs=void 0===this.prevAttrs?this.attrs:this.prevAttrs,this.prevAttrs=void 0,this.dom=null);}setDeco(e){attrsEq(this.attrs,e)||(this.dom&&(this.prevAttrs=this.attrs,this.markDirty()),this.attrs=e);}append(e,t){joinInlineInto(this,e,t);}addLineDeco(e){let t=e.spec.attributes;t&&(this.attrs=combineAttrs(t,this.attrs||{}));}domAtPos(e){return inlineDOMAtPos(this.dom,this.children,e)}sync(e){this.dom||(this.setDOM(document.createElement("div")),this.dom.className="cm-line",this.prevAttrs=this.attrs?null:void 0),void 0!==this.prevAttrs&&(updateAttrs(this.dom,this.prevAttrs,this.attrs),this.dom.classList.add("cm-line"),this.prevAttrs=void 0),super.sync(e);let t=this.dom.lastChild;if(!t||"BR"!=t.nodeName&&ContentView.get(t)instanceof WidgetView&&(!browser.ios||!this.children.some((e=>e instanceof TextView)))){let e=document.createElement("BR");e.cmIgnore=!0,this.dom.appendChild(e);}}measureTextSize(){if(0==this.children.length||this.length>20)return null;let e=0;for(let t of this.children){if(!(t instanceof TextView))return null;let i=clientRectsFor(t.dom);if(1!=i.length)return null;e+=i[0].width;}return {lineHeight:this.dom.getBoundingClientRect().height,charWidth:e/this.length}}coordsAt(e,t){return coordsInChildren(this,e,t)}match(e){return !1}get type(){return BlockType.Text}static find(e,t){for(let i=0,n=0;;i++){let o=e.children[i],s=n+o.length;if(s>=t){if(o instanceof LineView)return o;if(o.length)return null}n=s+o.breakAfter;}}}const none$1$1=[];class BlockWidgetView extends ContentView{constructor(e,t,i){super(),this.widget=e,this.length=t,this.type=i,this.breakAfter=0;}merge(e,t,i,n,o,s){return !(i&&(!(i instanceof BlockWidgetView&&this.widget.compare(i.widget))||e>0&&o<=0||t0;){if(this.textOff==this.text.length){let{value:t,lineBreak:i,done:n}=this.cursor.next(this.skip);if(this.skip=0,n)throw new Error("Ran out of text content when drawing inline views");if(i){this.posCovered()||this.getLine(),this.content.length?this.content[this.content.length-1].breakAfter=1:this.breakAtStart=1,this.curLine=null,e--;continue}this.text=t,this.textOff=0;}let n=Math.min(this.text.length-this.textOff,e,512);this.getLine().append(this.wrapMarks(new TextView(this.text.slice(this.textOff,this.textOff+n)),t),i),this.textOff+=n,e-=n,i=0;}}span(e,t,i,n){this.buildText(t-e,i,n),this.pos=t,this.openStart<0&&(this.openStart=n);}point(e,t,i,n,o){let s=t-e;if(i instanceof PointDecoration)if(i.block){let{type:e}=i;e!=BlockType.WidgetAfter||this.posCovered()||this.getLine(),this.addWidget(new BlockWidgetView(i.widget||new NullWidget("div"),s,e));}else {let e=this.wrapMarks(WidgetView.create(i.widget||new NullWidget("span"),s,i.startSide),n);this.getLine().append(e,o);}else this.doc.lineAt(this.pos).from==this.pos&&this.getLine().addLineDeco(i);s&&(this.textOff+s<=this.text.length?this.textOff+=s:(this.skip+=s-(this.text.length-this.textOff),this.text="",this.textOff=0),this.pos=t),this.openStart<0&&(this.openStart=o);}static build(e,t,i,n){let o=new ContentBuilder(e,t,i);return o.openEnd=RangeSet.spans(n,t,i,o),o.openStart<0&&(o.openStart=o.openEnd),o.finish(),o}}class NullWidget extends WidgetType{constructor(e){super(),this.tag=e;}eq(e){return e.tag==this.tag}toDOM(){return document.createElement(this.tag)}updateDOM(e){return e.nodeName.toLowerCase()==this.tag}}const none$4=[],clickAddsSelectionRange=Facet.define(),dragMovesSelection$1=Facet.define(),mouseSelectionStyle=Facet.define(),exceptionSink=Facet.define(),updateListener=Facet.define(),inputHandler=Facet.define();function logException(e,t,i){let n=e.facet(exceptionSink);n.length?n[0](t):window.onerror?window.onerror(String(t),i,void 0,void 0,t):i?console.error(i+":",t):console.error(t);}const editable=Facet.define({combine:e=>!e.length||e[0]});class PluginFieldProvider{constructor(e,t){this.field=e,this.get=t;}}class PluginField{from(e){return new PluginFieldProvider(this,e)}static define(){return new PluginField}}PluginField.decorations=PluginField.define(),PluginField.atomicRanges=PluginField.define(),PluginField.scrollMargins=PluginField.define();let nextPluginID=0;const viewPlugin=Facet.define();class ViewPlugin{constructor(e,t,i){this.id=e,this.create=t,this.fields=i,this.extension=viewPlugin.of(this);}static define(e,t){let{eventHandlers:i,provide:n,decorations:o}=t||{},s=[];if(n)for(let e of Array.isArray(n)?n:[n])s.push(e);return i&&s.push(domEventHandlers.from((e=>({plugin:e,handlers:i})))),o&&s.push(PluginField.decorations.from(o)),new ViewPlugin(nextPluginID++,e,s)}static fromClass(e,t){return ViewPlugin.define((t=>new e(t)),t)}}const domEventHandlers=PluginField.define();class PluginInstance{constructor(e){this.spec=e,this.mustUpdate=null,this.value=null;}takeField(e,t){for(let{field:i,get:n}of this.spec.fields)i==e&&t.push(n(this.value));}update(e){if(this.value){if(this.mustUpdate){let e=this.mustUpdate;if(this.mustUpdate=null,!this.value.update)return this;try{this.value.update(e);}catch(t){if(logException(e.state,t,"CodeMirror plugin crashed"),this.value.destroy)try{this.value.destroy();}catch(e){}return PluginInstance.dummy}}}else try{this.value=this.spec.create(e);}catch(t){return logException(e.state,t,"CodeMirror plugin crashed"),PluginInstance.dummy}return this}destroy(e){var t;if(null===(t=this.value)||void 0===t?void 0:t.destroy)try{this.value.destroy();}catch(t){logException(e.state,t,"CodeMirror plugin crashed");}}}PluginInstance.dummy=new PluginInstance(ViewPlugin.define((()=>({}))));const editorAttributes=Facet.define({combine:e=>e.reduce(((e,t)=>combineAttrs(t,e)),{})}),contentAttributes=Facet.define({combine:e=>e.reduce(((e,t)=>combineAttrs(t,e)),{})}),decorations=Facet.define(),styleModule=Facet.define();class ChangedRange{constructor(e,t,i,n){this.fromA=e,this.toA=t,this.fromB=i,this.toB=n;}join(e){return new ChangedRange(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 t=e.length,i=this;for(;t>0;t--){let n=e[t-1];if(!(n.fromA>i.toA)){if(n.toAh)break;o+=2;}if(!l)return i;new ChangedRange(l.fromA,l.toA,l.fromB,l.toB).addToSet(i),s=l.toA,r=l.toB;}}}class ViewUpdate{constructor(e,t,i=none$4){this.view=e,this.state=t,this.transactions=i,this.flags=0,this.startState=e.state,this.changes=ChangeSet.empty(this.startState.doc.length);for(let e of i)this.changes=this.changes.compose(e.changes);let n=[];this.changes.iterChangedRanges(((e,t,i,o)=>n.push(new ChangedRange(e,t,i,o)))),this.changedRanges=n;let o=e.hasFocus;o!=e.inputState.notifiedFocused&&(e.inputState.notifiedFocused=o,this.flags|=1),this.docChanged&&(this.flags|=2);}get viewportChanged(){return (4&this.flags)>0}get heightChanged(){return (2&this.flags)>0}get geometryChanged(){return this.docChanged||(18&this.flags)>0}get focusChanged(){return (1&this.flags)>0}get docChanged(){return this.transactions.some((e=>e.docChanged))}get selectionSet(){return this.transactions.some((e=>e.selection))}get empty(){return 0==this.flags&&0==this.transactions.length}}class DocView extends ContentView{constructor(e){super(),this.view=e,this.compositionDeco=Decoration.none,this.decorations=[],this.minWidth=0,this.minWidthFrom=0,this.minWidthTo=0,this.impreciseAnchor=null,this.impreciseHead=null,this.setDOM(e.contentDOM),this.children=[new LineView],this.children[0].setParent(this),this.updateInner([new ChangedRange(0,0,0,e.state.doc.length)],this.updateDeco(),0);}get root(){return this.view.root}get editorView(){return this.view}get length(){return this.view.state.doc.length}update(e){let t=e.changedRanges;this.minWidth>0&&t.length&&(t.every((({fromA:e,toA:t})=>tthis.minWidthTo))?(this.minWidthFrom=e.changes.mapPos(this.minWidthFrom,1),this.minWidthTo=e.changes.mapPos(this.minWidthTo,1)):this.minWidth=0),this.view.inputState.composing<0?this.compositionDeco=Decoration.none:e.transactions.length&&(this.compositionDeco=computeCompositionDeco(this.view,e.changes));let i=(browser.ie||browser.chrome)&&!this.compositionDeco.size&&e&&e.state.doc.lines!=e.startState.doc.lines,n=this.decorations,o=this.updateDeco(),s=findChangedDeco(n,o,e.changes);t=ChangedRange.extendWithRanges(t,s);let r=e.transactions.some((e=>"pointerselection"==e.annotation(Transaction.userEvent)));return 0==this.dirty&&0==t.length&&!(12&e.flags)&&e.state.selection.main.from>=this.view.viewport.from&&e.state.selection.main.to<=this.view.viewport.to?(this.updateSelection(i,r),!1):(this.updateInner(t,o,e.startState.doc.length,i,r),!0)}updateInner(e,t,i,n=!1,o=!1){this.updateChildren(e,t,i);let{observer:s}=this.view;s.ignore((()=>{this.dom.style.height=this.view.viewState.domHeight+"px",this.dom.style.minWidth=this.minWidth?this.minWidth+"px":"";let e=browser.chrome||browser.ios?{node:s.selectionRange.focusNode,written:!1}:void 0;this.sync(e),this.dirty=0,e&&(e.written||s.selectionRange.focusNode!=e.node)&&(n=!0),this.updateSelection(n,o),this.dom.style.height="";}));}updateChildren(e,t,i){let n=this.childCursor(i);for(let i=e.length-1;;i--){let o=i>=0?e[i]:null;if(!o)break;let{fromA:s,toA:r,fromB:l,toB:a}=o,{content:h,breakAtStart:c,openStart:d,openEnd:u}=ContentBuilder.build(this.view.state.doc,l,a,t),{i:f,off:p}=n.findPos(r,1),{i:g,off:m}=n.findPos(s,-1);this.replaceRange(g,m,f,p,h,c,d,u);}}replaceRange(e,t,i,n,o,s,r,l){let a=this.children[e],h=o.length?o[o.length-1]:null,c=h?h.breakAfter:s;if(e==i&&!s&&!c&&o.length<2&&a.merge(t,n,o.length?h:null,0==t,r,l))return;let d=this.children[i];for(n0&&(!s&&o.length&&a.merge(t,a.length,o[0],!1,r,0)?a.breakAfter=o.shift().breakAfter:(tn.node.insertBefore(t,n.node.childNodes[n.offset]||null))),n=o=new DOMPos(t,0),e=!0;}let s=this.view.observer.selectionRange;(e||!s.focusNode||browser.gecko&&i.empty&&nextToUneditable(s.focusNode,s.focusOffset)||!isEquivalentPosition(n.node,n.offset,s.anchorNode,s.anchorOffset)||!isEquivalentPosition(o.node,o.offset,s.focusNode,s.focusOffset))&&(this.view.observer.ignore((()=>{let e=getSelection(this.root);if(i.empty){if(browser.gecko){let e=nextToUneditable(n.node,n.offset);if(e&&3!=e){let t=nearbyTextNode(n.node,n.offset,1==e?1:-1);t&&(n=new DOMPos(t,1==e?0:t.nodeValue.length));}}e.collapse(n.node,n.offset),null!=i.bidiLevel&&null!=s.cursorBidiLevel&&(s.cursorBidiLevel=i.bidiLevel);}else if(e.extend)e.collapse(n.node,n.offset),e.extend(o.node,o.offset);else {let t=document.createRange();i.anchor>i.head&&([n,o]=[o,n]),t.setEnd(o.node,o.offset),t.setStart(n.node,n.offset),e.removeAllRanges(),e.addRange(t);}})),this.view.observer.setSelectionRange(n,o)),this.impreciseAnchor=n.precise?null:new DOMPos(s.anchorNode,s.anchorOffset),this.impreciseHead=o.precise?null:new DOMPos(s.focusNode,s.focusOffset);}enforceCursorAssoc(){let e=this.view.state.selection.main,t=getSelection(this.root);if(!e.empty||!e.assoc||!t.modify)return;let i=LineView.find(this,e.head);if(!i)return;let n=i.posAtStart;if(e.head==n||e.head==n+i.length)return;let o=this.coordsAt(e.head,-1),s=this.coordsAt(e.head,1);if(!o||!s||o.bottom>s.top)return;let r=this.domAtPos(e.head+e.assoc);t.collapse(r.node,r.offset),t.modify("move",e.assoc<0?"forward":"backward","lineboundary");}mayControlSelection(){return this.view.state.facet(editable)?this.root.activeElement==this.dom:hasSelection(this.dom,this.view.observer.selectionRange)}nearest(e){for(let t=e;t;){let e=ContentView.get(t);if(e&&e.rootView==this)return e;t=t.parentNode;}return null}posFromDOM(e,t){let i=this.nearest(e);if(!i)throw new RangeError("Trying to find position for a DOM position outside of the document");return i.localPosFromDOM(e,t)+i.posAtStart}domAtPos(e){let{i:t,off:i}=this.childCursor().findPos(e,-1);for(;ts||e==s&&(o.type==BlockType.Text||!n||this.children[n-1].breakAfter))return o.coordsAt(e-s,t);i=s;}}measureVisibleLineHeights(){let e=[],{from:t,to:i}=this.view.viewState.viewport,n=Math.max(this.view.scrollDOM.clientWidth,this.minWidth)+1;for(let o=0,s=0;si)break;if(o>=t){e.push(r.dom.getBoundingClientRect().height);let t=r.dom.scrollWidth;t>n&&(this.minWidth=n=t,this.minWidthFrom=o,this.minWidthTo=l);}o=l+r.breakAfter;}return e}measureTextSize(){for(let e of this.children)if(e instanceof LineView){let t=e.measureTextSize();if(t)return t}let e,t,i=document.createElement("div");return i.className="cm-line",i.textContent="abc def ghi jkl mno pqr stu",this.view.observer.ignore((()=>{this.dom.appendChild(i);let n=clientRectsFor(i.firstChild)[0];e=i.getBoundingClientRect().height,t=n?n.width/27:7,i.remove();})),{lineHeight:e,charWidth:t}}childCursor(e=this.length){let t=this.children.length;return t&&(e-=this.children[--t].length),new ChildCursor(this.children,e,t)}computeBlockGapDeco(){let e=[],t=this.view.viewState;for(let i=0,n=0;;n++){let o=n==t.viewports.length?null:t.viewports[n],s=o?o.from-1:this.length;if(s>i){let n=t.lineAt(s,0).bottom-t.lineAt(i,0).top;e.push(Decoration.replace({widget:new BlockGapWidget(n),block:!0,inclusive:!0}).range(i,s));}if(!o)break;i=o.to+1;}return Decoration.set(e)}updateDeco(){return this.decorations=[...this.view.pluginField(PluginField.decorations),...this.view.state.facet(decorations),this.compositionDeco,this.computeBlockGapDeco(),this.view.viewState.lineGapDeco]}scrollPosIntoView(e,t){let i=this.coordsAt(e,t);if(!i)return;let n=0,o=0,s=0,r=0;for(let e of this.view.pluginField(PluginField.scrollMargins))if(e){let{left:t,right:i,top:l,bottom:a}=e;null!=t&&(n=Math.max(n,t)),null!=i&&(o=Math.max(o,i)),null!=l&&(s=Math.max(s,l)),null!=a&&(r=Math.max(r,a));}scrollRectIntoView(this.dom,{left:i.left-n,top:i.top-s,right:i.right+o,bottom:i.bottom+r});}}function betweenUneditable(e){return 1==e.node.nodeType&&e.node.firstChild&&(0==e.offset||"false"==e.node.childNodes[e.offset-1].contentEditable)&&(e.offset==e.node.childNodes.length||"false"==e.node.childNodes[e.offset].contentEditable)}class BlockGapWidget extends WidgetType{constructor(e){super(),this.height=e;}toDOM(){let e=document.createElement("div");return this.updateDOM(e),e}eq(e){return e.height==this.height}updateDOM(e){return e.style.height=this.height+"px",!0}get estimatedHeight(){return this.height}}function computeCompositionDeco(e,t){let i=e.observer.selectionRange,n=i.focusNode&&nearbyTextNode(i.focusNode,i.focusOffset,0);if(!n)return Decoration.none;let o,s,r=e.docView.nearest(n),l=n;if(r instanceof InlineView){for(;r.parent instanceof InlineView;)r=r.parent;o=r.posAtStart,s=o+r.length,l=r.dom;}else {if(!(r instanceof LineView))return Decoration.none;{for(;l.parentNode!=r.dom;)l=l.parentNode;let e=l.previousSibling;for(;e&&!ContentView.get(e);)e=e.previousSibling;o=s=e?ContentView.get(e).posAtEnd:r.posAtStart;}}let a=t.mapPos(o,1),h=Math.max(a,t.mapPos(s,-1)),c=n.nodeValue,{state:d}=e;if(h-a0&&i<=0)t=maxOffset(e=e.childNodes[t-1]);else {if(!(1==e.nodeType&&t=0))return null;e=e.childNodes[t],t=0;}}}function nextToUneditable(e,t){return 1!=e.nodeType?0:(t&&"false"==e.childNodes[t-1].contentEditable?1:0)|(t=t){if(r.level==i)return s;(o<0||(0!=n?n<0?r.fromt:e[o].level>r.level))&&(o=s);}}if(o<0)throw new RangeError("Index out of range");return o}}const types$6=[];function computeOrder(e,t){let i=e.length,n=t==LTR?1:2,o=t==LTR?2:1;if(!e||1==n&&!BidiRE.test(e))return trivialOrder(i);for(let t=0,o=n,s=n;t=0;e-=3)if(BracketStack[e+1]==-s){let t=BracketStack[e+2],i=2&t?n:4&t?1&t?o:n:0;i&&(types$6[l]=types$6[BracketStack[e]]=i),a=e;break}}else {if(189==BracketStack.length)break;BracketStack[a++]=l,BracketStack[a++]=t,BracketStack[a++]=h;}else if(2==(r=types$6[l])||1==r){let e=r==n;h=e?0:1;for(let t=a-3;t>=0;t-=3){let i=BracketStack[t+2];if(2&i)break;if(e)BracketStack[t+2]|=2;else {if(4&i)break;BracketStack[t+2]|=4;}}}for(let e=0;et;){let e=i,n=2!=types$6[--i];for(;i>t&&n==(2!=types$6[i-1]);)i--;s.push(new BidiSpan(i,e,n?2:1));}else s.push(new BidiSpan(t,e,0));}else for(let e=0;e0;){let e=findClusterBreak(o.text,r,!1);if(n(o.text.slice(e,r))!=a)break;r=e;}for(;le?t.left-e:Math.max(0,e-t.right)}function getdy(e,t){return t.top>e?t.top-e:Math.max(0,e-t.bottom)}function yOverlap(e,t){return e.topt.top+1}function upTop(e,t){return te.bottom?{top:e.top,left:e.left,right:e.right,bottom:t}:e}function domPosAtCoords(e,t,i){let n,o,s,r,l,a,h,c;for(let d=e.firstChild;d;d=d.nextSibling){let e=clientRectsFor(d);for(let u=0;ug||r==g&&s>p)&&(n=d,o=f,s=p,r=g),0==p?i>f.bottom&&(!h||h.bottomf.top)&&(a=d,c=f):h&&yOverlap(h,f)?h=upBot(h,f.bottom):c&&yOverlap(c,f)&&(c=upTop(c,f.top));}}if(h&&h.bottom>=i?(n=l,o=h):c&&c.top<=i&&(n=a,o=c),!n)return {node:e,offset:0};let d=Math.max(o.left,Math.min(o.right,t));return 3==n.nodeType?domPosInText(n,d,i):s||"true"!=n.contentEditable?{node:e,offset:Array.prototype.indexOf.call(e.childNodes,n)+(t>=(o.left+o.right)/2?1:0)}:domPosAtCoords(n,d,i)}function domPosInText(e,t,i){let n=e.nodeValue.length,o=-1,s=1e9,r=0;for(let l=0;li?h.top-i:i-h.bottom)-1;if(h.left-1<=t&&h.right+1>=t&&c=(h.left+h.right)/2,n=i;if(browser.chrome||browser.gecko){textRange(e,l).getBoundingClientRect().left==h.right&&(n=!i);}if(c<=0)return {node:e,offset:l+(n?1:0)};o=l+(n?1:0),s=c;}}}return {node:e,offset:o>-1?o:r>0?e.nodeValue.length:0}}function posAtCoords(e,{x:t,y:i},n=-1){let o,s=e.contentDOM.getBoundingClientRect(),r=e.defaultLineHeight/2;for(let t=!1;;){if(o=e.blockAtHeight(i,s.top),o.top>i||o.bottomi?-1:1,i=Math.min(o.bottom-r,Math.max(o.top+r,i)),t)return null;t=!0;}if(o.type==BlockType.Text)break;i=n>0?o.bottom+r:o.top-r;}let l=o.from;if(le.viewport.to)return e.viewport.to==e.state.doc.length?e.state.doc.length:null;t=Math.max(s.left+1,Math.min(s.right-1,t));let a,h=e.root,c=h.elementFromPoint(t,i),d=-1;if(c&&e.contentDOM.contains(c)&&!(e.docView.nearest(c)instanceof WidgetView))if(h.caretPositionFromPoint){let e=h.caretPositionFromPoint(t,i);e&&({offsetNode:a,offset:d}=e);}else if(h.caretRangeFromPoint){let e=h.caretRangeFromPoint(t,i);e&&(({startContainer:a,startOffset:d}=e),browser.safari&&isSuspiciousCaretResult(a,d,t)&&(a=void 0));}if(!a||!e.docView.dom.contains(a)){let n=LineView.find(e.docView,l);({node:a,offset:d}=domPosAtCoords(n.dom,t,i));}return e.docView.posFromDOM(a,d)}function isSuspiciousCaretResult(e,t,i){let n;if(3!=e.nodeType||t!=(n=e.nodeValue.length))return !1;for(let t=e.nextSibling;t;t=t.nextSibling)if(1!=t.nodeType||"BR"!=t.nodeName)return !1;return textRange(e,n-1,n).getBoundingClientRect().left>i}function moveToLineBoundary(e,t,i,n){let o=e.state.doc.lineAt(t.head),s=n&&e.lineWrapping?e.coordsAtPos(t.assoc<0&&t.head>o.from?t.head-1:t.head):null;if(s){let t=e.dom.getBoundingClientRect(),n=e.posAtCoords({x:i==(e.textDirection==Direction.LTR)?t.right-1:t.left+1,y:(s.top+s.bottom)/2});if(null!=n)return EditorSelection.cursor(n,i?-1:1)}let r=LineView.find(e.docView,t.head),l=r?i?r.posAtEnd:r.posAtStart:i?o.to:o.from;return EditorSelection.cursor(l,i?-1:1)}function moveByChar(e,t,i,n){let o=e.state.doc.lineAt(t.head),s=e.bidiSpans(o);for(let r=t,l=null;;){let t=moveVisually(o,s,e.textDirection,r,i),a=movedOver;if(!t){if(o.number==(i?e.state.doc.lines:1))return r;a="\n",o=e.state.doc.line(o.number+(i?1:-1)),s=e.bidiSpans(o),t=EditorSelection.cursor(i?o.from:o.to);}if(l){if(!l(a))return r}else {if(!n)return t;l=n(a);}r=t;}}function byGroup(e,t,i){let n=e.state.charCategorizer(t),o=n(i);return e=>{let t=n(e);return o==CharCategory.Space&&(o=t),o==t}}function moveVertically(e,t,i,n){var o;let s=t.head,r=i?1:-1;if(s==(i?e.state.doc.length:0))return EditorSelection.cursor(s);let l=e.coordsAtPos(s);if(l){let i=e.dom.getBoundingClientRect(),a=null!==(o=t.goalColumn)&&void 0!==o?o:l.left-i.left,h=i.left+a,c=null!=n?n:e.defaultLineHeight>>1;for(let t=r<0?l.top:l.bottom,i=0;i<50;i+=10){let n=posAtCoords(e,{x:h,y:t+(c+i)*r},r);if(null==n)break;if(n!=s)return EditorSelection.cursor(n,void 0,void 0,a)}}let{doc:a}=e.state,h=a.lineAt(s),c=e.state.tabSize,d=t.goalColumn,u=0;if(null==d){for(const e=a.iterRange(h.from,s);!e.next().done;)u=countColumn(e.value,u,c);d=u*e.defaultCharacterWidth;}else u=Math.round(d/e.defaultCharacterWidth);if(r<0&&0==h.from)return EditorSelection.cursor(0);if(r>0&&h.to==a.length)return EditorSelection.cursor(h.to);let f=a.line(h.number+r),p=f.from,g=0;for(const e=a.iterRange(f.from,f.to);g>=u&&!e.next().done;){const{offset:t,leftOver:i}=findColumn(e.value,g,u,c);g=u-i,p+=t;}return EditorSelection.cursor(p,void 0,void 0,d)}function skipAtoms(e,t,i){let n=e.pluginField(PluginField.atomicRanges);for(;;){let e=!1;for(let o of n)o.between(i.from-1,i.from+1,((n,o,s)=>{i.from>n&&i.fromi.from?EditorSelection.cursor(n,1):EditorSelection.cursor(o,-1),e=!0);}));if(!e)return i}}class InputState{constructor(e){this.lastKeyCode=0,this.lastKeyTime=0,this.pendingIOSKey=null,this.lastSelectionOrigin=null,this.lastSelectionTime=0,this.lastEscPress=0,this.lastContextMenu=0,this.scrollHandlers=[],this.registeredEvents=[],this.customHandlers=[],this.composing=-1,this.compositionEndedAt=0,this.rapidCompositionStart=!1,this.mouseSelection=null;for(let t in handlers){let i=handlers[t];e.contentDOM.addEventListener(t,(n=>{"keydown"==t&&this.keydown(e,n)||eventBelongsToEditor(e,n)&&!this.ignoreDuringComposition(n)&&(this.mustFlushObserver(n)&&e.observer.forceFlush(),this.runCustomHandlers(t,e,n)?n.preventDefault():i(e,n));})),this.registeredEvents.push(t);}this.notifiedFocused=e.hasFocus,this.ensureHandlers(e),browser.safari&&e.contentDOM.addEventListener("input",(()=>null));}setSelectionOrigin(e){this.lastSelectionOrigin=e,this.lastSelectionTime=Date.now();}ensureHandlers(e){let t=this.customHandlers=e.pluginField(domEventHandlers);for(let i of t)for(let t in i.handlers)this.registeredEvents.indexOf(t)<0&&"scroll"!=t&&(this.registeredEvents.push(t),e.contentDOM.addEventListener(t,(i=>{eventBelongsToEditor(e,i)&&this.runCustomHandlers(t,e,i)&&i.preventDefault();})));}runCustomHandlers(e,t,i){for(let n of this.customHandlers){let o=n.handlers[e],s=!1;if(o){try{s=o.call(n.plugin,i,t);}catch(e){logException(t.state,e);}if(s||i.defaultPrevented)return browser.android&&"keydown"==e&&13==i.keyCode&&t.observer.flushSoon(),!0}}return !1}runScrollHandlers(e,t){for(let i of this.customHandlers){let n=i.handlers.scroll;if(n)try{n.call(i.plugin,t,e);}catch(t){logException(e.state,t);}}}keydown(e,t){return this.lastKeyCode=t.keyCode,this.lastKeyTime=Date.now(),!!this.screenKeyEvent(e,t)||!(!browser.ios||13!=t.keyCode&&8!=t.keyCode||t.ctrlKey||t.altKey||t.metaKey||t.synthetic)&&(this.pendingIOSKey=13==t.keyCode?"enter":"backspace",setTimeout((()=>this.flushIOSKey(e)),250),!0)}flushIOSKey(e){if(!this.pendingIOSKey)return !1;let t=e.contentDOM,i=this.pendingIOSKey;return this.pendingIOSKey=null,"enter"==i?dispatchKey(t,"Enter",13):dispatchKey(t,"Backspace",8)}ignoreDuringComposition(e){return !!/^key/.test(e.type)&&(this.composing>0||!!(browser.safari&&Date.now()-this.compositionEndedAt<500)&&(this.compositionEndedAt=0,!0))}screenKeyEvent(e,t){let i=9==t.keyCode&&Date.now()this.select(this.lastEvent)),20);}}function addsSelectionRange(e,t){let i=e.state.facet(clickAddsSelectionRange);return i.length?i[0](t):browser.mac?t.metaKey:t.ctrlKey}function dragMovesSelection(e,t){let i=e.state.facet(dragMovesSelection$1);return i.length?i[0](t):browser.mac?!t.altKey:!t.ctrlKey}function isInPrimarySelection(e,t){let{main:i}=e.state.selection;if(i.empty)return !1;let n=getSelection(e.root);if(0==n.rangeCount)return !0;let o=n.getRangeAt(0).getClientRects();for(let e=0;e=t.clientX&&i.top<=t.clientY&&i.bottom>=t.clientY)return !0}return !1}function eventBelongsToEditor(e,t){if(!t.bubbles)return !0;if(t.defaultPrevented)return !1;for(let i,n=t.target;n!=e.contentDOM;n=n.parentNode)if(!n||11==n.nodeType||(i=ContentView.get(n))&&i.ignoreEvent(t))return !1;return !0}const handlers=Object.create(null),brokenClipboardAPI=browser.ie&&browser.ie_version<15||browser.ios&&browser.webkit_version<604;function capturePaste(e){let t=e.dom.parentNode;if(!t)return;let i=t.appendChild(document.createElement("textarea"));i.style.cssText="position: fixed; left: -10000px; top: 10px",i.focus(),setTimeout((()=>{e.focus(),i.remove(),doPaste(e,i.value);}),50);}function doPaste(e,t){let i,{state:n}=e,o=1,s=n.toText(t),r=s.lines==n.selection.ranges.length;if(lastLinewiseCopy&&n.selection.ranges.every((e=>e.empty))&&lastLinewiseCopy==s.toString()){let e=-1;i=n.changeByRange((i=>{let l=n.doc.lineAt(i.from);if(l.from==e)return {range:i};e=l.from;let a=n.toText((r?s.line(o++).text:t)+n.lineBreak);return {changes:{from:l.from,insert:a},range:EditorSelection.cursor(i.from+a.length)}}));}else i=r?n.changeByRange((e=>{let t=s.line(o++);return {changes:{from:e.from,to:e.to,insert:t.text},range:EditorSelection.cursor(e.from+t.length)}})):n.replaceSelection(s);e.dispatch(i,{annotations:Transaction.userEvent.of("paste"),scrollIntoView:!0});}handlers.keydown=(e,t)=>{e.inputState.setSelectionOrigin("keyboardselection");};let lastTouch=0;function rangeForClick(e,t,i,n){if(1==n)return EditorSelection.cursor(t,i);if(2==n)return groupAt(e.state,t,i);{let i=LineView.find(e.docView,t),n=e.state.doc.lineAt(i?i.posAtEnd:t),o=i?i.posAtStart:n.from,s=i?i.posAtEnd:n.to;return s{lastTouch=Date.now(),e.inputState.setSelectionOrigin("pointerselection");},handlers.touchmove=e=>{e.inputState.setSelectionOrigin("pointerselection");},handlers.mousedown=(e,t)=>{if(e.observer.flush(),lastTouch>Date.now()-2e3)return;let i=null;for(let n of e.state.facet(mouseSelectionStyle))if(i=n(e,t),i)break;i||0!=t.button||(i=basicMouseSelection(e,t)),i&&(e.root.activeElement!=e.contentDOM&&e.observer.ignore((()=>focusPreventScroll(e.contentDOM))),e.inputState.startMouseSelection(e,t,i));};let insideY=(e,t)=>e>=t.top&&e<=t.bottom,inside=(e,t,i)=>insideY(t,i)&&e>=i.left&&e<=i.right;function findPositionSide(e,t,i,n){let o=LineView.find(e.docView,t);if(!o)return 1;let s=t-o.posAtStart;if(0==s)return 1;if(s==o.length)return -1;let r=o.coordsAt(s,-1);if(r&&inside(i,n,r))return -1;let l=o.coordsAt(s,1);return l&&inside(i,n,l)?1:r&&insideY(n,r)?-1:1}function queryPos(e,t){let i=e.posAtCoords({x:t.clientX,y:t.clientY});return null==i?null:{pos:i,bias:findPositionSide(e,i,t.clientX,t.clientY)}}const BadMouseDetail=browser.ie&&browser.ie_version<=11;let lastMouseDown=null,lastMouseDownCount=0,lastMouseDownTime=0;function getClickType(e){if(!BadMouseDetail)return e.detail;let t=lastMouseDown,i=lastMouseDownTime;return lastMouseDown=e,lastMouseDownTime=Date.now(),lastMouseDownCount=!t||i>Date.now()-400&&Math.abs(t.clientX-e.clientX)<2&&Math.abs(t.clientY-e.clientY)<2?(lastMouseDownCount+1)%3:1}function basicMouseSelection(e,t){let i=queryPos(e,t),n=getClickType(t),o=e.state.selection,s=i,r=t;return {update(e){e.changes&&(i&&(i.pos=e.changes.mapPos(i.pos)),o=o.map(e.changes),r=null);},get(t,l,a){let h;if(r&&t.clientX==r.clientX&&t.clientY==r.clientY?h=s:(h=s=queryPos(e,t),r=t),!h||!i)return o;let c=rangeForClick(e,h.pos,h.bias,n);if(i.pos!=h.pos&&!l){let t=rangeForClick(e,i.pos,i.bias,n),o=Math.min(t.from,c.from),s=Math.max(t.to,c.to);c=o{n.remove(),e.focus();}),50);}function copiedRange(e){let t=[],i=[],n=!1;for(let n of e.selection.ranges)n.empty||(t.push(e.sliceDoc(n.from,n.to)),i.push(n));if(!t.length){let o=-1;for(let{from:n}of e.selection.ranges){let s=e.doc.lineAt(n);s.number>o&&(t.push(s.text),i.push({from:s.from,to:Math.min(e.doc.length,s.to+1)})),o=s.number;}n=!0;}return {text:t.join(e.lineBreak),ranges:i,linewise:n}}handlers.dragstart=(e,t)=>{let{selection:{main:i}}=e.state,{mouseSelection:n}=e.inputState;n&&(n.dragging=i),t.dataTransfer&&(t.dataTransfer.setData("Text",e.state.sliceDoc(i.from,i.to)),t.dataTransfer.effectAllowed="copyMove");},handlers.drop=(e,t)=>{if(!t.dataTransfer||!e.state.facet(editable))return;let i=t.dataTransfer.files;if(i&&i.length){t.preventDefault();let n=Array(i.length),o=0,s=()=>{++o==i.length&&dropText(e,t,n.filter((e=>null!=e)).join(e.state.lineBreak),!1);};for(let e=0;e{/[\x00-\x08\x0e-\x1f]{2}/.test(t.result)||(n[e]=t.result),s();},t.readAsText(i[e]);}}else dropText(e,t,t.dataTransfer.getData("Text"),!0);},handlers.paste=(e,t)=>{if(!e.state.facet(editable))return;e.observer.flush();let i=brokenClipboardAPI?null:t.clipboardData,n=i&&i.getData("text/plain");n?(doPaste(e,n),t.preventDefault()):capturePaste(e);};let lastLinewiseCopy=null;function forceClearComposition(e,t){if(e.docView.compositionDeco.size){e.inputState.rapidCompositionStart=t;try{e.update([]);}finally{e.inputState.rapidCompositionStart=!1;}}}handlers.copy=handlers.cut=(e,t)=>{let{text:i,ranges:n,linewise:o}=copiedRange(e.state);if(!i)return;lastLinewiseCopy=o?i:null;let s=brokenClipboardAPI?null:t.clipboardData;s?(t.preventDefault(),s.clearData(),s.setData("text/plain",i)):captureCopy(e,i),"cut"==t.type&&e.state.facet(editable)&&e.dispatch({changes:n,scrollIntoView:!0,annotations:Transaction.userEvent.of("cut")});},handlers.focus=handlers.blur=e=>{setTimeout((()=>{e.hasFocus!=e.inputState.notifiedFocused&&e.update([]);}),10);},handlers.beforeprint=e=>{e.viewState.printing=!0,e.requestMeasure(),setTimeout((()=>{e.viewState.printing=!1,e.requestMeasure();}),2e3);},handlers.compositionstart=handlers.compositionupdate=e=>{e.inputState.composing<0&&(e.docView.compositionDeco.size&&(e.observer.flush(),forceClearComposition(e,!0)),e.inputState.composing=0);},handlers.compositionend=e=>{e.inputState.composing=-1,e.inputState.compositionEndedAt=Date.now(),setTimeout((()=>{e.inputState.composing<0&&forceClearComposition(e,!1);}),50);},handlers.contextmenu=e=>{e.inputState.lastContextMenu=Date.now();};const wrappingWhiteSpace=["pre-wrap","normal","pre-line"];class HeightOracle{constructor(){this.doc=Text.empty,this.lineWrapping=!1,this.direction=Direction.LTR,this.heightSamples={},this.lineHeight=14,this.charWidth=7,this.lineLength=30,this.heightChanged=!1;}heightForGap(e,t){let i=this.doc.lineAt(t).number-this.doc.lineAt(e).number+1;return this.lineWrapping&&(i+=Math.ceil((t-e-i*this.lineLength*.5)/this.lineLength)),this.lineHeight*i}heightForLine(e){if(!this.lineWrapping)return this.lineHeight;return (1+Math.max(0,Math.ceil((e-this.lineLength)/(this.lineLength-5))))*this.lineHeight}setDoc(e){return this.doc=e,this}mustRefresh(e,t,i){let n=!1;for(let t=0;t-1!=this.lineWrapping||this.direction!=i}refresh(e,t,i,n,o,s){let r=wrappingWhiteSpace.indexOf(e)>-1,l=Math.round(i)!=Math.round(this.lineHeight)||this.lineWrapping!=r||this.direction!=t;if(this.lineWrapping=r,this.direction=t,this.lineHeight=i,this.charWidth=n,this.lineLength=o,l){this.heightSamples={};for(let e=0;e0}set outdated(e){this.flags=(e?2:0)|-3&this.flags;}setHeight(e,t){this.height!=t&&(Math.abs(this.height-t)>1e-4&&(e.heightChanged=!0),this.height=t);}replace(e,t,i){return HeightMap.of(i)}decomposeLeft(e,t){t.push(this);}decomposeRight(e,t){t.push(this);}applyChanges(e,t,i,n){let o=this;for(let s=n.length-1;s>=0;s--){let{fromA:r,toA:l,fromB:a,toB:h}=n[s],c=o.lineAt(r,QueryType.ByPosNoHeight,t,0,0),d=c.to>=l?c:o.lineAt(l,QueryType.ByPosNoHeight,t,0,0);for(h+=d.to-l,l=d.to;s>0&&c.from<=n[s-1].toA;)r=n[s-1].fromA,a=n[s-1].fromB,s--,r2*o){let o=e[t-1];o.break?e.splice(--t,1,o.left,null,o.right):e.splice(--t,1,o.left,o.right),i+=1+o.break,n-=o.size;}else {if(!(o>2*n))break;{let t=e[i];t.break?e.splice(i,1,t.left,null,t.right):e.splice(i,1,t.left,t.right),i+=2+t.break,o-=t.size;}}else if(n0){let e=i[i.length-1];e instanceof HeightMapGap?i[i.length-1]=new HeightMapGap(e.length+n):i.push(null,new HeightMapGap(n-1));}if(e>0){let t=i[0];t instanceof HeightMapGap?i[0]=new HeightMapGap(e+t.length):i.unshift(new HeightMapGap(e-1),null);}return HeightMap.of(i)}decomposeLeft(e,t){t.push(new HeightMapGap(e-1),null);}decomposeRight(e,t){t.push(null,new HeightMapGap(this.length-e-1));}updateHeight(e,t=0,i=!1,n){let o=t+this.length;if(n&&n.from<=t+this.length&&n.more){let i=[],s=Math.max(t,n.from);for(n.from>t&&i.push(new HeightMapGap(n.from-t-1).updateHeight(e,t));s<=o&&n.more;){let t=e.doc.lineAt(s).length;i.length&&i.push(null);let o=new HeightMapText(t,n.heights[n.index++]);o.outdated=!1,i.push(o),s+=t+1;}return s<=o&&i.push(null,new HeightMapGap(o-s).updateHeight(e,s)),e.heightChanged=!0,HeightMap.of(i)}return (i||this.outdated)&&(this.setHeight(e,e.heightForGap(t,t+this.length)),this.outdated=!1),this}toString(){return `gap(${this.length})`}}class HeightMapBranch extends HeightMap{constructor(e,t,i){super(e.length+t+i.length,e.height+i.height,t|(e.outdated||i.outdated?2:0)),this.left=e,this.right=i,this.size=e.size+i.size;}get break(){return 1&this.flags}blockAt(e,t,i,n){let o=i+this.left.height;return er))return a;let h=t==QueryType.ByPosNoHeight?QueryType.ByPosNoHeight:QueryType.ByPos;return l?a.join(this.right.lineAt(r,h,i,s,r)):this.left.lineAt(r,h,i,n,o).join(a)}forEachLine(e,t,i,n,o,s){let r=n+this.left.height,l=o+this.left.length+this.break;if(this.break)e=l&&this.right.forEachLine(e,t,i,r,l,s);else {let a=this.lineAt(l,QueryType.ByPos,i,n,o);e=e&&a.from<=t&&s(a),t>a.to&&this.right.forEachLine(a.to+1,t,i,r,l,s);}}replace(e,t,i){let n=this.left.length+this.break;if(tthis.left.length)return this.balanced(this.left,this.right.replace(e-n,t-n,i));let o=[];e>0&&this.decomposeLeft(e,o);let s=o.length;for(let e of i)o.push(e);if(e>0&&mergeGaps(o,s-1),t=i&&t.push(null)),e>i&&this.right.decomposeLeft(e-i,t);}decomposeRight(e,t){let i=this.left.length,n=i+this.break;if(e>=n)return this.right.decomposeRight(e-n,t);e2*t.size||t.size>2*e.size?HeightMap.of(this.break?[e,null,t]:[e,t]):(this.left=e,this.right=t,this.height=e.height+t.height,this.outdated=e.outdated||t.outdated,this.size=e.size+t.size,this.length=e.length+this.break+t.length,this)}updateHeight(e,t=0,i=!1,n){let{left:o,right:s}=this,r=t+o.length+this.break,l=null;return n&&n.from<=t+o.length&&n.more?l=o=o.updateHeight(e,t,i,n):o.updateHeight(e,t,i),n&&n.from<=r+s.length&&n.more?l=s=s.updateHeight(e,r,i,n):s.updateHeight(e,r,i),l?this.balanced(o,s):(this.height=this.left.height+this.right.height,this.outdated=!1,this)}toString(){return this.left+(this.break?" ":"-")+this.right}}function mergeGaps(e,t){let i,n;null==e[t]&&(i=e[t-1])instanceof HeightMapGap&&(n=e[t+1])instanceof HeightMapGap&&e.splice(t-1,3,new HeightMapGap(i.length+1+n.length));}class NodeBuilder{constructor(e,t){this.pos=e,this.oracle=t,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,t){if(this.lineStart>-1){let e=Math.min(t,this.lineEnd),i=this.nodes[this.nodes.length-1];i instanceof HeightMapText?i.length+=e-this.pos:(e>this.pos||!this.isCovered)&&this.nodes.push(new HeightMapText(e-this.pos,-1)),this.writtenTo=e,t>e&&(this.nodes.push(null),this.writtenTo++,this.lineStart=-1);}this.pos=t;}point(e,t,i){if(e=5)&&this.addLineDeco(n,o);}else t>e&&this.span(e,t);this.lineEnd>-1&&this.lineEnd-1)return;let{from:e,to:t}=this.oracle.doc.lineAt(this.pos);this.lineStart=e,this.lineEnd=t,this.writtenToe&&this.nodes.push(new HeightMapText(this.pos-e,-1)),this.writtenTo=this.pos;}blankContent(e,t){let i=new HeightMapGap(t-e);return this.oracle.doc.lineAt(e).to==t&&(i.flags|=4),i}ensureLine(){this.enterLine();let e=this.nodes.length?this.nodes[this.nodes.length-1]:null;if(e instanceof HeightMapText)return e;let t=new HeightMapText(0,-1);return this.nodes.push(t),t}addBlock(e){this.enterLine(),e.type!=BlockType.WidgetAfter||this.isCovered||this.ensureLine(),this.nodes.push(e),this.writtenTo=this.pos=this.pos+e.length,e.type!=BlockType.WidgetBefore&&(this.covering=e);}addLineDeco(e,t){let i=this.ensureLine();i.length+=t,i.collapsed+=t,i.widgetHeight=Math.max(i.widgetHeight,e),this.writtenTo=this.pos=this.pos+t;}finish(e){let t=0==this.nodes.length?null:this.nodes[this.nodes.length-1];!(this.lineStart>-1)||t instanceof HeightMapText||this.isCovered?(this.writtenTot.clientHeight||t.scrollWidth>t.clientWidth)&&"visible"!=e.overflow){let e=t.getBoundingClientRect();n=Math.max(n,e.left),o=Math.min(o,e.right),s=Math.max(s,e.top),r=Math.min(r,e.bottom);}t="absolute"==e.position||"fixed"==e.position?t.offsetParent:t.parentNode;}else {if(11!=t.nodeType)break;t=t.host;}return {left:n-i.left,right:o-i.left,top:s-(i.top+t),bottom:r-(i.top+t)}}class LineGap{constructor(e,t,i){this.from=e,this.to=t,this.size=i;}static same(e,t){if(e.length!=t.length)return !1;for(let i=0;ie.draw(!1)))),this.computeVisibleRanges();}updateForViewport(){let e=[this.viewport],{main:t}=this.state.selection;for(let i=0;i<=1;i++){let n=i?t.head:t.anchor;if(!e.some((({from:e,to:t})=>n>=e&&n<=t))){let{from:t,to:i}=this.lineAt(n,0);e.push(new Viewport(t,i));}}this.viewports=e.sort(((e,t)=>e.from-t.from)),this.scaler=this.heightMap.height<=7e6?IdScaler:new BigScaler(this.heightOracle.doc,this.heightMap,this.viewports);}update(e,t=null){let i=this.state;this.state=e.state;let n=this.state.facet(decorations),o=e.changedRanges,s=ChangedRange.extendWithRanges(o,heightRelevantDecoChanges(e.startState.facet(decorations),n,e?e.changes:ChangeSet.empty(this.state.doc.length))),r=this.heightMap.height;this.heightMap=this.heightMap.applyChanges(n,i.doc,this.heightOracle.setDoc(this.state.doc),s),this.heightMap.height!=r&&(e.flags|=2);let l=s.length?this.mapViewport(this.viewport,e.changes):this.viewport;(t&&(t.headl.to)||!this.viewportIsAppropriate(l))&&(l=this.getViewport(0,t)),l.eq(this.viewport)||(this.viewport=l,e.flags|=4),this.updateForViewport(),(this.lineGaps.length||this.viewport.to-this.viewport.from>15e3)&&(e.flags|=this.updateLineGaps(this.ensureLineGaps(this.mapLineGaps(this.lineGaps,e.changes)))),this.computeVisibleRanges(),t&&(this.scrollTo=t),!this.mustEnforceCursorAssoc&&e.selectionSet&&e.view.lineWrapping&&e.state.selection.main.empty&&e.state.selection.main.assoc&&(this.mustEnforceCursorAssoc=!0);}measure(e,t){let i=e.dom,n="",o=Direction.LTR;if(!t){let e=window.getComputedStyle(i);n=e.whiteSpace,o="rtl"==e.direction?Direction.RTL:Direction.LTR,this.paddingTop=parseInt(e.paddingTop)||0,this.paddingBottom=parseInt(e.paddingBottom)||0;}let s=this.printing?{top:-1e8,bottom:1e8,left:-1e8,right:1e8}:visiblePixelRange(i,this.paddingTop),r=s.top-this.pixelViewport.top,l=s.bottom-this.pixelViewport.bottom;if(this.pixelViewport=s,this.inView=this.pixelViewport.bottom>this.pixelViewport.top&&this.pixelViewport.right>this.pixelViewport.left,!this.inView)return 0;let a=e.measureVisibleLineHeights(),h=!1,c=0,d=0,u=this.heightOracle;if(!t){let t=e.dom.clientWidth;if(u.mustRefresh(a,n,o)||u.lineWrapping&&Math.abs(t-this.contentWidth)>u.charWidth){let{lineHeight:i,charWidth:s}=e.measureTextSize();h=u.refresh(n,o,i,s,t/s,a),h&&(e.minWidth=0,d|=16);}this.contentWidth!=t&&(this.contentWidth=t,d|=16),r>0&&l>0?c=Math.max(r,l):r<0&&l<0&&(c=Math.min(r,l));}if(u.heightChanged=!1,this.heightMap=this.heightMap.updateHeight(u,0,h,new MeasuredHeights(this.viewport.from,a)),u.heightChanged&&(d|=2),!this.viewportIsAppropriate(this.viewport,c)||this.scrollTo&&(this.scrollTo.headthis.viewport.to)){let e=this.getViewport(c,this.scrollTo);e.from==this.viewport.from&&e.to==this.viewport.to||(this.viewport=e,d|=4);}return this.updateForViewport(),(this.lineGaps.length||this.viewport.to-this.viewport.from>15e3)&&(d|=this.updateLineGaps(this.ensureLineGaps(h?[]:this.lineGaps))),this.computeVisibleRanges(),this.mustEnforceCursorAssoc&&(this.mustEnforceCursorAssoc=!1,e.enforceCursorAssoc()),d}get visibleTop(){return this.scaler.fromDOM(this.pixelViewport.top,0)}get visibleBottom(){return this.scaler.fromDOM(this.pixelViewport.bottom,0)}getViewport(e,t){let i=.5-Math.max(-.5,Math.min(.5,e/1e3/2)),n=this.heightMap,o=this.state.doc,{visibleTop:s,visibleBottom:r}=this,l=new Viewport(n.lineAt(s-1e3*i,QueryType.ByHeight,o,0,0).from,n.lineAt(r+1e3*(1-i),QueryType.ByHeight,o,0,0).to);if(t)if(t.headl.to){let{bottom:e}=n.lineAt(t.head,QueryType.ByPos,o,0,0);l=new Viewport(n.lineAt(e-(r-s)-500,QueryType.ByHeight,o,0,0).from,n.lineAt(e+500,QueryType.ByHeight,o,0,0).to);}return l}mapViewport(e,t){let i=t.mapPos(e.from,-1),n=t.mapPos(e.to,1);return new Viewport(this.heightMap.lineAt(i,QueryType.ByPos,this.state.doc,0,0).from,this.heightMap.lineAt(n,QueryType.ByPos,this.state.doc,0,0).to)}viewportIsAppropriate({from:e,to:t},i=0){let{top:n}=this.heightMap.lineAt(e,QueryType.ByPos,this.state.doc,0,0),{bottom:o}=this.heightMap.lineAt(t,QueryType.ByPos,this.state.doc,0,0),{visibleTop:s,visibleBottom:r}=this;return (0==e||n<=s-Math.max(10,Math.min(-i,250)))&&(t==this.state.doc.length||o>=r+Math.max(10,Math.min(i,250)))&&n>s-2e3&&o{if(i.length<1e4)return;let n,o,s=lineStructure(i.from,i.to,this.state);if(s.total<1e4)return;if(this.heightOracle.lineWrapping)n=i.from!=this.viewport.from?i.from:findPosition(s,(this.visibleTop-i.top)/i.height),o=i.to!=this.viewport.to?i.to:findPosition(s,(this.visibleBottom-i.top)/i.height);else {let e=s.total*this.heightOracle.charWidth;n=findPosition(s,this.pixelViewport.left/e),o=findPosition(s,this.pixelViewport.right/e);}let r=this.state.selection.main;r.from<=n&&r.to>=i.from&&(n=r.from),r.from<=i.to&&r.to>=o&&(o=r.to);let l=n-1e4,a=o+1e4;l>i.from+5e3&&t.push(find(e,(e=>e.from==i.from&&e.to>l-5e3&&e.toe.to==i.to&&e.from>a-5e3&&e.frome.draw(this.heightOracle.lineWrapping)))),8)}computeVisibleRanges(){let e=this.state.facet(decorations);this.lineGaps.length&&(e=e.concat(this.lineGapDeco));let t=[];RangeSet.spans(e,this.viewport.from,this.viewport.to,{span(e,i){t.push({from:e,to:i});},point(){}},20),this.visibleRanges=t;}lineAt(e,t){return t+=this.paddingTop,scaleBlock(this.heightMap.lineAt(e,QueryType.ByPos,this.state.doc,t,0),this.scaler,t)}lineAtHeight(e,t){return t+=this.paddingTop,scaleBlock(this.heightMap.lineAt(this.scaler.fromDOM(e,t),QueryType.ByHeight,this.state.doc,t,0),this.scaler,t)}blockAtHeight(e,t){return t+=this.paddingTop,scaleBlock(this.heightMap.blockAt(this.scaler.fromDOM(e,t),this.state.doc,t,0),this.scaler,t)}forEachLine(e,t,i,n){return n+=this.paddingTop,this.heightMap.forEachLine(e,t,this.state.doc,n,0,1==this.scaler.scale?i:e=>i(scaleBlock(e,this.scaler,n)))}get contentHeight(){return this.domHeight+this.paddingTop+this.paddingBottom}get domHeight(){return this.scaler.toDOM(this.heightMap.height,this.paddingTop)}}class Viewport{constructor(e,t){this.from=e,this.to=t;}eq(e){return this.from==e.from&&this.to==e.to}}function lineStructure(e,t,i){let n=[],o=e,s=0;return RangeSet.spans(i.facet(decorations),e,t,{span(){},point(e,t){e>o&&(n.push({from:o,to:e}),s+=e-o),o=t;}},20),o=1)return t[t.length-1].to;let n=Math.floor(e*i);for(let e=0;;e++){let{from:i,to:o}=t[e],s=o-i;if(n<=s)return i+n;n-=s;}}function findFraction(e,t){let i=0;for(let{from:n,to:o}of e.ranges){if(t<=o){i+=t-n;break}i+=o-n;}return i/e.total}function find(e,t){for(let i of e)if(t(i))return i}const IdScaler={toDOM:e=>e,fromDOM:e=>e,scale:1};class BigScaler{constructor(e,t,i){let n=0,o=0,s=0;this.viewports=i.map((({from:i,to:o})=>{let s=t.lineAt(i,QueryType.ByPos,e,0,0).top,r=t.lineAt(o,QueryType.ByPos,e,0,0).bottom;return n+=r-s,{from:i,to:o,top:s,bottom:r,domTop:0,domBottom:0}})),this.scale=(7e6-n)/(t.height-n);for(let e of this.viewports)e.domTop=s+(e.top-o)*this.scale,s=e.domBottom=e.domTop+(e.bottom-e.top),o=e.bottom;}toDOM(e,t){e-=t;for(let i=0,n=0,o=0;;i++){let s=iscaleBlock(e,t,i))):e.type)}const theme$1=Facet.define({combine:e=>e.join(" ")}),darkTheme=Facet.define({combine:e=>e.indexOf(!0)>-1}),baseThemeID=StyleModule.newName(),baseLightID=StyleModule.newName(),baseDarkID=StyleModule.newName(),lightDarkIDs={"&light":"."+baseLightID,"&dark":"."+baseDarkID};function buildTheme(e,t,i){return new StyleModule(t,{finish:t=>/&/.test(t)?t.replace(/&\w*/,(t=>{if("&"==t)return e;if(!i||!i[t])throw new RangeError(`Unsupported selector: ${t}`);return i[t]})):e+" "+t})}const baseTheme$3=buildTheme("."+baseThemeID,{"&":{position:"relative !important",boxSizing:"border-box","&.cm-focused":{outline:"1px dotted #212121"},display:"flex !important",flexDirection:"column"},".cm-scroller":{display:"flex !important",alignItems:"flex-start !important",fontFamily:"monospace",lineHeight:1.4,height:"100%",overflowX:"auto",position:"relative",zIndex:0},".cm-content":{margin:0,flexGrow:2,minHeight:"100%",display:"block",whiteSpace:"pre",wordWrap:"normal",boxSizing:"border-box",padding:"4px 0",outline:"none"},".cm-lineWrapping":{whiteSpace:"pre-wrap",overflowWrap:"anywhere"},"&light .cm-content":{caretColor:"black"},"&dark .cm-content":{caretColor:"white"},".cm-line":{display:"block",padding:"0 2px 0 4px"},".cm-selectionLayer":{zIndex:-1,contain:"size style"},".cm-selectionBackground":{position:"absolute"},"&light .cm-selectionBackground":{background:"#d9d9d9"},"&dark .cm-selectionBackground":{background:"#222"},"&light.cm-focused .cm-selectionBackground":{background:"#d7d4f0"},"&dark.cm-focused .cm-selectionBackground":{background:"#233"},".cm-cursorLayer":{zIndex:100,contain:"size style",pointerEvents:"none"},"&.cm-focused .cm-cursorLayer":{animation:"steps(1) cm-blink 1.2s infinite"},"@keyframes cm-blink":{"0%":{},"50%":{visibility:"hidden"},"100%":{}},"@keyframes cm-blink2":{"0%":{},"50%":{visibility:"hidden"},"100%":{}},".cm-cursor":{position:"absolute",borderLeft:"1.2px solid black",marginLeft:"-0.6px",pointerEvents:"none",display:"none"},"&dark .cm-cursor":{borderLeftColor:"#444"},"&.cm-focused .cm-cursor":{display:"block"},"&light .cm-activeLine":{backgroundColor:"#f3f9ff"},"&dark .cm-activeLine":{backgroundColor:"#223039"},"&light .cm-specialChar":{color:"red"},"&dark .cm-specialChar":{color:"#f78"},".cm-tab":{display:"inline-block",overflow:"hidden",verticalAlign:"bottom"},".cm-placeholder":{color:"#888",display:"inline-block"},".cm-button":{verticalAlign:"middle",color:"inherit",fontSize:"70%",padding:".2em 1em",borderRadius:"3px"},"&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"}},lightDarkIDs),observeOptions={childList:!0,characterData:!0,subtree:!0,characterDataOldValue:!0},useCharData=browser.ie&&browser.ie_version<=11;class DOMObserver{constructor(e,t,i){this.view=e,this.onChange=t,this.onScrollChanged=i,this.active=!1,this.ignoreSelection=new DOMSelection,this.delayedFlush=-1,this.queue=[],this.lastFlush=0,this.scrollTargets=[],this.intersection=null,this.intersecting=!1,this._selectionRange=null,this.parentCheck=-1,this.dom=e.contentDOM,this.observer=new MutationObserver((t=>{for(let e of t)this.queue.push(e);this._selectionRange=null,(browser.ie&&browser.ie_version<=11||browser.ios&&e.composing)&&t.some((e=>"childList"==e.type&&e.removedNodes.length||"characterData"==e.type&&e.oldValue.length>e.target.nodeValue.length))?this.flushSoon():this.flush();})),useCharData&&(this.onCharData=e=>{this.queue.push({target:e.target,type:"characterData",oldValue:e.prevValue}),this.flushSoon();}),this.onSelectionChange=this.onSelectionChange.bind(this),this.start(),this.onScroll=this.onScroll.bind(this),window.addEventListener("scroll",this.onScroll),"function"==typeof IntersectionObserver&&(this.intersection=new IntersectionObserver((e=>{this.parentCheck<0&&(this.parentCheck=setTimeout(this.listenForScroll.bind(this),1e3)),e[e.length-1].intersectionRatio>0!=this.intersecting&&(this.intersecting=!this.intersecting,this.intersecting!=this.view.inView&&this.onScrollChanged(document.createEvent("Event")));}),{}),this.intersection.observe(this.dom)),this.listenForScroll();}onScroll(e){this.intersecting&&this.flush(),this.onScrollChanged(e);}onSelectionChange(e){this.lastFlush{this.delayedFlush=-1,this.flush();}),20));}forceFlush(){this.delayedFlush>=0&&(window.clearTimeout(this.delayedFlush),this.delayedFlush=-1,this.flush());}flush(){if(this.delayedFlush>=0)return;this.lastFlush=Date.now();let e=this.queue;for(let t of this.observer.takeRecords())e.push(t);e.length&&(this.queue=[]);let t=this.selectionRange,i=!this.ignoreSelection.eq(t)&&hasSelection(this.dom,t);if(0==e.length&&!i)return;let n=-1,o=-1,s=!1;for(let t of e){let e=this.readMutation(t);e&&(e.typeOver&&(s=!0),-1==n?({from:n,to:o}=e):(n=Math.min(e.from,n),o=Math.max(e.to,o)));}let r=this.view.state;(n>-1||i)&&this.onChange(n,o,s),this.view.state==r&&(this.view.docView.dirty&&(this.ignore((()=>this.view.docView.sync())),this.view.docView.dirty=0),this.view.docView.updateSelection()),this.clearSelection();}readMutation(e){let t=this.view.docView.nearest(e.target);if(!t||t.ignoreMutation(e))return null;if(t.markDirty(),"childList"==e.type){let i=findChild(t,e.previousSibling||e.target.previousSibling,-1),n=findChild(t,e.nextSibling||e.target.nextSibling,1);return {from:i?t.posAfter(i):t.posAtStart,to:n?t.posBefore(n):t.posAtEnd,typeOver:!1}}return {from:t.posAtStart,to:t.posAtEnd,typeOver:e.target.nodeValue==e.oldValue}}destroy(){this.stop(),this.intersection&&this.intersection.disconnect();for(let e of this.scrollTargets)e.removeEventListener("scroll",this.onScroll);window.removeEventListener("scroll",this.onScroll),clearTimeout(this.parentCheck);}}function findChild(e,t,i){for(;t;){let n=ContentView.get(t);if(n&&n.parent==e)return n;let o=t.parentNode;t=o!=e.dom?o:i>0?t.nextSibling:t.previousSibling;}return null}function safariSelectionRangeHack(e){let t=null;function i(e){e.preventDefault(),e.stopImmediatePropagation(),t=e.getTargetRanges()[0];}if(e.contentDOM.addEventListener("beforeinput",i,!0),document.execCommand("indent"),e.contentDOM.removeEventListener("beforeinput",i,!0),!t)return null;let n=t.startContainer,o=t.startOffset,s=t.endContainer,r=t.endOffset,l=e.docView.domAtPos(e.state.selection.main.anchor);return isEquivalentPosition(l.node,l.offset,s,r)&&([n,o,s,r]=[s,r,n,o]),{anchorNode:n,anchorOffset:o,focusNode:s,focusOffset:r}}function applyDOMChange(e,t,i,n){let o,s,r,l=e.state.selection.main;if(t>-1&&(r=e.docView.domBoundsAround(t,i,0))){let{from:t,to:i}=r,n=e.docView.impreciseHead||e.docView.impreciseAnchor?[]:selectionPoints(e),a=new DOMReader(n,e);a.readRange(r.startDOM,r.endDOM),s=selectionFromPoints(n,t);let h=l.from,c=null;(8===e.inputState.lastKeyCode&&e.inputState.lastKeyTime>Date.now()-100||browser.android&&a.text.length=l.from&&o.to<=l.to&&(o.from!=l.from||o.to!=l.to)&&l.to-l.from-(o.to-o.from)<=4&&(o={from:l.from,to:l.to,insert:e.state.doc.slice(l.from,o.from).append(o.insert).append(e.state.doc.slice(o.to,l.to))}),o){let t=e.state;if(browser.android&&(o.from==l.from&&o.to==l.to&&1==o.insert.length&&2==o.insert.lines&&dispatchKey(e.contentDOM,"Enter",13)||o.from==l.from-1&&o.to==l.to&&0==o.insert.length&&dispatchKey(e.contentDOM,"Backspace",8)||o.from==l.from&&o.to==l.to+1&&0==o.insert.length&&dispatchKey(e.contentDOM,"Delete",46))||browser.ios&&e.inputState.flushIOSKey(e))return;let i,n=o.insert.toString();if(e.state.facet(inputHandler).some((t=>t(e,o.from,o.to,n))))return;if(e.inputState.composing>=0&&e.inputState.composing++,o.from>=l.from&&o.to<=l.to&&o.to-o.from>=(l.to-l.from)/3&&(!s||s.main.empty&&s.main.from==o.from+o.insert.length)){let n=l.fromo.to?t.sliceDoc(o.to,l.to):"";i=t.replaceSelection(e.state.toText(n+o.insert.sliceString(0,void 0,e.state.lineBreak)+s));}else {let e=t.changes(o);i={changes:e,selection:s&&!t.selection.main.eq(s.main)&&s.main.to<=e.newLength?t.selection.replaceRange(s.main):void 0};}e.dispatch(i,{scrollIntoView:!0,annotations:Transaction.userEvent.of("input")});}else if(s&&!s.main.eq(l)){let t,i=!1;e.inputState.lastSelectionTime>Date.now()-50&&("keyboardselection"==e.inputState.lastSelectionOrigin?i=!0:t=Transaction.userEvent.of(e.inputState.lastSelectionOrigin)),e.dispatch({selection:s,scrollIntoView:i,annotations:t});}}function findDiff(e,t,i,n){let o=Math.min(e.length,t.length),s=0;for(;s0&&l>0&&e.charCodeAt(r-1)==t.charCodeAt(l-1);)r--,l--;if("end"==n){i-=r+Math.max(0,s-Math.min(r,l))-s;}if(r=r?s-i:0,l=s+(l-r),r=s;}else if(l=l?s-i:0,r=s+(r-l),l=s;}return {from:s,toA:r,toB:l}}class DOMReader{constructor(e,t){this.points=e,this.view=t,this.text="",this.lineBreak=t.state.lineBreak;}readRange(e,t){if(!e)return;let i=e.parentNode;for(let n=e;;){this.findPointBefore(i,n),this.readNode(n);let e=n.nextSibling;if(e==t)break;let o=ContentView.get(n),s=ContentView.get(e);((o?o.breakAfter:isBlockElement(n))||(s?s.breakAfter:isBlockElement(e))&&("BR"!=n.nodeName||n.cmIgnore))&&(this.text+=this.lineBreak),n=e;}this.findPointBefore(i,t);}readNode(e){if(e.cmIgnore)return;let t,i=ContentView.get(e),n=i&&i.overrideDOMText;null!=n?t=n.sliceString(0,void 0,this.lineBreak):3==e.nodeType?t=e.nodeValue:"BR"==e.nodeName?t=e.nextSibling?this.lineBreak:"":1==e.nodeType&&this.readRange(e.firstChild,null),null!=t&&(this.findPointIn(e,t.length),this.text+=t,browser.chrome&&13==this.view.inputState.lastKeyCode&&!e.nextSibling&&/\n\n$/.test(this.text)&&(this.text=this.text.slice(0,-1)));}findPointBefore(e,t){for(let i of this.points)i.node==e&&e.childNodes[i.offset]==t&&(i.pos=this.text.length);}findPointIn(e,t){for(let i of this.points)i.node==e&&(i.pos=this.text.length+Math.min(i.offset,t));}}function isBlockElement(e){return 1==e.nodeType&&/^(DIV|P|LI|UL|OL|BLOCKQUOTE|DD|DT|H\d|SECTION|PRE)$/.test(e.nodeName)}class DOMPoint{constructor(e,t){this.node=e,this.offset=t,this.pos=-1;}}function selectionPoints(e){let t=[];if(e.root.activeElement!=e.contentDOM)return t;let{anchorNode:i,anchorOffset:n,focusNode:o,focusOffset:s}=e.observer.selectionRange;return i&&(t.push(new DOMPoint(i,n)),o==i&&s==n||t.push(new DOMPoint(o,s))),t}function selectionFromPoints(e,t){if(0==e.length)return null;let i=e[0].pos,n=2==e.length?e[1].pos:i;return i>-1&&n>-1?EditorSelection.single(i+t,n+t):null}class EditorView{constructor(e={}){this.plugins=[],this.editorAttrs={},this.contentAttrs={},this.bidiCache=[],this.updateState=2,this.measureScheduled=-1,this.measureRequests=[],this.contentDOM=document.createElement("div"),this.scrollDOM=document.createElement("div"),this.scrollDOM.tabIndex=-1,this.scrollDOM.className="cm-scroller",this.scrollDOM.appendChild(this.contentDOM),this.announceDOM=document.createElement("div"),this.announceDOM.style.cssText="position: absolute; top: -10000px",this.announceDOM.setAttribute("aria-live","polite"),this.dom=document.createElement("div"),this.dom.appendChild(this.announceDOM),this.dom.appendChild(this.scrollDOM),this._dispatch=e.dispatch||(e=>this.update([e])),this.dispatch=this.dispatch.bind(this),this.root=e.root||document,this.viewState=new ViewState(e.state||EditorState.create()),this.plugins=this.state.facet(viewPlugin).map((e=>new PluginInstance(e).update(this))),this.observer=new DOMObserver(this,((e,t,i)=>{applyDOMChange(this,e,t,i);}),(e=>{this.inputState.runScrollHandlers(this,e),this.observer.intersecting&&this.measure();})),this.inputState=new InputState(this),this.docView=new DocView(this),this.mountStyles(),this.updateAttrs(),this.updateState=0,ensureGlobalHandler(),this.requestMeasure(),e.parent&&e.parent.appendChild(this.dom);}get state(){return this.viewState.state}get viewport(){return this.viewState.viewport}get visibleRanges(){return this.viewState.visibleRanges}get inView(){return this.viewState.inView}get composing(){return this.inputState.composing>0}dispatch(...e){this._dispatch(1==e.length&&e[0]instanceof Transaction?e[0]:this.state.update(...e));}update(e){if(0!=this.updateState)throw new Error("Calls to EditorView.update are not allowed while an update is in progress");let t,i,n=!1,o=this.state;for(let t of e){if(t.startState!=o)throw new RangeError("Trying to update state with a transaction that doesn't start from the previous state.");o=t.state;}if(o.facet(EditorState.phrases)!=this.state.facet(EditorState.phrases))return this.setState(o);t=new ViewUpdate(this,o,e);try{this.updateState=2,i=e.some((e=>e.scrollIntoView))?o.selection.main:null,this.viewState.update(t,i),this.bidiCache=CachedOrder.update(this.bidiCache,t.changes),t.empty||(this.updatePlugins(t),this.inputState.update(t)),n=this.docView.update(t),this.state.facet(styleModule)!=this.styleModules&&this.mountStyles(),this.updateAttrs(),this.showAnnouncements(e);}finally{this.updateState=0;}if((n||i||this.viewState.mustEnforceCursorAssoc)&&this.requestMeasure(),!t.empty)for(let e of this.state.facet(updateListener))e(t);}setState(e){if(0!=this.updateState)throw new Error("Calls to EditorView.setState are not allowed while an update is in progress");this.updateState=2;try{for(let e of this.plugins)e.destroy(this);this.viewState=new ViewState(e),this.plugins=e.facet(viewPlugin).map((e=>new PluginInstance(e).update(this))),this.docView=new DocView(this),this.inputState.ensureHandlers(this),this.mountStyles(),this.updateAttrs(),this.bidiCache=[];}finally{this.updateState=0;}this.requestMeasure();}updatePlugins(e){let t=e.startState.facet(viewPlugin),i=e.state.facet(viewPlugin);if(t!=i){let n=[];for(let o of i){let i=t.indexOf(o);if(i<0)n.push(new PluginInstance(o));else {let t=this.plugins[i];t.mustUpdate=e,n.push(t);}}for(let t of this.plugins)t.mustUpdate!=e&&t.destroy(this);this.plugins=n,this.inputState.ensureHandlers(this);}else for(let t of this.plugins)t.mustUpdate=e;for(let e=0;e-1&&cancelAnimationFrame(this.measureScheduled),this.measureScheduled=-1;let e=null;try{for(let t=0;;t++){this.updateState=1;let i=this.viewState.measure(this.docView,t>0),n=this.measureRequests;if(!i&&!n.length&&null==this.viewState.scrollTo)break;if(this.measureRequests=[],t>5){console.warn("Viewport failed to stabilize");break}let o=n.map((e=>{try{return e.read(this)}catch(e){return logException(this.state,e),BadMeasure}})),s=new ViewUpdate(this,this.state);s.flags|=i,e?e.flags|=i:e=s,this.updateState=2,s.empty||(this.updatePlugins(s),this.inputState.update(s)),this.updateAttrs(),i&&this.docView.update(s);for(let e=0;e-1&&this.measure();}requestMeasure(e){if(this.measureScheduled<0&&(this.measureScheduled=requestAnimationFrame((()=>this.measure()))),e){if(null!=e.key)for(let t=0;tbyGroup(this,e.head,t))))}moveToLineBoundary(e,t,i=!0){return moveToLineBoundary(this,e,t,i)}moveVertically(e,t,i){return skipAtoms(this,e,moveVertically(this,e,t,i))}scrollPosIntoView(e){this.viewState.scrollTo=EditorSelection.cursor(e),this.requestMeasure();}domAtPos(e){return this.docView.domAtPos(e)}posAtDOM(e,t=0){return this.docView.posFromDOM(e,t)}posAtCoords(e){return this.readMeasured(),posAtCoords(this,e)}coordsAtPos(e,t=1){this.readMeasured();let i=this.docView.coordsAt(e,t);if(!i||i.left==i.right)return i;let n=this.state.doc.lineAt(e),o=this.bidiSpans(n);return flattenRect(i,o[BidiSpan.find(o,e-n.from,-1,t)].dir==Direction.LTR==t>0)}get defaultCharacterWidth(){return this.viewState.heightOracle.charWidth}get defaultLineHeight(){return this.viewState.heightOracle.lineHeight}get textDirection(){return this.viewState.heightOracle.direction}get lineWrapping(){return this.viewState.heightOracle.lineWrapping}bidiSpans(e){if(e.length>MaxBidiLine)return trivialOrder(e.length);let t=this.textDirection;for(let i of this.bidiCache)if(i.from==e.from&&i.dir==t)return i.order;let i=computeOrder(e.text,this.textDirection);return this.bidiCache.push(new CachedOrder(e.from,e.to,t,i)),i}get hasFocus(){var e;return (document.hasFocus()||browser.safari&&(null===(e=this.inputState)||void 0===e?void 0:e.lastContextMenu)>Date.now()-3e4)&&this.root.activeElement==this.contentDOM}focus(){this.observer.ignore((()=>{focusPreventScroll(this.contentDOM),this.docView.updateSelection();}));}destroy(){for(let e of this.plugins)e.destroy(this);this.inputState.destroy(),this.dom.remove(),this.observer.destroy(),this.measureScheduled>-1&&cancelAnimationFrame(this.measureScheduled);}static domEventHandlers(e){return ViewPlugin.define((()=>({})),{eventHandlers:e})}static theme(e,t){let i=StyleModule.newName(),n=[theme$1.of(i),styleModule.of(buildTheme(`.${i}`,e))];return t&&t.dark&&n.push(darkTheme.of(!0)),n}static baseTheme(e){return Prec.fallback(styleModule.of(buildTheme("."+baseThemeID,e,lightDarkIDs)))}}EditorView.styleModule=styleModule,EditorView.inputHandler=inputHandler,EditorView.exceptionSink=exceptionSink,EditorView.updateListener=updateListener,EditorView.editable=editable,EditorView.mouseSelectionStyle=mouseSelectionStyle,EditorView.dragMovesSelection=dragMovesSelection$1,EditorView.clickAddsSelectionRange=clickAddsSelectionRange,EditorView.decorations=decorations,EditorView.contentAttributes=contentAttributes,EditorView.editorAttributes=editorAttributes,EditorView.lineWrapping=EditorView.contentAttributes.of({class:"cm-lineWrapping"}),EditorView.announce=StateEffect.define();const MaxBidiLine=4096;function ensureTop(e,t){return null==e?t.getBoundingClientRect().top:e}let resizeDebounce=-1;function ensureGlobalHandler(){window.addEventListener("resize",(()=>{-1==resizeDebounce&&(resizeDebounce=setTimeout(handleResize,50));}));}function handleResize(){resizeDebounce=-1;let e=document.querySelectorAll(".cm-content");for(let t=0;trunHandlers(getKeymap(t.state),e,t,"editor")}),keymap=Facet.define({enables:handleKeyEvents}),Keymaps=new WeakMap;function getKeymap(e){let t=e.facet(keymap),i=Keymaps.get(t);return i||Keymaps.set(t,i=buildKeymap(t.reduce(((e,t)=>e.concat(t)),[]))),i}let storedPrefix=null;function buildKeymap(e,t=currentPlatform){let i=Object.create(null),n=Object.create(null),o=(e,t)=>{let i=n[e];if(null==i)n[e]=t;else if(i!=t)throw new Error("Key binding "+e+" is used both as a regular binding and as a multi-stroke prefix")},s=(e,n,s,r)=>{let l=i[e]||(i[e]=Object.create(null)),a=n.split(/ (?!$)/).map((e=>normalizeKeyName(e,t)));for(let t=1;t{let n=storedPrefix={view:t,prefix:i,scope:e};return setTimeout((()=>{storedPrefix==n&&(storedPrefix=null);}),4e3),!0}]});}let h=a.join(" ");o(h,!1);let c=l[h]||(l[h]={preventDefault:!1,commands:[]});c.commands.push(s),r&&(c.preventDefault=!0);};for(let i of e){let e=i[t]||i.key;if(e)for(let t of i.scope?i.scope.split(" "):["editor"])s(t,e,i.run,i.preventDefault),i.shift&&s(t,"Shift-"+e,i.shift,i.preventDefault);}return i}function runHandlers(e,t,i,n){let o=keyName(t),s=1==o.length&&" "!=o,r="",l=!1;storedPrefix&&storedPrefix.view==i&&storedPrefix.scope==n&&(r=storedPrefix.prefix+" ",(l=modifierCodes.indexOf(t.keyCode)<0)&&(storedPrefix=null));let a,h=e=>{if(e){for(let t of e.commands)if(t(i))return !0;e.preventDefault&&(l=!0);}return !1},c=e[n];if(c){if(h(c[r+modifiers(o,t,!s)]))return !0;if(s&&(t.shiftKey||t.altKey||t.metaKey)&&(a=base$2[t.keyCode])&&a!=o){if(h(c[r+modifiers(a,t,!0)]))return !0}else if(s&&t.shiftKey&&h(c[r+modifiers(o,t,!0)]))return !0}return l}const CanHidePrimary=!browser.ios,selectionConfig=Facet.define({combine:e=>combineConfig(e,{cursorBlinkRate:1200,drawRangeCursor:!0},{cursorBlinkRate:(e,t)=>Math.min(e,t),drawRangeCursor:(e,t)=>e||t})});class Piece{constructor(e,t,i,n,o){this.left=e,this.top=t,this.width=i,this.height=n,this.className=o;}draw(){let e=document.createElement("div");return e.className=this.className,this.adjust(e),e}adjust(e){e.style.left=this.left+"px",e.style.top=this.top+"px",this.width>=0&&(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}}ViewPlugin.fromClass(class{constructor(e){this.view=e,this.rangePieces=[],this.cursors=[],this.measureReq={read:this.readPos.bind(this),write:this.drawSel.bind(this)},this.selectionLayer=e.scrollDOM.appendChild(document.createElement("div")),this.selectionLayer.className="cm-selectionLayer",this.selectionLayer.setAttribute("aria-hidden","true"),this.cursorLayer=e.scrollDOM.appendChild(document.createElement("div")),this.cursorLayer.className="cm-cursorLayer",this.cursorLayer.setAttribute("aria-hidden","true"),e.requestMeasure(this.measureReq),this.setBlinkRate();}setBlinkRate(){this.cursorLayer.style.animationDuration=this.view.state.facet(selectionConfig).cursorBlinkRate+"ms";}update(e){let t=e.startState.facet(selectionConfig)!=e.state.facet(selectionConfig);(t||e.selectionSet||e.geometryChanged||e.viewportChanged)&&this.view.requestMeasure(this.measureReq),e.transactions.some((e=>e.scrollIntoView))&&(this.cursorLayer.style.animationName="cm-blink"==this.cursorLayer.style.animationName?"cm-blink2":"cm-blink"),t&&this.setBlinkRate();}readPos(){let{state:e}=this.view,t=e.facet(selectionConfig),i=e.selection.ranges.map((e=>e.empty?[]:measureRange(this.view,e))).reduce(((e,t)=>e.concat(t))),n=[];for(let i of e.selection.ranges){let o=i==e.selection.main;if(i.empty?!o||CanHidePrimary:t.drawRangeCursor){let e=measureCursor(this.view,i,o);e&&n.push(e);}}return {rangePieces:i,cursors:n}}drawSel({rangePieces:e,cursors:t}){if(e.length!=this.rangePieces.length||e.some(((e,t)=>!e.eq(this.rangePieces[t])))){this.selectionLayer.textContent="";for(let t of e)this.selectionLayer.appendChild(t.draw());this.rangePieces=e;}if(t.length!=this.cursors.length||t.some(((e,t)=>!e.eq(this.cursors[t])))){let e=this.cursorLayer.children;if(e.length!==t.length){this.cursorLayer.textContent="";for(const e of t)this.cursorLayer.appendChild(e.draw());}else t.forEach(((t,i)=>t.adjust(e[i])));this.cursors=t;}}destroy(){this.selectionLayer.remove(),this.cursorLayer.remove();}});const themeSpec={".cm-line":{"& ::selection":{backgroundColor:"transparent !important"},"&::selection":{backgroundColor:"transparent !important"}}};CanHidePrimary&&(themeSpec[".cm-line"].caretColor="transparent !important");Prec.override(EditorView.theme(themeSpec));function getBase(e){let t=e.scrollDOM.getBoundingClientRect();return {left:(e.textDirection==Direction.LTR?t.left:t.right-e.scrollDOM.clientWidth)-e.scrollDOM.scrollLeft,top:t.top-e.scrollDOM.scrollTop}}function wrappedLine(e,t,i){let n=EditorSelection.cursor(t);return {from:Math.max(i.from,e.moveToLineBoundary(n,!1,!0).from),to:Math.min(i.to,e.moveToLineBoundary(n,!0,!0).from)}}function measureRange(e,t){if(t.to<=e.viewport.from||t.from>=e.viewport.to)return [];let i=Math.max(t.from,e.viewport.from),n=Math.min(t.to,e.viewport.to),o=e.textDirection==Direction.LTR,s=e.contentDOM,r=s.getBoundingClientRect(),l=getBase(e),a=window.getComputedStyle(s.firstChild),h=r.left+parseInt(a.paddingLeft),c=r.right-parseInt(a.paddingRight),d=e.visualLineAt(i),u=e.visualLineAt(n);if(e.lineWrapping&&(d=wrappedLine(e,i,d),u=wrappedLine(e,n,u)),d.from==u.from)return p(g(t.from,t.to,d));{let e=g(t.from,null,d),i=g(null,t.to,u),n=[];return d.tod&&n.from=s)break;l>o&&a(Math.max(e,o),null==t&&e<=d,Math.min(l,s),null==i&&l>=u,r.dir);}if(o=n.to+1,o>=s)break}return 0==l.length&&a(d,null==t,u,null==i,e.textDirection),{top:s,bottom:r,horizontal:l}}}function measureCursor(e,t,i){let n=e.coordsAtPos(t.head,t.assoc||1);if(!n)return null;let o=getBase(e);return new Piece(n.left-o.left,n.top-o.top,-1,n.bottom-n.top,i?"cm-cursor cm-cursor-primary":"cm-cursor cm-cursor-secondary")}const UnicodeRegexpSupport=null!=/x/.unicode?"gu":"g",Specials=new RegExp("[\0-\b\n--\u2028\u2029\ufeff-]",UnicodeRegexpSupport);let _supportsTabSize=null;function supportsTabSize(){var e;if(null==_supportsTabSize&&"undefined"!=typeof document&&document.body){let t=document.body.style;_supportsTabSize=null!=(null!==(e=t.tabSize)&&void 0!==e?e:t.MozTabSize);}return _supportsTabSize||!1}Facet.define({combine(e){let t=combineConfig(e,{render:null,specialChars:Specials,addSpecialChars:null});return (t.replaceTabs=!supportsTabSize())&&(t.specialChars=new RegExp("\t|"+t.specialChars.source,UnicodeRegexpSupport)),t.addSpecialChars&&(t.specialChars=new RegExp(t.specialChars.source+"|"+t.addSpecialChars.source,UnicodeRegexpSupport)),t}});function highlightActiveLine(){return activeLineHighlighter}const lineDeco=Decoration.line({attributes:{class:"cm-activeLine"}}),activeLineHighlighter=ViewPlugin.fromClass(class{constructor(e){this.decorations=this.getDeco(e);}update(e){(e.docChanged||e.selectionSet)&&(this.decorations=this.getDeco(e.view));}getDeco(e){let t=-1,i=[];for(let n of e.state.selection.ranges){if(!n.empty)return Decoration.none;let o=e.visualLineAt(n.head);o.from>t&&(i.push(lineDeco.range(o.from)),t=o.from);}return Decoration.set(i)}},{decorations:e=>e.decorations});
-
- const DefaultBufferLength=1024;let nextPropID=0;const CachedNode=new WeakMap;class NodeProp{constructor({deserialize:e}={}){this.id=nextPropID++,this.deserialize=e||(()=>{throw new Error("This node type doesn't define a deserialize function")});}static string(){return new NodeProp({deserialize:e=>e})}static number(){return new NodeProp({deserialize:Number})}static flag(){return new NodeProp({deserialize:()=>!0})}set(e,t){return e[this.id]=t,e}add(e){return "function"!=typeof e&&(e=NodeType.match(e)),t=>{let r=e(t);return void 0===r?null:[this,r]}}}NodeProp.closedBy=new NodeProp({deserialize:e=>e.split(" ")}),NodeProp.openedBy=new NodeProp({deserialize:e=>e.split(" ")}),NodeProp.group=new NodeProp({deserialize:e=>e.split(" ")});const noProps=Object.create(null);class NodeType{constructor(e,t,r,i=0){this.name=e,this.props=t,this.id=r,this.flags=i;}static define(e){let t=e.props&&e.props.length?Object.create(null):noProps,r=(e.top?1:0)|(e.skipped?2:0)|(e.error?4:0)|(null==e.name?8:0),i=new NodeType(e.name||"",t,e.id,r);if(e.props)for(let r of e.props)Array.isArray(r)||(r=r(i)),r&&r[0].set(t,r[1]);return i}prop(e){return this.props[e.id]}get isTop(){return (1&this.flags)>0}get isSkipped(){return (2&this.flags)>0}get isError(){return (4&this.flags)>0}get isAnonymous(){return (8&this.flags)>0}is(e){if("string"==typeof e){if(this.name==e)return !0;let t=this.prop(NodeProp.group);return !!t&&t.indexOf(e)>-1}return this.id==e}static match(e){let t=Object.create(null);for(let r in e)for(let i of r.split(" "))t[i]=e[r];return e=>{for(let r=e.prop(NodeProp.group),i=-1;i<(r?r.length:0);i++){let n=t[i<0?e.name:r[i]];if(n)return n}}}}NodeType.none=new NodeType("",Object.create(null),0,8);class NodeSet{constructor(e){this.types=e;for(let t=0;te.toString())).join();return this.type.name?(/\W/.test(this.type.name)&&!this.type.isError?JSON.stringify(this.type.name):this.type.name)+(e.length?"("+e+")":""):e}cursor(e,t=0){let r=null!=e&&CachedNode.get(this)||this.topNode,i=new TreeCursor(r);return null!=e&&(i.moveTo(e,t),CachedNode.set(this,i._tree)),i}fullCursor(){return new TreeCursor(this.topNode,!0)}get topNode(){return new TreeNode(this,0,0,null)}resolve(e,t=0){return this.cursor(e,t).node}iterate(e){let{enter:t,leave:r,from:i=0,to:n=this.length}=e;for(let e=this.cursor();;){let s=!1;if(e.from<=n&&e.to>=i&&(e.type.isAnonymous||!1!==t(e.type,e.from,e.to))){if(e.firstChild())continue;e.type.isAnonymous||(s=!0);}for(;s&&r&&r(e.type,e.from,e.to),s=e.type.isAnonymous,!e.nextSibling();){if(!e.parent())return;s=!0;}}}balance(e=DefaultBufferLength){return this.children.length<=BalanceBranchFactor?this:balanceRange(this.type,NodeType.none,this.children,this.positions,0,this.children.length,0,e,this.length,0)}static build(e){return buildTree(e)}}function withHash(e,t){return t&&(e.contextHash=t),e}Tree.empty=new Tree(NodeType.none,[],[],0);class TreeBuffer{constructor(e,t,r,i=NodeType.none){this.buffer=e,this.length=t,this.set=r,this.type=i;}toString(){let e=[];for(let t=0;t0){if(t>i&&(s=h),t>i)break}else if(e=i)break}else if(s=h,r>0)break;return s}}class TreeNode{constructor(e,t,r,i){this.node=e,this.from=t,this.index=r,this._parent=i;}get type(){return this.node.type}get name(){return this.node.type.name}get to(){return this.from+this.node.length}nextChild(e,t,r,i=!1){for(let n=this;;){for(let{children:s,positions:h}=n.node,l=t>0?s.length:-1;e!=l;e+=t){let l=s[e],o=h[e]+n.from;if(-1e8==r||!(t<0?o>=r:o+l.length<=r))if(l instanceof TreeBuffer){let i=l.findChild(0,l.buffer.length,t,-1e8==r?-1e8:r-o);if(i>-1)return new BufferNode(new BufferContext(n,l,e,o),null,i)}else if(i||!l.type.isAnonymous||hasChild(l)){let s=new TreeNode(l,o,e,n);return i||!s.type.isAnonymous?s:s.nextChild(t<0?l.children.length-1:0,t,r)}}if(i||!n.type.isAnonymous)return null;if(e=n.index+t,n=n._parent,!n)return null}}get firstChild(){return this.nextChild(0,1,-1e8)}get lastChild(){return this.nextChild(this.node.children.length-1,-1,-1e8)}childAfter(e){return this.nextChild(0,1,e)}childBefore(e){return this.nextChild(this.node.children.length-1,-1,e)}nextSignificantParent(){let e=this;for(;e.type.isAnonymous&&e._parent;)e=e._parent;return e}get parent(){return this._parent?this._parent.nextSignificantParent():null}get nextSibling(){return this._parent?this._parent.nextChild(this.index+1,1,-1):null}get prevSibling(){return this._parent?this._parent.nextChild(this.index-1,-1,-1):null}get cursor(){return new TreeCursor(this)}resolve(e,t=0){return this.cursor.moveTo(e,t).node}getChild(e,t=null,r=null){let i=getChildren(this,e,t,r);return i.length?i[0]:null}getChildren(e,t=null,r=null){return getChildren(this,e,t,r)}toString(){return this.node.toString()}}function getChildren(e,t,r,i){let n=e.cursor,s=[];if(!n.firstChild())return s;if(null!=r)for(;!n.type.is(r);)if(!n.nextSibling())return s;for(;;){if(null!=i&&n.type.is(i))return s;if(n.type.is(t)&&s.push(n.node),!n.nextSibling())return null==i?s:[]}}class BufferContext{constructor(e,t,r,i){this.parent=e,this.buffer=t,this.index=r,this.start=i;}}class BufferNode{constructor(e,t,r){this.context=e,this._parent=t,this.index=r,this.type=e.buffer.set.types[e.buffer.buffer[r]];}get name(){return this.type.name}get from(){return this.context.start+this.context.buffer.buffer[this.index+1]}get to(){return this.context.start+this.context.buffer.buffer[this.index+2]}child(e,t){let{buffer:r}=this.context,i=r.findChild(this.index+4,r.buffer[this.index+3],e,-1e8==t?-1e8:t-this.context.start);return i<0?null:new BufferNode(this.context,this,i)}get firstChild(){return this.child(1,-1e8)}get lastChild(){return this.child(-1,-1e8)}childAfter(e){return this.child(1,e)}childBefore(e){return this.child(-1,e)}get parent(){return this._parent||this.context.parent.nextSignificantParent()}externalSibling(e){return this._parent?null:this.context.parent.nextChild(this.context.index+e,e,-1)}get nextSibling(){let{buffer:e}=this.context,t=e.buffer[this.index+3];return t<(this._parent?e.buffer[this._parent.index+3]:e.buffer.length)?new BufferNode(this.context,this._parent,t):this.externalSibling(1)}get prevSibling(){let{buffer:e}=this.context,t=this._parent?this._parent.index+4:0;return this.index==t?this.externalSibling(-1):new BufferNode(this.context,this._parent,e.findChild(t,this.index,-1,-1e8))}get cursor(){return new TreeCursor(this)}resolve(e,t=0){return this.cursor.moveTo(e,t).node}toString(){return this.context.buffer.childString(this.index)}getChild(e,t=null,r=null){let i=getChildren(this,e,t,r);return i.length?i[0]:null}getChildren(e,t=null,r=null){return getChildren(this,e,t,r)}}class TreeCursor{constructor(e,t=!1){if(this.full=t,this.buffer=null,this.stack=[],this.index=0,this.bufferNode=null,e instanceof TreeNode)this.yieldNode(e);else {this._tree=e.context.parent,this.buffer=e.context;for(let t=e._parent;t;t=t._parent)this.stack.unshift(t.index);this.bufferNode=e,this.yieldBuf(e.index);}}get name(){return this.type.name}yieldNode(e){return !!e&&(this._tree=e,this.type=e.type,this.from=e.from,this.to=e.to,!0)}yieldBuf(e,t){this.index=e;let{start:r,buffer:i}=this.buffer;return this.type=t||i.set.types[i.buffer[e]],this.from=r+i.buffer[e+1],this.to=r+i.buffer[e+2],!0}yield(e){return !!e&&(e instanceof TreeNode?(this.buffer=null,this.yieldNode(e)):(this.buffer=e.context,this.yieldBuf(e.index,e.type)))}toString(){return this.buffer?this.buffer.buffer.childString(this.index):this._tree.toString()}enter(e,t){if(!this.buffer)return this.yield(this._tree.nextChild(e<0?this._tree.node.children.length-1:0,e,t,this.full));let{buffer:r}=this.buffer,i=r.findChild(this.index+4,r.buffer[this.index+3],e,-1e8==t?-1e8:t-this.buffer.start);return !(i<0)&&(this.stack.push(this.index),this.yieldBuf(i))}firstChild(){return this.enter(1,-1e8)}lastChild(){return this.enter(-1,-1e8)}childAfter(e){return this.enter(1,e)}childBefore(e){return this.enter(-1,e)}parent(){if(!this.buffer)return this.yieldNode(this.full?this._tree._parent:this._tree.parent);if(this.stack.length)return this.yieldBuf(this.stack.pop());let e=this.full?this.buffer.parent:this.buffer.parent.nextSignificantParent();return this.buffer=null,this.yieldNode(e)}sibling(e){if(!this.buffer)return !!this._tree._parent&&this.yield(this._tree._parent.nextChild(this._tree.index+e,e,-1e8,this.full));let{buffer:t}=this.buffer,r=this.stack.length-1;if(e<0){let e=r<0?0:this.stack[r]+4;if(this.index!=e)return this.yieldBuf(t.findChild(e,this.index,-1,-1e8))}else {let e=t.buffer[this.index+3];if(e<(r<0?t.buffer.length:t.buffer[this.stack[r]+3]))return this.yieldBuf(e)}return r<0&&this.yield(this.buffer.parent.nextChild(this.buffer.index+e,e,-1e8,this.full))}nextSibling(){return this.sibling(1)}prevSibling(){return this.sibling(-1)}atLastNode(e){let t,r,{buffer:i}=this;if(i){if(e>0){if(this.index=e:this.from>e)||(t>-1?this.to<=e:this.to=e:this.from>e)||(t>-1?this.to<=e:this.to=0;){for(let s=e;s;s=s._parent)if(s.index==i){if(i==this.index)return s;t=s,r=n+1;break e}i=this.stack[--n];}for(let e=r;e!e.type.isAnonymous||e instanceof TreeBuffer||hasChild(e)))}class FlatBufferCursor{constructor(e,t){this.buffer=e,this.index=t;}get id(){return this.buffer[this.index-4]}get start(){return this.buffer[this.index-3]}get end(){return this.buffer[this.index-2]}get size(){return this.buffer[this.index-1]}get pos(){return this.index}next(){this.index-=4;}fork(){return new FlatBufferCursor(this.buffer,this.index)}}const BalanceBranchFactor=8;function buildTree(e){var t;let{buffer:r,nodeSet:i,topID:n=0,maxBufferLength:s=DefaultBufferLength,reused:h=[],minRepeatType:l=i.types.length}=e,o=Array.isArray(r)?new FlatBufferCursor(r,r.length):r,f=i.types,u=0;function d(e,t,r,n,p){let{id:c,start:g,end:b,size:x}=o,y=g-e;if(x<0)return -1==x?(r.push(h[c]),n.push(y)):u=c,void o.next();let m,N,C=f[c];if(b-g<=s&&(N=function(e,t){let r=o.fork(),i=0,n=0,h=0,f=r.end-s,u={size:0,start:0,skip:0};e:for(let s=r.pos-e;r.pos>s;){if(r.id==t){u.size=i,u.start=n,u.skip=h,h+=4,i+=4,r.next();continue}let e=r.size,o=r.pos-e;if(e<0||o=l?4:0,a=r.start;for(r.next();r.pos>o;){if(r.size<0)break e;r.id>=l&&(d+=4),r.next();}n=a,i+=e,h+=d;}(t<0||i==e)&&(u.size=i,u.start=n,u.skip=h);return u.size>4?u:void 0}(o.pos-t,p))){let t=new Uint16Array(N.size-N.skip),r=o.pos-N.size,n=t.length;for(;o.pos>r;)n=a(N.start,t,n,p);m=new TreeBuffer(t,b-N.start,i,p<0?NodeType.none:f[p]),y=N.start-e;}else {let e=o.pos-x;o.next();let t=[],r=[],i=c>=l?c:-1;for(;o.pos>e;)o.id==i?o.next():d(g,e,t,r,i);t.reverse(),r.reverse(),m=i>-1&&t.length>BalanceBranchFactor?balanceRange(C,C,t,r,0,t.length,0,s,b-g,u):withHash(new Tree(C,t,r,b-g),u);}r.push(m),n.push(y);}function a(e,t,r,i){let{id:n,start:s,end:h,size:f}=o;if(o.next(),n==i)return r;let u=r;if(f>4){let n=o.pos-(f-4);for(;o.pos>n;)r=a(e,t,r,i);}return n0;)d(e.start||0,0,p,c,-1);let g=null!==(t=e.length)&&void 0!==t?t:p.length?c[0]+p[0].length:0;return new Tree(f[n],p.reverse(),c.reverse(),g)}function balanceRange(e,t,r,i,n,s,h,l,o,f){let u=[],d=[];if(o<=l)for(let e=n;ee)break}if(o==n+1){let i=r[n];if(i instanceof Tree&&i.type==t&&i.length>e<<1){for(let e=0;e0}get openEnd(){return (2&this.open)>0}static applyChanges(e,t,r=128){if(!t.length)return e;let i=[],n=1,s=e.length?e[0]:null,h=0,l=0,o=0;for(;;){let f=h=r)for(;s&&s.from=t.from||u<=t.to||o){let e=Math.max(t.from,l)-o,r=Math.min(t.to,u)-o;t=e>=r?null:new TreeFragment(e,r,t.tree,t.offset+o,(h>0?1:0)|(f?2:0));}if(t&&i.push(t),s.to>u)break;s=ne.length&&i.push(r);return i}}function stringInput(e){return new StringInput(e)}class StringInput{constructor(e,t=e.length){this.string=e,this.length=t;}get(e){return e<0||e>=this.length?-1:this.string.charCodeAt(e)}lineAfter(e){if(e<0)return "";let t=this.string.indexOf("\n",e);return this.string.slice(e,t<0?this.length:Math.min(t,this.length))}read(e,t){return this.string.slice(e,Math.min(this.length,t))}clip(e){return new StringInput(this.string,e)}}
-
- const languageDataProp=new NodeProp;function defineLanguageFacet(t){return Facet.define({combine:t?e=>e.concat(t):void 0})}class Language{constructor(t,e,n,r=[]){this.data=t,this.topNode=n,EditorState.prototype.hasOwnProperty("tree")||Object.defineProperty(EditorState.prototype,"tree",{get(){return syntaxTree(this)}}),this.parser=e,this.extension=[language.of(this),EditorState.languageData.of(((t,e)=>t.facet(languageDataFacetAt(t,e))))].concat(r);}isActiveAt(t,e){return languageDataFacetAt(t,e)==this.data}findRegions(t){let e=t.facet(language);if((null==e?void 0:e.data)==this.data)return [{from:0,to:t.doc.length}];if(!e||!e.allowsNesting)return [];let n=[];return syntaxTree(t).iterate({enter:(t,e,r)=>{if(t.isTop&&t.prop(languageDataProp)==this.data)return n.push({from:e,to:r}),!1}}),n}get allowsNesting(){return !0}parseString(t){let e,n=Text.of(t.split("\n")),r=this.parser.startParse(new DocInput(n),0,new EditorParseContext(this.parser,EditorState.create({doc:n}),[],Tree.empty,{from:0,to:t.length},[],null));for(;!(e=r.advance()););return e}}function languageDataFacetAt(t,e){let n=t.facet(language);if(!n)return null;if(!n.allowsNesting)return n.data;let r=syntaxTree(t).resolve(e,-1);for(;r;){let t=r.type.prop(languageDataProp);if(t)return t;r=r.parent;}return n.data}Language.setState=StateEffect.define();class LezerLanguage extends Language{constructor(t,e){super(t,e,e.topNode),this.parser=e;}static define(t){let e=defineLanguageFacet(t.languageData);return new LezerLanguage(e,t.parser.configure({props:[languageDataProp.add((t=>t.isTop?e:void 0))]}))}configure(t){return new LezerLanguage(this.data,this.parser.configure(t))}get allowsNesting(){return this.parser.hasNested}}function syntaxTree(t){let e=t.field(Language.state,!1);return e?e.tree:Tree.empty}class DocInput{constructor(t,e=t.length){this.doc=t,this.length=e,this.cursorPos=0,this.string="",this.prevString="",this.cursor=t.iter();}syncTo(t){return t=this.length)return -1;let e=this.cursorPos-this.string.length;if(t=this.cursorPos){if(t=e-this.prevString.length)return this.prevString.charCodeAt(t-(e-this.prevString.length));e=this.syncTo(t);}return this.string.charCodeAt(t-e)}lineAfter(t){if(t>=this.length||t<0)return "";let e=this.cursorPos-this.string.length;return (t=this.cursorPos)&&(e=this.syncTo(t)),this.cursor.lineBreak?"":this.string.slice(t-e,Math.min(this.length-e,this.string.length))}read(t,e){let n=this.cursorPos-this.string.length;return t=this.cursorPos?this.doc.sliceString(t,e):this.string.slice(t-n,e-n)}clip(t){return new DocInput(this.doc,t)}}class EditorParseContext{constructor(t,e,n=[],r,i,s,o){this.parser=t,this.state=e,this.fragments=n,this.tree=r,this.viewport=i,this.skipped=s,this.scheduleOn=o,this.parse=null,this.tempSkipped=[];}work(t,e){if(this.tree!=Tree.empty&&(null==e?this.tree.length==this.state.doc.length:this.tree.length>=e))return this.takeTree(),!0;this.parse||(this.parse=this.parser.startParse(new DocInput(this.state.doc),0,this));let n=Date.now()+t;for(;;){let t=this.parse.advance();if(t)return this.fragments=this.withoutTempSkipped(TreeFragment.addTree(t)),this.parse=null,this.tree=t,!0;if(null!=e&&this.parse.pos>=e)return this.takeTree(),!0;if(Date.now()>n)return !1}}takeTree(){this.parse&&this.parse.pos>this.tree.length&&(this.tree=this.parse.forceFinish(),this.fragments=this.withoutTempSkipped(TreeFragment.addTree(this.tree,this.fragments,!0)));}withoutTempSkipped(t){for(let e;e=this.tempSkipped.pop();)t=cutFragments(t,e.from,e.to);return t}changes(t,e){let{fragments:n,tree:r,viewport:i,skipped:s}=this;if(this.takeTree(),!t.empty){let e=[];if(t.iterChangedRanges(((t,n,r,i)=>e.push({fromA:t,toA:n,fromB:r,toB:i}))),n=TreeFragment.applyChanges(n,e),r=Tree.empty,i={from:t.mapPos(i.from,-1),to:t.mapPos(i.to,1)},this.skipped.length){s=[];for(let e of this.skipped){let n=t.mapPos(e.from,1),r=t.mapPos(e.to,-1);nt.from&&(this.fragments=cutFragments(this.fragments,n,r),this.skipped.splice(e--,1));}return this.skipped.length({pos:n,advance(){let i=r;return i.tempSkipped.push({from:n,to:e.length}),t&&(i.scheduleOn=i.scheduleOn?Promise.all([i.scheduleOn,t]):t),this.pos=e.length,new Tree(NodeType.none,[],[],e.length-n)},forceFinish(){return this.advance()}})}}movedPast(t){return this.tree.length=t}}function cutFragments(t,e,n){return TreeFragment.applyChanges(t,[{fromA:e,toA:n,fromB:e,toB:n}])}EditorParseContext.skippingParser=EditorParseContext.getSkippingParser();class LanguageState{constructor(t){this.context=t,this.tree=t.tree;}apply(t){if(!t.docChanged)return this;let e=this.context.changes(t.changes,t.state),n=this.context.tree.length==t.startState.doc.length?void 0:Math.max(t.changes.mapPos(this.context.tree.length),e.viewport.to);return e.work(25,n)||e.takeTree(),new LanguageState(e)}static init(t){let e=new EditorParseContext(t.facet(language).parser,t,[],Tree.empty,{from:0,to:t.doc.length},[],null);return e.work(25)||e.takeTree(),new LanguageState(e)}}Language.state=StateField.define({create:LanguageState.init,update(t,e){for(let t of e.effects)if(t.is(Language.setState))return t.value;return e.startState.facet(language)!=e.state.facet(language)?LanguageState.init(e.state):t.apply(e)}});let requestIdle="undefined"!=typeof window&&window.requestIdleCallback||((t,{timeout:e})=>setTimeout(t,e)),cancelIdle="undefined"!=typeof window&&window.cancelIdleCallback||clearTimeout;const parseWorker=ViewPlugin.fromClass(class{constructor(t){this.view=t,this.working=-1,this.chunkEnd=-1,this.chunkBudget=-1,this.work=this.work.bind(this),this.scheduleWork();}update(t){let e=this.view.state.field(Language.state).context;t.viewportChanged&&(e.updateViewport(t.view.viewport)&&e.reset(),this.view.viewport.to>e.tree.length&&this.scheduleWork()),t.docChanged&&(this.view.hasFocus&&(this.chunkBudget+=50),this.scheduleWork()),this.checkAsyncSchedule(e);}scheduleWork(){if(this.working>-1)return;let{state:t}=this.view,e=t.field(Language.state),n=e.context.fragments;e.tree.length>=t.doc.length&&n.length&&0==n[0].from&&n[0].to>=t.doc.length||(this.working=requestIdle(this.work,{timeout:500}));}work(t){this.working=-1;let e=Date.now();if(this.chunkEnd=r+1e6)return;let s=Math.min(this.chunkBudget,t?Math.max(25,t.timeRemaining()):100),o=i.context.work(s,r+1e6);this.chunkBudget-=Date.now()-e,(o||this.chunkBudget<=0||i.context.movedPast(r))&&(i.context.takeTree(),this.view.dispatch({effects:Language.setState.of(new LanguageState(i.context))})),!o&&this.chunkBudget>0&&this.scheduleWork(),this.checkAsyncSchedule(i.context);}checkAsyncSchedule(t){t.scheduleOn&&(t.scheduleOn.then((()=>this.scheduleWork())),t.scheduleOn=null);}destroy(){this.working>=0&&cancelIdle(this.working);}},{eventHandlers:{focus(){this.scheduleWork();}}}),language=Facet.define({combine:t=>t.length?t[0]:null,enables:[Language.state,parseWorker]});class LanguageSupport{constructor(t,e=[]){this.language=t,this.support=e,this.extension=[t,e];}}class LanguageDescription{constructor(t,e,n,r,i){this.name=t,this.alias=e,this.extensions=n,this.filename=r,this.loadFunc=i,this.support=void 0,this.loading=null;}load(){return this.loading||(this.loading=this.loadFunc().then((t=>this.support=t),(t=>{throw this.loading=null,t})))}static of(t){return new LanguageDescription(t.name,(t.alias||[]).concat(t.name).map((t=>t.toLowerCase())),t.extensions||[],t.filename,t.load)}static matchFilename(t,e){for(let n of t)if(n.filename&&n.filename.test(e))return n;let n=/\.([^.]+)$/.exec(e);if(n)for(let e of t)if(e.extensions.indexOf(n[1])>-1)return e;return null}static matchLanguageName(t,e,n=!0){e=e.toLowerCase();for(let n of t)if(n.alias.some((t=>t==e)))return n;if(n)for(let n of t)for(let t of n.alias){let r=e.indexOf(t);if(r>-1&&(t.length>2||!/\w/.test(e[r-1])&&!/\w/.test(e[r+t.length])))return n}return null}}const indentService=Facet.define(),indentUnit=Facet.define({combine:t=>{if(!t.length)return " ";if(!/^(?: +|\t+)$/.test(t[0]))throw new Error("Invalid indent unit: "+JSON.stringify(t[0]));return t[0]}});function getIndentUnit(t){let e=t.facet(indentUnit);return 9==e.charCodeAt(0)?t.tabSize*e.length:e.length}function indentString(t,e){let n="",r=t.tabSize;if(9==t.facet(indentUnit).charCodeAt(0))for(;e>=r;)n+="\t",e-=r;for(let t=0;tt?r:1e9,this.state.doc.lineAt(t).to))}column(t){var e;let n=this.state.doc.lineAt(t),r=n.text.slice(0,t-n.from),i=this.countColumn(r,t-n.from),s=(null===(e=this.options)||void 0===e?void 0:e.overrideIndentation)?this.options.overrideIndentation(n.from):-1;return s>-1&&(i+=s-this.countColumn(r,r.search(/\S/))),i}countColumn(t,e){return countColumn(e<0?t:t.slice(0,e),0,this.state.tabSize)}lineIndent(t){var e;let n=null===(e=this.options)||void 0===e?void 0:e.overrideIndentation;if(n){let e=n(t.from);if(e>-1)return e}return this.countColumn(t.text,t.text.search(/\S/))}}const indentNodeProp=new NodeProp;function syntaxIndentation(t,e,n){let r=e.resolve(n);for(let t=r,e=n;;){let n=t.childBefore(e);if(!n)break;n.type.isError&&n.from==n.to?(r=t,e=n.from):(t=n,e=t.to+1);}return indentFrom(r,n,t)}function ignoreClosed(t){var e,n;return t.pos==(null===(e=t.options)||void 0===e?void 0:e.simulateBreak)&&(null===(n=t.options)||void 0===n?void 0:n.simulateDoubleBreak)}function indentStrategy(t){let e=t.type.prop(indentNodeProp);if(e)return e;let n,r=t.firstChild;if(r&&(n=r.type.prop(NodeProp.closedBy))){let e=t.lastChild,r=e&&n.indexOf(e.name)>-1;return t=>delimitedStrategy(t,!0,1,void 0,r&&!ignoreClosed(t)?e.from:void 0)}return null==t.parent?topIndent$1:null}function indentFrom(t,e,n){for(;t;t=t.parent){let r=indentStrategy(t);if(r)return r(new TreeIndentContext(n,e,t))}return null}function topIndent$1(){return 0}class TreeIndentContext extends IndentContext{constructor(t,e,n){super(t.state,t.options),this.base=t,this.pos=e,this.node=n;}get textAfter(){return this.textAfterPos(this.pos)}get baseIndent(){let t=this.state.doc.lineAt(this.node.from);for(;;){let e=this.node.resolve(t.from);for(;e.parent&&e.parent.from==e.from;)e=e.parent;if(isParent(e,this.node))break;t=this.state.doc.lineAt(e.from);}return this.lineIndent(t)}continue(){let t=this.node.parent;return t?indentFrom(t,this.pos,this.base):0}}function isParent(t,e){for(let n=e;n;n=n.parent)if(t==n)return !0;return !1}function bracketedAligned(t){var e;let n=t.node,r=n.childAfter(n.from),i=n.lastChild;if(!r)return null;let s=null===(e=t.options)||void 0===e?void 0:e.simulateBreak,o=t.state.doc.lineAt(r.from),a=null==s||s<=o.from?o.to:Math.min(o.to,s);for(let t=r.to;;){let e=n.childAfter(t);if(!e||e==i)return null;if(!e.type.isSkipped)return e.fromdelimitedStrategy(r,e,n,t)}function delimitedStrategy(t,e,n,r,i){let s=t.textAfter,o=s.match(/^\s*/)[0].length,a=r&&s.slice(o,o+r.length)==r||i==t.pos+o,l=e?bracketedAligned(t):null;return l?a?t.column(l.from):t.column(l.to):t.baseIndent+(a?0:t.unit*n)}const flatIndent=t=>t.baseIndent;function continuedIndent({except:t,units:e=1}={}){return n=>{let r=t&&t.test(n.textAfter);return n.baseIndent+(r?0:e*n.unit)}}Facet.define();const foldNodeProp=new NodeProp;function foldInside(t){let e=t.firstChild,n=t.lastChild;return e&&e.tocombineConfig(e,{afterCursor:!0,brackets:"()[]{}",maxScanDistance:1e4})}),matchingMark=Decoration.mark({class:"cm-matchingBracket"}),nonmatchingMark=Decoration.mark({class:"cm-nonmatchingBracket"}),bracketMatchingState=StateField.define({create:()=>Decoration.none,update(e,t){if(!t.docChanged&&!t.selection)return e;let r=[],a=t.state.facet(bracketMatchingConfig);for(let e of t.state.selection.ranges){if(!e.empty)continue;let n=matchBrackets(t.state,e.head,-1,a)||e.head>0&&matchBrackets(t.state,e.head-1,1,a)||a.afterCursor&&(matchBrackets(t.state,e.head,1,a)||e.headEditorView.decorations.from(e)}),bracketMatchingUnique=[bracketMatchingState,baseTheme$2];function bracketMatching(e={}){return [bracketMatchingConfig.of(e),bracketMatchingUnique]}function matchingNodes(e,t,r){let a=e.prop(t<0?NodeProp.openedBy:NodeProp.closedBy);if(a)return a;if(1==e.name.length){let a=r.indexOf(e.name);if(a>-1&&a%2==(t<0?1:0))return [r[a+t]]}return null}function matchBrackets(e,t,r,a={}){let n,o=a.maxScanDistance||1e4,c=a.brackets||"()[]{}",i=syntaxTree(e),m=i.resolve(t,r);return (n=matchingNodes(m.type,r,c))?matchMarkedBrackets(e,t,r,m,n,c):matchPlainBrackets(e,t,r,i,m.type,o,c)}function matchMarkedBrackets(e,t,r,a,n,o){let c=a.parent,i={from:a.from,to:a.to},m=0,s=null==c?void 0:c.cursor;if(s&&(r<0?s.childBefore(a.from):s.childAfter(a.to)))do{if(r<0?s.to<=a.from:s.from>=a.to){if(0==m&&n.indexOf(s.type.name)>-1)return {start:i,end:{from:s.from,to:s.to},matched:!0};if(matchingNodes(s.type,r,o))m++;else if(matchingNodes(s.type,-r,o)&&(m--,0==m))return {start:i,end:{from:s.from,to:s.to},matched:!1}}}while(r<0?s.prevSibling():s.nextSibling());return {start:i,matched:!1}}function matchPlainBrackets(e,t,r,a,n,o,c){let i=r<0?e.sliceDoc(t-1,t):e.sliceDoc(t,t+1),m=c.indexOf(i);if(m<0||m%2==0!=r>0)return null;let s={from:r<0?t-1:t,to:r>0?t+1:t},f=e.doc.iterRange(t,r>0?e.doc.length:0),h=0;for(let e=0;!f.next().done&&e<=o;){let o=f.value;r<0&&(e+=o.length);let i=t+e*r;for(let e=r>0?0:o.length-1,t=r>0?o.length:-1;e!=t;e+=r){let t=c.indexOf(o[e]);if(!(t<0||a.resolve(i+e,1).type!=n))if(t%2==0==r>0)h++;else {if(1==h)return {start:s,end:{from:i+e,to:i+e+1},matched:t>>1==m>>1};h--;}}r>0&&(e+=o.length);}return f.done?{start:s,matched:!1}:null}
-
- const defaults$3={brackets:["(","[","{","'",'"'],before:")]}'\":;>"},closeBracketEffect=StateEffect.define({map(e,t){let r=t.mapPos(e,-1,MapMode.TrackAfter);return null==r?void 0:r}}),skipBracketEffect=StateEffect.define({map:(e,t)=>t.mapPos(e)}),closedBracket=new class extends RangeValue{};closedBracket.startSide=1,closedBracket.endSide=-1;const bracketState=StateField.define({create:()=>RangeSet.empty,update(e,t){if(t.selection){let r=t.state.doc.lineAt(t.selection.main.head).from,n=t.startState.doc.lineAt(t.startState.selection.main.head).from;r!=t.changes.mapPos(n,-1)&&(e=RangeSet.empty);}e=e.map(t.changes);for(let r of t.effects)r.is(closeBracketEffect)?e=e.update({add:[closedBracket.range(r.value,r.value+1)]}):r.is(skipBracketEffect)&&(e=e.update({filter:e=>e!=r.value}));return e}});function closeBrackets(){return [EditorView.inputHandler.of(handleInput),bracketState]}function closing$2(e){for(let t=0;t<"()[]{}<>".length;t+=2)if("()[]{}<>".charCodeAt(t)==e)return "()[]{}<>".charAt(t+1);return fromCodePoint(e<128?e:e+1)}function config(e,t){return e.languageDataAt("closeBrackets",t)[0]||defaults$3}function handleInput(e,t,r,n){if(e.composing)return !1;let o=e.state.selection.main;if(n.length>2||2==n.length&&1==codePointSize(codePointAt(n,0))||t!=o.from||r!=o.to)return !1;let a=insertBracket(e.state,n);return !!a&&(e.dispatch(a),!0)}const deleteBracketPair=({state:e,dispatch:t})=>{let r=config(e,e.selection.main.head).brackets||defaults$3.brackets,n=null,o=e.changeByRange((t=>{if(t.empty){let n=prevChar(e.doc,t.head);for(let o of r)if(o==n&&nextChar(e.doc,t.head)==closing$2(codePointAt(o,0)))return {changes:{from:t.head-o.length,to:t.head+o.length},range:EditorSelection.cursor(t.head-o.length),annotations:Transaction.userEvent.of("delete")}}return {range:n=t}}));return n||t(e.update(o,{scrollIntoView:!0})),!n},closeBracketsKeymap=[{key:"Backspace",run:deleteBracketPair}];function insertBracket(e,t){let r=config(e,e.selection.main.head),n=r.brackets||defaults$3.brackets;for(let o of n){let a=closing$2(codePointAt(o,0));if(t==o)return a==o?handleSame(e,o,n.indexOf(o+o+o)>-1):handleOpen(e,o,a,r.before||defaults$3.before);if(t==a&&closedBracketAt(e,e.selection.main.from))return handleClose(e,o,a)}return null}function closedBracketAt(e,t){let r=!1;return e.field(bracketState).between(0,e.doc.length,(e=>{e==t&&(r=!0);})),r}function nextChar(e,t){let r=e.sliceString(t,t+2);return r.slice(0,codePointSize(codePointAt(r,0)))}function prevChar(e,t){let r=e.sliceString(t-2,t);return codePointSize(codePointAt(r,0))==r.length?r:r.slice(1)}function handleOpen(e,t,r,n){let o=null,a=e.changeByRange((a=>{if(!a.empty)return {changes:[{insert:t,from:a.from},{insert:r,from:a.to}],effects:closeBracketEffect.of(a.to+t.length),range:EditorSelection.range(a.anchor+t.length,a.head+t.length)};let c=nextChar(e.doc,a.head);return !c||/\s/.test(c)||n.indexOf(c)>-1?{changes:{insert:t+r,from:a.head},effects:closeBracketEffect.of(a.head+t.length),range:EditorSelection.cursor(a.head+t.length)}:{range:o=a}}));return o?null:e.update(a,{scrollIntoView:!0,annotations:Transaction.userEvent.of("input")})}function handleClose(e,t,r){let n=null,o=e.selection.ranges.map((t=>t.empty&&nextChar(e.doc,t.head)==r?EditorSelection.cursor(t.head+r.length):n=t));return n?null:e.update({selection:EditorSelection.create(o,e.selection.mainIndex),scrollIntoView:!0,effects:e.selection.ranges.map((({from:e})=>skipBracketEffect.of(e)))})}function handleSame(e,t,r){let n=null,o=e.changeByRange((o=>{if(!o.empty)return {changes:[{insert:t,from:o.from},{insert:t,from:o.to}],effects:closeBracketEffect.of(o.to+t.length),range:EditorSelection.range(o.anchor+t.length,o.head+t.length)};let a=o.head,c=nextChar(e.doc,a);if(c==t){if(nodeStart$1(e,a))return {changes:{insert:t+t,from:a},effects:closeBracketEffect.of(a+t.length),range:EditorSelection.cursor(a+t.length)};if(closedBracketAt(e,a)){let n=r&&e.sliceDoc(a,a+3*t.length)==t+t+t;return {range:EditorSelection.cursor(a+t.length*(n?3:1)),effects:skipBracketEffect.of(a)}}}else {if(r&&e.sliceDoc(a-2*t.length,a)==t+t&&nodeStart$1(e,a-2*t.length))return {changes:{insert:t+t+t+t,from:a},effects:closeBracketEffect.of(a+t.length),range:EditorSelection.cursor(a+t.length)};if(e.charCategorizer(a)(c)!=CharCategory.Word){let r=e.sliceDoc(a-1,a);if(r!=t&&e.charCategorizer(a)(r)!=CharCategory.Word)return {changes:{insert:t+t,from:a},effects:closeBracketEffect.of(a+t.length),range:EditorSelection.cursor(a+t.length)}}}return {range:n=o}}));return n?null:e.update(o,{scrollIntoView:!0,annotations:Transaction.userEvent.of("input")})}function nodeStart$1(e,t){let r=syntaxTree(e).resolve(t+1);return r.parent&&r.from==t}
-
- function updateSel(e,t){return EditorSelection.create(e.ranges.map(t),e.mainIndex)}function setSel(e,t){return e.update({selection:t,scrollIntoView:!0,annotations:Transaction.userEvent.of("keyboardselection")})}function moveSel({state:e,dispatch:t},r){let o=updateSel(e.selection,r);return !o.eq(e.selection)&&(t(setSel(e,o)),!0)}function rangeEnd(e,t){return EditorSelection.cursor(t?e.to:e.from)}function cursorByChar(e,t){return moveSel(e,(r=>r.empty?e.moveByChar(r,t):rangeEnd(r,t)))}const cursorCharLeft=e=>cursorByChar(e,e.textDirection!=Direction.LTR),cursorCharRight=e=>cursorByChar(e,e.textDirection==Direction.LTR);function cursorByGroup(e,t){return moveSel(e,(r=>r.empty?e.moveByGroup(r,t):rangeEnd(r,t)))}const cursorGroupLeft=e=>cursorByGroup(e,e.textDirection!=Direction.LTR),cursorGroupRight=e=>cursorByGroup(e,e.textDirection==Direction.LTR),cursorGroupForward=e=>cursorByGroup(e,!0),cursorGroupBackward=e=>cursorByGroup(e,!1);function interestingNode(e,t,r){if(t.type.prop(r))return !0;let o=t.to-t.from;return o&&(o>2||/[^\s,.;:]/.test(e.sliceDoc(t.from,t.to)))||t.firstChild}function moveBySyntax(e,t,r){let o,n,a=syntaxTree(e).resolve(t.head),c=r?NodeProp.closedBy:NodeProp.openedBy;for(let o=t.head;;){let t=r?a.childAfter(o):a.childBefore(o);if(!t)break;interestingNode(e,t,c)?a=t:o=r?t.to:t.from;}return n=a.type.prop(c)&&(o=r?matchBrackets(e,a.from,1):matchBrackets(e,a.to,-1))&&o.matched?r?o.end.to:o.end.from:r?a.to:a.from,EditorSelection.cursor(n,r?-1:1)}const cursorSyntaxLeft=e=>moveSel(e,(t=>moveBySyntax(e.state,t,e.textDirection!=Direction.LTR))),cursorSyntaxRight=e=>moveSel(e,(t=>moveBySyntax(e.state,t,e.textDirection==Direction.LTR)));function cursorByLine(e,t){return moveSel(e,(r=>r.empty?e.moveVertically(r,t):rangeEnd(r,t)))}const cursorLineUp=e=>cursorByLine(e,!1),cursorLineDown=e=>cursorByLine(e,!0);function cursorByPage(e,t){return moveSel(e,(r=>r.empty?e.moveVertically(r,t,e.dom.clientHeight):rangeEnd(r,t)))}const cursorPageUp=e=>cursorByPage(e,!1),cursorPageDown=e=>cursorByPage(e,!0);function moveByLineBoundary(e,t,r){let o=e.visualLineAt(t.head),n=e.moveToLineBoundary(t,r);if(n.head==t.head&&n.head!=(r?o.to:o.from)&&(n=e.moveToLineBoundary(t,r,!1)),!r&&n.head==o.from&&o.length){let r=/^\s*/.exec(e.state.sliceDoc(o.from,Math.min(o.from+100,o.to)))[0].length;r&&t.head!=o.from+r&&(n=EditorSelection.cursor(o.from+r));}return n}const cursorLineBoundaryForward=e=>moveSel(e,(t=>moveByLineBoundary(e,t,!0))),cursorLineBoundaryBackward=e=>moveSel(e,(t=>moveByLineBoundary(e,t,!1))),cursorLineStart=e=>moveSel(e,(t=>EditorSelection.cursor(e.visualLineAt(t.head).from,1))),cursorLineEnd=e=>moveSel(e,(t=>EditorSelection.cursor(e.visualLineAt(t.head).to,-1)));function toMatchingBracket(e,t,r){let o=!1,n=updateSel(e.selection,(t=>{let n=matchBrackets(e,t.head,-1)||matchBrackets(e,t.head,1)||t.head>0&&matchBrackets(e,t.head-1,1)||t.headtoMatchingBracket(e,t,!1);function extendSel(e,t){let r=updateSel(e.state.selection,(e=>{let r=t(e);return EditorSelection.range(e.anchor,r.head,r.goalColumn)}));return !r.eq(e.state.selection)&&(e.dispatch(setSel(e.state,r)),!0)}function selectByChar(e,t){return extendSel(e,(r=>e.moveByChar(r,t)))}const selectCharLeft=e=>selectByChar(e,e.textDirection!=Direction.LTR),selectCharRight=e=>selectByChar(e,e.textDirection==Direction.LTR);function selectByGroup(e,t){return extendSel(e,(r=>e.moveByGroup(r,t)))}const selectGroupLeft=e=>selectByGroup(e,e.textDirection!=Direction.LTR),selectGroupRight=e=>selectByGroup(e,e.textDirection==Direction.LTR),selectGroupForward=e=>selectByGroup(e,!0),selectGroupBackward=e=>selectByGroup(e,!1),selectSyntaxLeft=e=>extendSel(e,(t=>moveBySyntax(e.state,t,e.textDirection!=Direction.LTR))),selectSyntaxRight=e=>extendSel(e,(t=>moveBySyntax(e.state,t,e.textDirection==Direction.LTR)));function selectByLine(e,t){return extendSel(e,(r=>e.moveVertically(r,t)))}const selectLineUp=e=>selectByLine(e,!1),selectLineDown=e=>selectByLine(e,!0);function selectByPage(e,t){return extendSel(e,(r=>e.moveVertically(r,t,e.dom.clientHeight)))}const selectPageUp=e=>selectByPage(e,!1),selectPageDown=e=>selectByPage(e,!0),selectLineBoundaryForward=e=>extendSel(e,(t=>moveByLineBoundary(e,t,!0))),selectLineBoundaryBackward=e=>extendSel(e,(t=>moveByLineBoundary(e,t,!1))),selectLineStart=e=>extendSel(e,(t=>EditorSelection.cursor(e.visualLineAt(t.head).from))),selectLineEnd=e=>extendSel(e,(t=>EditorSelection.cursor(e.visualLineAt(t.head).to))),cursorDocStart=({state:e,dispatch:t})=>(t(setSel(e,{anchor:0})),!0),cursorDocEnd=({state:e,dispatch:t})=>(t(setSel(e,{anchor:e.doc.length})),!0),selectDocStart=({state:e,dispatch:t})=>(t(setSel(e,{anchor:e.selection.main.anchor,head:0})),!0),selectDocEnd=({state:e,dispatch:t})=>(t(setSel(e,{anchor:e.selection.main.anchor,head:e.doc.length})),!0),selectAll=({state:e,dispatch:t})=>(t(e.update({selection:{anchor:0,head:e.doc.length},annotations:Transaction.userEvent.of("keyboardselection")})),!0),selectLine=({state:e,dispatch:t})=>{let r=selectedLineBlocks(e).map((({from:t,to:r})=>EditorSelection.range(t,Math.min(r+1,e.doc.length))));return t(e.update({selection:EditorSelection.create(r),annotations:Transaction.userEvent.of("keyboardselection")})),!0},selectParentSyntax=({state:e,dispatch:t})=>{let r=updateSel(e.selection,(t=>{var r;let o=syntaxTree(e).resolve(t.head,1);for(;!(o.from=t.to||o.to>t.to&&o.from<=t.from)&&(null===(r=o.parent)||void 0===r?void 0:r.parent);)o=o.parent;return EditorSelection.range(o.to,o.from)}));return t(setSel(e,r)),!0},simplifySelection=({state:e,dispatch:t})=>{let r=e.selection,o=null;return r.ranges.length>1?o=EditorSelection.create([r.main]):r.main.empty||(o=EditorSelection.create([EditorSelection.cursor(r.main.head)])),!!o&&(t(setSel(e,o)),!0)};function deleteBy({state:e,dispatch:t},r){let o=e.changeByRange((e=>{let{from:t,to:o}=e;if(t==o){let e=r(t);t=Math.min(t,e),o=Math.max(o,e);}return t==o?{range:e}:{changes:{from:t,to:o},range:EditorSelection.cursor(t)}}));return !o.changes.empty&&(t(e.update(o,{scrollIntoView:!0,annotations:Transaction.userEvent.of("delete")})),!0)}const deleteByChar=(e,t,r)=>deleteBy(e,(o=>{let n,a,{state:c}=e,i=c.doc.lineAt(o);if(!t&&o>i.from&&odeleteByChar(e,!1,!0),deleteCharBackward=e=>deleteByChar(e,!1,!1),deleteCharForward=e=>deleteByChar(e,!0,!1),deleteByGroup=(e,t)=>deleteBy(e,(r=>{let o=r,{state:n}=e,a=n.doc.lineAt(o),c=n.charCategorizer(o);for(let e=null;;){if(o==(t?a.to:a.from)){o==r&&a.number!=(t?n.doc.lines:1)&&(o+=t?1:-1);break}let i=findClusterBreak(a.text,o-a.from,t)+a.from,s=a.text.slice(Math.min(o,i)-a.from,Math.max(o,i)-a.from),l=c(s);if(null!=e&&l!=e)break;" "==s&&o==r||(e=l),o=i;}return o})),deleteGroupBackward=e=>deleteByGroup(e,!1),deleteGroupForward=e=>deleteByGroup(e,!0),deleteToLineEnd=e=>deleteBy(e,(t=>{let r=e.visualLineAt(t).to;return tdeleteBy(e,(t=>{let r=e.visualLineAt(t).from;return t>r?r:Math.max(0,t-1)})),splitLine=({state:e,dispatch:t})=>{let r=e.changeByRange((e=>({changes:{from:e.from,to:e.to,insert:Text.of(["",""])},range:EditorSelection.cursor(e.from)})));return t(e.update(r,{scrollIntoView:!0,annotations:Transaction.userEvent.of("input")})),!0},transposeChars=({state:e,dispatch:t})=>{let r=e.changeByRange((t=>{if(!t.empty||0==t.from||t.from==e.doc.length)return {range:t};let r=t.from,o=e.doc.lineAt(r),n=r==o.from?r-1:findClusterBreak(o.text,r-o.from,!1)+o.from,a=r==o.to?r+1:findClusterBreak(o.text,r-o.from,!0)+o.from;return {changes:{from:n,to:a,insert:e.doc.slice(r,a).append(e.doc.slice(n,r))},range:EditorSelection.cursor(a)}}));return !r.changes.empty&&(t(e.update(r,{scrollIntoView:!0})),!0)};function selectedLineBlocks(e){let t=[],r=-1;for(let o of e.selection.ranges){let n=e.doc.lineAt(o.from),a=e.doc.lineAt(o.to);r==n.number?t[t.length-1].to=a.to:t.push({from:n.from,to:a.to}),r=a.number;}return t}function moveLine(e,t,r){let o=[];for(let t of selectedLineBlocks(e)){if(r?t.to==e.doc.length:0==t.from)continue;let n=e.doc.lineAt(r?t.to+1:t.from-1);r?o.push({from:t.to,to:n.to},{from:t.from,insert:n.text+e.lineBreak}):o.push({from:n.from,to:t.from},{from:t.to,insert:e.lineBreak+n.text});}return !!o.length&&(t(e.update({changes:o,scrollIntoView:!0})),!0)}const moveLineUp=({state:e,dispatch:t})=>moveLine(e,t,!1),moveLineDown=({state:e,dispatch:t})=>moveLine(e,t,!0);function copyLine(e,t,r){let o=[];for(let t of selectedLineBlocks(e))r?o.push({from:t.from,insert:e.doc.slice(t.from,t.to)+e.lineBreak}):o.push({from:t.to,insert:e.lineBreak+e.doc.slice(t.from,t.to)});return t(e.update({changes:o,scrollIntoView:!0})),!0}const copyLineUp=({state:e,dispatch:t})=>copyLine(e,t,!1),copyLineDown=({state:e,dispatch:t})=>copyLine(e,t,!0),deleteLine=e=>{let{state:t}=e,r=t.changes(selectedLineBlocks(t).map((({from:e,to:r})=>(e>0?e--:re.moveVertically(t,!0))).map(r);return e.dispatch({changes:r,selection:o,scrollIntoView:!0}),!0};function isBetweenBrackets(e,t){if(/\(\)|\[\]|\{\}/.test(e.sliceDoc(t-1,t+1)))return {from:t,to:t};let r,o=syntaxTree(e).resolve(t),n=o.childBefore(t),a=o.childAfter(t);return n&&a&&n.to<=t&&a.from>=t&&(r=n.type.prop(NodeProp.closedBy))&&r.indexOf(a.name)>-1&&e.doc.lineAt(n.to).from==e.doc.lineAt(a.from).from?{from:n.to,to:a.from}:null}const insertNewlineAndIndent=({state:e,dispatch:t})=>{let r=e.changeByRange((({from:t,to:r})=>{let o=t==r&&isBetweenBrackets(e,t),n=new IndentContext(e,{simulateBreak:t,simulateDoubleBreak:!!o}),a=getIndentation(n,t);null==a&&(a=/^\s*/.exec(e.doc.lineAt(t).text)[0].length);let c=e.doc.lineAt(t);for(;rc.from&&t{let n=[];for(let a=o.from;a<=o.to;){let c=e.doc.lineAt(a);c.number>r&&(o.empty||o.to>c.from)&&(t(c,n,o),r=c.number),a=c.to+1;}let a=e.changes(n);return {changes:n,range:EditorSelection.range(a.mapPos(o.anchor,1),a.mapPos(o.head,1))}}))}const indentSelection=({state:e,dispatch:t})=>{let r=Object.create(null),o=new IndentContext(e,{overrideIndentation:e=>{let t=r[e];return null==t?-1:t}}),n=changeBySelectedLine(e,((t,n,a)=>{let c=getIndentation(o,t.from);if(null==c)return;let i=/^\s*/.exec(t.text)[0],s=indentString(e,c);(i!=s||a.from(t(e.update(changeBySelectedLine(e,((t,r)=>{r.push({from:t.from,insert:e.facet(indentUnit)});})))),!0),indentLess=({state:e,dispatch:t})=>(t(e.update(changeBySelectedLine(e,((t,r)=>{let o=/^\s*/.exec(t.text)[0];if(!o)return;let n=countColumn(o,0,e.tabSize),a=0,c=indentString(e,Math.max(0,n-getIndentUnit(e)));for(;a",run:cursorDocEnd},{key:"Ctrl-v",run:cursorPageDown},{key:"Alt-v",run:cursorPageUp}],standardKeymap=[{key:"ArrowLeft",run:cursorCharLeft,shift:selectCharLeft},{key:"Mod-ArrowLeft",mac:"Alt-ArrowLeft",run:cursorGroupLeft,shift:selectGroupLeft},{mac:"Cmd-ArrowLeft",run:cursorLineBoundaryBackward,shift:selectLineBoundaryBackward},{key:"ArrowRight",run:cursorCharRight,shift:selectCharRight},{key:"Mod-ArrowRight",mac:"Alt-ArrowRight",run:cursorGroupRight,shift:selectGroupRight},{mac:"Cmd-ArrowRight",run:cursorLineBoundaryForward,shift:selectLineBoundaryForward},{key:"ArrowUp",run:cursorLineUp,shift:selectLineUp},{mac:"Cmd-ArrowUp",run:cursorDocStart,shift:selectDocStart},{mac:"Ctrl-ArrowUp",run:cursorPageUp,shift:selectPageUp},{key:"ArrowDown",run:cursorLineDown,shift:selectLineDown},{mac:"Cmd-ArrowDown",run:cursorDocEnd,shift:selectDocEnd},{mac:"Ctrl-ArrowDown",run:cursorPageDown,shift:selectPageDown},{key:"PageUp",run:cursorPageUp,shift:selectPageUp},{key:"PageDown",run:cursorPageDown,shift:selectPageDown},{key:"Home",run:cursorLineBoundaryBackward,shift:selectLineBoundaryBackward},{key:"Mod-Home",run:cursorDocStart,shift:selectDocStart},{key:"End",run:cursorLineBoundaryForward,shift:selectLineBoundaryForward},{key:"Mod-End",run:cursorDocEnd,shift:selectDocEnd},{key:"Enter",run:insertNewlineAndIndent},{key:"Mod-a",run:selectAll},{key:"Backspace",run:deleteCodePointBackward,shift:deleteCodePointBackward},{key:"Delete",run:deleteCharForward,shift:deleteCharForward},{key:"Mod-Backspace",mac:"Alt-Backspace",run:deleteGroupBackward},{key:"Mod-Delete",mac:"Alt-Delete",run:deleteGroupForward},{mac:"Mod-Backspace",run:deleteToLineStart},{mac:"Mod-Delete",run:deleteToLineEnd}].concat(emacsStyleKeymap.map((e=>({mac:e.key,run:e.run,shift:e.shift})))),defaultKeymap=[{key:"Alt-ArrowLeft",mac:"Ctrl-ArrowLeft",run:cursorSyntaxLeft,shift:selectSyntaxLeft},{key:"Alt-ArrowRight",mac:"Ctrl-ArrowRight",run:cursorSyntaxRight,shift:selectSyntaxRight},{key:"Alt-ArrowUp",run:moveLineUp},{key:"Shift-Alt-ArrowUp",run:copyLineUp},{key:"Alt-ArrowDown",run:moveLineDown},{key:"Shift-Alt-ArrowDown",run:copyLineDown},{key:"Escape",run:simplifySelection},{key:"Alt-l",mac:"Ctrl-l",run:selectLine},{key:"Mod-i",run:selectParentSyntax,preventDefault:!0},{key:"Mod-[",run:indentLess},{key:"Mod-]",run:indentMore},{key:"Mod-Alt-\\",run:indentSelection},{key:"Shift-Mod-k",run:deleteLine},{key:"Shift-Mod-\\",run:cursorMatchingBracket}].concat(standardKeymap);
-
- const fromHistory=Annotation.define(),isolateHistory=Annotation.define(),invertedEffects=Facet.define(),historyConfig=Facet.define({combine:e=>combineConfig(e,{minDepth:100,newGroupDelay:500},{minDepth:Math.max,newGroupDelay:Math.min})}),historyField_=StateField.define({create:()=>HistoryState.empty,update(e,t){let n=t.state.facet(historyConfig),o=t.annotation(fromHistory);if(o){let i=HistEvent.fromTransaction(t),s=o.side,r=0==s?e.undone:e.done;return r=i?updateBranch(r,r.length,n.minDepth,i):addSelection(r,t.startState.selection),new HistoryState(0==s?o.rest:r,0==s?r:o.rest)}let i=t.annotation(isolateHistory);if("full"!=i&&"before"!=i||(e=e.isolate()),!1===t.annotation(Transaction.addToHistory))return t.changes.empty?e:e.addMapping(t.changes.desc);let s=HistEvent.fromTransaction(t),r=t.annotation(Transaction.time),a=t.annotation(Transaction.userEvent);return s?e=e.addChanges(s,r,a,n.newGroupDelay,n.minDepth):t.selection&&(e=e.addSelection(t.startState.selection,r,a,n.newGroupDelay)),"full"!=i&&"after"!=i||(e=e.isolate()),e},toJSON:e=>({done:e.done.map((e=>e.toJSON())),undone:e.undone.map((e=>e.toJSON()))}),fromJSON:e=>new HistoryState(e.done.map(HistEvent.fromJSON),e.undone.map(HistEvent.fromJSON))});function history(e={}){return [historyField_,historyConfig.of(e),EditorView.domEventHandlers({beforeinput:(e,t)=>"historyUndo"==e.inputType?undo(t):"historyRedo"==e.inputType&&redo(t)})]}function cmd(e,t){return function({state:n,dispatch:o}){let i=n.field(historyField_,!1);if(!i)return !1;let s=i.pop(e,n,t);return !!s&&(o(s),!0)}}const undo=cmd(0,!1),redo=cmd(1,!1),undoSelection=cmd(0,!0),redoSelection=cmd(1,!0);class HistEvent{constructor(e,t,n,o,i){this.changes=e,this.effects=t,this.mapped=n,this.startSelection=o,this.selectionsAfter=i;}setSelAfter(e){return new HistEvent(this.changes,this.effects,this.mapped,this.startSelection,e)}toJSON(){var e,t,n;return {changes:null===(e=this.changes)||void 0===e?void 0:e.toJSON(),mapped:null===(t=this.mapped)||void 0===t?void 0:t.toJSON(),startSelection:null===(n=this.startSelection)||void 0===n?void 0:n.toJSON(),selectionsAfter:this.selectionsAfter.map((e=>e.toJSON()))}}static fromJSON(e){return new HistEvent(e.changes&&ChangeSet.fromJSON(e.changes),[],e.mapped&&ChangeDesc.fromJSON(e.mapped),e.startSelection&&EditorSelection.fromJSON(e.startSelection),e.selectionsAfter.map(EditorSelection.fromJSON))}static fromTransaction(e){let t=none$2;for(let n of e.startState.facet(invertedEffects)){let o=n(e);o.length&&(t=t.concat(o));}return !t.length&&e.changes.empty?null:new HistEvent(e.changes.invert(e.startState.doc),t,void 0,e.startState.selection,none$2)}static selection(e){return new HistEvent(void 0,none$2,void 0,void 0,e)}}function updateBranch(e,t,n,o){let i=t+1>n+20?t-n-1:0,s=e.slice(i,t);return s.push(o),s}function isAdjacent(e,t){let n=[],o=!1;return e.iterChangedRanges(((e,t)=>n.push(e,t))),t.iterChangedRanges(((e,t,i,s)=>{for(let e=0;e=t&&i<=r&&(o=!0);}})),o}function eqSelectionShape(e,t){return e.ranges.length==t.ranges.length&&0===e.ranges.filter(((e,n)=>e.empty!=t.ranges[n].empty)).length}function conc(e,t){return e.length?t.length?e.concat(t):e:t}const none$2=[];function addSelection(e,t){if(e.length){let n=e[e.length-1],o=n.selectionsAfter.slice(Math.max(0,n.selectionsAfter.length-200));return o.length&&o[o.length-1].eq(t)?e:(o.push(t),updateBranch(e,e.length-1,1e9,n.setSelAfter(o)))}return [HistEvent.selection([t])]}function popSelection(e){let t=e[e.length-1],n=e.slice();return n[e.length-1]=t.setSelAfter(t.selectionsAfter.slice(0,t.selectionsAfter.length-1)),n}function addMappingToBranch(e,t){if(!e.length)return e;let n=e.length,o=none$2;for(;n;){let i=mapEvent(e[n-1],t,o);if(i.changes&&!i.changes.empty||i.effects.length){let t=e.slice(0,n);return t[n-1]=i,t}t=i.mapped,n--,o=i.selectionsAfter;}return o.length?[HistEvent.selection(o)]:none$2}function mapEvent(e,t,n){let o=conc(e.selectionsAfter.length?e.selectionsAfter.map((e=>e.map(t))):none$2,n);if(!e.changes)return HistEvent.selection(o);let i=e.changes.map(t),s=t.mapDesc(e.changes,!0),r=e.mapped?e.mapped.composeDesc(s):s;return new HistEvent(i,StateEffect.mapEffects(e.effects,t),r,e.startSelection.map(s),o)}class HistoryState{constructor(e,t,n=0,o){this.done=e,this.undone=t,this.prevTime=n,this.prevUserEvent=o;}isolate(){return this.prevTime?new HistoryState(this.done,this.undone):this}addChanges(e,t,n,o,i){let s=this.done,r=s[s.length-1];return s=r&&r.changes&&t-this.prevTime0&&t-this.prevTimee.modified.indexOf(t)>-1?e:Modifier.get(e.base||e,e.modified.concat(t).sort(((t,e)=>t.id-e.id)))}}let nextModifierID=0;class Modifier{constructor(){this.instances=[],this.id=nextModifierID++;}static get(t,e){if(!e.length)return t;let a=e[0].instances.find((a=>a.base==t&&sameArray(e,a.modified)));if(a)return a;let i=[],r=new Tag(i,t,e);for(let t of e)t.instances.push(r);let o=permute(e);for(let e of t.set)for(let t of o)i.push(Modifier.get(e,t));return r}}function sameArray(t,e){return t.length==e.length&&t.every(((t,a)=>t==e[a]))}function permute(t){let e=[t];for(let a=0;a0&&e+3==t.length){r=1;break}let i=/^"(?:[^"\\]|\\.)*?"|[^\/!]+/.exec(o);if(!i)throw new RangeError("Invalid path: "+t);if(a.push("*"==i[0]?null:'"'==i[0][0]?JSON.parse(i[0]):i[0]),e+=i[0].length,e==t.length)break;let l=t[e++];if(e==t.length&&"!"==l){r=0;break}if("/"!=l)throw new RangeError("Invalid path: "+t);o=t.slice(e);}let l=a.length-1,n=a[l];if(!n)throw new RangeError("Invalid path: "+t);let s=new Rule$1(i,r,l>0?a.slice(0,l):null);e[n]=s.sort(e[n]);}}return ruleNodeProp.add(e)}const ruleNodeProp=new NodeProp,highlightStyle=Facet.define({combine:t=>t.length?HighlightStyle.combinedMatch(t):null}),fallbackHighlightStyle=Facet.define({combine:t=>t.length?t[0].match:null});function getHighlightStyle(t){return t.facet(highlightStyle)||t.facet(fallbackHighlightStyle)}class Rule$1{constructor(t,e,a,i){this.tags=t,this.mode=e,this.context=a,this.next=i;}sort(t){return !t||t.deptht.scope))?void 0:Object.create(null);return (a,i)=>{let r=e&&e[a.id];if(void 0!==r)return r;let o=null;for(let e of t){let t=e.match(a,i);t&&(o=o?o+" "+t:t);}return e&&(e[a.id]=o),o}}static define(t,e){return new HighlightStyle(t,e||{})}static get(t,e,a){let i=getHighlightStyle(t);return i&&i(e,a||NodeType.none)}}class TreeHighlighter{constructor(t){this.markCache=Object.create(null),this.tree=syntaxTree(t.state),this.decorations=this.buildDeco(t,getHighlightStyle(t.state));}update(t){let e=syntaxTree(t.state),a=getHighlightStyle(t.state),i=a!=t.startState.facet(highlightStyle);e.length{a.add(t,e,this.markCache[i]||(this.markCache[i]=Decoration.mark({class:i})));}));return a.finish()}}const treeHighlighter=Prec.fallback(ViewPlugin.fromClass(TreeHighlighter,{decorations:t=>t.decorations})),nodeStack=[""];function highlightTreeRange(t,e,a,i,r){let o=e,l="",n=t.topNode.cursor;function s(t,e){l&&r(o,t,l),o=t,l=e;}!function t(r,o,g){let{type:c,from:h,to:m}=n;if(h>=a||m<=e)return;nodeStack[o]=c.name,c.isTop&&(g=c);let d=r,f=c.prop(ruleNodeProp),u=!1;for(;f;){if(!f.context||matchContext(f.context,nodeStack,o)){for(let t of f.tags){let e=i(t,g);e&&(d&&(d+=" "),d+=e,1==f.mode?r+=(r?" ":"")+e:0==f.mode&&(u=!0));}break}f=f.next;}let p=h;if(!u&&n.firstChild()){do{n.from>p&&l!=d&&s(p,d),p=n.to,t(r,o+1,g);}while(n.nextSibling());n.parent();}m>p&&l!=d&&s(p,d);}("",0,t.type),s(a,"");}function matchContext(t,e,a){if(t.length>a-1)return !1;for(let i=a-1,r=t.length-1;r>=0;r--,i--){let a=t[r];if(a&&a!=e[i])return !1}return !0}const t=Tag.define,comment=t(),name=t(),typeName=t(name),literal=t(),string$1=t(literal),number$1=t(literal),content$1=t(),heading=t(content$1),keyword$1=t(),operator$2=t(),punctuation$1=t(),bracket=t(punctuation$1),meta=t(),tags$1={comment:comment,lineComment:t(comment),blockComment:t(comment),docComment:t(comment),name:name,variableName:t(name),typeName:typeName,tagName:t(typeName),propertyName:t(name),className:t(name),labelName:t(name),namespace:t(name),macroName:t(name),literal:literal,string:string$1,docString:t(string$1),character:t(string$1),number:number$1,integer:t(number$1),float:t(number$1),bool:t(literal),regexp:t(literal),escape:t(literal),color:t(literal),url:t(literal),keyword:keyword$1,self:t(keyword$1),null:t(keyword$1),atom:t(keyword$1),unit:t(keyword$1),modifier:t(keyword$1),operatorKeyword:t(keyword$1),controlKeyword:t(keyword$1),definitionKeyword:t(keyword$1),operator:operator$2,derefOperator:t(operator$2),arithmeticOperator:t(operator$2),logicOperator:t(operator$2),bitwiseOperator:t(operator$2),compareOperator:t(operator$2),updateOperator:t(operator$2),definitionOperator:t(operator$2),typeOperator:t(operator$2),controlOperator:t(operator$2),punctuation:punctuation$1,separator:t(punctuation$1),bracket:bracket,angleBracket:t(bracket),squareBracket:t(bracket),paren:t(bracket),brace:t(bracket),content:content$1,heading:heading,heading1:t(heading),heading2:t(heading),heading3:t(heading),heading4:t(heading),heading5:t(heading),heading6:t(heading),contentSeparator:t(content$1),list:t(content$1),quote:t(content$1),emphasis:t(content$1),strong:t(content$1),link:t(content$1),monospace:t(content$1),strikethrough:t(content$1),inserted:t(),deleted:t(),changed:t(),invalid:t(),meta:meta,documentMeta:t(meta),annotation:t(meta),processingInstruction:t(meta),definition:Tag.defineModifier(),constant:Tag.defineModifier(),function:Tag.defineModifier(),standard:Tag.defineModifier(),local:Tag.defineModifier(),special:Tag.defineModifier()};HighlightStyle.define([{tag:tags$1.link,textDecoration:"underline"},{tag:tags$1.heading,textDecoration:"underline",fontWeight:"bold"},{tag:tags$1.emphasis,fontStyle:"italic"},{tag:tags$1.strong,fontWeight:"bold"},{tag:tags$1.strikethrough,textDecoration:"line-through"},{tag:tags$1.keyword,color:"#708"},{tag:[tags$1.atom,tags$1.bool,tags$1.url,tags$1.contentSeparator,tags$1.labelName],color:"#219"},{tag:[tags$1.literal,tags$1.inserted],color:"#164"},{tag:[tags$1.string,tags$1.deleted],color:"#a11"},{tag:[tags$1.regexp,tags$1.escape,tags$1.special(tags$1.string)],color:"#e40"},{tag:tags$1.definition(tags$1.variableName),color:"#00f"},{tag:tags$1.local(tags$1.variableName),color:"#30a"},{tag:[tags$1.typeName,tags$1.namespace],color:"#085"},{tag:tags$1.className,color:"#167"},{tag:[tags$1.special(tags$1.variableName),tags$1.macroName],color:"#256"},{tag:tags$1.definition(tags$1.propertyName),color:"#00c"},{tag:tags$1.comment,color:"#940"},{tag:tags$1.meta,color:"#7a757a"},{tag:tags$1.invalid,color:"#f00"}]);HighlightStyle.define([{tag:tags$1.link,class:"cmt-link"},{tag:tags$1.heading,class:"cmt-heading"},{tag:tags$1.emphasis,class:"cmt-emphasis"},{tag:tags$1.strong,class:"cmt-strong"},{tag:tags$1.keyword,class:"cmt-keyword"},{tag:tags$1.atom,class:"cmt-atom"},{tag:tags$1.bool,class:"cmt-bool"},{tag:tags$1.url,class:"cmt-url"},{tag:tags$1.labelName,class:"cmt-labelName"},{tag:tags$1.inserted,class:"cmt-inserted"},{tag:tags$1.deleted,class:"cmt-deleted"},{tag:tags$1.literal,class:"cmt-literal"},{tag:tags$1.string,class:"cmt-string"},{tag:tags$1.number,class:"cmt-number"},{tag:[tags$1.regexp,tags$1.escape,tags$1.special(tags$1.string)],class:"cmt-string2"},{tag:tags$1.variableName,class:"cmt-variableName"},{tag:tags$1.local(tags$1.variableName),class:"cmt-variableName cmt-local"},{tag:tags$1.definition(tags$1.variableName),class:"cmt-variableName cmt-definition"},{tag:tags$1.special(tags$1.variableName),class:"cmt-variableName2"},{tag:tags$1.typeName,class:"cmt-typeName"},{tag:tags$1.namespace,class:"cmt-namespace"},{tag:tags$1.macroName,class:"cmt-macroName"},{tag:tags$1.propertyName,class:"cmt-propertyName"},{tag:tags$1.operator,class:"cmt-operator"},{tag:tags$1.comment,class:"cmt-comment"},{tag:tags$1.meta,class:"cmt-meta"},{tag:tags$1.invalid,class:"cmt-invalid"},{tag:tags$1.punctuation,class:"cmt-punctuation"}]);
-
- class CompositeBlock{constructor(e,t,s,n,r,i,o){this.type=e,this.value=t,this.from=s,this.hash=n,this.end=r,this.children=i,this.positions=o;}static create(e,t,s,n,r){return new CompositeBlock(e,t,s,n+(n<<8)+e+(t<<4)|0,r,[],[])}toTree(e,t=this.end){let s=this.children.length-1;s>=0&&(t=Math.max(t,this.positions[s]+this.children[s].length+this.from));let n=new Tree(e.types[this.type],this.children,this.positions,t-this.from).balance(2048);return stampContext(n.children,this.hash),n}copy(){return new CompositeBlock(this.type,this.value,this.from,this.hash,this.end,this.children.slice(),this.positions.slice())}}var Type;!function(e){e[e.Document=1]="Document",e[e.CodeBlock=2]="CodeBlock",e[e.FencedCode=3]="FencedCode",e[e.Blockquote=4]="Blockquote",e[e.HorizontalRule=5]="HorizontalRule",e[e.BulletList=6]="BulletList",e[e.OrderedList=7]="OrderedList",e[e.ListItem=8]="ListItem",e[e.ATXHeading1=9]="ATXHeading1",e[e.ATXHeading2=10]="ATXHeading2",e[e.ATXHeading3=11]="ATXHeading3",e[e.ATXHeading4=12]="ATXHeading4",e[e.ATXHeading5=13]="ATXHeading5",e[e.ATXHeading6=14]="ATXHeading6",e[e.SetextHeading1=15]="SetextHeading1",e[e.SetextHeading2=16]="SetextHeading2",e[e.HTMLBlock=17]="HTMLBlock",e[e.LinkReference=18]="LinkReference",e[e.Paragraph=19]="Paragraph",e[e.CommentBlock=20]="CommentBlock",e[e.ProcessingInstructionBlock=21]="ProcessingInstructionBlock",e[e.Escape=22]="Escape",e[e.Entity=23]="Entity",e[e.HardBreak=24]="HardBreak",e[e.Emphasis=25]="Emphasis",e[e.StrongEmphasis=26]="StrongEmphasis",e[e.Link=27]="Link",e[e.Image=28]="Image",e[e.InlineCode=29]="InlineCode",e[e.HTMLTag=30]="HTMLTag",e[e.Comment=31]="Comment",e[e.ProcessingInstruction=32]="ProcessingInstruction",e[e.URL=33]="URL",e[e.HeaderMark=34]="HeaderMark",e[e.QuoteMark=35]="QuoteMark",e[e.ListMark=36]="ListMark",e[e.LinkMark=37]="LinkMark",e[e.EmphasisMark=38]="EmphasisMark",e[e.CodeMark=39]="CodeMark",e[e.CodeInfo=40]="CodeInfo",e[e.LinkTitle=41]="LinkTitle",e[e.LinkLabel=42]="LinkLabel";}(Type||(Type={}));class LeafBlock{constructor(e,t){this.start=e,this.content=t,this.marks=[],this.parsers=[];}}class Line{constructor(){this.text="",this.baseIndent=0,this.basePos=0,this.depth=0,this.markers=[],this.pos=0,this.indent=0,this.next=-1;}forward(){this.basePos>this.pos&&this.forwardInner();}forwardInner(){let e=this.skipSpace(this.basePos);this.indent=this.countIndent(e,this.pos,this.indent),this.pos=e,this.next=e==this.text.length?-1:this.text.charCodeAt(e);}skipSpace(e){return skipSpace(this.text,e)}reset(e){for(this.text=e,this.baseIndent=this.basePos=this.pos=this.indent=0,this.forwardInner(),this.depth=1;this.markers.length;)this.markers.pop();}moveBase(e){this.basePos=e,this.baseIndent=this.countIndent(e,this.pos,this.indent);}moveBaseColumn(e){this.baseIndent=e,this.basePos=this.findColumn(e);}addMarker(e){this.markers.push(e);}countIndent(e,t=0,s=0){for(let n=t;n=t.stack[s.depth+1].value+s.baseIndent)return !0;if(s.indent>=s.baseIndent+4)return !1;let n=(e.type==Type.OrderedList?isOrderedList:isBulletList)(s,t,!1);return n>0&&(e.type!=Type.BulletList||isHorizontalRule(s,t,!1)<0)&&s.text.charCodeAt(s.pos+n-1)==e.value}const DefaultSkipMarkup={[Type.Blockquote]:(e,t,s)=>62==s.next&&(s.markers.push(elt(Type.QuoteMark,t.lineStart+s.pos,t.lineStart+s.pos+1)),s.moveBase(s.pos+1),e.end=t.lineStart+s.text.length,!0),[Type.ListItem]:(e,t,s)=>!(s.indent-1)&&(s.moveBaseColumn(s.baseIndent+e.value),!0),[Type.OrderedList]:skipForList,[Type.BulletList]:skipForList,[Type.Document]:()=>!0};function space$2(e){return 32==e||9==e||10==e||13==e}function skipSpace(e,t=0){for(;ts&&space$2(e.charCodeAt(t-1));)t--;return t}function isFencedCode(e){if(96!=e.next&&126!=e.next)return -1;let t=e.pos+1;for(;t-1&&e.depth==t.stack.length||n<3?-1:1}function inList$1(e,t){return e.block.type==t||e.stack.length>1&&e.stack[e.stack.length-2].type==t}function isBulletList(e,t,s){return 45!=e.next&&43!=e.next&&42!=e.next||e.pos!=e.text.length-1&&!space$2(e.text.charCodeAt(e.pos+1))||!(!s||inList$1(t,Type.BulletList)||e.skipSpace(e.pos+2)=48&&r<=57;){if(n++,n==e.text.length)return -1;r=e.text.charCodeAt(n);}return n==e.pos||n>e.pos+9||46!=r&&41!=r||ne.pos+1||49!=e.next)?-1:n+1-e.pos}function isAtxHeading(e){if(35!=e.next)return -1;let t=e.pos+1;for(;t6?-1:s}function isSetextUnderline(e){if(45!=e.next&&61!=e.next||e.indent>=e.baseIndent+4)return -1;let t=e.pos+1;for(;t/,ProcessingEnd=/\?>/,HTMLBlockStyle=[[/^<(?:script|pre|style)(?:\s|>|$)/i,/<\/(?:script|pre|style)>/i],[/^\s*/i.exec(n);if(i)return e.append(elt(Type.Comment,s,s+1+i[0].length));let o=/^\?[^]*?\?>/.exec(n);if(o)return e.append(elt(Type.ProcessingInstruction,s,s+1+o[0].length));let a=/^(?:![A-Z][^]*?>|!\[CDATA\[[^]*?\]\]>|\/\s*[a-zA-Z][\w-]*\s*>|\s*[a-zA-Z][\w-]*(\s+[a-zA-Z:_][\w-.:]*(?:\s*=\s*(?:[^\s"'=<>`]+|'[^']*'|"[^"]*"))?)*\s*(\/\s*)?>)/.exec(n);if(!a)return -1;let l=[];if(e.parser.htmlParser){let t,n=e.parser.htmlParser.startParse(stringInput(e.slice(s,s+1+a[0].length)),0,{});for(;!(t=n.advance()););l=t.children.map(((e,n)=>new TreeElement(e,s+t.positions[n])));}return e.append(elt(Type.HTMLTag,s,s+1+a[0].length,l))},Emphasis(e,t,s){if(95!=t&&42!=t)return -1;let n=s+1;for(;e.char(n)==t;)n++;let r=e.slice(s-1,s),i=e.slice(n,n+1),o=Punctuation.test(r),a=Punctuation.test(i),l=/\s|^$/.test(r),h=/\s|^$/.test(i),p=!h&&(!a||l||o),c=!l&&(!o||h||a),f=p&&(42==t||!c||o),d=c&&(42==t||!p||a);return e.append(new InlineDelimiter(95==t?EmphasisUnderscore:EmphasisAsterisk,s,n,(f?1:0)|(d?2:0)))},HardBreak(e,t,s){if(92==t&&10==e.char(s+1))return e.append(elt(Type.HardBreak,s,s+2));if(32==t){let t=s+1;for(;32==e.char(t);)t++;if(10==e.char(t)&&t>=s+2)return e.append(elt(Type.HardBreak,s,t+1))}return -1},Link:(e,t,s)=>91==t?e.append(new InlineDelimiter(LinkStart,s,s+1,1)):-1,Image:(e,t,s)=>33==t&&91==e.char(s+1)?e.append(new InlineDelimiter(ImageStart,s,s+2,1)):-1,LinkEnd(e,t,s){if(93!=t)return -1;for(let t=e.parts.length-1;t>=0;t--){let n=e.parts[t];if(n instanceof InlineDelimiter&&(n.type==LinkStart||n.type==ImageStart)){if(!n.side||e.skipSpace(n.to)==s&&!/[(\[]/.test(e.slice(s+1,s+2)))return e.parts[t]=null,-1;let r=e.takeContent(t),i=e.parts[t]=finishLink(e,r,n.type==LinkStart?Type.Link:Type.Image,n.from,s+1);if(n.type==LinkStart)for(let s=0;st?elt(Type.URL,t+s,r+s):r==e.length&&null}}function parseLinkTitle(e,t,s){let n=e.charCodeAt(t);if(39!=n&&34!=n&&40!=n)return !1;let r=40==n?41:n;for(let n=t+1,i=!1;n=this.end?-1:this.text.charCodeAt(e-this.offset)}get end(){return this.offset+this.text.length}slice(e,t){return this.text.slice(e-this.offset,t-this.offset)}append(e){return this.parts.push(e),e.to}addDelimiter(e,t,s,n,r){return this.append(new InlineDelimiter(e,t,s,(n?1:0)|(r?2:0)))}addElement(e){return this.append(e)}resolveMarkers(e){for(let t=e;t=e;o--){let e=this.parts[o];if(e instanceof InlineDelimiter&&1&e.side&&e.type==s.type&&!(r&&(1&s.side||2&e.side)&&(e.to-e.from+i)%3==0&&((e.to-e.from)%3||i%3))){n=e;break}}if(!n)continue;let a=s.type.resolve,l=[],h=n.from,p=s.to;if(r){let e=Math.min(2,n.to-n.from,i);h=n.to-e,p=s.from+e,a=1==e?"Emphasis":"StrongEmphasis";}n.type.mark&&l.push(this.elt(n.type.mark,h,n.to));for(let e=o+1;e=0;t--){let s=this.parts[t];if(s instanceof InlineDelimiter&&s.type==e)return t}return null}takeContent(e){let t=this.resolveMarkers(e);return this.parts.length=e,t}skipSpace(e){return skipSpace(this.text,e-this.offset)+this.offset}elt(e,t,s,n){return "string"==typeof e?elt(this.parser.getNodeType(e),t,s,n):new TreeElement(e,t)}}function injectMarks(e,t){if(!t.length)return e;if(!e.length)return t;let s=e.slice(),n=0;for(let e of t){for(;n(e?e-1:0))return !1;if(this.fragmentEnd<0){let e=this.fragment.to;for(;e>0&&10!=this.input.get(e-1);)e--;this.fragmentEnd=e?e-1:0;}let s=this.cursor;s||(s=this.cursor=this.fragment.tree.cursor(),s.firstChild());let n=e+this.fragment.offset;for(;s.to<=n;)if(!s.parent())return !1;for(;;){if(s.from>=n)return this.fragment.from<=t;if(!s.childAfter(n))return !1}}matches(e){let t=this.cursor.tree;return t&&ContextHash.get(t)==e}takeNodes(e){let t=this.cursor,s=this.fragment.offset,n=e.lineStart,r=n,i=e.block.children.length,o=r,a=i;for(;;){if(t.to-s>=this.fragmentEnd){if(t.type.isAnonymous&&t.firstChild())continue;break}if(e.addNode(t.tree,t.from-s),t.type.is("Block")&&(NotLast.indexOf(t.type.id)<0?(r=t.to-s,i=e.block.children.length):(r=o,i=a,o=t.to-s,a=e.block.children.length)),!t.nextSibling())break}for(;e.block.children.length>i;)e.block.children.pop(),e.block.positions.pop();return r-n}}const parser$b=new MarkdownParser(new NodeSet(nodeTypes),null,null,Object.keys(DefaultBlockParsers).map((e=>DefaultBlockParsers[e])),Object.keys(DefaultBlockParsers).map((e=>DefaultLeafBlocks[e])),Object.keys(DefaultBlockParsers),DefaultEndLeaf,DefaultSkipMarkup,Object.keys(DefaultInline).map((e=>DefaultInline[e])),Object.keys(DefaultInline)),StrikethroughDelim={resolve:"Strikethrough",mark:"StrikethroughMark"},Strikethrough={defineNodes:["Strikethrough","StrikethroughMark"],parseInline:[{name:"Strikethrough",parse:(e,t,s)=>126!=t||126!=e.char(s+1)?-1:e.addDelimiter(StrikethroughDelim,s,s+2,!0,!0),after:"Emphasis"}]};function parseRow(e,t,s=0,n,r=0){let i=0,o=!0,a=-1,l=-1,h=!1,p=()=>{n.push(e.elt("TableCell",r+a,r+l,e.parser.parseInline(t.slice(a,l),r+a)));};for(let c=s;c-1)&&i++,o=!1,n&&(a>-1&&p(),n.push(e.elt("TableDelimiter",c+r,c+r+1))),a=l=-1),h=!h&&92==s;}return a>-1&&(i++,n&&p()),i}function hasPipe(e,t){for(let s=t;shasPipe(t.content,0)?new TableParser:null,before:"SetextHeading"}]};class TaskParser{nextLine(){return !1}finish(e,t){return e.addLeafElement(t,e.elt("Task",t.start,t.start+t.content.length,[e.elt("TaskMarker",t.start,t.start+3),...e.parser.parseInline(t.content.slice(3),t.start+3)])),!0}}const TaskList={defineNodes:[{name:"Task",block:!0},"TaskMarker"],parseBlock:[{name:"TaskList",leaf:(e,t)=>/^\[[ xX]\]/.test(t.content)&&"ListItem"==e.parser.nodeSet.types[e.block.type].name?new TaskParser:null,after:"SetextHeading"}]},GFM=[Table,TaskList,Strikethrough];function parseSubSuper(e,t,s){return (n,r,i)=>{if(r!=e||n.char(i+1)==e)return -1;let o=[n.elt(s,i,i+1)];for(let r=i+1;re%3==0)).concat(this.state)}]@${this.pos}${this.score?"!"+this.score:""}`}static start(t,e,s=0){let r=t.parser.context;return new Stack(t,[],e,s,s,0,[],0,r?new StackContext(r,r.start):null,null)}get context(){return this.curContext?this.curContext.context:null}pushState(t,e){this.stack.push(this.state,e,this.bufferBase+this.buffer.length),this.state=t;}reduce(t){let e=t>>19,s=65535&t,{parser:r}=this.p,i=r.dynamicPrecedence(s);if(i&&(this.score+=i),0==e)return sn;)this.stack.pop();this.reduceContext(s);}storeNode(t,e,s,r=4,i=!1){if(0==t){let t=this,r=this.buffer.length;if(0==r&&t.parent&&(r=t.bufferBase-t.parent.bufferBase,t=t.parent),r>0&&0==t.buffer[r-4]&&t.buffer[r-1]>-1){if(e==s)return;if(t.buffer[r-2]>=e)return void(t.buffer[r-2]=s)}}if(i&&this.pos!=s){let i=this.buffer.length;if(i>0&&0!=this.buffer[i-4])for(;i>0&&this.buffer[i-2]>s;)this.buffer[i]=this.buffer[i-4],this.buffer[i+1]=this.buffer[i-3],this.buffer[i+2]=this.buffer[i-2],this.buffer[i+3]=this.buffer[i-1],i-=4,r>4&&(r-=4);this.buffer[i]=t,this.buffer[i+1]=e,this.buffer[i+2]=s,this.buffer[i+3]=r;}else this.buffer.push(t,e,s,r);}shift(t,e,s){if(131072&t)this.pushState(65535&t,this.pos);else if(0==(262144&t)){let r=this.pos,i=t,{parser:n}=this.p;(s>this.pos||e<=n.maxNode)&&(this.pos=s,n.stateFlag(i,1)||(this.reducePos=s)),this.pushState(i,r),e<=n.maxNode&&this.buffer.push(e,r,s,4),this.shiftContext(e);}else e<=this.p.parser.maxNode&&this.buffer.push(e,this.pos,s,4),this.pos=s;}apply(t,e,s){65536&t?this.reduce(t):this.shift(t,e,s);}useNode(t,e){let s=this.p.reused.length-1;(s<0||this.p.reused[s]!=t)&&(this.p.reused.push(t),s++);let r=this.pos;this.reducePos=this.pos=r+t.length,this.pushState(e,r),this.buffer.push(s,r,this.reducePos,-1),this.curContext&&this.updateContext(this.curContext.tracker.reuse(this.curContext.context,t,this.p.input,this));}split(){let t=this,e=t.buffer.length;for(;e>0&&t.buffer[e-2]>t.reducePos;)e-=4;let s=t.buffer.slice(e),r=t.bufferBase+e;for(;t&&r==t.bufferBase;)t=t.parent;return new Stack(this.p,this.stack.slice(),this.state,this.reducePos,this.pos,this.score,s,r,this.curContext,t)}recoverByDelete(t,e){let s=t<=this.p.parser.maxNode;s&&this.storeNode(t,this.pos,e),this.storeNode(0,this.pos,e,s?8:4),this.pos=this.reducePos=e,this.score-=200;}canShift(t){for(let e=new SimulatedStack(this);;){let s=this.p.parser.stateSlot(e.top,4)||this.p.parser.hasAction(e.top,t);if(0==(65536&s))return !0;if(0==s)return !1;e.reduce(s);}}get ruleStart(){for(let t=this.state,e=this.stack.length;;){let s=this.p.parser.stateSlot(t,5);if(!(65536&s))return 0;if(e-=3*(s>>19),(65535&s)>19,a=65535&n;if(t.indexOf(a)>-1){let t=r-3*(n>>19),s=this.stack[t+1];if(null==e||e>s)return s}if(0==r)return null;0==h?(r-=3,s=this.stack[r]):(r-=3*(h-1),s=i.getGoto(this.stack[r-3],a,!0));}}recoverByInsert(t){if(this.stack.length>=300)return [];let e=this.p.parser.nextStates(this.state);if(e.length>8||this.stack.length>=120){let s=[];for(let r,i=0;i1&e&&t==r))||s.push(e[t],r);}e=s;}let s=[];for(let t=0;t>19;0==s?(this.rest==this.stack.stack&&(this.rest=this.rest.slice()),this.rest.push(this.top,0,0),this.offset+=3):this.offset-=3*(s-1);let r=this.stack.p.parser.getGoto(this.rest[this.offset-3],e,!0);this.top=r;}}class StackBufferCursor{constructor(t,e,s){this.stack=t,this.pos=e,this.index=s,this.buffer=t.buffer,0==this.index&&this.maybeNext();}static create(t){return new StackBufferCursor(t,t.bufferBase+t.buffer.length,t.buffer.length)}maybeNext(){let t=this.stack.parent;null!=t&&(this.index=this.stack.bufferBase-t.bufferBase,this.stack=t,this.buffer=t.buffer);}get id(){return this.buffer[this.index-4]}get start(){return this.buffer[this.index-3]}get end(){return this.buffer[this.index-2]}get size(){return this.buffer[this.index-1]}next(){this.index-=4,this.pos-=4,0==this.index&&this.maybeNext();}fork(){return new StackBufferCursor(this.stack,this.pos,this.index)}}class Token$1{constructor(){this.start=-1,this.value=-1,this.end=-1;}accept(t,e){this.value=t,this.end=e;}}class TokenGroup{constructor(t,e){this.data=t,this.id=e;}token(t,e,s){readToken$3(this.data,t,e,s,this.id);}}TokenGroup.prototype.contextual=TokenGroup.prototype.fallback=TokenGroup.prototype.extend=!1;class ExternalTokenizer{constructor(t,e={}){this.token=t,this.contextual=!!e.contextual,this.fallback=!!e.fallback,this.extend=!!e.extend;}}function readToken$3(t,e,s,r,i){let n=0,h=1<0){let n=t[e];if(a.allows(n)&&(-1==s.value||s.value==n||r.p.parser.overrides(n,s.value))){s.accept(n,i);break}}let l=e.get(i++);for(let e=0,s=t[n+2];e>1,i=o+r+(r<<1),h=t[i],a=t[i+1];if(l=a)){n=t[i+2];continue t}e=r+1;}}break}}function decodeArray(t,e=Uint16Array){if("string"!=typeof t)return t;let s=null;for(let r=0,i=0;r=92&&e--,e>=34&&e--;let i=e-32;if(i>=46&&(i-=46,s=!0),n+=i,s)break;n*=46;}s?s[i++]=n:s=new e(n);}return s}const verbose="undefined"!=typeof process&&/\bparse\b/.test(process.env.LOG);let stackIDs=null;function cutAt(t,e,s){let r=t.cursor(e);for(;;)if(!(s<0?r.childBefore(e):r.childAfter(e)))for(;;){if((s<0?r.toe)&&!r.type.isError)return s<0?Math.max(0,Math.min(r.to-1,e-5)):Math.min(t.length,Math.max(r.from+1,e+5));if(s<0?r.prevSibling():r.nextSibling())break;if(!r.parent())return s<0?0:t.length}}class FragmentCursor{constructor(t){this.fragments=t,this.i=0,this.fragment=null,this.safeFrom=-1,this.safeTo=-1,this.trees=[],this.start=[],this.index=[],this.nextFragment();}nextFragment(){let t=this.fragment=this.i==this.fragments.length?null:this.fragments[this.i++];if(t){for(this.safeFrom=t.openStart?cutAt(t.tree,t.from+t.offset,1)-t.offset:t.from,this.safeTo=t.openEnd?cutAt(t.tree,t.to+t.offset,-1)-t.offset:t.to;this.trees.length;)this.trees.pop(),this.start.pop(),this.index.pop();this.trees.push(t.tree),this.start.push(-t.offset),this.index.push(0),this.nextStart=this.safeFrom;}else this.nextStart=1e9;}nodeAt(t){if(tt)return this.nextStart=n,null;if(n==t&&n+i.length<=this.safeTo)return n==t&&n>=this.safeFrom?i:null;i instanceof TreeBuffer?(this.index[e]++,this.nextStart=n+i.length):(this.index[e]++,n+i.length>=t&&(this.trees.push(i),this.start.push(n),this.index.push(0)));}}}class CachedToken extends Token$1{constructor(){super(...arguments),this.extended=-1,this.mask=0,this.context=0;}clear(t){this.start=t,this.value=this.extended=-1;}}const dummyToken=new Token$1;class TokenCache{constructor(t){this.tokens=[],this.mainToken=dummyToken,this.actions=[],this.tokens=t.tokenizers.map((t=>new CachedToken));}getActions(t,e){let s=0,r=null,{parser:i}=t.p,{tokenizers:n}=i,h=i.stateSlot(t.state,3),a=t.curContext?t.curContext.hash:0;for(let i=0;i-1&&(s=this.addActions(t,l.extended,l.end,s)),s=this.addActions(t,l.value,l.end,s),!o.extend&&(r=l,s>e))break}}for(;this.actions.length>s;)this.actions.pop();return r||(r=dummyToken,r.start=t.pos,t.pos==e.length?r.accept(t.p.parser.eofTerm,t.pos):r.accept(0,t.pos+1)),this.mainToken=r,this.actions}updateCachedToken(t,e,s,r){if(t.clear(s.pos),e.token(r,t,s),t.value>-1){let{parser:e}=s.p;for(let i=0;i=0&&s.p.parser.dialect.allows(n>>1)){0==(1&n)?t.value=n>>1:t.extended=n>>1;break}}}else s.pos==r.length?t.accept(s.p.parser.eofTerm,s.pos):t.accept(0,s.pos+1);}putAction(t,e,s,r){for(let e=0;ei)n.push(o);else if(a=this.checkNest(o))(!s||s.stack.scoret)for(n.sort(((t,e)=>e.score-t.score));n.length>t;)n.pop();n.some((t=>t.reducePos>i))&&this.recovering--;}else if(n.length>1)t:for(let t=0;t200&&r.buffer.length>200){if(!((e.score-r.score||e.buffer.length-r.buffer.length)>0)){n.splice(t--,1);continue t}n.splice(s--,1);}}}this.pos=n[0].pos;for(let t=1;t ":"";if(this.fragments){let e=t.curContext&&t.curContext.tracker.strict,s=e?t.curContext.hash:0;for(let i=this.fragments.nodeAt(r);i;){let r=this.parser.nodeSet.types[i.type.id]==i.type?n.getGoto(t.state,i.type.id):-1;if(r>-1&&i.length&&(!e||(i.contextHash||0)==s))return t.useNode(i,r),verbose&&console.log(h+this.stackID(t)+` (via reuse of ${n.getName(i.type.id)})`),!0;if(!(i instanceof Tree)||0==i.children.length||i.positions[0]>0)break;let a=i.children[0];if(!(a instanceof Tree))break;i=a;}}let a=n.stateSlot(t.state,4);if(a>0)return t.reduce(a),verbose&&console.log(h+this.stackID(t)+` (via always-reduce ${n.getName(65535&a)})`),!0;let o=this.tokens.getActions(t,i);for(let i=0;ir?e.push(f):s.push(f);}return !1}advanceFully(t,e){let s=t.pos;for(;;){let r=this.checkNest(t);if(r)return r;if(!this.advanceStack(t,null,null))return !1;if(t.pos>s)return pushStackDedup(t,e),!0}}runRecovery(t,e,s){let r,i=null,n=!1;for(let h=0;h ":"";if(a.deadEnd){if(n)continue;n=!0,a.restart(),verbose&&console.log(c+this.stackID(a)+" (restarted)");let t=this.advanceFully(a,s);if(t){!0!==t&&(r=t);continue}}let u=a.split(),f=c;for(let t=0;u.forceReduce()&&t<10;t++){verbose&&console.log(f+this.stackID(u)+" (via force-reduce)");let t=this.advanceFully(u,s);if(t){!0!==t&&(r=t);break}verbose&&(f=this.stackID(u)+" -> ");}for(let t of a.recoverByInsert(o))verbose&&console.log(c+this.stackID(t)+" (via recover-insert)"),this.advanceFully(t,s);this.input.length>a.pos?(l==a.pos&&(l++,o=0),a.recoverByDelete(o,l),verbose&&console.log(c+this.stackID(a)+` (via recover-delete ${this.parser.getName(o)})`),pushStackDedup(a,s)):(!i||i.scorer.stack.score){r=void 0;break}return r&&this.startNested(r),null}forceFinish(){let t=this.stacks[0].split();return this.nested&&this.finishNested(t,this.nested.forceFinish()),this.stackToTree(t.forceAll())}stackToTree(t,e=t.pos){return this.parser.context&&t.emitContext(),Tree.build({buffer:StackBufferCursor.create(t),nodeSet:this.parser.nodeSet,topID:this.topTerm,maxBufferLength:this.parser.bufferLength,reused:this.reused,start:this.startPos,length:e-this.startPos,minRepeatType:this.parser.minRepeatTerm})}checkNest(t){let e=this.parser.findNested(t.state);if(!e)return null;let s=e.value;return "function"==typeof s&&(s=s(this.input,t)),s?{stack:t,info:e,spec:s}:null}startNested(t){let{stack:e,info:s,spec:r}=t;this.stacks=[e],this.nestEnd=this.scanForNestEnd(e,s.end,r.filterEnd),this.nestWrap="number"==typeof r.wrapType?this.parser.nodeSet.types[r.wrapType]:r.wrapType||null,r.startParse?this.nested=r.startParse(this.input.clip(this.nestEnd),e.pos,this.context):this.finishNested(e);}scanForNestEnd(t,e,s){for(let r=t.pos;r-1&&(!s||s(this.input.read(r,dummyToken.end))))return r;return this.input.length}finishNested(t,e){this.nestWrap?e=new Tree(this.nestWrap,e?[e]:[],e?[0]:[],this.nestEnd-t.pos):e||(e=new Tree(NodeType.none,[],[],this.nestEnd-t.pos));let s=this.parser.findNested(t.state);t.useNode(e,this.parser.getGoto(t.state,s.placeholder,!0)),verbose&&console.log(this.stackID(t)+" (via unnest)");}stackID(t){let e=(stackIDs||(stackIDs=new WeakMap)).get(t);return e||stackIDs.set(t,e=String.fromCodePoint(this.nextStackID++)),e+t}}function pushStackDedup(t,e){for(let s=0;st;class ContextTracker{constructor(t){this.start=t.start,this.shift=t.shift||id,this.reduce=t.reduce||id,this.reuse=t.reuse||id,this.hash=t.hash,this.strict=!1!==t.strict;}}class Parser{constructor(t){if(this.bufferLength=DefaultBufferLength,this.strict=!1,this.cachedDialect=null,13!=t.version)throw new RangeError(`Parser version (${t.version}) doesn't match runtime version (13)`);let e=decodeArray(t.tokenData),s=t.nodeNames.split(" ");this.minRepeatTerm=s.length,this.context=t.context;for(let e=0;e=0)i(r,t,e[s++]);else {let n=e[s+-r];for(let h=-r;h>0;h--)i(e[s++],t,n);s++;}}}if(this.specialized=new Uint16Array(t.specialized?t.specialized.length:0),this.specializers=[],t.specialized)for(let e=0;et.topRules[e][1]));this.nodeSet=new NodeSet(s.map(((e,s)=>NodeType.define({name:s>=this.minRepeatTerm?void 0:e,id:s,props:r[s],top:n.indexOf(s)>-1,error:0==s,skipped:t.skippedNodes&&t.skippedNodes.indexOf(s)>-1})))),this.maxTerm=t.maxTerm,this.tokenizers=t.tokenizers.map((t=>"number"==typeof t?new TokenGroup(e,t):t)),this.topRules=t.topRules,this.nested=(t.nested||[]).map((([t,e,s,r])=>({name:t,value:e,end:new TokenGroup(decodeArray(s),0),placeholder:r}))),this.dialects=t.dialects||{},this.dynamicPrecedences=t.dynamicPrecedences||null,this.tokenPrecTable=t.tokenPrec,this.termNames=t.termNames||null,this.maxNode=this.nodeSet.types.length-1,this.dialect=this.parseDialect(),this.top=this.topRules[Object.keys(this.topRules)[0]];}parse(t,e=0,s={}){"string"==typeof t&&(t=stringInput(t));let r=new Parse$1(this,t,e,s);for(;;){let t=r.advance();if(t)return t}}startParse(t,e=0,s={}){return "string"==typeof t&&(t=stringInput(t)),new Parse$1(this,t,e,s)}getGoto(t,e,s=!1){let r=this.goto;if(e>=r[0])return -1;for(let i=r[e+1];;){let e=r[i++],n=1&e,h=r[i++];if(n&&s)return h;for(let s=i+(e>>1);i0}findNested(t){let e=this.stateSlot(t,0);return 4&e?this.nested[e>>10]:null}validAction(t,e){if(e==this.stateSlot(t,4))return !0;for(let s=this.stateSlot(t,1);;s+=3){if(65535==this.data[s]){if(1!=this.data[s+1])return !1;s=pair(this.data,s+2);}if(e==pair(this.data,s+1))return !0}}nextStates(t){let e=[];for(let s=this.stateSlot(t,1);;s+=3){if(65535==this.data[s]){if(1!=this.data[s+1])break;s=pair(this.data,s+2);}if(0==(1&this.data[s+2])){let t=this.data[s+1];e.some(((e,s)=>1&s&&e==t))||e.push(this.data[s],t);}}return e}overrides(t,e){let s=findOffset(this.data,this.tokenPrecTable,e);return s<0||findOffset(this.data,this.tokenPrecTable,t){let s=t.tokenizers.find((t=>t.from==e));return s?s.to:e}))),t.dialect&&(e.dialect=this.parseDialect(t.dialect)),t.nested&&(e.nested=this.nested.map((e=>Object.prototype.hasOwnProperty.call(t.nested,e.name)?{name:e.name,value:t.nested[e.name],end:e.end,placeholder:e.placeholder}:e))),null!=t.strict&&(e.strict=t.strict),null!=t.bufferLength&&(e.bufferLength=t.bufferLength),e}getName(t){return this.termNames?this.termNames[t]:String(t<=this.maxNode&&this.nodeSet.types[t].name||t)}get eofTerm(){return this.maxNode+1}get hasNested(){return this.nested.length>0}get topNode(){return this.nodeSet.types[this.top[1]]}dynamicPrecedence(t){let e=this.dynamicPrecedences;return null==e?0:e[t]||0}parseDialect(t){if(this.cachedDialect&&this.cachedDialect.source==t)return this.cachedDialect;let e=Object.keys(this.dialects),s=e.map((()=>!1));if(t)for(let r of t.split(" ")){let t=e.indexOf(r);t>=0&&(s[t]=!0);}let r=null;for(let t=0;t=65&&e<=90||95==e||e>=97&&e<=122||e>=161}function isSpace$1(e){return 9==e||10==e||13==e||32==e}let cachedName$1=null,cachedInput$2=null,cachedPos$2=0;function tagNameAfter$1(e,t){if(cachedPos$2==t&&cachedInput$2==e)return cachedName$1;let r=e.get(t);for(;isSpace$1(r);)r=e.get(++t);let O=t;for(;nameChar$1(r);)r=e.get(++t);return cachedInput$2=e,cachedPos$2=t,cachedName$1=t>O?e.read(O,t).toLowerCase():r==question||r==bang?void 0:null}const question=63,bang=33;function ElementContext$1(e,t){this.name=e,this.parent=t,this.hash=t?t.hash:0;for(let t=0;t1==t?new ElementContext$1(tagNameAfter$1(r,O.pos)||"",e):e,reduce:(e,t)=>10==t&&e?e.parent:e,reuse(e,t,r,O){let a=t.type.id;return 1==a||11==a?new ElementContext$1(tagNameAfter$1(r,O.pos-t.length+1)||"",e):e},hash:e=>e?e.hash:0,strict:!1}),tagStart=new ExternalTokenizer(((e,t,r)=>{let O,a=t.start,s=e.get(a);if(s<0&&r.context&&t.accept(33,t.start),60!=s)return;a++,(O=47==e.get(a))&&a++;let o=tagNameAfter$1(e,a);if(void 0===o)return;if(!o)return t.accept(O?4:1,a);let n=r.context?r.context.name:null;if(O){if(o==n)return t.accept(2,a);if(n&&implicitlyClosed[n])return t.accept(33,t.start);if(r.dialectEnabled(0))return t.accept(2,a);for(let e=r.context;e;e=e.parent)if(e.name==o)return;t.accept(3,a);}else n&&closeOnOpen[n]&&closeOnOpen[n][o]?t.accept(33,t.start):t.accept(1,a);})),selfClosed=new ExternalTokenizer(((e,t,r)=>{let O=e.get(t.start),a=t.start+1;if(47==O){if(62!=e.get(a))return;a++;}else if(62!=O)return;r.context&&selfClosers[r.context.name]&&t.accept(5,a);})),commentContent$1$1=new ExternalTokenizer(((e,t)=>{let r=t.start,O=0;for(;;){let t=e.get(r);if(t<0)break;if(r++,t=="--\x3e".charCodeAt(O)){if(O++,3==O){r-=3;break}}else O=0;}r>t.start&&t.accept(34,r);})),openTag=/^<\/?\s*([\.\-\:\w\xa1-\uffff]+)/;function tagName$1(e){let t=openTag.exec(e);return t?t[1].toLowerCase():null}function attributes$1(e){let t=openTag.exec(e),r={};if(t){let O,a=/\s*([\.\-\:\w\xa1-\uffff]+)\s*(?:=\s*(?:"([^"]*)"|'([^']*)'|([^\s=<>"'/]+)))?/g;for(a.lastIndex=t.index+t[0].length;O=a.exec(e);)r[O[1]]=O[4]||O[3]||O[2]||O[1];}return r}function skip(e){return t=>tagName$1(t)==e}function resolveContent(e){let t=null;for(let r of e)t||(t=Object.create(null)),(t[r.tag]||(t[r.tag]=[])).push({attrs:r.attrs,value:{filterEnd:skip(r.tag),startParse:r.parser.startParse.bind(r.parser)}});return function(e,r){let O,a,s=e.read(r.ruleStart,r.pos),o=tagName$1(s);if(!o)return null;if(t&&(O=t[o]))for(let e of O)if(!e.attrs||e.attrs(a||(a=attributes$1(s))))return e.value;return "script"==o||"textarea"==o||"style"==o?{filterEnd:skip(o),wrapType:25}:null}}const elementContent=resolveContent([]);function configureNesting(e){return {elementContent:resolveContent(e)}}const parser$a=Parser.deserialize({version:13,states:"'OOVOXOOOtQ`O'#CgS!eOXO'#CfOOOP'#Cf'#CfO!oOdO'#CqO!wQ`O'#CsOOOP'#DR'#DROOOP'#Cv'#CvQVOXOOO!|QrO,59ROOOP'#Cz'#CzO#XOXO'#DWO#cOPO,59QOOOS'#C{'#C{O#kOdO,59]OOOP,59],59]O#sQ`O,59_OOOP-E6t-E6tO#xQrO'#CiOOQQ'#Cw'#CwO$WQrO1G.mOOOP1G.m1G.mOOOP1G.v1G.vOOOP-E6x-E6xO$cQ`O'#CoOOOP1G.l1G.lOOOS-E6y-E6yOOOP1G.w1G.wOOOP1G.y1G.yO$hQ!bO,59TOOQQ-E6u-E6uOOOP7+$X7+$XOOOP7+$b7+$bO$sQ`O,59ZO$xO#tO'#ClO%WO&jO'#ClOOQQ1G.o1G.oOOOP1G.u1G.uOOOO'#Cx'#CxO%fO#tO,59WOOQQ,59W,59WOOOO'#Cy'#CyO%tO&jO,59WOOOO-E6v-E6vOOQQ1G.r1G.rOOOO-E6w-E6w",stateData:"&X~OtOS~OPPORTOSUOVUOWUOXUOfUOhVO{SO~O[XO~OPPORTOSUOVUOWUOXUOfUO{SO~OQzPqzP~PyOr]O|_O~O[`O~OTfO^bObeO~OQzXqzX~PyOQhOqiO~Or]O|kO~OblO~O_mOT]X^]Xb]X~OTpO^bOboO~O[qO~OatOvrOxsO~ObuO~OWvOXvOvxOwvO~OWyOXyOxxOyyO~OWvOXvOv|OwvO~OWyOXyOx|OyyO~O{fhf~",goto:"#k{PPPPPPPPPP|!SP!YPP!^PP!a!d|P|PP!j!p!v!|#S#YPPPPP#`PPPP#hXUOQWZXQOQWZTcXdRtmRi[XROQWZQWORaWQdXRndQwrR{wQzsR}zQZQRgZQ^SRj^SVOWTYQZR[Q",nodeNames:"⚠ StartTag StartCloseTag StartCloseTag IncompleteCloseTag SelfCloseEndTag Document Text EntityReference CharacterReference Element OpenTag TagName Attribute AttributeName Is AttributeValue UnquotedAttributeValue EndTag CloseTag SelfClosingTag Comment ProcessingInst MismatchedCloseTag DoctypeDecl RawText",maxTerm:44,context:elementContext$1,nodeProps:[[NodeProp.closedBy,-2,1,2,"EndTag SelfCloseEndTag",11,"CloseTag"],[NodeProp.openedBy,5,"StartTag",18,"StartTag StartCloseTag",19,"OpenTag"]],skippedNodes:[0,25],repeatNodeCount:6,tokenData:"!#`!aR!WOX$kXY)sYZ)sZ]$k]^)s^p$kpq)sqr$krs*zsv$kvw+dwx2wx}$k}!O3d!O!P$k!P!Q7]!Q![$k![!]8s!]!^$k!^!_>`!_!`!!n!`!a8R!a!c$k!c!}8s!}#R$k#R#S8s#S#T$k#T#o8s#o$f$k$f$g&R$g%W$k%W%o8s%o%p$k%p&a8s&a&b$k&b1p8s1p4U$k4U4d8s4d4e$k4e$IS8s$IS$I`$k$I`$Ib8s$Ib$Kh$k$Kh%#t8s%#t&/x$k&/x&Et8s&Et&FV$k&FV;'S8s;'S;:jgWw`ypOq(kqr?Prs'gsv(kwx(]x!a(k!a!bKh!b~(k!R?WZw`ypOr(krs'gsv(kwx(]x}(k}!O?y!O!f(k!f!gAP!g#W(k#W#XGx#X~(k!R@QVw`ypOr(krs'gsv(kwx(]x}(k}!O@g!O~(k!R@pTw`yp{POr(krs'gsv(kwx(]x~(k!RAWVw`ypOr(krs'gsv(kwx(]x!q(k!q!rAm!r~(k!RAtVw`ypOr(krs'gsv(kwx(]x!e(k!e!fBZ!f~(k!RBbVw`ypOr(krs'gsv(kwx(]x!v(k!v!wBw!w~(k!RCOVw`ypOr(krs'gsv(kwx(]x!{(k!{!|Ce!|~(k!RClVw`ypOr(krs'gsv(kwx(]x!r(k!r!sDR!s~(k!RDYVw`ypOr(krs'gsv(kwx(]x!g(k!g!hDo!h~(k!RDvWw`ypOrDorsE`svDovwEtwxFdx!`Do!`!aG`!a~DoqEeTypOvE`vxEtx!`E`!`!aFV!a~E`PEwRO!`Et!`!aFQ!a~EtPFVOhPqF^QyphPOv'gx~'gaFiVw`OrFdrsEtsvFdvwEtw!`Fd!`!aGO!a~FdaGVRw`hPOr(]sv(]w~(]!RGiTw`yphPOr(krs'gsv(kwx(]x~(k!RHPVw`ypOr(krs'gsv(kwx(]x#c(k#c#dHf#d~(k!RHmVw`ypOr(krs'gsv(kwx(]x#V(k#V#WIS#W~(k!RIZVw`ypOr(krs'gsv(kwx(]x#h(k#h#iIp#i~(k!RIwVw`ypOr(krs'gsv(kwx(]x#m(k#m#nJ^#n~(k!RJeVw`ypOr(krs'gsv(kwx(]x#d(k#d#eJz#e~(k!RKRVw`ypOr(krs'gsv(kwx(]x#X(k#X#YDo#Y~(k!RKoWw`ypOrKhrsLXsvKhvwLmwxM}x!aKh!a!b! e!b~KhqL^TypOvLXvxLmx!aLX!a!bM[!b~LXPLpRO!aLm!a!bLy!b~LmPL|RO!`Lm!`!aMV!a~LmPM[OfPqMaTypOvLXvxLmx!`LX!`!aMp!a~LXqMwQypfPOv'gx~'gaNSVw`OrM}rsLmsvM}vwLmw!aM}!a!bNi!b~M}aNnVw`OrM}rsLmsvM}vwLmw!`M}!`!a! T!a~M}a! [Rw`fPOr(]sv(]w~(]!R! lWw`ypOrKhrsLXsvKhvwLmwxM}x!`Kh!`!a!!U!a~Kh!R!!_Tw`ypfPOr(krs'gsv(kwx(]x~(k!V!!yV_SVPw`ypOr&Rrs&qsv&Rwx'rx!^&R!^!_(k!_~&R",tokenizers:[tagStart,selfClosed,commentContent$1$1,0,1,2,3,4,5],topRules:{Document:[0,6]},nested:[["elementContent",elementContent,"%S~RP!^!_U~XP!P!Q[~_dXY[YZ[]^[pq[![!]!m!c!}!m#R#S!m#T#o!m%W%o!m%p&a!m&b1p!m4U4d!m4e$IS!m$I`$Ib!m$Kh%#t!m&/x&Et!m&FV;'S!m;'S;:j$|?&r?Ah!m?BY?Mn!m~!pkXY$eYZ$e]^$epq$e}!O!m!O!P!m!Q![!m![!]!m!`!a$w!c!}!m#R#S!m#T#o!m$}%O!m%W%o!m%p&a!m&b1p!m1p4U!m4U4d!m4e$IS!m$I`$Ib!m$Je$Jg!m$Kh%#t!m&/x&Et!m&FV;'S!m;'S;:j$|?&r?Ah!m?BY?Mn!m~$hTXY$eYZ$e]^$epq$e!`!a$w~$|Op~~%PP;=`<%l!m",42]],dialects:{noMatch:0},tokenPrec:234});
-
- const space$1=[9,10,11,12,13,32,133,160,5760,8192,8193,8194,8195,8196,8197,8198,8199,8200,8201,8202,8232,8233,8239,8287,12288];function isAlpha$1(O){return O>=65&&O<=90||O>=97&&O<=122||O>=161}function isDigit$1(O){return O>=48&&O<=57}const identifiers$9=new ExternalTokenizer(((O,Q)=>{let e=Q.start,a=e,t=!1;for(;;){let $=O.get(a);if(!(isAlpha$1($)||45==$||95==$||t&&isDigit$1($))){t&&Q.accept(40==$?93:94,a);break}!t&&(45!=$||a>e)&&(t=!0),a++;}})),descendant=new ExternalTokenizer(((O,Q)=>{if(space$1.includes(O.get(Q.start-1))){let e=O.get(Q.start);(isAlpha$1(e)||95==e||35==e||46==e||91==e||58==e||45==e)&&Q.accept(92,Q.start);}})),unitToken=new ExternalTokenizer(((O,Q)=>{let{start:e}=Q;if(!space$1.includes(O.get(e-1))){let a=O.get(e);if(37==a&&Q.accept(1,e+1),isAlpha$1(a)){let a=e+1;for(;isAlpha$1(O.get(a));)a++;Q.accept(1,a);}}})),spec_callee={__proto__:null,not:30,url:64,"url-prefix":64,domain:64,regexp:64,selector:132},spec_AtKeyword={__proto__:null,"@import":112,"@media":136,"@charset":140,"@namespace":144,"@keyframes":150,"@supports":162},spec_identifier$5={__proto__:null,not:126,only:126,from:156,to:158},parser$9=Parser.deserialize({version:13,states:"7WOYQ[OOOOQP'#Cc'#CcOOQP'#Cb'#CbO!ZQ[O'#CeO!}QXO'#C`O#UQ[O'#CgO#aQ[O'#DOO#fQ[O'#DSOOQP'#Eb'#EbO#kQdO'#DdO$SQ[O'#DqO#kQdO'#DsO$eQ[O'#DuO$pQ[O'#DxO$uQ[O'#EOO%TQ[O'#EQOOQS'#Ea'#EaOOQS'#ER'#ERQYQ[OOOOQP'#Cf'#CfOOQP,59P,59PO!ZQ[O,59PO%[Q[O'#ESO%vQWO,58zO&OQ[O,59RO#aQ[O,59jO#fQ[O,59nO%[Q[O,59rO%[Q[O,59tO%[Q[O,59uO'[Q[O'#D_OOQS,58z,58zOOQP'#Cj'#CjOOQO'#Cp'#CpOOQP,59R,59RO'cQWO,59RO'hQWO,59ROOQP'#DQ'#DQOOQP,59j,59jOOQO'#DU'#DUO'mQ`O,59nOOQS'#Cr'#CrO#kQdO'#CsO'uQvO'#CuO(|QtO,5:OOOQO'#Cz'#CzO'hQWO'#CyO)bQWO'#C{OOQS'#Ef'#EfOOQO'#Dg'#DgO)gQ[O'#DnO)uQWO'#EhO$uQ[O'#DlO*TQWO'#DoOOQO'#Ei'#EiO%yQWO,5:]O*YQpO,5:_OOQS'#Dw'#DwO*bQWO,5:aO*gQ[O,5:aOOQO'#Dz'#DzO*oQWO,5:dO*tQWO,5:jO*|QWO,5:lOOQS-E8P-E8POOQP1G.k1G.kO+pQXO,5:nOOQO-E8Q-E8QOOQS1G.f1G.fOOQP1G.m1G.mO'cQWO1G.mO'hQWO1G.mOOQP1G/U1G/UO+}Q`O1G/YO,hQXO1G/^O-OQXO1G/`O-fQXO1G/aO-|QXO'#CcO.qQWO'#D`OOQS,59y,59yO.vQWO,59yO/OQ[O,59yO/VQ[O'#CnO/^QdO'#CqOOQP1G/Y1G/YO#kQdO1G/YO/eQpO,59_OOQS,59a,59aO#kQdO,59cO/mQWO1G/jOOQS,59e,59eO/rQ!bO,59gO/zQWO'#DgO0VQWO,5:SO0[QWO,5:YO$uQ[O,5:UO$uQ[O'#EXO0dQWO,5;SO0oQWO,5:WO%[Q[O,5:ZOOQS1G/w1G/wOOQS1G/y1G/yOOQS1G/{1G/{O1QQWO1G/{O1VQdO'#D{OOQS1G0O1G0OOOQS1G0U1G0UOOQS1G0W1G0WOOQP7+$X7+$XOOQP7+$t7+$tO#kQdO7+$tO#kQdO,59zO1eQ[O'#EWO1oQWO1G/eOOQS1G/e1G/eO1oQWO1G/eO1wQXO'#EdO2OQWO,59YO2TQtO'#ETO2uQdO'#EeO3PQWO,59]O3UQpO7+$tOOQS1G.y1G.yOOQS1G.}1G.}OOQS7+%U7+%UO3^QWO1G/RO#kQdO1G/nOOQO1G/t1G/tOOQO1G/p1G/pO3cQWO,5:sOOQO-E8V-E8VO3qQXO1G/uOOQS7+%g7+%gO3xQYO'#CuO%yQWO'#EYO4QQdO,5:gOOQS,5:g,5:gO4`QpO<P!a!b$w!b!c>o!c!}$w!}#O?{#O#P$w#P#Q@W#Q#R2U#R#T$w#T#U@c#U#c$w#c#dAb#d#o$w#o#pAq#p#q2U#q#rA|#r#sBX#s#y$w#y#z%]#z$f$w$f$g%]$g#BY$w#BY#BZ%]#BZ$IS$w$IS$I_%]$I_$I|$w$I|$JO%]$JO$JT$w$JT$JU%]$JU$KV$w$KV$KW%]$KW&FU$w&FU&FV%]&FV~$wW$zQOy%Qz~%QW%VQqWOy%Qz~%Q~%bf#S~OX%QX^&v^p%Qpq&vqy%Qz#y%Q#y#z&v#z$f%Q$f$g&v$g#BY%Q#BY#BZ&v#BZ$IS%Q$IS$I_&v$I_$I|%Q$I|$JO&v$JO$JT%Q$JT$JU&v$JU$KV%Q$KV$KW&v$KW&FU%Q&FU&FV&v&FV~%Q~&}f#S~qWOX%QX^&v^p%Qpq&vqy%Qz#y%Q#y#z&v#z$f%Q$f$g&v$g#BY%Q#BY#BZ&v#BZ$IS%Q$IS$I_&v$I_$I|%Q$I|$JO&v$JO$JT%Q$JT$JU&v$JU$KV%Q$KV$KW&v$KW&FU%Q&FU&FV&v&FV~%Q^(fSOy%Qz#]%Q#]#^(r#^~%Q^(wSqWOy%Qz#a%Q#a#b)T#b~%Q^)YSqWOy%Qz#d%Q#d#e)f#e~%Q^)kSqWOy%Qz#c%Q#c#d)w#d~%Q^)|SqWOy%Qz#f%Q#f#g*Y#g~%Q^*_SqWOy%Qz#h%Q#h#i*k#i~%Q^*pSqWOy%Qz#T%Q#T#U*|#U~%Q^+RSqWOy%Qz#b%Q#b#c+_#c~%Q^+dSqWOy%Qz#h%Q#h#i+p#i~%Q^+wQ!UUqWOy%Qz~%Q~,QUOY+}Zr+}rs,ds#O+}#O#P,i#P~+}~,iOj~~,lPO~+}_,tWsPOy%Qz!Q%Q!Q![-^![!c%Q!c!i-^!i#T%Q#T#Z-^#Z~%Q^-cWqWOy%Qz!Q%Q!Q![-{![!c%Q!c!i-{!i#T%Q#T#Z-{#Z~%Q^.QWqWOy%Qz!Q%Q!Q![.j![!c%Q!c!i.j!i#T%Q#T#Z.j#Z~%Q^.qWhUqWOy%Qz!Q%Q!Q![/Z![!c%Q!c!i/Z!i#T%Q#T#Z/Z#Z~%Q^/bWhUqWOy%Qz!Q%Q!Q![/z![!c%Q!c!i/z!i#T%Q#T#Z/z#Z~%Q^0PWqWOy%Qz!Q%Q!Q![0i![!c%Q!c!i0i!i#T%Q#T#Z0i#Z~%Q^0pWhUqWOy%Qz!Q%Q!Q![1Y![!c%Q!c!i1Y!i#T%Q#T#Z1Y#Z~%Q^1_WqWOy%Qz!Q%Q!Q![1w![!c%Q!c!i1w!i#T%Q#T#Z1w#Z~%Q^2OQhUqWOy%Qz~%QY2XSOy%Qz!_%Q!_!`2e!`~%QY2lQyQqWOy%Qz~%QX2wQWPOy%Qz~%Q~3QUOY2}Zw2}wx,dx#O2}#O#P3d#P~2}~3gPO~2}_3oQaVOy%Qz~%Q~3zO`~_4RSTPlSOy%Qz!_%Q!_!`2e!`~%Q_4fUlS!OPOy%Qz!O%Q!O!P4x!P!Q%Q!Q![7_![~%Q^4}SqWOy%Qz!Q%Q!Q![5Z![~%Q^5bWqW#ZUOy%Qz!Q%Q!Q![5Z![!g%Q!g!h5z!h#X%Q#X#Y5z#Y~%Q^6PWqWOy%Qz{%Q{|6i|}%Q}!O6i!O!Q%Q!Q![6z![~%Q^6nSqWOy%Qz!Q%Q!Q![6z![~%Q^7RSqW#ZUOy%Qz!Q%Q!Q![6z![~%Q^7fYqW#ZUOy%Qz!O%Q!O!P8U!P!Q%Q!Q![7_![!g%Q!g!h5z!h#X%Q#X#Y5z#Y~%Q^8]WqW#ZUOy%Qz!Q%Q!Q![8U![!g%Q!g!h5z!h#X%Q#X#Y5z#Y~%Q_8zQcVOy%Qz~%Q^9VUlSOy%Qz!O%Q!O!P4x!P!Q%Q!Q![7_![~%Q_9nS#VPOy%Qz!Q%Q!Q![5Z![~%Q~:PRlSOy%Qz{:Y{~%Q~:_SqWOy:Yyz:kz{;`{~:Y~:nROz:kz{:w{~:k~:zTOz:kz{:w{!P:k!P!Q;Z!Q~:k~;`OQ~~;eUqWOy:Yyz:kz{;`{!P:Y!P!Q;w!Q~:Y~US{POy%Qz!`%Q!`!a>b!a~%QX>iQ{PqWOy%Qz~%QX>rUOy%Qz!c%Q!c!}?U!}#T%Q#T#o?U#o~%QX?]Y!XPqWOy%Qz}%Q}!O?U!O!Q%Q!Q![?U![!c%Q!c!}?U!}#T%Q#T#o?U#o~%QX@QQwPOy%Qz~%Q^@]QuUOy%Qz~%QX@fSOy%Qz#b%Q#b#c@r#c~%QX@wSqWOy%Qz#W%Q#W#XAT#X~%QXA[Q!_PqWOy%Qz~%QXAeSOy%Qz#f%Q#f#gAT#g~%QXAvQ!QPOy%Qz~%Q_BRQ!PVOy%Qz~%QZB^S!OPOy%Qz!_%Q!_!`2e!`~%Q",tokenizers:[descendant,unitToken,identifiers$9,0,1,2,3],topRules:{StyleSheet:[0,3]},specialized:[{term:93,get:O=>spec_callee[O]||-1},{term:55,get:O=>spec_AtKeyword[O]||-1},{term:94,get:O=>spec_identifier$5[O]||-1}],tokenPrec:1060});
-
- let _properties=null;function properties$2(){if(!_properties&&"object"==typeof document&&document.body){let e=[];for(let a in document.body.style)/[A-Z]|^-|^(item|length)$/.test(a)||e.push(a);_properties=e.sort().map((e=>({type:"property",label:e})));}return _properties||[]}const pseudoClasses=["active","after","before","checked","default","disabled","empty","enabled","first-child","first-letter","first-line","first-of-type","focus","hover","in-range","indeterminate","invalid","lang","last-child","last-of-type","link","not","nth-child","nth-last-child","nth-last-of-type","nth-of-type","only-of-type","only-child","optional","out-of-range","placeholder","read-only","read-write","required","root","selection","target","valid","visited"].map((e=>({type:"class",label:e}))),values=["above","absolute","activeborder","additive","activecaption","after-white-space","ahead","alias","all","all-scroll","alphabetic","alternate","always","antialiased","appworkspace","asterisks","attr","auto","auto-flow","avoid","avoid-column","avoid-page","avoid-region","axis-pan","background","backwards","baseline","below","bidi-override","blink","block","block-axis","bold","bolder","border","border-box","both","bottom","break","break-all","break-word","bullets","button","button-bevel","buttonface","buttonhighlight","buttonshadow","buttontext","calc","capitalize","caps-lock-indicator","caption","captiontext","caret","cell","center","checkbox","circle","cjk-decimal","clear","clip","close-quote","col-resize","collapse","color","color-burn","color-dodge","column","column-reverse","compact","condensed","contain","content","contents","content-box","context-menu","continuous","copy","counter","counters","cover","crop","cross","crosshair","currentcolor","cursive","cyclic","darken","dashed","decimal","decimal-leading-zero","default","default-button","dense","destination-atop","destination-in","destination-out","destination-over","difference","disc","discard","disclosure-closed","disclosure-open","document","dot-dash","dot-dot-dash","dotted","double","down","e-resize","ease","ease-in","ease-in-out","ease-out","element","ellipse","ellipsis","embed","end","ethiopic-abegede-gez","ethiopic-halehame-aa-er","ethiopic-halehame-gez","ew-resize","exclusion","expanded","extends","extra-condensed","extra-expanded","fantasy","fast","fill","fill-box","fixed","flat","flex","flex-end","flex-start","footnotes","forwards","from","geometricPrecision","graytext","grid","groove","hand","hard-light","help","hidden","hide","higher","highlight","highlighttext","horizontal","hsl","hsla","hue","icon","ignore","inactiveborder","inactivecaption","inactivecaptiontext","infinite","infobackground","infotext","inherit","initial","inline","inline-axis","inline-block","inline-flex","inline-grid","inline-table","inset","inside","intrinsic","invert","italic","justify","keep-all","landscape","large","larger","left","level","lighter","lighten","line-through","linear","linear-gradient","lines","list-item","listbox","listitem","local","logical","loud","lower","lower-hexadecimal","lower-latin","lower-norwegian","lowercase","ltr","luminosity","manipulation","match","matrix","matrix3d","medium","menu","menutext","message-box","middle","min-intrinsic","mix","monospace","move","multiple","multiple_mask_images","multiply","n-resize","narrower","ne-resize","nesw-resize","no-close-quote","no-drop","no-open-quote","no-repeat","none","normal","not-allowed","nowrap","ns-resize","numbers","numeric","nw-resize","nwse-resize","oblique","opacity","open-quote","optimizeLegibility","optimizeSpeed","outset","outside","outside-shape","overlay","overline","padding","padding-box","painted","page","paused","perspective","pinch-zoom","plus-darker","plus-lighter","pointer","polygon","portrait","pre","pre-line","pre-wrap","preserve-3d","progress","push-button","radial-gradient","radio","read-only","read-write","read-write-plaintext-only","rectangle","region","relative","repeat","repeating-linear-gradient","repeating-radial-gradient","repeat-x","repeat-y","reset","reverse","rgb","rgba","ridge","right","rotate","rotate3d","rotateX","rotateY","rotateZ","round","row","row-resize","row-reverse","rtl","run-in","running","s-resize","sans-serif","saturation","scale","scale3d","scaleX","scaleY","scaleZ","screen","scroll","scrollbar","scroll-position","se-resize","self-start","self-end","semi-condensed","semi-expanded","separate","serif","show","single","skew","skewX","skewY","skip-white-space","slide","slider-horizontal","slider-vertical","sliderthumb-horizontal","sliderthumb-vertical","slow","small","small-caps","small-caption","smaller","soft-light","solid","source-atop","source-in","source-out","source-over","space","space-around","space-between","space-evenly","spell-out","square","start","static","status-bar","stretch","stroke","stroke-box","sub","subpixel-antialiased","svg_masks","super","sw-resize","symbolic","symbols","system-ui","table","table-caption","table-cell","table-column","table-column-group","table-footer-group","table-header-group","table-row","table-row-group","text","text-bottom","text-top","textarea","textfield","thick","thin","threeddarkshadow","threedface","threedhighlight","threedlightshadow","threedshadow","to","top","transform","translate","translate3d","translateX","translateY","translateZ","transparent","ultra-condensed","ultra-expanded","underline","unidirectional-pan","unset","up","upper-latin","uppercase","url","var","vertical","vertical-text","view-box","visible","visibleFill","visiblePainted","visibleStroke","visual","w-resize","wait","wave","wider","window","windowframe","windowtext","words","wrap","wrap-reverse","x-large","x-small","xor","xx-large","xx-small"].map((e=>({type:"keyword",label:e}))).concat(["aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blue","blueviolet","brown","burlywood","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dodgerblue","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","grey","green","greenyellow","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","rebeccapurple","red","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","snow","springgreen","steelblue","tan","teal","thistle","tomato","turquoise","violet","wheat","white","whitesmoke","yellow","yellowgreen"].map((e=>({type:"constant",label:e})))),tags=["a","abbr","address","article","aside","b","bdi","bdo","blockquote","body","br","button","canvas","caption","cite","code","col","colgroup","dd","del","details","dfn","dialog","div","dl","dt","em","figcaption","figure","footer","form","header","hgroup","h1","h2","h3","h4","h5","h6","hr","html","i","iframe","img","input","ins","kbd","label","legend","li","main","meter","nav","ol","output","p","pre","ruby","section","select","small","source","span","strong","sub","summary","sup","table","tbody","td","template","textarea","tfoot","th","thead","tr","u","ul"].map((e=>({type:"type",label:e}))),span=/^[\w-]*/,completeCSS=e=>{let{state:a,pos:t}=e,r=syntaxTree(a).resolve(t,-1);if("PropertyName"==r.name)return {from:r.from,options:properties$2(),span:span};if("ValueName"==r.name)return {from:r.from,options:values,span:span};if("PseudoClassName"==r.name)return {from:r.from,options:pseudoClasses,span:span};if("TagName"==r.name){for(let{parent:e}=r;e;e=e.parent)if("Block"==e.name)return {from:r.from,options:properties$2(),span:span};return {from:r.from,options:tags,span:span}}if(!e.explicit)return null;let o=r.resolve(t),i=o.childBefore(t);return i&&":"==i.name&&"PseudoClassSelector"==o.name?{from:t,options:pseudoClasses,span:span}:i&&":"==i.name&&"Declaration"==o.name||"ArgList"==o.name?{from:t,options:values,span:span}:"Block"==o.name?{from:t,options:properties$2(),span:span}:null},cssLanguage=LezerLanguage.define({parser:parser$9.configure({props:[indentNodeProp.add({Declaration:continuedIndent()}),foldNodeProp.add({Block:foldInside}),styleTags({"import charset namespace keyframes":tags$1.definitionKeyword,"media supports":tags$1.controlKeyword,"from to":tags$1.keyword,NamespaceName:tags$1.namespace,KeyframeName:tags$1.labelName,TagName:tags$1.typeName,ClassName:tags$1.className,PseudoClassName:tags$1.constant(tags$1.className),not:tags$1.operatorKeyword,IdName:tags$1.labelName,"FeatureName PropertyName AttributeName":tags$1.propertyName,NumberLiteral:tags$1.number,KeywordQuery:tags$1.keyword,UnaryQueryOp:tags$1.operatorKeyword,callee:tags$1.keyword,"CallTag ValueName":tags$1.atom,Callee:tags$1.variableName,Unit:tags$1.unit,"UniversalSelector NestingSelector":tags$1.definitionOperator,AtKeyword:tags$1.keyword,MatchOp:tags$1.compareOperator,"ChildOp SiblingOp, LogicOp":tags$1.logicOperator,BinOp:tags$1.arithmeticOperator,Important:tags$1.modifier,Comment:tags$1.blockComment,ParenthesizedContent:tags$1.special(tags$1.name),ColorLiteral:tags$1.color,StringLiteral:tags$1.string,":":tags$1.punctuation,"PseudoOp #":tags$1.derefOperator,"; ,":tags$1.separator,"( )":tags$1.paren,"[ ]":tags$1.squareBracket,"{ }":tags$1.brace})]}),languageData:{commentTokens:{block:{open:"/*",close:"*/"}},indentOnInput:/^\s*\}$/}}),cssCompletion=cssLanguage.data.of({autocomplete:completeCSS});function css$2(){return new LanguageSupport(cssLanguage,cssCompletion)}
-
- var index$b = /*#__PURE__*/Object.freeze({
- __proto__: null,
- css: css$2,
- cssCompletion: cssCompletion,
- cssLanguage: cssLanguage
- });
-
- const newline=[10,13,8232,8233],space=[9,11,12,32,133,160,5760,8192,8193,8194,8195,8196,8197,8198,8199,8200,8201,8202,8239,8287,12288];function newlineBefore(O,Q){for(let $=Q-1;$>=0;$--){let Q=O.get($);if(newline.indexOf(Q)>-1)return !0;if(space.indexOf(Q)<0)break}return !1}const insertSemicolon=new ExternalTokenizer(((O,Q,$)=>{let i=Q.start,t=O.get(i);(125==t||-1==t||newlineBefore(O,i))&&$.canShift(273)&&Q.accept(273,Q.start);}),{contextual:!0,fallback:!0}),noSemicolon=new ExternalTokenizer(((O,Q,$)=>{let i=Q.start,t=O.get(i++);if(!(space.indexOf(t)>-1||newline.indexOf(t)>-1)){if(47==t){let Q=O.get(i++);if(47==Q||42==Q)return}125!=t&&59!=t&&-1!=t&&!newlineBefore(O,Q.start)&&$.canShift(269)&&Q.accept(269,Q.start);}}),{contextual:!0}),incdecToken=new ExternalTokenizer(((O,Q,$)=>{let i=Q.start,t=O.get(i);if((43==t||45==t)&&t==O.get(i+1)){let t=!newlineBefore(O,Q.start)&&$.canShift(1);Q.accept(t?1:2,i+2);}}),{contextual:!0}),template=new ExternalTokenizer(((O,Q)=>{let $=Q.start,i=!1;for(;;){let t=O.get($++);if(t<0){$-1>Q.start&&Q.accept(270,$-1);break}if(96==t){$==Q.start+1?Q.accept(272,$):Q.accept(270,$-1);break}if(123==t&&i){$==Q.start+2?Q.accept(271,$):Q.accept(270,$-2);break}if(10==t&&$>Q.start+1){Q.accept(270,$);break}92==t&&$!=O.length&&$++,i=36==t;}}));function tsExtends(O,Q){return "extends"==O&&Q.dialectEnabled(1)?3:-1}const spec_identifier$4={__proto__:null,export:16,as:21,from:25,default:30,async:35,function:36,this:46,true:54,false:54,void:58,typeof:62,null:76,super:78,new:112,await:129,yield:131,delete:132,class:142,extends:144,public:181,private:181,protected:181,readonly:183,in:202,instanceof:204,const:206,import:238,keyof:289,unique:293,infer:299,is:333,abstract:353,implements:355,type:357,let:360,var:362,interface:369,enum:373,namespace:379,module:381,declare:385,global:389,for:410,of:419,while:422,with:426,do:430,if:434,else:436,switch:440,case:446,try:452,catch:454,finally:456,return:460,throw:464,break:468,continue:472,debugger:476},spec_word={__proto__:null,async:99,get:101,set:103,public:151,private:151,protected:151,static:153,abstract:155,readonly:159,new:337},spec_LessThan={__proto__:null,"<":119},parser$8=Parser.deserialize({version:13,states:"$,lO]QYOOO&zQ!LdO'#CgO'ROSO'#DRO)ZQYO'#DWO)kQYO'#DcO)rQYO'#DmO-iQYO'#DsOOQO'#ET'#ETO-|QWO'#ESO.RQWO'#ESO0QQ!LdO'#IgO2hQ!LdO'#IhO3UQWO'#EqO3ZQpO'#FWOOQ!LS'#Ey'#EyO3cO!bO'#EyO3qQWO'#F_O4{QWO'#F^OOQ!LS'#Ih'#IhOOQ!LQ'#Ig'#IgOOQQ'#JR'#JRO5QQWO'#HeO5VQ!LYO'#HfOOQQ'#I['#I[OOQQ'#Hg'#HgQ]QYOOO)rQYO'#DeO5_QWO'#GRO5dQ#tO'#ClO5rQWO'#ERO5}Q#tO'#ExO6iQWO'#GRO6nQWO'#GVO6yQWO'#GVO7XQWO'#GYO7XQWO'#GZO7XQWO'#G]O5_QWO'#G`O7xQWO'#GcO9WQWO'#CcO9hQWO'#GpO9pQWO'#GvO9pQWO'#GxO]QYO'#GzO9pQWO'#G|O9pQWO'#HPO9uQWO'#HVO9zQ!LZO'#HZO)rQYO'#H]O:VQ!LZO'#H_O:bQ!LZO'#HaO5VQ!LYO'#HcO)rQYO'#IjOOOS'#Hh'#HhO:mOSO,59mOOQ!LS,59m,59mO=OQbO'#CgO=YQYO'#HiO=gQWO'#IlO?fQbO'#IlO'^QYO'#IlO?mQWO,59rO@TQ&jO'#D]O@|QWO'#ETOAZQWO'#IvOAfQWO'#IuOAnQWO,5:qOAsQWO'#ItOAzQWO'#DtO5dQ#tO'#EROBYQWO'#EROBeQ`O'#ExOOQ!LS,59},59}OBmQYO,59}ODkQ!LdO,5:XOEXQWO,5:_OErQ!LYO'#IsO6nQWO'#IrOEyQWO'#IrOFRQWO,5:pOFWQWO'#IrOFfQYO,5:nOHcQWO'#EPOIjQWO,5:nOJvQWO'#DgOJ}QYO'#DlOKXQ&jO,5:wO)rQYO,5:wOOQQ'#Ei'#EiOOQQ'#Ek'#EkO)rQYO,5:xO)rQYO,5:xO)rQYO,5:xO)rQYO,5:xO)rQYO,5:xO)rQYO,5:xO)rQYO,5:xO)rQYO,5:xO)rQYO,5:xO)rQYO,5:xO)rQYO,5:xOOQQ'#Eo'#EoOK^QYO,5;YOOQ!LS,5;_,5;_OOQ!LS,5;`,5;`OMZQWO,5;`OOQ!LS,5;a,5;aO)rQYO'#HsOM`Q!LYO,5;zOMzQWO,5:xO)rQYO,5;]ONdQpO'#IzONRQpO'#IzONkQpO'#IzON|QpO,5;hOOQO,5;r,5;rO! [QYO'#FYOOOO'#Hr'#HrO3cO!bO,5;eO! cQpO'#F[OOQ!LS,5;e,5;eO!!PQ,UO'#CqOOQ!LS'#Ct'#CtO!!dQWO'#CtO!!zQ#tO,5;wO!#RQWO,5;yO!$[QWO'#FiO!$iQWO'#FjO!$nQWO'#FnO!%pQ&jO'#FrO!&cQ,UO'#IeOOQ!LS'#Ie'#IeO!&mQWO'#IdO!&{QWO'#IcOOQ!LS'#Cr'#CrOOQ!LS'#Cx'#CxO!'TQWO'#CzOIoQWO'#FaOIoQWO'#FcO!'YQWO'#FeOIeQWO'#FfO!'_QWO'#FlOIoQWO'#FqO!'dQWO'#EUO!'{QWO,5;xO]QYO,5>POOQQ'#I_'#I_OOQQ,5>Q,5>QOOQQ-E;e-E;eO!)wQ!LdO,5:POOQ!LQ'#Co'#CoO!*hQ#tO,5TO)rQYO,5>TOOQO-E;g-E;gO!6tQWO,5?WO!6|QbO,5?WO!7TQWO,5?aOOQ!LS1G/^1G/^O!7]QpO'#DPOOQO'#In'#InO)rQYO'#InO!7zQpO'#InO!8iQpO'#D^O!8zQ&jO'#D^O!;SQYO'#D^O!;ZQWO'#ImO!;cQWO,59wO!;hQWO'#EXO!;vQWO'#IwO!YQ!LYO,5?_O!>kQ!LYO,5?_O!>rQWO,5?^O!>zQWO'#HpO!>rQWO,5?^OOQ!LQ1G0[1G0[O6nQWO,5?^OOQ!LS1G0Y1G0YO!?fQ!LdO1G0YO!@VQ!LbO,5:kOOQ!LS'#Fh'#FhO!@sQ!LdO'#IeOFfQYO1G0YO!BrQ#tO'#IoO!B|QWO,5:RO!CRQbO'#IpO)rQYO'#IpO!C]QWO,5:WOOQ!LS'#DP'#DPOOQ!LS1G0c1G0cO!CbQWO1G0cO!EsQ!LdO1G0dO!EzQ!LdO1G0dO!H_Q!LdO1G0dO!HfQ!LdO1G0dO!JmQ!LdO1G0dO!KQQ!LdO1G0dO!MqQ!LdO1G0dO!MxQ!LdO1G0dO#!]Q!LdO1G0dO#!dQ!LdO1G0dO#$XQ!LdO1G0dO#'RQ7^O'#CgO#(|Q7^O1G0tO#*wQ7^O'#IhOOQ!LS1G0z1G0zO#+[Q!LdO,5>_OOQ!LQ-E;q-E;qO#+{Q!LdO1G0dOOQ!LS1G0d1G0dO#-}Q!LdO1G0wO#.nQpO,5;jO#.sQpO,5;kO#.xQpO'#FRO#/^QWO'#FQOOQO'#I{'#I{OOQO'#Hq'#HqO#/cQpO1G1SOOQ!LS1G1S1G1SOOQO1G1]1G1]O#/qQ7^O'#IgO#/{QWO,5;tOK^QYO,5;tOOOO-E;p-E;pOOQ!LS1G1P1G1POOQ!LS,5;v,5;vO#0QQpO,5;vOOQ!LS,59`,59`O)rQYO1G1cOKXQ&jO'#HuO#0VQWO,5<[OOQ!LS,5}OOQ!LS'#Cg'#CgO#4hQ#tO,59fOOQ!LS,59f,59fO#5ZQ#tO,5;{O#5|Q#tO,5;}O#6WQWO,5z,5>zO#8gQ!LYO,5>zOOQQ1G.r1G.rO9uQWO1G.rO!+aQpO1G.rO!+iQ#tO1G.rO#8uQWO1G0YO#8zQWO'#CgO#9VQWO'#JWO#9_QWO,5=ZO#9dQWO'#JWO#9iQWO'#IQO#9wQWO,5?qO#:PQbO1G0|OOQ!LS1G1O1G1OO5_QWO1G2tO#:WQWO1G2tO#:]QWO1G2tO#:bQWO1G2tOOQQ1G2t1G2tO#:gQ#tO1G2XO6nQWO'#IuO6nQWO'#EXO6nQWO'#HzO#:xQ!LYO,5?nOOQQ1G2]1G2]O!.YQWO1G2cOHcQWO1G2`O#;TQWO1G2`OOQQ1G2a1G2aOHcQWO1G2aO#;YQWO1G2aO#;bQ&jO'#G_OOQQ1G2c1G2cO!%kQ&jO'#H|O!._Q`O1G2fOOQQ1G2f1G2fOOQQ,5=P,5=PO#;jQ#tO,5=RO5_QWO,5=RO#2pQWO,5=UO4{QWO,5=UO!+aQpO,5=UO!+iQ#tO,5=UO5dQ#tO,5=UO#;{QWO'#JUO#Y,5>YO6nQWO,5>YOOQO-E;l-E;lO#DWQ!LrO'#D|O!%kQ&jO'#DxOOQO'#Hm'#HmO#DrQ&jO,5:cOOQ!LS,5:c,5:cO#DyQ&jO'#DxO#EXQ&jO'#D|O#EmQ&jO'#D|O!%kQ&jO'#D|O#EwQWO1G/zO#E|Q`O1G/zOOQ!LS1G/z1G/zO)rQYO1G/zOHcQWO1G/zOOQ!LS1G0X1G0XO9uQWO1G0XO!+aQpO1G0XO!+iQ#tO1G0XO#FTQ!LdO1G4yO)rQYO1G4yO#FeQ!LYO1G4yO#FvQWO1G4xO6nQWO,5>[OOQO,5>[,5>[O#GOQWO,5>[OOQO-E;n-E;nO#FvQWO1G4xO#G^Q!LdO,59fO#I]Q!LdO,5;{O#K_Q!LdO,5;}O#MaQ!LdO,5<]OOQ!LS7+%t7+%tO$ iQ!LdO7+%tO$!YQWO'#HkO$!dQWO,5?ZOOQ!LS1G/m1G/mO$!lQYO'#HlO$!yQWO,5?[O$#RQbO,5?[OOQ!LS1G/r1G/rOOQ!LS7+%}7+%}O$#]Q7^O,5:XO)rQYO7+&`O$#gQ7^O,5:POOQO1G1U1G1UOOQO1G1V1G1VO$#tQMhO,5;mOK^QYO,5;lOOQO-E;o-E;oOOQ!LS7+&n7+&nOOQO7+&w7+&wOOOO1G1`1G1`O$$PQWO1G1`OOQ!LS1G1b1G1bO$$UQ!LdO7+&}OOQ!LS,5>a,5>aO$$uQWO,5>aOOQ!LS1G1v1G1vP$$zQWO'#HuPOQ!LS-E;s-E;sO$%kQ#tO1G2RO$&^Q#tO1G2TO$&hQ#tO1G2VOOQ!LS1G1o1G1oO$&oQWO'#HtO$&}QWO,5?jO$&}QWO,5?jO$'VQWO,5?jO$'bQWO,5?jOOQO1G1q1G1qO$'pQ#tO1G1pO$(QQWO'#HvO$(bQWO,5?kOHcQWO,5?kO$(jQ`O,5?kOOQ!LS1G1t1G1tO5VQ!LYO,5<_O5VQ!LYO,5<`O$(tQWO,5<`O#2kQWO,5<`O!+aQpO,5<_O$(yQWO,5d,5>dOOQO-E;v-E;vOKXQ&jO,59hO)rQYO,59hO$)uQWO1G1kOIoQWO1G1rO$)zQ!LdO7+'OOOQ!LS7+'O7+'OOFfQYO7+'OOOQ!LS7+%V7+%VO$*kQ`O'#JQO#EwQWO7+'sO$*uQWO7+'sO$*}Q`O7+'sOOQQ7+'s7+'sOHcQWO7+'sO)rQYO7+'sOHcQWO7+'sOOQO1G.v1G.vO$+XQ!LbO'#CgO$+iQ!LbO,5l,5>lOOQO-Ef,5>fOOQ!LQ-E;x-E;xOOQQ7+'}7+'}O$-YQ!LbO7+'zOHcQWO7+'zO$-dQ`O7+'{OOQQ7+'{7+'{OHcQWO7+'{O$-kQWO'#JTO$-vQWO,5h,5>hOOQO-E;z-E;zOOQQ7+(Q7+(QO$.mQ&jO'#GhOOQQ1G2m1G2mOHcQWO1G2mO)rQYO1G2mOHcQWO1G2mO$.tQWO1G2mO$/SQ#tO1G2mO5VQ!LYO1G2pO#2pQWO1G2pO4{QWO1G2pO!+aQpO1G2pO!+iQ#tO1G2pO$/eQWO'#IOO$/pQWO,5?pO$/xQ&jO,5?pOOQ!LQ1G2q1G2qOOQQ7+$T7+$TO$/}QWO7+$TO5VQ!LYO7+$TO$0SQWO7+$TO)rQYO1G5_O)rQYO1G5`O$0XQYO1G2xO$0`QWO1G2xO$0eQYO1G2xO$0lQ!LYO1G5_OOQQ7+(b7+(bO5VQ!LYO7+(lO]QYO7+(nOOQQ'#JZ'#JZOOQQ'#IR'#IRO$0vQYO,5=mOOQQ,5=m,5=mO)rQYO'#HSO$1TQWO'#HUOOQQ7+(w7+(wO$1YQYO7+(wO6nQWO7+(wOOQQ7+({7+({OOQQ7+)P7+)POOQQ7+)R7+)ROOQO1G4t1G4tO$5TQ7^O1G0_O$5_QWO1G0_OOQO1G/d1G/dO$5jQ7^O1G/dO9uQWO1G/dOK^QYO'#D^OOQO,5>U,5>UOOQO-E;h-E;hOOQO,5>Z,5>ZOOQO-E;m-E;mO!+aQpO1G/dOOQO1G3t1G3tO9uQWO,5:dOOQO,5:h,5:hO)rQYO,5:hO$5tQ!LYO,5:hO$6PQ!LYO,5:hO!+aQpO,5:dOOQO-E;k-E;kOOQ!LS1G/}1G/}O!%kQ&jO,5:dO$6_Q!LrO,5:hO$6yQ&jO,5:dO!%kQ&jO,5:hO$7XQ&jO,5:hO$7mQ!LYO,5:hOOQ!LS7+%f7+%fO#EwQWO7+%fO#E|Q`O7+%fOOQ!LS7+%s7+%sO9uQWO7+%sO!+aQpO7+%sO$8RQ!LdO7+*eO)rQYO7+*eOOQO1G3v1G3vO6nQWO1G3vO$8cQWO7+*dO$8kQ!LdO1G2RO$:mQ!LdO1G2TO$wQ#tO,5>VOOQO-E;i-E;iO$?RQbO,5>WO)rQYO,5>WOOQO-E;j-E;jO$?]QWO1G4vO$?eQ7^O1G0YO$AlQ7^O1G0dO$AsQ7^O1G0dO$CtQ7^O1G0dO$C{Q7^O1G0dO$EpQ7^O1G0dO$FTQ7^O1G0dO$HbQ7^O1G0dO$HiQ7^O1G0dO$JjQ7^O1G0dO$JqQ7^O1G0dO$LfQ7^O1G0dO$LyQ!LdO<_OOOO7+&z7+&zOOQ!LS1G3{1G3{OIoQWO7+'qO%#sQWO,5>`O5_QWO,5>`OOQO-E;r-E;rO%$RQWO1G5UO%$RQWO1G5UO%$ZQWO1G5UO%$fQ`O,5>bO%$pQWO,5>bOHcQWO,5>bOOQO-E;t-E;tO%$uQ`O1G5VO%%PQWO1G5VOOQO1G1y1G1yOOQO1G1z1G1zO5VQ!LYO1G1zO$(tQWO1G1zO5VQ!LYO1G1yO%%XQWO1G1{OHcQWO1G1{OOQO1G1|1G1|O5VQ!LYO1G2PO!+aQpO1G1yO#2kQWO1G1zO%%^QWO1G1{O%%fQWO1G1zOIoQWO7+*UOOQ!LS1G/S1G/SO%%qQWO1G/SOOQ!LS7+'V7+'VO%%vQ#tO7+'^O%&WQ!LdO<k,5>kO%(SQWO,5>kOOQO-E;}-E;}O%(XQWO1G5^O%(aQWO<jOOQO-E;|-E;|OOQO'#Gl'#GlO%+VQWO1G5[O5VQ!LYO<eOOQO-E;w-E;wO#EwQWOAN@yOOQQAN@yAN@yOHcQWOAN@yO%;fQ!LbO7+'iOOQQAN=dAN=dO5_QWO1G4VO%;sQWO7+*xO5VQ!LYOANAfO%;{QWOANAfOOQQANAfANAfO%gOOQO-E;y-E;yO%PQ&jO1G4UO%>UQWO7+*vOOQQAN=ZAN=ZO5VQ!LYOAN=ZOOQQ<^QWO<cQYO<jQWO<oQWO<tQ7^O<yAN>yO%?}Q!LdO<tAN>tO%,eQ!LdOAN>tOOQOAN>pAN>pO)rQYOAN>tO9uQWOAN>pO&!kQ!LYOAN>tO&!vQ7^O<YO|&lO!^'fa~Ot$pO{+oO!O$qO!|+qO!}+oO'P$[O|&dX!^&dX~O^!vi|!vi&{!viy!vi!^!vi'_!vi!O!vi$w!vi!W!vi~P!(TO#O!sa|!sa!^!sa!t!sa!O!sa^!sa&{!say!sa~P!!iO#O'XXP'XXY'XX^'XXi'XXr'XX!['XX!_'XX!e'XX#R'XX#S'XX#T'XX#U'XX#V'XX#W'XX#X'XX#Y'XX#['XX#^'XX#`'XX#a'XX&{'XX']'XX!^'XXy'XX!O'XX$w'XX'_'XX!W'XX~P!%wO|+zO'T'cX~P!!iO'T+|O~O|+}O!^'dX~P!(TO!^,QO~Oy,RO~OP#ZOq!xOr!xOt!yO!]!vO!_!wO!e#ZO']QOY#Qi^#Qii#Qi|#Qi![#Qi#S#Qi#T#Qi#U#Qi#V#Qi#W#Qi#X#Qi#Y#Qi#[#Qi#^#Qi#`#Qi#a#Qi&{#Qi'e#Qi'l#Qi'm#Qiy#Qi!^#Qi'_#Qi!O#Qi$w#Qi!W#Qi~O#R#Qi~P!CgO#R!|O~P!CgOP#ZOq!xOr!xOt!yO!]!vO!_!wO!e#ZO#R!|O#S!}O#T!}O#U!}O']QOY#Qi^#Qi|#Qi![#Qi#V#Qi#W#Qi#X#Qi#Y#Qi#[#Qi#^#Qi#`#Qi#a#Qi&{#Qi'e#Qi'l#Qi'm#Qiy#Qi!^#Qi'_#Qi!O#Qi$w#Qi!W#Qi~Oi#Qi~P!FROi#OO~P!FROP#ZOi#OOq!xOr!xOt!yO!]!vO!_!wO!e#ZO#R!|O#S!}O#T!}O#U!}O#V#PO']QO^#Qi|#Qi#[#Qi#^#Qi#`#Qi#a#Qi&{#Qi'e#Qi'l#Qi'm#Qiy#Qi!^#Qi'_#Qi!O#Qi$w#Qi!W#Qi~OY#Qi![#Qi#W#Qi#X#Qi#Y#Qi~P!HmOY#aO![#QO#W#QO#X#QO#Y#QO~P!HmOP#ZOY#aOi#OOq!xOr!xOt!yO![#QO!]!vO!_!wO!e#ZO#R!|O#S!}O#T!}O#U!}O#V#PO#W#QO#X#QO#Y#QO#[#RO']QO^#Qi|#Qi#^#Qi#`#Qi#a#Qi&{#Qi'e#Qi'm#Qiy#Qi!^#Qi'_#Qi!O#Qi$w#Qi!W#Qi~O'l#Qi~P!KeO'l!zO~P!KeOP#ZOY#aOi#OOq!xOr!xOt!yO![#QO!]!vO!_!wO!e#ZO#R!|O#S!}O#T!}O#U!}O#V#PO#W#QO#X#QO#Y#QO#[#RO#^#TO']QO'l!zO^#Qi|#Qi#`#Qi#a#Qi&{#Qi'e#Qiy#Qi!^#Qi'_#Qi!O#Qi$w#Qi!W#Qi~O'm#Qi~P!NPO'm!{O~P!NPOP#ZOY#aOi#OOq!xOr!xOt!yO![#QO!]!vO!_!wO!e#ZO#R!|O#S!}O#T!}O#U!}O#V#PO#W#QO#X#QO#Y#QO#[#RO#^#TO#`#VO']QO'l!zO'm!{O~O^#Qi|#Qi#a#Qi&{#Qi'e#Qiy#Qi!^#Qi'_#Qi!O#Qi$w#Qi!W#Qi~P#!kOPZXYZXiZXqZXrZXtZX![ZX!]ZX!_ZX!eZX!tZX#OcX#RZX#SZX#TZX#UZX#VZX#WZX#XZX#YZX#[ZX#^ZX#`ZX#aZX#fZX']ZX'eZX'lZX'mZX|ZX}ZX~O#dZX~P#%OOP#ZOY8sOi8hOq!xOr!xOt!yO![8jO!]!vO!_!wO!e#ZO#R8fO#S8gO#T8gO#U8gO#V8iO#W8jO#X8jO#Y8jO#[8kO#^8mO#`8oO#a8pO']QO'e#XO'l!zO'm!{O~O#d,TO~P#'YOP'[XY'[Xi'[Xq'[Xr'[Xt'[X!['[X!]'[X!_'[X!e'[X#R'[X#S'[X#T'[X#U'[X#V'[X#W'[X#Y'[X#['[X#^'[X#`'[X#a'[X']'[X'e'[X'l'[X'm'[X|'[X~O!t8tO#f8tO#X'[X#d'[X}'[X~P#)TO^&ga|&ga&{&ga!^&ga'_&gay&ga!O&ga$w&ga!W&ga~P!(TOP#QiY#Qi^#Qii#Qir#Qi|#Qi![#Qi!]#Qi!_#Qi!e#Qi#R#Qi#S#Qi#T#Qi#U#Qi#V#Qi#W#Qi#X#Qi#Y#Qi#[#Qi#^#Qi#`#Qi#a#Qi&{#Qi']#Qiy#Qi!^#Qi'_#Qi!O#Qi$w#Qi!W#Qi~P!!iO^#ei|#ei&{#eiy#ei!^#ei'_#ei!O#ei$w#ei!W#ei~P!(TO#q,VO~O#q,WO~O!W'dO!t,XO!O#uX#n#uX#q#uX#x#uX~O{,YO~O!O'gO#n,[O#q'fO#x,]O~O|8qO}'ZX~P#'YO},^O~O#x,`O~O],cOj,cOy,dO~O|cX!WcX!^cX!^$[X'ecX~P! kO!^,jO~P!!iO|,kO!W!tO'e&gO!^'rX~O!^,pO~Oy$[X|$[X!W$cX~P! kO|,rOy'sX~P!!iO!W,tO~Oy,vO~O{(SO'P$[O!^'rP~Oi,zO!W!tO!_$TO'U$_O'e&gO~O!W)SO~O}-QO~P!${O!S-RO!T-RO'Q$^O'Y([O~Ot-TO'Y([O~O!q-UO~O'P$vO|&lX'T&lX~O|(lO'T'Va~Oq-ZOr-ZOt-[O'ena'lna'mna|na!tna~O'Tna#dna~P#3|Oq'vOt'wO'e$Ta'l$Ta'm$Ta|$Ta!t$Ta~O'T$Ta#d$Ta~P#4rOq'vOt'wO'e$Va'l$Va'm$Va|$Va!t$Va~O'T$Va#d$Va~P#5eO]-]O~O#O-^O~O'T$ea|$ea#d$ea!t$ea~P!!iO#O-aO~OR-jO!O&[O!j-iO$w-hO~O'T-kO~O]#nOi#oOj#nOk#nOm#{Oo8uOt#tO!O#uO!Y9wO!_#rO!}8{O#k$PO$U8wO$W8yO$Z$QO~Og-mO'P-lO~P#7[O!W)SO!O'Sa^'Sa&{'Sa~O#O-sO~OYZX|cX}cX~O|-tO}'zX~O}-vO~OY-wO~O!O$gO'P$[O[&tX|&tX~O|)`O['ya~O!^-zO~P!(TO]-|O~OY-}O~O[.OO~OR-jO!O&[O!j-iO$w-hO'U$_O~O|)lO^'va&{'va~O!t.UO~OR.XO!O#uO~O'Y&{O}'wP~OR.cO!O._O!j.bO$w.aO'U$_O~OY.mO|.kO}'xX~O}.nO~O[.pO^$WO&{$WO~O].qO~O#X.sO%i.tO~P0kO!t#bO#X.sO%i.tO~O^.uO~P)rO^.wO~O%r.{OP%piQ%piW%pi]%pi^%pia%pib%pig%pii%pij%pik%pim%pio%pit%piv%piw%pix%pi!O%pi!Y%pi!_%pi!b%pi!c%pi!d%pi!e%pi!f%pi!i%pi#Z%pi#k%pi#o%pi$v%pi$x%pi$z%pi${%pi%O%pi%Q%pi%T%pi%U%pi%W%pi%e%pi%k%pi%m%pi%o%pi%q%pi%t%pi%z%pi&O%pi&Q%pi&S%pi&U%pi&W%pi&v%pi'P%pi']%pi'q%pi}%pi_%pi%w%pi~O_/RO}/PO%w/QO~P]O!OSO!_/UO~O|#_O'_$Sa~Oy&]i|&]i~P!(TO|!ZOy'`i~O|&XOy'ii~Oy/YO~O|!Qa}!Qa~P#'YO]%zOj%zO{/`O'Y([O|&^X}&^X~P?rO|*|O}'aa~O]&SOj&SO{)kO'Y&{O|&cX}&cX~O|+PO}'ka~Oy'ji|'ji~P!(TO^$WO!W!tO!_$TO!e/kO!t/iO&{$WO'U$_O'e&gO~O}/nO~P!=UO!S/oO!T/oO'Q$^O'Y([O~O!R/qO!S/oO!T/oO!q/rO'Q$^O'Y([O~O!n/sO!o/sO~P#EXO!O&[O~O!O&[O~P!!iO|'gi!^'gi^'gi&{'gi~P!(TO!t/|O|'gi!^'gi^'gi&{'gi~O|&lO!^'fi~Ot$pO!O$qO!}0OO'P$[O~O#OnaPnaYna^naina![na!]na!_na!ena#Rna#Sna#Tna#Una#Vna#Wna#Xna#Yna#[na#^na#`na#ana&{na']na!^nayna!Ona$wna'_na!Wna~P#3|O#O$TaP$TaY$Ta^$Tai$Tar$Ta![$Ta!]$Ta!_$Ta!e$Ta#R$Ta#S$Ta#T$Ta#U$Ta#V$Ta#W$Ta#X$Ta#Y$Ta#[$Ta#^$Ta#`$Ta#a$Ta&{$Ta']$Ta!^$Tay$Ta!O$Ta$w$Ta'_$Ta!W$Ta~P#4rO#O$VaP$VaY$Va^$Vai$Var$Va![$Va!]$Va!_$Va!e$Va#R$Va#S$Va#T$Va#U$Va#V$Va#W$Va#X$Va#Y$Va#[$Va#^$Va#`$Va#a$Va&{$Va']$Va!^$Vay$Va!O$Va$w$Va'_$Va!W$Va~P#5eO#O$eaP$eaY$ea^$eai$ear$ea|$ea![$ea!]$ea!_$ea!e$ea#R$ea#S$ea#T$ea#U$ea#V$ea#W$ea#X$ea#Y$ea#[$ea#^$ea#`$ea#a$ea&{$ea']$ea!^$eay$ea!O$ea!t$ea$w$ea'_$ea!W$ea~P!!iO^!vq|!vq&{!vqy!vq!^!vq'_!vq!O!vq$w!vq!W!vq~P!(TO|&_X'T&_X~PIoO|+zO'T'ca~O{0WO|&`X!^&`X~P)rO|+}O!^'da~O|+}O!^'da~P!(TO#d!aa}!aa~PBtO#d!Xa|!Xa}!Xa~P#'YO!O0kO#o]O#v0lO~O}0pO~O^$Pq|$Pq&{$Pqy$Pq!^$Pq'_$Pq!O$Pq$w$Pq!W$Pq~P!(TOy0qO~O],cOj,cO~Oq'vOt'wO'm'{O'e$oi'l$oi|$oi!t$oi~O'T$oi#d$oi~P$%SOq'vOt'wO'e$qi'l$qi'm$qi|$qi!t$qi~O'T$qi#d$qi~P$%uO#d0rO~P!!iO{0tO'P$[O|&hX!^&hX~O|,kO!^'ra~O|,kO!W!tO!^'ra~O|,kO!W!tO'e&gO!^'ra~O'T$^i|$^i#d$^i!t$^i~P!!iO{0{O'P(VOy&jX|&jX~P!#WO|,rOy'sa~O|,rOy'sa~P!!iO!W!tO~O!W!tO#X1VO~Oi1ZO!W!tO'e&gO~O|'Wi'T'Wi~P!!iO!t1^O|'Wi'T'Wi~P!!iO!^1aO~O^$Qq|$Qq&{$Qqy$Qq!^$Qq'_$Qq!O$Qq$w$Qq!W$Qq~P!(TO|1eO!O'tX~P!!iO!O&[O$w1hO~O!O&[O$w1hO~P!!iO!O$[X$lZX^$[X&{$[X~P! kO$l1lOqfXtfX!OfX'efX'lfX'mfX^fX&{fX~O$l1lO~O'P)[O|&sX}&sX~O|-tO}'za~O[1uO~O]1xO~OR1zO!O&[O!j1yO$w1hO~O^$WO&{$WO~P!!iO!O#uO~P!!iO|2PO!t2RO}'wX~O}2SO~Ot(`O!R2]O!S2UO!T2UO!m2[O!n2ZO!o2ZO!q2YO'Q$^O'Y([O~O}2XO~P$-{OR2dO!O._O!j2cO$w2bO~OR2dO!O._O!j2cO$w2bO'U$_O~O'P(nO|&rX}&rX~O|.kO}'xa~O'Y2mO~O]2oO~O[2qO~O!^2tO~P)rO^2vO~O^2vO~P)rO#X2xO%i2yO~PE^O_/RO}2}O%w/QO~P]O!W3PO~O%|3QOP%yqQ%yqW%yq]%yq^%yqa%yqb%yqg%yqi%yqj%yqk%yqm%yqo%yqt%yqv%yqw%yqx%yq!O%yq!Y%yq!_%yq!b%yq!c%yq!d%yq!e%yq!f%yq!i%yq#Z%yq#k%yq#o%yq$v%yq$x%yq$z%yq${%yq%O%yq%Q%yq%T%yq%U%yq%W%yq%e%yq%k%yq%m%yq%o%yq%q%yq%t%yq%z%yq&O%yq&Q%yq&S%yq&U%yq&W%yq&v%yq'P%yq']%yq'q%yq}%yq%r%yq_%yq%w%yq~O|!{i}!{i~P#'YO!t3SO|!{i}!{i~O|!Qi}!Qi~P#'YO^$WO!t3ZO&{$WO~O^$WO!W!tO!t3ZO&{$WO~O^$WO!W!tO!_$TO!e3_O!t3ZO&{$WO'U$_O'e&gO~O!S3`O!T3`O'Q$^O'Y([O~O!R3cO!S3`O!T3`O!q3dO'Q$^O'Y([O~O^$WO!W!tO!e3_O!t3ZO&{$WO'e&gO~O|'gq!^'gq^'gq&{'gq~P!(TO|&lO!^'fq~O#O$oiP$oiY$oi^$oii$oir$oi![$oi!]$oi!_$oi!e$oi#R$oi#S$oi#T$oi#U$oi#V$oi#W$oi#X$oi#Y$oi#[$oi#^$oi#`$oi#a$oi&{$oi']$oi!^$oiy$oi!O$oi$w$oi'_$oi!W$oi~P$%SO#O$qiP$qiY$qi^$qii$qir$qi![$qi!]$qi!_$qi!e$qi#R$qi#S$qi#T$qi#U$qi#V$qi#W$qi#X$qi#Y$qi#[$qi#^$qi#`$qi#a$qi&{$qi']$qi!^$qiy$qi!O$qi$w$qi'_$qi!W$qi~P$%uO#O$^iP$^iY$^i^$^ii$^ir$^i|$^i![$^i!]$^i!_$^i!e$^i#R$^i#S$^i#T$^i#U$^i#V$^i#W$^i#X$^i#Y$^i#[$^i#^$^i#`$^i#a$^i&{$^i']$^i!^$^iy$^i!O$^i!t$^i$w$^i'_$^i!W$^i~P!!iO|&_a'T&_a~P!!iO|&`a!^&`a~P!(TO|+}O!^'di~O#d!vi|!vi}!vi~P#'YOP#ZOq!xOr!xOt!yO!]!vO!_!wO!e#ZO']QOY#Qii#Qi![#Qi#S#Qi#T#Qi#U#Qi#V#Qi#W#Qi#X#Qi#Y#Qi#[#Qi#^#Qi#`#Qi#a#Qi#d#Qi'e#Qi'l#Qi'm#Qi|#Qi}#Qi~O#R#Qi~P$?rO#R8fO~P$?rOP#ZOq!xOr!xOt!yO!]!vO!_!wO!e#ZO#R8fO#S8gO#T8gO#U8gO']QOY#Qi![#Qi#V#Qi#W#Qi#X#Qi#Y#Qi#[#Qi#^#Qi#`#Qi#a#Qi#d#Qi'e#Qi'l#Qi'm#Qi|#Qi}#Qi~Oi#Qi~P$AzOi8hO~P$AzOP#ZOi8hOq!xOr!xOt!yO!]!vO!_!wO!e#ZO#R8fO#S8gO#T8gO#U8gO#V8iO']QO#[#Qi#^#Qi#`#Qi#a#Qi#d#Qi'e#Qi'l#Qi'm#Qi|#Qi}#Qi~OY#Qi![#Qi#W#Qi#X#Qi#Y#Qi~P$DSOY8sO![8jO#W8jO#X8jO#Y8jO~P$DSOP#ZOY8sOi8hOq!xOr!xOt!yO![8jO!]!vO!_!wO!e#ZO#R8fO#S8gO#T8gO#U8gO#V8iO#W8jO#X8jO#Y8jO#[8kO']QO#^#Qi#`#Qi#a#Qi#d#Qi'e#Qi'm#Qi|#Qi}#Qi~O'l#Qi~P$FhO'l!zO~P$FhOP#ZOY8sOi8hOq!xOr!xOt!yO![8jO!]!vO!_!wO!e#ZO#R8fO#S8gO#T8gO#U8gO#V8iO#W8jO#X8jO#Y8jO#[8kO#^8mO']QO'l!zO#`#Qi#a#Qi#d#Qi'e#Qi|#Qi}#Qi~O'm#Qi~P$HpO'm!{O~P$HpOP#ZOY8sOi8hOq!xOr!xOt!yO![8jO!]!vO!_!wO!e#ZO#R8fO#S8gO#T8gO#U8gO#V8iO#W8jO#X8jO#Y8jO#[8kO#^8mO#`8oO']QO'l!zO'm!{O~O#a#Qi#d#Qi'e#Qi|#Qi}#Qi~P$JxO^#by|#by&{#byy#by!^#by'_#by!O#by$w#by!W#by~P!(TOP#QiY#Qii#Qir#Qi![#Qi!]#Qi!_#Qi!e#Qi#R#Qi#S#Qi#T#Qi#U#Qi#V#Qi#W#Qi#X#Qi#Y#Qi#[#Qi#^#Qi#`#Qi#a#Qi#d#Qi']#Qi|#Qi}#Qi~P!!iO!]!vOP'XXY'XXi'XXq'XXr'XXt'XX!['XX!_'XX!e'XX#R'XX#S'XX#T'XX#U'XX#V'XX#W'XX#X'XX#Y'XX#['XX#^'XX#`'XX#a'XX#d'XX']'XX'e'XX'l'XX'm'XX|'XX}'XX~O#d#ei|#ei}#ei~P#'YO}3tO~O|&ga}&ga~P#'YO!W!tO'e&gO|&ha!^&ha~O|,kO!^'ri~O|,kO!W!tO!^'ri~Oy&ja|&ja~P!!iO!W3{O~O|,rOy'si~P!!iO|,rOy'si~Oy4RO~O!W!tO#X4XO~Oi4YO!W!tO'e&gO~Oy4[O~O'T$`q|$`q#d$`q!t$`q~P!!iO^$Qy|$Qy&{$Qyy$Qy!^$Qy'_$Qy!O$Qy$w$Qy!W$Qy~P!(TO|1eO!O'ta~O!O&[O$w4aO~O!O&[O$w4aO~P!!iO^!vy|!vy&{!vyy!vy!^!vy'_!vy!O!vy$w!vy!W!vy~P!(TOY4dO~O|-tO}'zi~O]4fO~O[4gO~O'Y&{O|&oX}&oX~O|2PO}'wa~O}4tO~P$-{O!R4wO!S4vO!T4vO!q/rO'Q$^O'Y([O~O!n4xO!o4xO~P%)VO!S4vO!T4vO'Q$^O'Y([O~O!O._O~O!O._O$w4zO~O!O._O$w4zO~P!!iOR5PO!O._O!j5OO$w4zO~OY5UO|&ra}&ra~O|.kO}'xi~O]5XO~O!^5YO~O!^5ZO~O!^5[O~O!^5[O~P)rO^5^O~O!W5aO~O!^5cO~O|'ji}'ji~P#'YO^$WO&{$WO~P!(TO^$WO!t5hO&{$WO~O^$WO!W!tO!t5hO&{$WO~O^$WO!W!tO!e5mO!t5hO&{$WO'e&gO~O!_$TO'U$_O~P%-YO!S5nO!T5nO'Q$^O'Y([O~O|'gy!^'gy^'gy&{'gy~P!(TO#O$`qP$`qY$`q^$`qi$`qr$`q|$`q![$`q!]$`q!_$`q!e$`q#R$`q#S$`q#T$`q#U$`q#V$`q#W$`q#X$`q#Y$`q#[$`q#^$`q#`$`q#a$`q&{$`q']$`q!^$`qy$`q!O$`q!t$`q$w$`q'_$`q!W$`q~P!!iO|&`i!^&`i~P!(TO#d!vq|!vq}!vq~P#'YOq-ZOr-ZOt-[OPnaYnaina![na!]na!_na!ena#Rna#Sna#Tna#Una#Vna#Wna#Xna#Yna#[na#^na#`na#ana#dna']na'ena'lna'mna|na}na~Oq'vOt'wOP$TaY$Tai$Tar$Ta![$Ta!]$Ta!_$Ta!e$Ta#R$Ta#S$Ta#T$Ta#U$Ta#V$Ta#W$Ta#X$Ta#Y$Ta#[$Ta#^$Ta#`$Ta#a$Ta#d$Ta']$Ta'e$Ta'l$Ta'm$Ta|$Ta}$Ta~Oq'vOt'wOP$VaY$Vai$Var$Va![$Va!]$Va!_$Va!e$Va#R$Va#S$Va#T$Va#U$Va#V$Va#W$Va#X$Va#Y$Va#[$Va#^$Va#`$Va#a$Va#d$Va']$Va'e$Va'l$Va'm$Va|$Va}$Va~OP$eaY$eai$ear$ea![$ea!]$ea!_$ea!e$ea#R$ea#S$ea#T$ea#U$ea#V$ea#W$ea#X$ea#Y$ea#[$ea#^$ea#`$ea#a$ea#d$ea']$ea|$ea}$ea~P!!iO#d$Pq|$Pq}$Pq~P#'YO#d$Qq|$Qq}$Qq~P#'YO}5xO~O'T$sy|$sy#d$sy!t$sy~P!!iO!W!tO|&hi!^&hi~O!W!tO'e&gO|&hi!^&hi~O|,kO!^'rq~Oy&ji|&ji~P!!iO|,rOy'sq~Oy6PO~P!!iOy6PO~O|'Wy'T'Wy~P!!iO|&ma!O&ma~P!!iO!O$kq^$kq&{$kq~P!!iO|-tO}'zq~O]6YO~O!O&[O$w6ZO~O!O&[O$w6ZO~P!!iO!t6[O|&oa}&oa~O|2PO}'wi~P#'YO!S6bO!T6bO'Q$^O'Y([O~O!R6dO!S6bO!T6bO!q3dO'Q$^O'Y([O~O!O._O$w6gO~O!O._O$w6gO~P!!iO'Y6mO~O|.kO}'xq~O!^6pO~O!^6pO~P)rO!^6rO~O!^6sO~O|!{y}!{y~P#'YO^$WO!t6xO&{$WO~O^$WO!W!tO!t6xO&{$WO~O^$WO!W!tO!e6|O!t6xO&{$WO'e&gO~O#O$syP$syY$sy^$syi$syr$sy|$sy![$sy!]$sy!_$sy!e$sy#R$sy#S$sy#T$sy#U$sy#V$sy#W$sy#X$sy#Y$sy#[$sy#^$sy#`$sy#a$sy&{$sy']$sy!^$syy$sy!O$sy!t$sy$w$sy'_$sy!W$sy~P!!iO#d#by|#by}#by~P#'YOP$^iY$^ii$^ir$^i![$^i!]$^i!_$^i!e$^i#R$^i#S$^i#T$^i#U$^i#V$^i#W$^i#X$^i#Y$^i#[$^i#^$^i#`$^i#a$^i#d$^i']$^i|$^i}$^i~P!!iOq'vOt'wO'm'{OP$oiY$oii$oir$oi![$oi!]$oi!_$oi!e$oi#R$oi#S$oi#T$oi#U$oi#V$oi#W$oi#X$oi#Y$oi#[$oi#^$oi#`$oi#a$oi#d$oi']$oi'e$oi'l$oi|$oi}$oi~Oq'vOt'wOP$qiY$qii$qir$qi![$qi!]$qi!_$qi!e$qi#R$qi#S$qi#T$qi#U$qi#V$qi#W$qi#X$qi#Y$qi#[$qi#^$qi#`$qi#a$qi#d$qi']$qi'e$qi'l$qi'm$qi|$qi}$qi~O#d$Qy|$Qy}$Qy~P#'YO#d!vy|!vy}!vy~P#'YO!W!tO|&hq!^&hq~O|,kO!^'ry~Oy&jq|&jq~P!!iOy7SO~P!!iO|2PO}'wq~O!S7_O!T7_O'Q$^O'Y([O~O!O._O$w7bO~O!O._O$w7bO~P!!iO!^7eO~O%|7fOP%y!ZQ%y!ZW%y!Z]%y!Z^%y!Za%y!Zb%y!Zg%y!Zi%y!Zj%y!Zk%y!Zm%y!Zo%y!Zt%y!Zv%y!Zw%y!Zx%y!Z!O%y!Z!Y%y!Z!_%y!Z!b%y!Z!c%y!Z!d%y!Z!e%y!Z!f%y!Z!i%y!Z#Z%y!Z#k%y!Z#o%y!Z$v%y!Z$x%y!Z$z%y!Z${%y!Z%O%y!Z%Q%y!Z%T%y!Z%U%y!Z%W%y!Z%e%y!Z%k%y!Z%m%y!Z%o%y!Z%q%y!Z%t%y!Z%z%y!Z&O%y!Z&Q%y!Z&S%y!Z&U%y!Z&W%y!Z&v%y!Z'P%y!Z']%y!Z'q%y!Z}%y!Z%r%y!Z_%y!Z%w%y!Z~O^$WO!t7jO&{$WO~O^$WO!W!tO!t7jO&{$WO~OP$`qY$`qi$`qr$`q![$`q!]$`q!_$`q!e$`q#R$`q#S$`q#T$`q#U$`q#V$`q#W$`q#X$`q#Y$`q#[$`q#^$`q#`$`q#a$`q#d$`q']$`q|$`q}$`q~P!!iO|&oq}&oq~P#'YO^$WO!t8OO&{$WO~OP$syY$syi$syr$sy![$sy!]$sy!_$sy!e$sy#R$sy#S$sy#T$sy#U$sy#V$sy#W$sy#X$sy#Y$sy#[$sy#^$sy#`$sy#a$sy#d$sy']$sy|$sy}$sy~P!!iO'_'ZX~P.ZO'_ZXyZX!^ZX%iZX!OZX$wZX!WZX~P$tO!WcX!^ZX!^cX'ecX~P:xOP8`OQ8`O]bOa9uOb!gOgbOi8`OjbOkbOm8`Oo8`OtROvbOwbOxbO!OSO!Y8bO!_UO!b8`O!c8`O!d8`O!e8`O!f8`O!i!fO#k!iO#o]O'P'ZO']QO'q9sO~O|8qO}$Sa~O]#nOg#zOi#oOj#nOk#nOm#{Oo8vOt#tO!O#uO!Y9xO!_#rO!}8|O#k$PO$U8xO$W8zO$Z$QO'P&sO~O#Z'bO~P&'mO}ZX}cX~P:xO#O8eO~O!W!tO#O8eO~O!t8tO~O!t8}O|'jX}'jX~O!t8tO|'hX}'hX~O#O9OO~O'T9QO~P!!iO#O9VO~O#O9WO~O!W!tO#O9XO~O!W!tO#O9OO~O#d9YO~P#'YO#O9ZO~O#O9[O~O#O9]O~O#O9^O~O#d9_O~P!!iO#d9`O~P!!iO#o~!]!m!o!|!}'q$U$W$Z$l$v$w$x%O%Q%T%U%W%Y~TS#o'q#q'Y'P&}#Sx~",goto:"#UPPP>[@_P;fPBrPPPPDj;fPPPPPFc;fPPIbJ_PPPJcPJkKlP;f;fNs!#l!([!([!+iPPP!+p;fPPPPPPPPPP!.dP!/uPP;f!1SP;fP;f;f;f;fP;f!3fPP!6]P!9O!9W!9[!9[P!6YP!9`!9`P!