jssm 5.157.18 → 5.158.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/cli/lib.cjs CHANGED
@@ -1 +1 @@
1
- "use strict";var _documentCurrentScript=typeof document!=="undefined"?document.currentScript:null;class RenderError extends Error{constructor(message,opts={}){super(message);this.name="RenderError";this.path=opts.path;this.line=opts.line;this.column=opts.column}}class RasterizationUnsupportedError extends RenderError{constructor(message){super(message);this.name="RasterizationUnsupportedError";Object.setPrototypeOf(this,RasterizationUnsupportedError.prototype)}}class circular_buffer{constructor(uCapacity){if(!Number.isInteger(uCapacity)){throw new RangeError(`Capacity must be an integer, received ${uCapacity}`)}if(uCapacity<0){throw new RangeError(`Capacity must be a non-negative integer, received ${uCapacity}`)}this._values=new Array(uCapacity);this._capacity=uCapacity;this._cursor=0;this._offset=0;this._length=0}get capacity(){return this._capacity}set capacity(newSize){this.resize(newSize)}get length(){return this._length}set length(newLength){if(newLength>this._capacity){throw new RangeError(`Requested new length [${newLength}] exceeds container capacity [${this._capacity}]`)}if(newLength<0){throw new RangeError(`Requested new length [${newLength}] cannot be negative`)}if(!Number.isInteger(newLength)){throw new RangeError(`Requested new length [${newLength}] must be an integer`)}if(this._length<=newLength){return}this._length=newLength}get available(){return this._capacity-this._length}get isEmpty(){return this._length===0}get isFull(){return this._length===this._capacity}get first(){if(this.isEmpty){throw new RangeError("Cannot return first element of an empty container")}return this.at(0)}get last(){if(this.isEmpty){throw new RangeError("Cannot return last element of an empty container")}return this.at(this.length-1)}static from(i,map_fn,t){const new_array=map_fn?Array.from(i,map_fn,t):Array.from(i);const target_length=new_array.length;const ncb=new circular_buffer(target_length);ncb._values=new_array;ncb._length=target_length;return ncb}push(v){if(this.isFull){throw new RangeError(`Cannot push, structure is full to capacity`)}this._values[(this._cursor+this._length++)%this._capacity]=v;return v}shove(v){let shoved;if(this._capacity===0){throw new RangeError(`Cannot shove, structure is zero-capacity`)}if(this.isFull){shoved=this.pop()}this.push(v);return shoved}fill(x){for(let i=0;i<this._capacity;i++){this._values[i]=x}this._length=this._capacity;return this._values}indexOf(searchElement,fromIndex){const normalized=this.toArray();return normalized.indexOf(searchElement,fromIndex)}find(predicate,thisArg){return this.toArray().find(predicate,thisArg)}every(functor,thisArg){const normalized=this.toArray(),res=normalized.every(functor,thisArg);this._values=normalized;this._values.length=this._capacity;this._cursor=0;return res}some(functor,thisArg){const normalized=this.toArray(),res=normalized.some(functor,thisArg);this._values=normalized;this._values.length=this._capacity;this._cursor=0;return res}reverse(){const normalized=this.toArray();this._values=normalized.reverse();this._values.length=this._capacity;this._cursor=0;return this}clear(){const old=this.toArray();this._length=0;return old}pop(){if(this._length<=0){throw new RangeError(`Cannot pop, structure is empty`)}const cache=this.at(0);--this._length;++this._offset;++this._cursor;if(this._cursor>=this._capacity){this._cursor-=this._capacity}return cache}at(i){if(i<0){throw new RangeError(`circular_buffer does not support negative traversals; called at(${i})`)}if(!Number.isInteger(i)){throw new RangeError(`Accessors must be non-negative integers; called at(${i})`)}if(i>=this._capacity){throw new RangeError(`Requested cell ${i} exceeds container permanent capacity`)}if(i>=this._length){throw new RangeError(`Requested cell ${i} exceeds container current length`)}return this._values[(this._cursor+i)%this._capacity]}pos(i){return this.at(i-this.offset())}offset(){return this._offset}resize(newSize,preferEnd=false){this._values=this.toArray();this._cursor=0;const oldSize=this._length;this._length=Math.min(this._length,newSize);this._capacity=newSize;if(newSize>=oldSize){this._values.length=newSize}else{if(preferEnd){const tmp=this._values.slice(oldSize-newSize);this._values=tmp}else{this._values.length=newSize}}}toArray(){const startPoint=this._cursor%this._capacity;if(this._capacity>startPoint+this._length){return this._values.slice(startPoint,startPoint+this._length)}else{const base=this._values.slice(startPoint,this._capacity);base.push(...this._values.slice(0,this.length-(this._capacity-startPoint)));return base}}}class JssmError extends Error{constructor(machine,message,JEEI){const{requested_state:requested_state,source_location:source_location}=JEEI===void 0?{requested_state:void 0,source_location:void 0}:JEEI;const follow_ups=[];if(machine){if(machine.state()!==void 0){follow_ups.push(`at "${machine.state()}"`)}}if(requested_state!==void 0){follow_ups.push(`requested "${requested_state}"`)}const complex_msg=`${machine?.instance_name()!==void 0?`[[${machine.instance_name()}]]: `:""}${message}${follow_ups.length?` (${follow_ups.join(", ")})`:""}`;super(complex_msg);this.name="JssmError";this.message=complex_msg;this.base_message=message;this.requested_state=requested_state;this.source_location=source_location}}function arrow_left_kind(arrow){switch(String(arrow)){case"->":case"→":case"=>":case"⇒":case"~>":case"↛":return"none";case"<-":case"←":case"<->":case"↔":case"<-=>":case"←⇒":case"←=>":case"<-⇒":case"<-~>":case"←↛":case"←~>":case"<-↛":return"legal";case"<=":case"⇐":case"<=>":case"⇔":case"<=->":case"⇐→":case"⇐->":case"<=→":case"<=~>":case"⇐↛":case"⇐~>":case"<=↛":return"main";case"<~":case"↚":case"<~>":case"↮":case"<~->":case"↚→":case"↚->":case"<~→":case"<~=>":case"↚⇒":case"↚=>":case"<~⇒":return"forced";default:throw new JssmError(void 0,`arrow_direction: unknown arrow type ${arrow}`)}}function arrow_right_kind(arrow){switch(String(arrow)){case"<-":case"←":case"<=":case"⇐":case"<~":case"↚":return"none";case"->":case"→":case"<->":case"↔":case"<=->":case"⇐→":case"⇐->":case"<=→":case"<~->":case"↚→":case"↚->":case"<~→":return"legal";case"=>":case"⇒":case"<=>":case"⇔":case"<-=>":case"←⇒":case"←=>":case"<-⇒":case"<~=>":case"↚⇒":case"↚=>":case"<~⇒":return"main";case"~>":case"↛":case"<~>":case"↮":case"<-~>":case"←↛":case"←~>":case"<-↛":case"<=~>":case"⇐↛":case"⇐~>":case"<=↛":return"forced";default:throw new JssmError(void 0,`arrow_direction: unknown arrow type ${arrow}`)}}function peg$subclass(child,parent){function ctor(){this.constructor=child}ctor.prototype=parent.prototype;child.prototype=new ctor}function peg$SyntaxError(message,expected,found,location){this.message=message;this.expected=expected;this.found=found;this.location=location;this.name="SyntaxError";if(typeof Error.captureStackTrace==="function"){Error.captureStackTrace(this,peg$SyntaxError)}}peg$subclass(peg$SyntaxError,Error);peg$SyntaxError.buildMessage=function(expected,found){var DESCRIBE_EXPECTATION_FNS={literal:function(expectation){return'"'+literalEscape(expectation.text)+'"'},class:function(expectation){var escapedParts="",i;for(i=0;i<expectation.parts.length;i++){escapedParts+=expectation.parts[i]instanceof Array?classEscape(expectation.parts[i][0])+"-"+classEscape(expectation.parts[i][1]):classEscape(expectation.parts[i])}return"["+(expectation.inverted?"^":"")+escapedParts+"]"},any:function(expectation){return"any character"},end:function(expectation){return"end of input"},other:function(expectation){return expectation.description}};function hex(ch){return ch.charCodeAt(0).toString(16).toUpperCase()}function literalEscape(s){return s.replace(/\\/g,"\\\\").replace(/"/g,'\\"').replace(/\0/g,"\\0").replace(/\t/g,"\\t").replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/[\x00-\x0F]/g,function(ch){return"\\x0"+hex(ch)}).replace(/[\x10-\x1F\x7F-\x9F]/g,function(ch){return"\\x"+hex(ch)})}function classEscape(s){return s.replace(/\\/g,"\\\\").replace(/\]/g,"\\]").replace(/\^/g,"\\^").replace(/-/g,"\\-").replace(/\0/g,"\\0").replace(/\t/g,"\\t").replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/[\x00-\x0F]/g,function(ch){return"\\x0"+hex(ch)}).replace(/[\x10-\x1F\x7F-\x9F]/g,function(ch){return"\\x"+hex(ch)})}function describeExpectation(expectation){return DESCRIBE_EXPECTATION_FNS[expectation.type](expectation)}function describeExpected(expected2){var descriptions=new Array(expected2.length),i,j;for(i=0;i<expected2.length;i++){descriptions[i]=describeExpectation(expected2[i])}descriptions.sort();if(descriptions.length>0){for(i=1,j=1;i<descriptions.length;i++){if(descriptions[i-1]!==descriptions[i]){descriptions[j]=descriptions[i];j++}}descriptions.length=j}switch(descriptions.length){case 1:return descriptions[0];case 2:return descriptions[0]+" or "+descriptions[1];default:return descriptions.slice(0,-1).join(", ")+", or "+descriptions[descriptions.length-1]}}function describeFound(found2){return found2?'"'+literalEscape(found2)+'"':"end of input"}return"Expected "+describeExpected(expected)+" but "+describeFound(found)+" found."};function peg$parse(input,options){options=options!==void 0?options:{};var peg$FAILED={},peg$startRuleFunctions={Document:peg$parseDocument},peg$startRuleFunction=peg$parseDocument,peg$c0=function(e){return e},peg$c1="default",peg$c2=peg$literalExpectation("default",false),peg$c3="ocean",peg$c4=peg$literalExpectation("ocean",false),peg$c5="modern",peg$c6=peg$literalExpectation("modern",false),peg$c7="plain",peg$c8=peg$literalExpectation("plain",false),peg$c9="bold",peg$c10=peg$literalExpectation("bold",false),peg$c11="[",peg$c12=peg$literalExpectation("[",false),peg$c13="]",peg$c14=peg$literalExpectation("]",false),peg$c15=function(ths,th){const themes=ths.map(t=>t[0]);if(th)themes.push(th);return themes},peg$c16=function(th){return[th]},peg$c17="box3d",peg$c18=peg$literalExpectation("box3d",false),peg$c19="polygon",peg$c20=peg$literalExpectation("polygon",false),peg$c21="ellipse",peg$c22=peg$literalExpectation("ellipse",false),peg$c23="oval",peg$c24=peg$literalExpectation("oval",false),peg$c25="circle",peg$c26=peg$literalExpectation("circle",false),peg$c27="point",peg$c28=peg$literalExpectation("point",false),peg$c29="egg",peg$c30=peg$literalExpectation("egg",false),peg$c31="triangle",peg$c32=peg$literalExpectation("triangle",false),peg$c33="plaintext",peg$c34=peg$literalExpectation("plaintext",false),peg$c35="diamond",peg$c36=peg$literalExpectation("diamond",false),peg$c37="trapezium",peg$c38=peg$literalExpectation("trapezium",false),peg$c39="parallelogram",peg$c40=peg$literalExpectation("parallelogram",false),peg$c41="house",peg$c42=peg$literalExpectation("house",false),peg$c43="pentagon",peg$c44=peg$literalExpectation("pentagon",false),peg$c45="hexagon",peg$c46=peg$literalExpectation("hexagon",false),peg$c47="septagon",peg$c48=peg$literalExpectation("septagon",false),peg$c49="octagon",peg$c50=peg$literalExpectation("octagon",false),peg$c51="doublecircle",peg$c52=peg$literalExpectation("doublecircle",false),peg$c53="doubleoctagon",peg$c54=peg$literalExpectation("doubleoctagon",false),peg$c55="tripleoctagon",peg$c56=peg$literalExpectation("tripleoctagon",false),peg$c57="invtriangle",peg$c58=peg$literalExpectation("invtriangle",false),peg$c59="invtrapezium",peg$c60=peg$literalExpectation("invtrapezium",false),peg$c61="invhouse",peg$c62=peg$literalExpectation("invhouse",false),peg$c63="Mdiamond",peg$c64=peg$literalExpectation("Mdiamond",false),peg$c65="Msquare",peg$c66=peg$literalExpectation("Msquare",false),peg$c67="Mcircle",peg$c68=peg$literalExpectation("Mcircle",false),peg$c69="rectangle",peg$c70=peg$literalExpectation("rectangle",false),peg$c71="rect",peg$c72=peg$literalExpectation("rect",false),peg$c73="square",peg$c74=peg$literalExpectation("square",false),peg$c75="star",peg$c76=peg$literalExpectation("star",false),peg$c77="none",peg$c78=peg$literalExpectation("none",false),peg$c79="underline",peg$c80=peg$literalExpectation("underline",false),peg$c81="cylinder",peg$c82=peg$literalExpectation("cylinder",false),peg$c83="note",peg$c84=peg$literalExpectation("note",false),peg$c85="tab",peg$c86=peg$literalExpectation("tab",false),peg$c87="folder",peg$c88=peg$literalExpectation("folder",false),peg$c89="box",peg$c90=peg$literalExpectation("box",false),peg$c91="component",peg$c92=peg$literalExpectation("component",false),peg$c93="promoter",peg$c94=peg$literalExpectation("promoter",false),peg$c95="cds",peg$c96=peg$literalExpectation("cds",false),peg$c97="terminator",peg$c98=peg$literalExpectation("terminator",false),peg$c99="utr",peg$c100=peg$literalExpectation("utr",false),peg$c101="primersite",peg$c102=peg$literalExpectation("primersite",false),peg$c103="restrictionsite",peg$c104=peg$literalExpectation("restrictionsite",false),peg$c105="fivepoverhang",peg$c106=peg$literalExpectation("fivepoverhang",false),peg$c107="threepoverhang",peg$c108=peg$literalExpectation("threepoverhang",false),peg$c109="noverhang",peg$c110=peg$literalExpectation("noverhang",false),peg$c111="assembly",peg$c112=peg$literalExpectation("assembly",false),peg$c113="signature",peg$c114=peg$literalExpectation("signature",false),peg$c115="insulator",peg$c116=peg$literalExpectation("insulator",false),peg$c117="ribosite",peg$c118=peg$literalExpectation("ribosite",false),peg$c119="rnastab",peg$c120=peg$literalExpectation("rnastab",false),peg$c121="proteasesite",peg$c122=peg$literalExpectation("proteasesite",false),peg$c123="proteinstab",peg$c124=peg$literalExpectation("proteinstab",false),peg$c125="rpromoter",peg$c126=peg$literalExpectation("rpromoter",false),peg$c127="rarrow",peg$c128=peg$literalExpectation("rarrow",false),peg$c129="larrow",peg$c130=peg$literalExpectation("larrow",false),peg$c131="lpromoter",peg$c132=peg$literalExpectation("lpromoter",false),peg$c133="record",peg$c134=peg$literalExpectation("record",false),peg$c135=peg$otherExpectation("forward light arrow ->"),peg$c136="->",peg$c137=peg$literalExpectation("->",false),peg$c138="→",peg$c139=peg$literalExpectation("→",false),peg$c140=function(){return"->"},peg$c141=peg$otherExpectation("two way light arrow <->"),peg$c142="<->",peg$c143=peg$literalExpectation("<->",false),peg$c144="↔",peg$c145=peg$literalExpectation("↔",false),peg$c146=function(){return"<->"},peg$c147=peg$otherExpectation("back light arrow <-"),peg$c148="<-",peg$c149=peg$literalExpectation("<-",false),peg$c150="←",peg$c151=peg$literalExpectation("←",false),peg$c152=function(){return"<-"},peg$c153=peg$otherExpectation("forward fat arrow =>"),peg$c154="=>",peg$c155=peg$literalExpectation("=>",false),peg$c156="⇒",peg$c157=peg$literalExpectation("⇒",false),peg$c158=function(){return"=>"},peg$c159=peg$otherExpectation("two way fat arrow <=>"),peg$c160="<=>",peg$c161=peg$literalExpectation("<=>",false),peg$c162="⇔",peg$c163=peg$literalExpectation("⇔",false),peg$c164=function(){return"<=>"},peg$c165=peg$otherExpectation("back fat arrow <="),peg$c166="<=",peg$c167=peg$literalExpectation("<=",false),peg$c168="⇐",peg$c169=peg$literalExpectation("⇐",false),peg$c170=function(){return"<="},peg$c171=peg$otherExpectation("forward tilde arrow ~>"),peg$c172="~>",peg$c173=peg$literalExpectation("~>",false),peg$c174="↛",peg$c175=peg$literalExpectation("↛",false),peg$c176=function(){return"~>"},peg$c177=peg$otherExpectation("two way tilde arrow <~>"),peg$c178="<~>",peg$c179=peg$literalExpectation("<~>",false),peg$c180="↮",peg$c181=peg$literalExpectation("↮",false),peg$c182=function(){return"<~>"},peg$c183=peg$otherExpectation("back tilde arrow <~"),peg$c184="<~",peg$c185=peg$literalExpectation("<~",false),peg$c186="↚",peg$c187=peg$literalExpectation("↚",false),peg$c188=function(){return"<~"},peg$c189=peg$otherExpectation("light fat arrow <-=>"),peg$c190="<-=>",peg$c191=peg$literalExpectation("<-=>",false),peg$c192="←⇒",peg$c193=peg$literalExpectation("←⇒",false),peg$c194=function(){return"<-=>"},peg$c195=peg$otherExpectation("light tilde arrow <-~>"),peg$c196="<-~>",peg$c197=peg$literalExpectation("<-~>",false),peg$c198="←↛",peg$c199=peg$literalExpectation("←↛",false),peg$c200=function(){return"<-~>"},peg$c201=peg$otherExpectation("fat light arrow <=->"),peg$c202="<=->",peg$c203=peg$literalExpectation("<=->",false),peg$c204="⇐→",peg$c205=peg$literalExpectation("⇐→",false),peg$c206=function(){return"<=->"},peg$c207=peg$otherExpectation("fat tilde arrow <=~>"),peg$c208="<=~>",peg$c209=peg$literalExpectation("<=~>",false),peg$c210="⇐↛",peg$c211=peg$literalExpectation("⇐↛",false),peg$c212=function(){return"<=~>"},peg$c213=peg$otherExpectation("tilde light arrow <~->"),peg$c214="<~->",peg$c215=peg$literalExpectation("<~->",false),peg$c216="↚→",peg$c217=peg$literalExpectation("↚→",false),peg$c218=function(){return"<~->"},peg$c219=peg$otherExpectation("tilde fat arrow <~=>"),peg$c220="<~=>",peg$c221=peg$literalExpectation("<~=>",false),peg$c222="↚⇒",peg$c223=peg$literalExpectation("↚⇒",false),peg$c224=function(){return"<~=>"},peg$c225=peg$otherExpectation("light arrow"),peg$c226=peg$otherExpectation("fat arrow"),peg$c227=peg$otherExpectation("tilde arrow"),peg$c228=peg$otherExpectation("mixed arrow"),peg$c229=peg$otherExpectation("arrow"),peg$c230="true",peg$c231=peg$literalExpectation("true",false),peg$c232=function(){return true},peg$c233="false",peg$c234=peg$literalExpectation("false",false),peg$c235=function(){return false},peg$c236="regular",peg$c237=peg$literalExpectation("regular",false),peg$c238="rounded",peg$c239=peg$literalExpectation("rounded",false),peg$c240="lined",peg$c241=peg$literalExpectation("lined",false),peg$c242="solid",peg$c243=peg$literalExpectation("solid",false),peg$c244="dotted",peg$c245=peg$literalExpectation("dotted",false),peg$c246="dashed",peg$c247=peg$literalExpectation("dashed",false),peg$c276="null",peg$c277=peg$literalExpectation("null",false),peg$c278=function(){return null},peg$c279="undefined",peg$c280=peg$literalExpectation("undefined",false),peg$c281=function(){return void 0},peg$c288=peg$otherExpectation("action label"),peg$c290=/^[\n\r\u2028\u2029]/,peg$c291=peg$classExpectation(["\n","\r","\u2028","\u2029"],false,false),peg$c292=peg$otherExpectation("block comment"),peg$c293="/*",peg$c294=peg$literalExpectation("/*",false),peg$c295="*/",peg$c296=peg$literalExpectation("*/",false),peg$c297=peg$anyExpectation(),peg$c298=peg$otherExpectation("line comment"),peg$c299="//",peg$c300=peg$literalExpectation("//",false),peg$c301=peg$otherExpectation("whitespace"),peg$c304=peg$otherExpectation("string"),peg$c309=peg$otherExpectation("atom"),peg$c311=peg$otherExpectation("label"),peg$c312="0",peg$c313=peg$literalExpectation("0",false),peg$c314=/^[0-9]/,peg$c315=peg$classExpectation([["0","9"]],false,false),peg$c316=/^[1-9]/,peg$c317=peg$classExpectation([["1","9"]],false,false),peg$c318=/^[0-9a-f]/i,peg$c319=peg$classExpectation([["0","9"],["a","f"]],false,true),peg$c320=/^[0-1]/,peg$c321=peg$classExpectation([["0","1"]],false,false),peg$c322=/^[0-7]/,peg$c323=peg$classExpectation([["0","7"]],false,false),peg$c324=peg$otherExpectation("nonneg number"),peg$c325=".",peg$c326=peg$literalExpectation(".",false),peg$c327=function(){return parseFloat(text())},peg$c328=peg$otherExpectation("number"),peg$c329=function(literal){return literal},peg$c330="NaN",peg$c331=peg$literalExpectation("NaN",false),peg$c332=function(){return NaN},peg$c333="NegativeInfinity",peg$c334=peg$literalExpectation("NegativeInfinity",false),peg$c335=function(){return Number.NEGATIVE_INFINITY},peg$c336="NegativeInf",peg$c337=peg$literalExpectation("NegativeInf",false),peg$c338="NegInfinity",peg$c339=peg$literalExpectation("NegInfinity",false),peg$c340="NegInf",peg$c341=peg$literalExpectation("NegInf",false),peg$c342="NInfinity",peg$c343=peg$literalExpectation("NInfinity",false),peg$c344="NInf",peg$c345=peg$literalExpectation("NInf",false),peg$c346="-∞",peg$c347=peg$literalExpectation("-∞",false),peg$c348="PInfinity",peg$c349=peg$literalExpectation("PInfinity",false),peg$c350=function(){return Number.POSITIVE_INFINITY},peg$c351="Infinity",peg$c352=peg$literalExpectation("Infinity",false),peg$c353="PInf",peg$c354=peg$literalExpectation("PInf",false),peg$c355="Inf",peg$c356=peg$literalExpectation("Inf",false),peg$c357="∞",peg$c358=peg$literalExpectation("∞",false),peg$c359="Epsilon",peg$c360=peg$literalExpectation("Epsilon",false),peg$c361=function(){return Number.EPSILON},peg$c362="𝜀",peg$c363=peg$literalExpectation("𝜀",false),peg$c364="ε",peg$c365=peg$literalExpectation("ε",false),peg$c366="Pi",peg$c367=peg$literalExpectation("Pi",false),peg$c368=function(){return Math.PI},peg$c369="𝜋",peg$c370=peg$literalExpectation("𝜋",false),peg$c371="π",peg$c372=peg$literalExpectation("π",false),peg$c373="EulerNumber",peg$c374=peg$literalExpectation("EulerNumber",false),peg$c375=function(){return Math.E},peg$c376="E",peg$c377=peg$literalExpectation("E",false),peg$c378="e",peg$c379=peg$literalExpectation("e",false),peg$c380="Ɛ",peg$c381=peg$literalExpectation("Ɛ",false),peg$c382="ℇ",peg$c383=peg$literalExpectation("ℇ",false),peg$c384="Root2",peg$c385=peg$literalExpectation("Root2",false),peg$c386=function(){return Math.SQRT2},peg$c387="RootHalf",peg$c388=peg$literalExpectation("RootHalf",false),peg$c389=function(){return Math.SQRT1_2},peg$c390="Ln2",peg$c391=peg$literalExpectation("Ln2",false),peg$c392=function(){return Math.LN2},peg$c393="NatLog2",peg$c394=peg$literalExpectation("NatLog2",false),peg$c395="Ln10",peg$c396=peg$literalExpectation("Ln10",false),peg$c397=function(){return Math.LN10},peg$c398="NatLog10",peg$c399=peg$literalExpectation("NatLog10",false),peg$c400="Log2E",peg$c401=peg$literalExpectation("Log2E",false),peg$c402=function(){return Math.LOG2E},peg$c403="Log10E",peg$c404=peg$literalExpectation("Log10E",false),peg$c405=function(){return Math.LOG10E},peg$c406="MaxSafeInt",peg$c407=peg$literalExpectation("MaxSafeInt",false),peg$c408=function(){return Number.MAX_SAFE_INTEGER},peg$c409="MinSafeInt",peg$c410=peg$literalExpectation("MinSafeInt",false),peg$c411=function(){return Number.MIN_SAFE_INTEGER},peg$c412="MaxPosNum",peg$c413=peg$literalExpectation("MaxPosNum",false),peg$c414=function(){return Number.MAX_VALUE},peg$c415="MinPosNum",peg$c416=peg$literalExpectation("MinPosNum",false),peg$c417=function(){return Number.MIN_VALUE},peg$c418="Phi",peg$c419=peg$literalExpectation("Phi",false),peg$c420=function(){return 1.618033988749895},peg$c421="𝜑",peg$c422=peg$literalExpectation("𝜑",false),peg$c423="𝜙",peg$c424=peg$literalExpectation("𝜙",false),peg$c425="ϕ",peg$c426=peg$literalExpectation("ϕ",false),peg$c427="φ",peg$c428=peg$literalExpectation("φ",false),peg$c429="EulerConstant",peg$c430=peg$literalExpectation("EulerConstant",false),peg$c431=function(){return.5772156649015329},peg$c432="γ",peg$c433=peg$literalExpectation("γ",false),peg$c434="𝛾",peg$c435=peg$literalExpectation("𝛾",false),peg$c436=peg$literalExpectation("e",true),peg$c437=/^[+\-]/,peg$c438=peg$classExpectation(["+","-"],false,false),peg$c439="0x",peg$c440=peg$literalExpectation("0x",true),peg$c441=function(digits){return parseInt(digits,16)},peg$c442="0b",peg$c443=peg$literalExpectation("0b",true),peg$c444=function(digits){return parseInt(digits,2)},peg$c445="0o",peg$c446=peg$literalExpectation("0o",true),peg$c447=function(digits){return parseInt(digits,8)},peg$c448=function(major,minor,patch){const node={major:parseInt(major,10),minor:parseInt(minor,10),patch:parseInt(patch,10),full:text()};if(options.locations){node.loc=location()}return node},peg$c459="http://",peg$c460=peg$literalExpectation("http://",false),peg$c461="https://",peg$c462=peg$literalExpectation("https://",false),peg$c463=/^[a-zA-Z0-9!*'():;@&=+$,\/?#[\]_.~\-]/,peg$c464=peg$classExpectation([["a","z"],["A","Z"],["0","9"],"!","*","'","(",")",":",";","@","&","=","+","$",",","/","?","#","[","]","_",".","~","-"],false,false),peg$c465=function(protocol){return text()},peg$c466="aliceblue",peg$c467=peg$literalExpectation("aliceblue",false),peg$c468=function(){return"#f0f8ffff"},peg$c469="AliceBlue",peg$c470=peg$literalExpectation("AliceBlue",false),peg$c471="antiquewhite",peg$c472=peg$literalExpectation("antiquewhite",false),peg$c473=function(){return"#faebd7ff"},peg$c474="AntiqueWhite",peg$c475=peg$literalExpectation("AntiqueWhite",false),peg$c476="aquamarine",peg$c477=peg$literalExpectation("aquamarine",false),peg$c478=function(){return"#7fffd4ff"},peg$c479="Aquamarine",peg$c480=peg$literalExpectation("Aquamarine",false),peg$c481="aqua",peg$c482=peg$literalExpectation("aqua",false),peg$c483=function(){return"#00ffffff"},peg$c484="Aqua",peg$c485=peg$literalExpectation("Aqua",false),peg$c486="azure",peg$c487=peg$literalExpectation("azure",false),peg$c488=function(){return"#f0ffffff"},peg$c489="Azure",peg$c490=peg$literalExpectation("Azure",false),peg$c491="beige",peg$c492=peg$literalExpectation("beige",false),peg$c493=function(){return"#f5f5dcff"},peg$c494="Beige",peg$c495=peg$literalExpectation("Beige",false),peg$c496="bisque",peg$c497=peg$literalExpectation("bisque",false),peg$c498=function(){return"#ffe4c4ff"},peg$c499="Bisque",peg$c500=peg$literalExpectation("Bisque",false),peg$c501="black",peg$c502=peg$literalExpectation("black",false),peg$c503=function(){return"#000000ff"},peg$c504="Black",peg$c505=peg$literalExpectation("Black",false),peg$c506="blanchedalmond",peg$c507=peg$literalExpectation("blanchedalmond",false),peg$c508=function(){return"#ffebcdff"},peg$c509="BlanchedAlmond",peg$c510=peg$literalExpectation("BlanchedAlmond",false),peg$c511="blueviolet",peg$c512=peg$literalExpectation("blueviolet",false),peg$c513=function(){return"#8a2be2ff"},peg$c514="BlueViolet",peg$c515=peg$literalExpectation("BlueViolet",false),peg$c516="blue",peg$c517=peg$literalExpectation("blue",false),peg$c518=function(){return"#0000ffff"},peg$c519="Blue",peg$c520=peg$literalExpectation("Blue",false),peg$c521="brown",peg$c522=peg$literalExpectation("brown",false),peg$c523=function(){return"#a52a2aff"},peg$c524="Brown",peg$c525=peg$literalExpectation("Brown",false),peg$c526="burlywood",peg$c527=peg$literalExpectation("burlywood",false),peg$c528=function(){return"#deb887ff"},peg$c529="BurlyWood",peg$c530=peg$literalExpectation("BurlyWood",false),peg$c531="cadetblue",peg$c532=peg$literalExpectation("cadetblue",false),peg$c533=function(){return"#5f9ea0ff"},peg$c534="CadetBlue",peg$c535=peg$literalExpectation("CadetBlue",false),peg$c536="chartreuse",peg$c537=peg$literalExpectation("chartreuse",false),peg$c538=function(){return"#7fff00ff"},peg$c539="Chartreuse",peg$c540=peg$literalExpectation("Chartreuse",false),peg$c541="chocolate",peg$c542=peg$literalExpectation("chocolate",false),peg$c543=function(){return"#d2691eff"},peg$c544="Chocolate",peg$c545=peg$literalExpectation("Chocolate",false),peg$c546="coral",peg$c547=peg$literalExpectation("coral",false),peg$c548=function(){return"#ff7f50ff"},peg$c549="Coral",peg$c550=peg$literalExpectation("Coral",false),peg$c551="cornflowerblue",peg$c552=peg$literalExpectation("cornflowerblue",false),peg$c553=function(){return"#6495edff"},peg$c554="CornflowerBlue",peg$c555=peg$literalExpectation("CornflowerBlue",false),peg$c556="cornsilk",peg$c557=peg$literalExpectation("cornsilk",false),peg$c558=function(){return"#fff8dcff"},peg$c559="Cornsilk",peg$c560=peg$literalExpectation("Cornsilk",false),peg$c561="crimson",peg$c562=peg$literalExpectation("crimson",false),peg$c563=function(){return"#dc143cff"},peg$c564="Crimson",peg$c565=peg$literalExpectation("Crimson",false),peg$c566="cyan",peg$c567=peg$literalExpectation("cyan",false),peg$c568="Cyan",peg$c569=peg$literalExpectation("Cyan",false),peg$c570="darkblue",peg$c571=peg$literalExpectation("darkblue",false),peg$c572=function(){return"#00008bff"},peg$c573="DarkBlue",peg$c574=peg$literalExpectation("DarkBlue",false),peg$c575="darkcyan",peg$c576=peg$literalExpectation("darkcyan",false),peg$c577=function(){return"#008b8bff"},peg$c578="DarkCyan",peg$c579=peg$literalExpectation("DarkCyan",false),peg$c580="darkgoldenrod",peg$c581=peg$literalExpectation("darkgoldenrod",false),peg$c582=function(){return"#b8860bff"},peg$c583="DarkGoldenRod",peg$c584=peg$literalExpectation("DarkGoldenRod",false),peg$c585="darkgray",peg$c586=peg$literalExpectation("darkgray",false),peg$c587=function(){return"#a9a9a9ff"},peg$c588="DarkGray",peg$c589=peg$literalExpectation("DarkGray",false),peg$c590="darkgrey",peg$c591=peg$literalExpectation("darkgrey",false),peg$c592="DarkGrey",peg$c593=peg$literalExpectation("DarkGrey",false),peg$c594="darkgreen",peg$c595=peg$literalExpectation("darkgreen",false),peg$c596=function(){return"#006400ff"},peg$c597="DarkGreen",peg$c598=peg$literalExpectation("DarkGreen",false),peg$c599="darkkhaki",peg$c600=peg$literalExpectation("darkkhaki",false),peg$c601=function(){return"#bdb76bff"},peg$c602="DarkKhaki",peg$c603=peg$literalExpectation("DarkKhaki",false),peg$c604="darkmagenta",peg$c605=peg$literalExpectation("darkmagenta",false),peg$c606=function(){return"#8b008bff"},peg$c607="DarkMagenta",peg$c608=peg$literalExpectation("DarkMagenta",false),peg$c609="darkolivegreen",peg$c610=peg$literalExpectation("darkolivegreen",false),peg$c611=function(){return"#556b2fff"},peg$c612="DarkOliveGreen",peg$c613=peg$literalExpectation("DarkOliveGreen",false),peg$c614="darkorange",peg$c615=peg$literalExpectation("darkorange",false),peg$c616=function(){return"#ff8c00ff"},peg$c617="Darkorange",peg$c618=peg$literalExpectation("Darkorange",false),peg$c619="darkorchid",peg$c620=peg$literalExpectation("darkorchid",false),peg$c621=function(){return"#9932ccff"},peg$c622="DarkOrchid",peg$c623=peg$literalExpectation("DarkOrchid",false),peg$c624="darkred",peg$c625=peg$literalExpectation("darkred",false),peg$c626=function(){return"#8b0000ff"},peg$c627="DarkRed",peg$c628=peg$literalExpectation("DarkRed",false),peg$c629="darksalmon",peg$c630=peg$literalExpectation("darksalmon",false),peg$c631=function(){return"#e9967aff"},peg$c632="DarkSalmon",peg$c633=peg$literalExpectation("DarkSalmon",false),peg$c634="darkseagreen",peg$c635=peg$literalExpectation("darkseagreen",false),peg$c636=function(){return"#8fbc8fff"},peg$c637="DarkSeaGreen",peg$c638=peg$literalExpectation("DarkSeaGreen",false),peg$c639="darkslateblue",peg$c640=peg$literalExpectation("darkslateblue",false),peg$c641=function(){return"#483d8bff"},peg$c642="DarkSlateBlue",peg$c643=peg$literalExpectation("DarkSlateBlue",false),peg$c644="darkslategray",peg$c645=peg$literalExpectation("darkslategray",false),peg$c646=function(){return"#2f4f4fff"},peg$c647="DarkSlateGray",peg$c648=peg$literalExpectation("DarkSlateGray",false),peg$c649="darkslategrey",peg$c650=peg$literalExpectation("darkslategrey",false),peg$c651="DarkSlateGrey",peg$c652=peg$literalExpectation("DarkSlateGrey",false),peg$c653="darkturquoise",peg$c654=peg$literalExpectation("darkturquoise",false),peg$c655=function(){return"#00ced1ff"},peg$c656="DarkTurquoise",peg$c657=peg$literalExpectation("DarkTurquoise",false),peg$c658="darkviolet",peg$c659=peg$literalExpectation("darkviolet",false),peg$c660=function(){return"#9400d3ff"},peg$c661="DarkViolet",peg$c662=peg$literalExpectation("DarkViolet",false),peg$c663="deeppink",peg$c664=peg$literalExpectation("deeppink",false),peg$c665=function(){return"#ff1493ff"},peg$c666="DeepPink",peg$c667=peg$literalExpectation("DeepPink",false),peg$c668="deepskyblue",peg$c669=peg$literalExpectation("deepskyblue",false),peg$c670=function(){return"#00bfffff"},peg$c671="DeepSkyBlue",peg$c672=peg$literalExpectation("DeepSkyBlue",false),peg$c673="dimgray",peg$c674=peg$literalExpectation("dimgray",false),peg$c675=function(){return"#696969ff"},peg$c676="DimGray",peg$c677=peg$literalExpectation("DimGray",false),peg$c678="dimgrey",peg$c679=peg$literalExpectation("dimgrey",false),peg$c680="DimGrey",peg$c681=peg$literalExpectation("DimGrey",false),peg$c682="dodgerblue",peg$c683=peg$literalExpectation("dodgerblue",false),peg$c684=function(){return"#1e90ffff"},peg$c685="DodgerBlue",peg$c686=peg$literalExpectation("DodgerBlue",false),peg$c687="firebrick",peg$c688=peg$literalExpectation("firebrick",false),peg$c689=function(){return"#b22222ff"},peg$c690="FireBrick",peg$c691=peg$literalExpectation("FireBrick",false),peg$c692="floralwhite",peg$c693=peg$literalExpectation("floralwhite",false),peg$c694=function(){return"#fffaf0ff"},peg$c695="FloralWhite",peg$c696=peg$literalExpectation("FloralWhite",false),peg$c697="forestgreen",peg$c698=peg$literalExpectation("forestgreen",false),peg$c699=function(){return"#228b22ff"},peg$c700="ForestGreen",peg$c701=peg$literalExpectation("ForestGreen",false),peg$c702="fuchsia",peg$c703=peg$literalExpectation("fuchsia",false),peg$c704=function(){return"#ff00ffff"},peg$c705="Fuchsia",peg$c706=peg$literalExpectation("Fuchsia",false),peg$c707="gainsboro",peg$c708=peg$literalExpectation("gainsboro",false),peg$c709=function(){return"#dcdcdcff"},peg$c710="Gainsboro",peg$c711=peg$literalExpectation("Gainsboro",false),peg$c712="ghostwhite",peg$c713=peg$literalExpectation("ghostwhite",false),peg$c714=function(){return"#f8f8ffff"},peg$c715="GhostWhite",peg$c716=peg$literalExpectation("GhostWhite",false),peg$c717="goldenrod",peg$c718=peg$literalExpectation("goldenrod",false),peg$c719=function(){return"#daa520ff"},peg$c720="GoldenRod",peg$c721=peg$literalExpectation("GoldenRod",false),peg$c722="gold",peg$c723=peg$literalExpectation("gold",false),peg$c724=function(){return"#ffd700ff"},peg$c725="Gold",peg$c726=peg$literalExpectation("Gold",false),peg$c727="gray",peg$c728=peg$literalExpectation("gray",false),peg$c729=function(){return"#808080ff"},peg$c730="Gray",peg$c731=peg$literalExpectation("Gray",false),peg$c732="grey",peg$c733=peg$literalExpectation("grey",false),peg$c734="Grey",peg$c735=peg$literalExpectation("Grey",false),peg$c736="greenyellow",peg$c737=peg$literalExpectation("greenyellow",false),peg$c738=function(){return"#adff2fff"},peg$c739="GreenYellow",peg$c740=peg$literalExpectation("GreenYellow",false),peg$c741="green",peg$c742=peg$literalExpectation("green",false),peg$c743=function(){return"#008000ff"},peg$c744="Green",peg$c745=peg$literalExpectation("Green",false),peg$c746="honeydew",peg$c747=peg$literalExpectation("honeydew",false),peg$c748=function(){return"#f0fff0ff"},peg$c749="HoneyDew",peg$c750=peg$literalExpectation("HoneyDew",false),peg$c751="hotpink",peg$c752=peg$literalExpectation("hotpink",false),peg$c753=function(){return"#ff69b4ff"},peg$c754="HotPink",peg$c755=peg$literalExpectation("HotPink",false),peg$c756="indianred",peg$c757=peg$literalExpectation("indianred",false),peg$c758=function(){return"#cd5c5cff"},peg$c759="IndianRed",peg$c760=peg$literalExpectation("IndianRed",false),peg$c761="indigo",peg$c762=peg$literalExpectation("indigo",false),peg$c763=function(){return"#4b0082ff"},peg$c764="Indigo",peg$c765=peg$literalExpectation("Indigo",false),peg$c766="ivory",peg$c767=peg$literalExpectation("ivory",false),peg$c768=function(){return"#fffff0ff"},peg$c769="Ivory",peg$c770=peg$literalExpectation("Ivory",false),peg$c771="khaki",peg$c772=peg$literalExpectation("khaki",false),peg$c773=function(){return"#f0e68cff"},peg$c774="Khaki",peg$c775=peg$literalExpectation("Khaki",false),peg$c776="lavenderblush",peg$c777=peg$literalExpectation("lavenderblush",false),peg$c778=function(){return"#fff0f5ff"},peg$c779="LavenderBlush",peg$c780=peg$literalExpectation("LavenderBlush",false),peg$c781="lavender",peg$c782=peg$literalExpectation("lavender",false),peg$c783=function(){return"#e6e6faff"},peg$c784="Lavender",peg$c785=peg$literalExpectation("Lavender",false),peg$c786="lawngreen",peg$c787=peg$literalExpectation("lawngreen",false),peg$c788=function(){return"#7cfc00ff"},peg$c789="LawnGreen",peg$c790=peg$literalExpectation("LawnGreen",false),peg$c791="lemonchiffon",peg$c792=peg$literalExpectation("lemonchiffon",false),peg$c793=function(){return"#fffacdff"},peg$c794="LemonChiffon",peg$c795=peg$literalExpectation("LemonChiffon",false),peg$c796="lightblue",peg$c797=peg$literalExpectation("lightblue",false),peg$c798=function(){return"#add8e6ff"},peg$c799="LightBlue",peg$c800=peg$literalExpectation("LightBlue",false),peg$c801="lightcoral",peg$c802=peg$literalExpectation("lightcoral",false),peg$c803=function(){return"#f08080ff"},peg$c804="LightCoral",peg$c805=peg$literalExpectation("LightCoral",false),peg$c806="lightcyan",peg$c807=peg$literalExpectation("lightcyan",false),peg$c808=function(){return"#e0ffffff"},peg$c809="LightCyan",peg$c810=peg$literalExpectation("LightCyan",false),peg$c811="lightgoldenrodyellow",peg$c812=peg$literalExpectation("lightgoldenrodyellow",false),peg$c813=function(){return"#fafad2ff"},peg$c814="LightGoldenRodYellow",peg$c815=peg$literalExpectation("LightGoldenRodYellow",false),peg$c816="lightgray",peg$c817=peg$literalExpectation("lightgray",false),peg$c818=function(){return"#d3d3d3ff"},peg$c819="LightGray",peg$c820=peg$literalExpectation("LightGray",false),peg$c821="lightgrey",peg$c822=peg$literalExpectation("lightgrey",false),peg$c823="LightGrey",peg$c824=peg$literalExpectation("LightGrey",false),peg$c825="lightgreen",peg$c826=peg$literalExpectation("lightgreen",false),peg$c827=function(){return"#90ee90ff"},peg$c828="LightGreen",peg$c829=peg$literalExpectation("LightGreen",false),peg$c830="lightpink",peg$c831=peg$literalExpectation("lightpink",false),peg$c832=function(){return"#ffb6c1ff"},peg$c833="LightPink",peg$c834=peg$literalExpectation("LightPink",false),peg$c835="lightsalmon",peg$c836=peg$literalExpectation("lightsalmon",false),peg$c837=function(){return"#ffa07aff"},peg$c838="LightSalmon",peg$c839=peg$literalExpectation("LightSalmon",false),peg$c840="lightseagreen",peg$c841=peg$literalExpectation("lightseagreen",false),peg$c842=function(){return"#20b2aaff"},peg$c843="LightSeaGreen",peg$c844=peg$literalExpectation("LightSeaGreen",false),peg$c845="lightskyblue",peg$c846=peg$literalExpectation("lightskyblue",false),peg$c847=function(){return"#87cefaff"},peg$c848="LightSkyBlue",peg$c849=peg$literalExpectation("LightSkyBlue",false),peg$c850="lightslategray",peg$c851=peg$literalExpectation("lightslategray",false),peg$c852=function(){return"#778899ff"},peg$c853="LightSlateGray",peg$c854=peg$literalExpectation("LightSlateGray",false),peg$c855="lightslategrey",peg$c856=peg$literalExpectation("lightslategrey",false),peg$c857="LightSlateGrey",peg$c858=peg$literalExpectation("LightSlateGrey",false),peg$c859="lightsteelblue",peg$c860=peg$literalExpectation("lightsteelblue",false),peg$c861=function(){return"#b0c4deff"},peg$c862="LightSteelBlue",peg$c863=peg$literalExpectation("LightSteelBlue",false),peg$c864="lightyellow",peg$c865=peg$literalExpectation("lightyellow",false),peg$c866=function(){return"#ffffe0ff"},peg$c867="LightYellow",peg$c868=peg$literalExpectation("LightYellow",false),peg$c869="limegreen",peg$c870=peg$literalExpectation("limegreen",false),peg$c871=function(){return"#32cd32ff"},peg$c872="LimeGreen",peg$c873=peg$literalExpectation("LimeGreen",false),peg$c874="lime",peg$c875=peg$literalExpectation("lime",false),peg$c876=function(){return"#00ff00ff"},peg$c877="Lime",peg$c878=peg$literalExpectation("Lime",false),peg$c879="linen",peg$c880=peg$literalExpectation("linen",false),peg$c881=function(){return"#faf0e6ff"},peg$c882="Linen",peg$c883=peg$literalExpectation("Linen",false),peg$c884="magenta",peg$c885=peg$literalExpectation("magenta",false),peg$c886="Magenta",peg$c887=peg$literalExpectation("Magenta",false),peg$c888="maroon",peg$c889=peg$literalExpectation("maroon",false),peg$c890=function(){return"#800000ff"},peg$c891="Maroon",peg$c892=peg$literalExpectation("Maroon",false),peg$c893="mediumaquamarine",peg$c894=peg$literalExpectation("mediumaquamarine",false),peg$c895=function(){return"#66cdaaff"},peg$c896="MediumAquaMarine",peg$c897=peg$literalExpectation("MediumAquaMarine",false),peg$c898="mediumblue",peg$c899=peg$literalExpectation("mediumblue",false),peg$c900=function(){return"#0000cdff"},peg$c901="MediumBlue",peg$c902=peg$literalExpectation("MediumBlue",false),peg$c903="mediumorchid",peg$c904=peg$literalExpectation("mediumorchid",false),peg$c905=function(){return"#ba55d3ff"},peg$c906="MediumOrchid",peg$c907=peg$literalExpectation("MediumOrchid",false),peg$c908="mediumpurple",peg$c909=peg$literalExpectation("mediumpurple",false),peg$c910=function(){return"#9370d8ff"},peg$c911="MediumPurple",peg$c912=peg$literalExpectation("MediumPurple",false),peg$c913="mediumseagreen",peg$c914=peg$literalExpectation("mediumseagreen",false),peg$c915=function(){return"#3cb371ff"},peg$c916="MediumSeaGreen",peg$c917=peg$literalExpectation("MediumSeaGreen",false),peg$c918="mediumslateblue",peg$c919=peg$literalExpectation("mediumslateblue",false),peg$c920=function(){return"#7b68eeff"},peg$c921="MediumSlateBlue",peg$c922=peg$literalExpectation("MediumSlateBlue",false),peg$c923="mediumspringgreen",peg$c924=peg$literalExpectation("mediumspringgreen",false),peg$c925=function(){return"#00fa9aff"},peg$c926="MediumSpringGreen",peg$c927=peg$literalExpectation("MediumSpringGreen",false),peg$c928="mediumturquoise",peg$c929=peg$literalExpectation("mediumturquoise",false),peg$c930=function(){return"#48d1ccff"},peg$c931="MediumTurquoise",peg$c932=peg$literalExpectation("MediumTurquoise",false),peg$c933="mediumvioletred",peg$c934=peg$literalExpectation("mediumvioletred",false),peg$c935=function(){return"#c71585ff"},peg$c936="MediumVioletRed",peg$c937=peg$literalExpectation("MediumVioletRed",false),peg$c938="midnightblue",peg$c939=peg$literalExpectation("midnightblue",false),peg$c940=function(){return"#191970ff"},peg$c941="MidnightBlue",peg$c942=peg$literalExpectation("MidnightBlue",false),peg$c943="mintcream",peg$c944=peg$literalExpectation("mintcream",false),peg$c945=function(){return"#f5fffaff"},peg$c946="MintCream",peg$c947=peg$literalExpectation("MintCream",false),peg$c948="mistyrose",peg$c949=peg$literalExpectation("mistyrose",false),peg$c950=function(){return"#ffe4e1ff"},peg$c951="MistyRose",peg$c952=peg$literalExpectation("MistyRose",false),peg$c953="moccasin",peg$c954=peg$literalExpectation("moccasin",false),peg$c955=function(){return"#ffe4b5ff"},peg$c956="Moccasin",peg$c957=peg$literalExpectation("Moccasin",false),peg$c958="navajowhite",peg$c959=peg$literalExpectation("navajowhite",false),peg$c960=function(){return"#ffdeadff"},peg$c961="NavajoWhite",peg$c962=peg$literalExpectation("NavajoWhite",false),peg$c963="navy",peg$c964=peg$literalExpectation("navy",false),peg$c965=function(){return"#000080ff"},peg$c966="Navy",peg$c967=peg$literalExpectation("Navy",false),peg$c968="oldlace",peg$c969=peg$literalExpectation("oldlace",false),peg$c970=function(){return"#fdf5e6ff"},peg$c971="OldLace",peg$c972=peg$literalExpectation("OldLace",false),peg$c973="olivedrab",peg$c974=peg$literalExpectation("olivedrab",false),peg$c975=function(){return"#6b8e23ff"},peg$c976="OliveDrab",peg$c977=peg$literalExpectation("OliveDrab",false),peg$c978="olive",peg$c979=peg$literalExpectation("olive",false),peg$c980=function(){return"#808000ff"},peg$c981="Olive",peg$c982=peg$literalExpectation("Olive",false),peg$c983="orangered",peg$c984=peg$literalExpectation("orangered",false),peg$c985=function(){return"#ff4500ff"},peg$c986="OrangeRed",peg$c987=peg$literalExpectation("OrangeRed",false),peg$c988="orange",peg$c989=peg$literalExpectation("orange",false),peg$c990=function(){return"#ffa500ff"},peg$c991="Orange",peg$c992=peg$literalExpectation("Orange",false),peg$c993="orchid",peg$c994=peg$literalExpectation("orchid",false),peg$c995=function(){return"#da70d6ff"},peg$c996="Orchid",peg$c997=peg$literalExpectation("Orchid",false),peg$c998="palegoldenrod",peg$c999=peg$literalExpectation("palegoldenrod",false),peg$c1000=function(){return"#eee8aaff"},peg$c1001="PaleGoldenRod",peg$c1002=peg$literalExpectation("PaleGoldenRod",false),peg$c1003="palegreen",peg$c1004=peg$literalExpectation("palegreen",false),peg$c1005=function(){return"#98fb98ff"},peg$c1006="PaleGreen",peg$c1007=peg$literalExpectation("PaleGreen",false),peg$c1008="paleturquoise",peg$c1009=peg$literalExpectation("paleturquoise",false),peg$c1010=function(){return"#afeeeeff"},peg$c1011="PaleTurquoise",peg$c1012=peg$literalExpectation("PaleTurquoise",false),peg$c1013="palevioletred",peg$c1014=peg$literalExpectation("palevioletred",false),peg$c1015=function(){return"#d87093ff"},peg$c1016="PaleVioletRed",peg$c1017=peg$literalExpectation("PaleVioletRed",false),peg$c1018="papayawhip",peg$c1019=peg$literalExpectation("papayawhip",false),peg$c1020=function(){return"#ffefd5ff"},peg$c1021="PapayaWhip",peg$c1022=peg$literalExpectation("PapayaWhip",false),peg$c1023="peachpuff",peg$c1024=peg$literalExpectation("peachpuff",false),peg$c1025=function(){return"#ffdab9ff"},peg$c1026="PeachPuff",peg$c1027=peg$literalExpectation("PeachPuff",false),peg$c1028="peru",peg$c1029=peg$literalExpectation("peru",false),peg$c1030=function(){return"#cd853fff"},peg$c1031="Peru",peg$c1032=peg$literalExpectation("Peru",false),peg$c1033="pink",peg$c1034=peg$literalExpectation("pink",false),peg$c1035=function(){return"#ffc0cbff"},peg$c1036="Pink",peg$c1037=peg$literalExpectation("Pink",false),peg$c1038="plum",peg$c1039=peg$literalExpectation("plum",false),peg$c1040=function(){return"#dda0ddff"},peg$c1041="Plum",peg$c1042=peg$literalExpectation("Plum",false),peg$c1043="powderblue",peg$c1044=peg$literalExpectation("powderblue",false),peg$c1045=function(){return"#b0e0e6ff"},peg$c1046="PowderBlue",peg$c1047=peg$literalExpectation("PowderBlue",false),peg$c1048="purple",peg$c1049=peg$literalExpectation("purple",false),peg$c1050=function(){return"#800080ff"},peg$c1051="Purple",peg$c1052=peg$literalExpectation("Purple",false),peg$c1053="red",peg$c1054=peg$literalExpectation("red",false),peg$c1055=function(){return"#ff0000ff"},peg$c1056="Red",peg$c1057=peg$literalExpectation("Red",false),peg$c1058="rosybrown",peg$c1059=peg$literalExpectation("rosybrown",false),peg$c1060=function(){return"#bc8f8fff"},peg$c1061="RosyBrown",peg$c1062=peg$literalExpectation("RosyBrown",false),peg$c1063="royalblue",peg$c1064=peg$literalExpectation("royalblue",false),peg$c1065=function(){return"#4169e1ff"},peg$c1066="RoyalBlue",peg$c1067=peg$literalExpectation("RoyalBlue",false),peg$c1068="saddlebrown",peg$c1069=peg$literalExpectation("saddlebrown",false),peg$c1070=function(){return"#8b4513ff"},peg$c1071="SaddleBrown",peg$c1072=peg$literalExpectation("SaddleBrown",false),peg$c1073="salmon",peg$c1074=peg$literalExpectation("salmon",false),peg$c1075=function(){return"#fa8072ff"},peg$c1076="Salmon",peg$c1077=peg$literalExpectation("Salmon",false),peg$c1078="sandybrown",peg$c1079=peg$literalExpectation("sandybrown",false),peg$c1080=function(){return"#f4a460ff"},peg$c1081="SandyBrown",peg$c1082=peg$literalExpectation("SandyBrown",false),peg$c1083="seagreen",peg$c1084=peg$literalExpectation("seagreen",false),peg$c1085=function(){return"#2e8b57ff"},peg$c1086="SeaGreen",peg$c1087=peg$literalExpectation("SeaGreen",false),peg$c1088="seashell",peg$c1089=peg$literalExpectation("seashell",false),peg$c1090=function(){return"#fff5eeff"},peg$c1091="SeaShell",peg$c1092=peg$literalExpectation("SeaShell",false),peg$c1093="sienna",peg$c1094=peg$literalExpectation("sienna",false),peg$c1095=function(){return"#a0522dff"},peg$c1096="Sienna",peg$c1097=peg$literalExpectation("Sienna",false),peg$c1098="silver",peg$c1099=peg$literalExpectation("silver",false),peg$c1100=function(){return"#c0c0c0ff"},peg$c1101="Silver",peg$c1102=peg$literalExpectation("Silver",false),peg$c1103="skyblue",peg$c1104=peg$literalExpectation("skyblue",false),peg$c1105=function(){return"#87ceebff"},peg$c1106="SkyBlue",peg$c1107=peg$literalExpectation("SkyBlue",false),peg$c1108="slateblue",peg$c1109=peg$literalExpectation("slateblue",false),peg$c1110=function(){return"#6a5acdff"},peg$c1111="SlateBlue",peg$c1112=peg$literalExpectation("SlateBlue",false),peg$c1113="slategray",peg$c1114=peg$literalExpectation("slategray",false),peg$c1115=function(){return"#708090ff"},peg$c1116="SlateGray",peg$c1117=peg$literalExpectation("SlateGray",false),peg$c1118="slategrey",peg$c1119=peg$literalExpectation("slategrey",false),peg$c1120="SlateGrey",peg$c1121=peg$literalExpectation("SlateGrey",false),peg$c1122="snow",peg$c1123=peg$literalExpectation("snow",false),peg$c1124=function(){return"#fffafaff"},peg$c1125="Snow",peg$c1126=peg$literalExpectation("Snow",false),peg$c1127="springgreen",peg$c1128=peg$literalExpectation("springgreen",false),peg$c1129=function(){return"#00ff7fff"},peg$c1130="SpringGreen",peg$c1131=peg$literalExpectation("SpringGreen",false),peg$c1132="steelblue",peg$c1133=peg$literalExpectation("steelblue",false),peg$c1134=function(){return"#4682b4ff"},peg$c1135="SteelBlue",peg$c1136=peg$literalExpectation("SteelBlue",false),peg$c1137="tan",peg$c1138=peg$literalExpectation("tan",false),peg$c1139=function(){return"#d2b48cff"},peg$c1140="Tan",peg$c1141=peg$literalExpectation("Tan",false),peg$c1142="teal",peg$c1143=peg$literalExpectation("teal",false),peg$c1144=function(){return"#008080ff"},peg$c1145="Teal",peg$c1146=peg$literalExpectation("Teal",false),peg$c1147="thistle",peg$c1148=peg$literalExpectation("thistle",false),peg$c1149=function(){return"#d8bfd8ff"},peg$c1150="Thistle",peg$c1151=peg$literalExpectation("Thistle",false),peg$c1152="tomato",peg$c1153=peg$literalExpectation("tomato",false),peg$c1154=function(){return"#ff6347ff"},peg$c1155="Tomato",peg$c1156=peg$literalExpectation("Tomato",false),peg$c1157="transparent",peg$c1158=peg$literalExpectation("transparent",false),peg$c1159=function(){return"#00000000"},peg$c1160="Transparent",peg$c1161=peg$literalExpectation("Transparent",false),peg$c1162="turquoise",peg$c1163=peg$literalExpectation("turquoise",false),peg$c1164=function(){return"#40e0d0ff"},peg$c1165="Turquoise",peg$c1166=peg$literalExpectation("Turquoise",false),peg$c1167="violet",peg$c1168=peg$literalExpectation("violet",false),peg$c1169=function(){return"#ee82eeff"},peg$c1170="Violet",peg$c1171=peg$literalExpectation("Violet",false),peg$c1172="wheat",peg$c1173=peg$literalExpectation("wheat",false),peg$c1174=function(){return"#f5deb3ff"},peg$c1175="Wheat",peg$c1176=peg$literalExpectation("Wheat",false),peg$c1177="whitesmoke",peg$c1178=peg$literalExpectation("whitesmoke",false),peg$c1179=function(){return"#f5f5f5ff"},peg$c1180="WhiteSmoke",peg$c1181=peg$literalExpectation("WhiteSmoke",false),peg$c1182="white",peg$c1183=peg$literalExpectation("white",false),peg$c1184=function(){return"#ffffffff"},peg$c1185="White",peg$c1186=peg$literalExpectation("White",false),peg$c1187="yellowgreen",peg$c1188=peg$literalExpectation("yellowgreen",false),peg$c1189=function(){return"#9acd32ff"},peg$c1190="YellowGreen",peg$c1191=peg$literalExpectation("YellowGreen",false),peg$c1192="yellow",peg$c1193=peg$literalExpectation("yellow",false),peg$c1194=function(){return"#ffff00ff"},peg$c1195="Yellow",peg$c1196=peg$literalExpectation("Yellow",false),peg$c1197=function(lab){return lab},peg$c1198="#",peg$c1199=peg$literalExpectation("#",false),peg$c1200=function(r,g,b){return`#${r}${r}${g}${g}${b}${b}ff`},peg$c1201=function(r1,r2,g1,g2,b1,b2){return`#${r1}${r2}${g1}${g2}${b1}${b2}ff`},peg$c1202=function(r,g,b,a){return`#${r}${r}${g}${g}${b}${b}${a}${a}`},peg$c1203=function(r1,r2,g1,g2,b1,b2,a1,a2){return`#${r1}${r2}${g1}${g2}${b1}${b2}${a1}${a2}`},peg$c1204=peg$otherExpectation("color"),peg$c1205="arc_label",peg$c1206=peg$literalExpectation("arc_label",false),peg$c1207="head_label",peg$c1208=peg$literalExpectation("head_label",false),peg$c1209="tail_label",peg$c1210=peg$literalExpectation("tail_label",false),peg$c1211=":",peg$c1212=peg$literalExpectation(":",false),peg$c1213=";",peg$c1214=peg$literalExpectation(";",false),peg$c1215=function(key,value){const node={key:key,value:value};if(options.locations){node.loc=location()}return node},peg$c1216=peg$otherExpectation("single edge color"),peg$c1217="edge-color",peg$c1218=peg$literalExpectation("edge-color",false),peg$c1219=function(v){return options.locations?{__v:v,__loc:location()}:v},peg$c1220=function(value){const raw=options.locations?value.__v:value;const node={key:"single_edge_color",value:raw};if(options.locations){node.loc=location();node.value_loc=value.__loc}return node},peg$c1221="edge_color",peg$c1222=peg$literalExpectation("edge_color",false),peg$c1223=peg$otherExpectation("transition line style"),peg$c1224="line-style",peg$c1225=peg$literalExpectation("line-style",false),peg$c1226=function(value){const node={key:"transition_line_style",value:value};if(options.locations){node.loc=location()}return node},peg$c1227="{",peg$c1228=peg$literalExpectation("{",false),peg$c1229="}",peg$c1230=peg$literalExpectation("}",false),peg$c1231=function(items){return items},peg$c1232="%",peg$c1233=peg$literalExpectation("%",false),peg$c1234=function(value){const node={key:"arrow probability",value:value};if(options.locations){node.loc=location()}return node},peg$c1235="milliseconds",peg$c1236=peg$literalExpectation("milliseconds",false),peg$c1237=function(){return 1},peg$c1238="millisecond",peg$c1239=peg$literalExpectation("millisecond",false),peg$c1240="msecs",peg$c1241=peg$literalExpectation("msecs",false),peg$c1242="msec",peg$c1243=peg$literalExpectation("msec",false),peg$c1244="ms",peg$c1245=peg$literalExpectation("ms",false),peg$c1246="seconds",peg$c1247=peg$literalExpectation("seconds",false),peg$c1248=function(){return 1e3},peg$c1249="second",peg$c1250=peg$literalExpectation("second",false),peg$c1251="secs",peg$c1252=peg$literalExpectation("secs",false),peg$c1253="sec",peg$c1254=peg$literalExpectation("sec",false),peg$c1255="s",peg$c1256=peg$literalExpectation("s",false),peg$c1257="minutes",peg$c1258=peg$literalExpectation("minutes",false),peg$c1259=function(){return 1e3*60},peg$c1260="minute",peg$c1261=peg$literalExpectation("minute",false),peg$c1262="mins",peg$c1263=peg$literalExpectation("mins",false),peg$c1264="min",peg$c1265=peg$literalExpectation("min",false),peg$c1266="m",peg$c1267=peg$literalExpectation("m",false),peg$c1268="hours",peg$c1269=peg$literalExpectation("hours",false),peg$c1270=function(){return 1e3*60*60},peg$c1271="hour",peg$c1272=peg$literalExpectation("hour",false),peg$c1273="hrs",peg$c1274=peg$literalExpectation("hrs",false),peg$c1275="hr",peg$c1276=peg$literalExpectation("hr",false),peg$c1277="h",peg$c1278=peg$literalExpectation("h",false),peg$c1279="days",peg$c1280=peg$literalExpectation("days",false),peg$c1281=function(){return 1e3*60*60*24},peg$c1282="day",peg$c1283=peg$literalExpectation("day",false),peg$c1284="d",peg$c1285=peg$literalExpectation("d",false),peg$c1286="weeks",peg$c1287=peg$literalExpectation("weeks",false),peg$c1288=function(){return 1e3*60*60*24*7},peg$c1289="week",peg$c1290=peg$literalExpectation("week",false),peg$c1291="wks",peg$c1292=peg$literalExpectation("wks",false),peg$c1293="wk",peg$c1294=peg$literalExpectation("wk",false),peg$c1295="w",peg$c1296=peg$literalExpectation("w",false),peg$c1297="after",peg$c1298=peg$literalExpectation("after",false),peg$c1299=function(value,timescale){return value*(timescale||1e3)},peg$c1300=function(names){return names.map(i=>i[0])},peg$c1301=peg$otherExpectation("group reference"),peg$c1302="&",peg$c1303=peg$literalExpectation("&",false),peg$c1304=function(name){return{key:"group_ref",name:name}},peg$c1305="...",peg$c1306=peg$literalExpectation("...",false),peg$c1307=function(name){return{kind:"group",name:name,mode:"spread"}},peg$c1308=function(name){return{kind:"group",name:name,mode:"nest"}},peg$c1309=function(name){return{kind:"state",name:name}},peg$c1310=function(members){const items=members.map(m=>m[0]);const has_group=items.some(m=>m.kind==="group");return has_group?items:items.map(m=>m.name)},peg$c1311="+|",peg$c1312=peg$literalExpectation("+|",false),peg$c1313=function(n){const node={key:"stripe",value:parseInt(n,10)};if(options.locations){node.loc=location()}return node},peg$c1314="-|",peg$c1315=peg$literalExpectation("-|",false),peg$c1316=function(n){const node={key:"stripe",value:-1*parseInt(n,10)};if(options.locations){node.loc=location()}return node},peg$c1317="+",peg$c1318=peg$literalExpectation("+",false),peg$c1319=function(n){const node={key:"cycle",value:parseInt(n,10)};if(options.locations){node.loc=location()}return node},peg$c1320="-",peg$c1321=peg$literalExpectation("-",false),peg$c1322=function(n){const node={key:"cycle",value:-1*parseInt(n,10)};if(options.locations){node.loc=location()}return node},peg$c1323="+0",peg$c1324=peg$literalExpectation("+0",false),peg$c1325=function(){const node={key:"cycle",value:0};if(options.locations){node.loc=location()}return node},peg$c1326=function(v){return{_kind:"after",v:v}},peg$c1327=function(v){return{_kind:"action",v:v,loc:location()}},peg$c1328=function(v){return{_kind:"prob",v:v}},peg$c1329=function(v){return{_kind:"desc",v:v}},peg$c1330=function(d){return d},peg$c1331=function(pre,arrow,post,l){return options.locations?{__v:l,__loc:location()}:l},peg$c1332=function(pre,arrow,post,label,tail){const toVal=options.locations?label.__v:label;const base={kind:arrow,to:toVal};const seen={};for(const d of pre){if(seen["pre:"+d._kind]){error("duplicate "+d._kind+" decoration before arrow",location())}seen["pre:"+d._kind]=true;if(d._kind==="after"&&d.v!=null){base.r_after=d.v}if(d._kind==="action"&&d.v!=null){base.r_action=d.v;if(options.locations){base.r_action_loc=d.loc}}if(d._kind==="prob"&&d.v!=null){base.r_probability=d.v.value}if(d._kind==="desc"&&d.v!=null){base.l_desc=d.v}}for(const d of post){if(seen["post:"+d._kind]){error("duplicate "+d._kind+" decoration after arrow",location())}seen["post:"+d._kind]=true;if(d._kind==="after"&&d.v!=null){base.l_after=d.v}if(d._kind==="action"&&d.v!=null){base.l_action=d.v;if(options.locations){base.l_action_loc=d.loc}}if(d._kind==="prob"&&d.v!=null){base.l_probability=d.v.value}if(d._kind==="desc"&&d.v!=null){base.r_desc=d.v}}if(tail){base.se=tail}if(options.locations){base.loc=location();base.to_loc=label.__loc}return base},peg$c1333=function(l){return options.locations?{__v:l,__loc:location()}:l},peg$c1334=function(label,se){const fromVal=options.locations?label.__v:label;const base={key:"transition",from:fromVal};if(se){base.se=se}if(options.locations){base.loc=location();base.from_loc=label.__loc}return base},peg$c1335="dot",peg$c1336=peg$literalExpectation("dot",false),peg$c1337="circo",peg$c1338=peg$literalExpectation("circo",false),peg$c1339="fdp",peg$c1340=peg$literalExpectation("fdp",false),peg$c1341="neato",peg$c1342=peg$literalExpectation("neato",false),peg$c1343="twopi",peg$c1344=peg$literalExpectation("twopi",false),peg$c1345="state",peg$c1346=peg$literalExpectation("state",false),peg$c1347="};",peg$c1348=peg$literalExpectation("};",false),peg$c1349=function(state_items){const node={key:"default_state_config",value:state_items||[]};if(options.locations){node.loc=location()}return node},peg$c1350="start_state",peg$c1351=peg$literalExpectation("start_state",false),peg$c1352=function(state_items){const node={key:"default_start_state_config",value:state_items||[]};if(options.locations){node.loc=location()}return node},peg$c1353="end_state",peg$c1354=peg$literalExpectation("end_state",false),peg$c1355=function(state_items){const node={key:"default_end_state_config",value:state_items||[]};if(options.locations){node.loc=location()}return node},peg$c1356="active_state",peg$c1357=peg$literalExpectation("active_state",false),peg$c1358=function(state_items){const node={key:"default_active_state_config",value:state_items||[]};if(options.locations){node.loc=location()}return node},peg$c1359="terminal_state",peg$c1360=peg$literalExpectation("terminal_state",false),peg$c1361=function(state_items){const node={key:"default_terminal_state_config",value:state_items||[]};if(options.locations){node.loc=location()}return node},peg$c1362="hooked_state",peg$c1363=peg$literalExpectation("hooked_state",false),peg$c1364=function(state_items){const node={key:"default_hooked_state_config",value:state_items||[]};if(options.locations){node.loc=location()}return node},peg$c1365=peg$otherExpectation("graph default edge color"),peg$c1366=function(value){const raw=options.locations?value.__v:value;const node={key:"graph_default_edge_color",value:raw};if(options.locations){node.loc=location();node.value_loc=value.__loc}return node},peg$c1367="transition",peg$c1368=peg$literalExpectation("transition",false),peg$c1369=function(items){const node={key:"default_transition_config",value:items||[]};if(options.locations){node.loc=location()}return node},peg$c1370="graph",peg$c1371=peg$literalExpectation("graph",false),peg$c1372=function(items){const node={key:"default_graph_config",value:items||[]};if(options.locations){node.loc=location()}return node},peg$c1373="editor",peg$c1374=peg$literalExpectation("editor",false),peg$c1375=function(items){const node={key:"editor_config",value:items};if(options.locations){node.loc=location()}return node},peg$c1376="stochastic_run_count",peg$c1377=peg$literalExpectation("stochastic_run_count",false),peg$c1378=function(value){const node={key:"stochastic_run_count",value:parseInt(value,10)};if(options.locations){node.loc=location()}return node},peg$c1379="panels",peg$c1380=peg$literalExpectation("panels",false),peg$c1381=function(value){const node={key:"panels",value:value};if(options.locations){node.loc=location()}return node},peg$c1382="graph_layout",peg$c1383=peg$literalExpectation("graph_layout",false),peg$c1384=function(value){const node={key:"graph_layout",value:value};if(options.locations){node.loc=location()}return node},peg$c1385="start_states",peg$c1386=peg$literalExpectation("start_states",false),peg$c1387=function(value){const node={key:"start_states",value:value};if(options.locations){node.loc=location()}return node},peg$c1388="end_states",peg$c1389=peg$literalExpectation("end_states",false),peg$c1390=function(value){const node={key:"end_states",value:value};if(options.locations){node.loc=location()}return node},peg$c1391="failed_outputs",peg$c1392=peg$literalExpectation("failed_outputs",false),peg$c1393=function(value){const raw=options.locations?value.__v:value;const node={key:"failed_outputs",value:typeof raw==="string"?[raw]:raw};if(options.locations){node.loc=location();node.value_loc=value.__loc}return node},peg$c1394="graph_bg_color",peg$c1395=peg$literalExpectation("graph_bg_color",false),peg$c1396=function(value){const raw=options.locations?value.__v:value;const node={key:"graph_bg_color",value:raw};if(options.locations){node.loc=location();node.value_loc=value.__loc}return node},peg$c1397="allows_override",peg$c1398=peg$literalExpectation("allows_override",false),peg$c1399=function(value){const node={key:"allows_override",value:value};if(options.locations){node.loc=location()}return node},peg$c1400="allow_islands",peg$c1401=peg$literalExpectation("allow_islands",false),peg$c1402=function(value){const raw=options.locations?value.__v:value;const node={key:"allow_islands",value:raw};if(options.locations){node.loc=location();node.value_loc=value.__loc}return node},peg$c1403=function(){return true},peg$c1404=function(){return false},peg$c1405="with_start",peg$c1406=peg$literalExpectation("with_start",false),peg$c1407=function(){return"with_start"},peg$c1408=function(){return true},peg$c1409=function(){return false},peg$c1410=peg$otherExpectation("configuration"),peg$c1411="MIT",peg$c1412=peg$literalExpectation("MIT",false),peg$c1413="BSD 2-clause",peg$c1414=peg$literalExpectation("BSD 2-clause",false),peg$c1415="BSD 3-clause",peg$c1416=peg$literalExpectation("BSD 3-clause",false),peg$c1417="Apache 2.0",peg$c1418=peg$literalExpectation("Apache 2.0",false),peg$c1419="Mozilla 2.0",peg$c1420=peg$literalExpectation("Mozilla 2.0",false),peg$c1421="Public domain",peg$c1422=peg$literalExpectation("Public domain",false),peg$c1423="GPL v2",peg$c1424=peg$literalExpectation("GPL v2",false),peg$c1425="GPL v3",peg$c1426=peg$literalExpectation("GPL v3",false),peg$c1427="LGPL v2.1",peg$c1428=peg$literalExpectation("LGPL v2.1",false),peg$c1429="LGPL v3.0",peg$c1430=peg$literalExpectation("LGPL v3.0",false),peg$c1431="Unknown",peg$c1432=peg$literalExpectation("Unknown",false),peg$c1433=peg$otherExpectation("direction"),peg$c1434="up",peg$c1435=peg$literalExpectation("up",false),peg$c1436="right",peg$c1437=peg$literalExpectation("right",false),peg$c1438="down",peg$c1439=peg$literalExpectation("down",false),peg$c1440="left",peg$c1441=peg$literalExpectation("left",false),peg$c1442=peg$otherExpectation("hook definition (open/closed)"),peg$c1443="open",peg$c1444=peg$literalExpectation("open",false),peg$c1445="closed",peg$c1446=peg$literalExpectation("closed",false),peg$c1447="machine_author",peg$c1448=peg$literalExpectation("machine_author",false),peg$c1449=function(value){const raw=options.locations?value.__v:value;const node={key:"machine_author",value:raw};if(options.locations){node.loc=location();node.value_loc=value.__loc}return node},peg$c1450="machine_contributor",peg$c1451=peg$literalExpectation("machine_contributor",false),peg$c1452=function(value){const raw=options.locations?value.__v:value;const node={key:"machine_contributor",value:raw};if(options.locations){node.loc=location();node.value_loc=value.__loc}return node},peg$c1453="machine_comment",peg$c1454=peg$literalExpectation("machine_comment",false),peg$c1455=function(value){const raw=options.locations?value.__v:value;const node={key:"machine_comment",value:raw};if(options.locations){node.loc=location();node.value_loc=value.__loc}return node},peg$c1456="machine_definition",peg$c1457=peg$literalExpectation("machine_definition",false),peg$c1458=function(value){const raw=options.locations?value.__v:value;const node={key:"machine_definition",value:raw};if(options.locations){node.loc=location();node.value_loc=value.__loc}return node},peg$c1459="machine_name",peg$c1460=peg$literalExpectation("machine_name",false),peg$c1461=function(value){const raw=options.locations?value.__v:value;const node={key:"machine_name",value:raw};if(options.locations){node.loc=location();node.value_loc=value.__loc}return node},peg$c1462="npm_name",peg$c1463=peg$literalExpectation("npm_name",false),peg$c1464=function(value){const raw=options.locations?value.__v:value;const node={key:"npm_name",value:raw};if(options.locations){node.loc=location();node.value_loc=value.__loc}return node},peg$c1465="machine_reference",peg$c1466=peg$literalExpectation("machine_reference",false),peg$c1467=function(value){const raw=options.locations?value.__v:value;const node={key:"machine_reference",value:raw};if(options.locations){node.loc=location();node.value_loc=value.__loc}return node},peg$c1468="machine_version",peg$c1469=peg$literalExpectation("machine_version",false),peg$c1470=function(value){const raw=options.locations?value.__v:value;const node={key:"machine_version",value:raw};if(options.locations){node.loc=location();node.value_loc=value.__loc}return node},peg$c1471="machine_license",peg$c1472=peg$literalExpectation("machine_license",false),peg$c1473=function(value){const raw=options.locations?value.__v:value;const node={key:"machine_license",value:raw};if(options.locations){node.loc=location();node.value_loc=value.__loc}return node},peg$c1474="machine_language",peg$c1475=peg$literalExpectation("machine_language",false),peg$c1476=function(value){const raw=options.locations?value.__v:value;const node={key:"machine_language",value:raw};if(options.locations){node.loc=location();node.value_loc=value.__loc}return node},peg$c1477="fsl_version",peg$c1478=peg$literalExpectation("fsl_version",false),peg$c1479=function(value){const raw=options.locations?value.__v:value;const node={key:"fsl_version",value:raw};if(options.locations){node.loc=location();node.value_loc=value.__loc}return node},peg$c1480="theme",peg$c1481=peg$literalExpectation("theme",false),peg$c1482=function(value){const raw=options.locations?value.__v:value;const node={key:"theme",value:raw};if(options.locations){node.loc=location();node.value_loc=value.__loc}return node},peg$c1483="flow",peg$c1484=peg$literalExpectation("flow",false),peg$c1485=function(value){const raw=options.locations?value.__v:value;const node={key:"flow",value:raw};if(options.locations){node.loc=location();node.value_loc=value.__loc}return node},peg$c1486="hooks",peg$c1487=peg$literalExpectation("hooks",false),peg$c1488=function(value){const raw=options.locations?value.__v:value;const node={key:"hook_definition",value:raw};if(options.locations){node.loc=location();node.value_loc=value.__loc}return node},peg$c1489="dot_preamble",peg$c1490=peg$literalExpectation("dot_preamble",false),peg$c1491=function(value){const raw=options.locations?value.__v:value;const node={key:"dot_preamble",value:raw};if(options.locations){node.loc=location();node.value_loc=value.__loc}return node},peg$c1492="height",peg$c1493=peg$literalExpectation("height",false),peg$c1494=function(n){return{height:n}},peg$c1495=function(w,h){return{width:w,height:h}},peg$c1496=function(w){return{width:w}},peg$c1497="default_size",peg$c1498=peg$literalExpectation("default_size",false),peg$c1499=function(value){const raw=options.locations?value.__v:value;const node={key:"default_size",value:raw};if(options.locations){node.loc=location();node.value_loc=value.__loc}return node},peg$c1500=peg$otherExpectation("machine attribute"),peg$c1501="label",peg$c1502=peg$literalExpectation("label",false),peg$c1503=function(value){const node={key:"state-label",value:value};if(options.locations){node.loc=location()}return node},peg$c1504="color",peg$c1505=peg$literalExpectation("color",false),peg$c1506=function(value){const raw=options.locations?value.__v:value;const node={key:"color",value:raw};if(options.locations){node.loc=location();node.value_loc=value.__loc}return node},peg$c1507=peg$otherExpectation("text color"),peg$c1508="text-color",peg$c1509=peg$literalExpectation("text-color",false),peg$c1510=function(value){const raw=options.locations?value.__v:value;const node={key:"text-color",value:raw};if(options.locations){node.loc=location();node.value_loc=value.__loc}return node},peg$c1511=peg$otherExpectation("background color"),peg$c1512="background-color",peg$c1513=peg$literalExpectation("background-color",false),peg$c1514=function(value){const raw=options.locations?value.__v:value;const node={key:"background-color",value:raw};if(options.locations){node.loc=location();node.value_loc=value.__loc}return node},peg$c1515=peg$otherExpectation("border color"),peg$c1516="border-color",peg$c1517=peg$literalExpectation("border-color",false),peg$c1518=function(value){const raw=options.locations?value.__v:value;const node={key:"border-color",value:raw};if(options.locations){node.loc=location();node.value_loc=value.__loc}return node},peg$c1519=peg$otherExpectation("shape"),peg$c1520="shape",peg$c1521=peg$literalExpectation("shape",false),peg$c1522=function(value){const node={key:"shape",value:value};if(options.locations){node.loc=location()}return node},peg$c1523=peg$otherExpectation("corners"),peg$c1524="corners",peg$c1525=peg$literalExpectation("corners",false),peg$c1526=function(value){const node={key:"corners",value:value};if(options.locations){node.loc=location()}return node},peg$c1527=peg$otherExpectation("linestyle"),peg$c1528=function(value){const node={key:"line-style",value:value};if(options.locations){node.loc=location()}return node},peg$c1529="linestyle",peg$c1530=peg$literalExpectation("linestyle",false),peg$c1531=peg$otherExpectation("image"),peg$c1532="image",peg$c1533=peg$literalExpectation("image",false),peg$c1534=function(value){const node={key:"image",value:value};if(options.locations){node.loc=location()}return node},peg$c1535=peg$otherExpectation("url"),peg$c1536="url",peg$c1537=peg$literalExpectation("url",false),peg$c1538=function(value){const node={key:"url",value:value};if(options.locations){node.loc=location()}return node},peg$c1539=peg$otherExpectation("state property"),peg$c1540="property",peg$c1541=peg$literalExpectation("property",false),peg$c1542=function(name,value){const node={key:"state_property",name:name,value:value};if(options.locations){node.loc=location()}return node},peg$c1543="required",peg$c1544=peg$literalExpectation("required",false),peg$c1545=function(name,value){const node={key:"state_property",name:name,value:value,required:true};if(options.locations){node.loc=location()}return node},peg$c1546=function(n){return options.locations?{__v:n,__loc:location()}:n},peg$c1547=function(name,value){const raw=options.locations?name.__v:name;const node={key:"state_declaration",name:raw,value:value};if(options.locations){node.loc=location();node.name_loc=name.__loc}return node},peg$c1548=function(name,value){const node={key:"named_list",name:name,value:value};if(options.locations){node.loc=location()}return node},peg$c1549=peg$otherExpectation("hook event (enter/exit)"),peg$c1550="enter",peg$c1551=peg$literalExpectation("enter",false),peg$c1552="exit",peg$c1553=peg$literalExpectation("exit",false),peg$c1554=peg$otherExpectation("hook declaration"),peg$c1555="on",peg$c1556=peg$literalExpectation("on",false),peg$c1557="do",peg$c1558=peg$literalExpectation("do",false),peg$c1559=function(event,subject,action){const node={key:"hook_decl",event:event,subject:subject,action:action};if(options.locations){node.loc=location()}return node},peg$c1560=function(name,default_value){const node={key:"property_definition",name:name,default_value:default_value,required:true};if(options.locations){node.loc=location()}return node},peg$c1561=function(name){const node={key:"property_definition",name:name,required:true};if(options.locations){node.loc=location()}return node},peg$c1562=function(name,default_value){const node={key:"property_definition",name:name,default_value:default_value};if(options.locations){node.loc=location()}return node},peg$c1563=function(name){const node={key:"property_definition",name:name};if(options.locations){node.loc=location()}return node},peg$c1564="arrange",peg$c1565=peg$literalExpectation("arrange",false),peg$c1566=function(value){const node={key:"arrange_declaration",value:value};if(options.locations){node.loc=location()}return node},peg$c1567="arrange-start",peg$c1568=peg$literalExpectation("arrange-start",false),peg$c1569=function(value){const node={key:"arrange_start_declaration",value:value};if(options.locations){node.loc=location()}return node},peg$c1570="arrange-end",peg$c1571=peg$literalExpectation("arrange-end",false),peg$c1572=function(value){const node={key:"arrange_end_declaration",value:value};if(options.locations){node.loc=location()}return node},peg$c1573=peg$otherExpectation("oarrange declaration"),peg$c1574="oarrange",peg$c1575=peg$literalExpectation("oarrange",false),peg$c1576=function(value){const node={key:"oarrange_declaration",value:value};if(options.locations){node.loc=location()}return node},peg$c1577=peg$otherExpectation("farrange declaration"),peg$c1578="farrange",peg$c1579=peg$literalExpectation("farrange",false),peg$c1580=function(value){const node={key:"farrange_declaration",value:value};if(options.locations){node.loc=location()}return node},peg$c1581=peg$otherExpectation("arrange declaration"),peg$currPos=0,peg$savedPos=0,peg$posDetailsCache=[{line:1,column:1}],peg$maxFailPos=0,peg$maxFailExpected=[],peg$silentFails=0,peg$result;if("startRule"in options){if(!(options.startRule in peg$startRuleFunctions)){throw new Error(`Can't start parsing from rule "`+options.startRule+'".')}peg$startRuleFunction=peg$startRuleFunctions[options.startRule]}function text(){return input.substring(peg$savedPos,peg$currPos)}function location(){return peg$computeLocation(peg$savedPos,peg$currPos)}function error(message,location2){location2=location2!==void 0?location2:peg$computeLocation(peg$savedPos,peg$currPos);throw peg$buildSimpleError(message,location2)}function peg$literalExpectation(text2,ignoreCase){return{type:"literal",text:text2,ignoreCase:ignoreCase}}function peg$classExpectation(parts,inverted,ignoreCase){return{type:"class",parts:parts,inverted:inverted,ignoreCase:ignoreCase}}function peg$anyExpectation(){return{type:"any"}}function peg$endExpectation(){return{type:"end"}}function peg$otherExpectation(description){return{type:"other",description:description}}function peg$computePosDetails(pos){var details=peg$posDetailsCache[pos],p;if(details){return details}else{p=pos-1;while(!peg$posDetailsCache[p]){p--}details=peg$posDetailsCache[p];details={line:details.line,column:details.column};while(p<pos){if(input.charCodeAt(p)===10){details.line++;details.column=1}else{details.column++}p++}peg$posDetailsCache[pos]=details;return details}}function peg$computeLocation(startPos,endPos){var startPosDetails=peg$computePosDetails(startPos),endPosDetails=peg$computePosDetails(endPos);return{start:{offset:startPos,line:startPosDetails.line,column:startPosDetails.column},end:{offset:endPos,line:endPosDetails.line,column:endPosDetails.column}}}function peg$fail(expected2){if(peg$currPos<peg$maxFailPos){return}if(peg$currPos>peg$maxFailPos){peg$maxFailPos=peg$currPos;peg$maxFailExpected=[]}peg$maxFailExpected.push(expected2)}function peg$buildSimpleError(message,location2){return new peg$SyntaxError(message,null,null,location2)}function peg$buildStructuredError(expected2,found,location2){return new peg$SyntaxError(peg$SyntaxError.buildMessage(expected2,found),expected2,found,location2)}function peg$parseDocument(){var s0,s1,s2,s3;s0=peg$currPos;s1=peg$parseWS();if(s1===peg$FAILED){s1=null}if(s1!==peg$FAILED){s2=peg$parseTermList();if(s2!==peg$FAILED){s3=peg$parseWS();if(s3===peg$FAILED){s3=null}if(s3!==peg$FAILED){peg$savedPos=s0;s1=peg$c0(s2);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}return s0}function peg$parseTheme(){var s0;if(input.substr(peg$currPos,7)===peg$c1){s0=peg$c1;peg$currPos+=7}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c2)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,5)===peg$c3){s0=peg$c3;peg$currPos+=5}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c4)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,6)===peg$c5){s0=peg$c5;peg$currPos+=6}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c6)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,5)===peg$c7){s0=peg$c7;peg$currPos+=5}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c8)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,4)===peg$c9){s0=peg$c9;peg$currPos+=4}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c10)}}}}}}return s0}function peg$parseThemeOrThemeList(){var s0,s1,s2,s3,s4,s5,s6;s0=peg$currPos;if(input.charCodeAt(peg$currPos)===91){s1=peg$c11;peg$currPos++}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c12)}}if(s1!==peg$FAILED){s2=peg$parseWS();if(s2===peg$FAILED){s2=null}if(s2!==peg$FAILED){s3=[];s4=peg$currPos;s5=peg$parseTheme();if(s5!==peg$FAILED){s6=peg$parseWS();if(s6!==peg$FAILED){s5=[s5,s6];s4=s5}else{peg$currPos=s4;s4=peg$FAILED}}else{peg$currPos=s4;s4=peg$FAILED}while(s4!==peg$FAILED){s3.push(s4);s4=peg$currPos;s5=peg$parseTheme();if(s5!==peg$FAILED){s6=peg$parseWS();if(s6!==peg$FAILED){s5=[s5,s6];s4=s5}else{peg$currPos=s4;s4=peg$FAILED}}else{peg$currPos=s4;s4=peg$FAILED}}if(s3!==peg$FAILED){s4=peg$parseTheme();if(s4===peg$FAILED){s4=null}if(s4!==peg$FAILED){if(input.charCodeAt(peg$currPos)===93){s5=peg$c13;peg$currPos++}else{s5=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c14)}}if(s5!==peg$FAILED){peg$savedPos=s0;s1=peg$c15(s3,s4);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}if(s0===peg$FAILED){s0=peg$currPos;s1=peg$parseTheme();if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c16(s1)}s0=s1}return s0}function peg$parseGvizShape(){var s0;if(input.substr(peg$currPos,5)===peg$c17){s0=peg$c17;peg$currPos+=5}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c18)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,7)===peg$c19){s0=peg$c19;peg$currPos+=7}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c20)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,7)===peg$c21){s0=peg$c21;peg$currPos+=7}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c22)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,4)===peg$c23){s0=peg$c23;peg$currPos+=4}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c24)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,6)===peg$c25){s0=peg$c25;peg$currPos+=6}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c26)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,5)===peg$c27){s0=peg$c27;peg$currPos+=5}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c28)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,3)===peg$c29){s0=peg$c29;peg$currPos+=3}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c30)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,8)===peg$c31){s0=peg$c31;peg$currPos+=8}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c32)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,9)===peg$c33){s0=peg$c33;peg$currPos+=9}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c34)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,5)===peg$c7){s0=peg$c7;peg$currPos+=5}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c8)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,7)===peg$c35){s0=peg$c35;peg$currPos+=7}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c36)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,9)===peg$c37){s0=peg$c37;peg$currPos+=9}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c38)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,13)===peg$c39){s0=peg$c39;peg$currPos+=13}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c40)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,5)===peg$c41){s0=peg$c41;peg$currPos+=5}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c42)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,8)===peg$c43){s0=peg$c43;peg$currPos+=8}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c44)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,7)===peg$c45){s0=peg$c45;peg$currPos+=7}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c46)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,8)===peg$c47){s0=peg$c47;peg$currPos+=8}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c48)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,7)===peg$c49){s0=peg$c49;peg$currPos+=7}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c50)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,12)===peg$c51){s0=peg$c51;peg$currPos+=12}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c52)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,13)===peg$c53){s0=peg$c53;peg$currPos+=13}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c54)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,13)===peg$c55){s0=peg$c55;peg$currPos+=13}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c56)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,11)===peg$c57){s0=peg$c57;peg$currPos+=11}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c58)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,12)===peg$c59){s0=peg$c59;peg$currPos+=12}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c60)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,8)===peg$c61){s0=peg$c61;peg$currPos+=8}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c62)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,8)===peg$c63){s0=peg$c63;peg$currPos+=8}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c64)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,7)===peg$c65){s0=peg$c65;peg$currPos+=7}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c66)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,7)===peg$c67){s0=peg$c67;peg$currPos+=7}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c68)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,9)===peg$c69){s0=peg$c69;peg$currPos+=9}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c70)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,4)===peg$c71){s0=peg$c71;peg$currPos+=4}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c72)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,6)===peg$c73){s0=peg$c73;peg$currPos+=6}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c74)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,4)===peg$c75){s0=peg$c75;peg$currPos+=4}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c76)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,4)===peg$c77){s0=peg$c77;peg$currPos+=4}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c78)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,9)===peg$c79){s0=peg$c79;peg$currPos+=9}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c80)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,8)===peg$c81){s0=peg$c81;peg$currPos+=8}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c82)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,4)===peg$c83){s0=peg$c83;peg$currPos+=4}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c84)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,3)===peg$c85){s0=peg$c85;peg$currPos+=3}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c86)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,6)===peg$c87){s0=peg$c87;peg$currPos+=6}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c88)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,3)===peg$c89){s0=peg$c89;peg$currPos+=3}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c90)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,9)===peg$c91){s0=peg$c91;peg$currPos+=9}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c92)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,8)===peg$c93){s0=peg$c93;peg$currPos+=8}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c94)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,3)===peg$c95){s0=peg$c95;peg$currPos+=3}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c96)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,10)===peg$c97){s0=peg$c97;peg$currPos+=10}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c98)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,3)===peg$c99){s0=peg$c99;peg$currPos+=3}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c100)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,10)===peg$c101){s0=peg$c101;peg$currPos+=10}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c102)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,15)===peg$c103){s0=peg$c103;peg$currPos+=15}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c104)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,13)===peg$c105){s0=peg$c105;peg$currPos+=13}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c106)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,14)===peg$c107){s0=peg$c107;peg$currPos+=14}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c108)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,9)===peg$c109){s0=peg$c109;peg$currPos+=9}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c110)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,8)===peg$c111){s0=peg$c111;peg$currPos+=8}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c112)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,9)===peg$c113){s0=peg$c113;peg$currPos+=9}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c114)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,9)===peg$c115){s0=peg$c115;peg$currPos+=9}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c116)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,8)===peg$c117){s0=peg$c117;peg$currPos+=8}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c118)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,7)===peg$c119){s0=peg$c119;peg$currPos+=7}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c120)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,12)===peg$c121){s0=peg$c121;peg$currPos+=12}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c122)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,11)===peg$c123){s0=peg$c123;peg$currPos+=11}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c124)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,9)===peg$c125){s0=peg$c125;peg$currPos+=9}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c126)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,6)===peg$c127){s0=peg$c127;peg$currPos+=6}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c128)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,6)===peg$c129){s0=peg$c129;peg$currPos+=6}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c130)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,9)===peg$c131){s0=peg$c131;peg$currPos+=9}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c132)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,6)===peg$c133){s0=peg$c133;peg$currPos+=6}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c134)}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}return s0}function peg$parseForwardLightArrow(){var s0,s1;peg$silentFails++;if(input.substr(peg$currPos,2)===peg$c136){s0=peg$c136;peg$currPos+=2}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c137)}}if(s0===peg$FAILED){s0=peg$currPos;if(input.charCodeAt(peg$currPos)===8594){s1=peg$c138;peg$currPos++}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c139)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c140()}s0=s1}peg$silentFails--;if(s0===peg$FAILED){s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c135)}}return s0}function peg$parseTwoWayLightArrow(){var s0,s1;peg$silentFails++;if(input.substr(peg$currPos,3)===peg$c142){s0=peg$c142;peg$currPos+=3}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c143)}}if(s0===peg$FAILED){s0=peg$currPos;if(input.charCodeAt(peg$currPos)===8596){s1=peg$c144;peg$currPos++}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c145)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c146()}s0=s1}peg$silentFails--;if(s0===peg$FAILED){s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c141)}}return s0}function peg$parseBackLightArrow(){var s0,s1;peg$silentFails++;if(input.substr(peg$currPos,2)===peg$c148){s0=peg$c148;peg$currPos+=2}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c149)}}if(s0===peg$FAILED){s0=peg$currPos;if(input.charCodeAt(peg$currPos)===8592){s1=peg$c150;peg$currPos++}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c151)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c152()}s0=s1}peg$silentFails--;if(s0===peg$FAILED){s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c147)}}return s0}function peg$parseForwardFatArrow(){var s0,s1;peg$silentFails++;if(input.substr(peg$currPos,2)===peg$c154){s0=peg$c154;peg$currPos+=2}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c155)}}if(s0===peg$FAILED){s0=peg$currPos;if(input.charCodeAt(peg$currPos)===8658){s1=peg$c156;peg$currPos++}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c157)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c158()}s0=s1}peg$silentFails--;if(s0===peg$FAILED){s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c153)}}return s0}function peg$parseTwoWayFatArrow(){var s0,s1;peg$silentFails++;if(input.substr(peg$currPos,3)===peg$c160){s0=peg$c160;peg$currPos+=3}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c161)}}if(s0===peg$FAILED){s0=peg$currPos;if(input.charCodeAt(peg$currPos)===8660){s1=peg$c162;peg$currPos++}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c163)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c164()}s0=s1}peg$silentFails--;if(s0===peg$FAILED){s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c159)}}return s0}function peg$parseBackFatArrow(){var s0,s1;peg$silentFails++;if(input.substr(peg$currPos,2)===peg$c166){s0=peg$c166;peg$currPos+=2}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c167)}}if(s0===peg$FAILED){s0=peg$currPos;if(input.charCodeAt(peg$currPos)===8656){s1=peg$c168;peg$currPos++}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c169)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c170()}s0=s1}peg$silentFails--;if(s0===peg$FAILED){s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c165)}}return s0}function peg$parseForwardTildeArrow(){var s0,s1;peg$silentFails++;if(input.substr(peg$currPos,2)===peg$c172){s0=peg$c172;peg$currPos+=2}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c173)}}if(s0===peg$FAILED){s0=peg$currPos;if(input.charCodeAt(peg$currPos)===8603){s1=peg$c174;peg$currPos++}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c175)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c176()}s0=s1}peg$silentFails--;if(s0===peg$FAILED){s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c171)}}return s0}function peg$parseTwoWayTildeArrow(){var s0,s1;peg$silentFails++;if(input.substr(peg$currPos,3)===peg$c178){s0=peg$c178;peg$currPos+=3}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c179)}}if(s0===peg$FAILED){s0=peg$currPos;if(input.charCodeAt(peg$currPos)===8622){s1=peg$c180;peg$currPos++}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c181)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c182()}s0=s1}peg$silentFails--;if(s0===peg$FAILED){s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c177)}}return s0}function peg$parseBackTildeArrow(){var s0,s1;peg$silentFails++;if(input.substr(peg$currPos,2)===peg$c184){s0=peg$c184;peg$currPos+=2}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c185)}}if(s0===peg$FAILED){s0=peg$currPos;if(input.charCodeAt(peg$currPos)===8602){s1=peg$c186;peg$currPos++}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c187)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c188()}s0=s1}peg$silentFails--;if(s0===peg$FAILED){s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c183)}}return s0}function peg$parseLightFatArrow(){var s0,s1;peg$silentFails++;if(input.substr(peg$currPos,4)===peg$c190){s0=peg$c190;peg$currPos+=4}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c191)}}if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,2)===peg$c192){s1=peg$c192;peg$currPos+=2}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c193)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c194()}s0=s1}peg$silentFails--;if(s0===peg$FAILED){s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c189)}}return s0}function peg$parseLightTildeArrow(){var s0,s1;peg$silentFails++;if(input.substr(peg$currPos,4)===peg$c196){s0=peg$c196;peg$currPos+=4}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c197)}}if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,2)===peg$c198){s1=peg$c198;peg$currPos+=2}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c199)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c200()}s0=s1}peg$silentFails--;if(s0===peg$FAILED){s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c195)}}return s0}function peg$parseFatLightArrow(){var s0,s1;peg$silentFails++;if(input.substr(peg$currPos,4)===peg$c202){s0=peg$c202;peg$currPos+=4}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c203)}}if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,2)===peg$c204){s1=peg$c204;peg$currPos+=2}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c205)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c206()}s0=s1}peg$silentFails--;if(s0===peg$FAILED){s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c201)}}return s0}function peg$parseFatTildeArrow(){var s0,s1;peg$silentFails++;if(input.substr(peg$currPos,4)===peg$c208){s0=peg$c208;peg$currPos+=4}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c209)}}if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,2)===peg$c210){s1=peg$c210;peg$currPos+=2}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c211)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c212()}s0=s1}peg$silentFails--;if(s0===peg$FAILED){s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c207)}}return s0}function peg$parseTildeLightArrow(){var s0,s1;peg$silentFails++;if(input.substr(peg$currPos,4)===peg$c214){s0=peg$c214;peg$currPos+=4}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c215)}}if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,2)===peg$c216){s1=peg$c216;peg$currPos+=2}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c217)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c218()}s0=s1}peg$silentFails--;if(s0===peg$FAILED){s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c213)}}return s0}function peg$parseTildeFatArrow(){var s0,s1;peg$silentFails++;if(input.substr(peg$currPos,4)===peg$c220){s0=peg$c220;peg$currPos+=4}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c221)}}if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,2)===peg$c222){s1=peg$c222;peg$currPos+=2}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c223)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c224()}s0=s1}peg$silentFails--;if(s0===peg$FAILED){s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c219)}}return s0}function peg$parseLightArrow(){var s0;peg$silentFails++;s0=peg$parseForwardLightArrow();if(s0===peg$FAILED){s0=peg$parseTwoWayLightArrow();if(s0===peg$FAILED){s0=peg$parseBackLightArrow()}}peg$silentFails--;if(s0===peg$FAILED){if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c225)}}return s0}function peg$parseFatArrow(){var s0;peg$silentFails++;s0=peg$parseForwardFatArrow();if(s0===peg$FAILED){s0=peg$parseTwoWayFatArrow();if(s0===peg$FAILED){s0=peg$parseBackFatArrow()}}peg$silentFails--;if(s0===peg$FAILED){if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c226)}}return s0}function peg$parseTildeArrow(){var s0;peg$silentFails++;s0=peg$parseForwardTildeArrow();if(s0===peg$FAILED){s0=peg$parseTwoWayTildeArrow();if(s0===peg$FAILED){s0=peg$parseBackTildeArrow()}}peg$silentFails--;if(s0===peg$FAILED){if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c227)}}return s0}function peg$parseMixedArrow(){var s0;peg$silentFails++;s0=peg$parseLightFatArrow();if(s0===peg$FAILED){s0=peg$parseLightTildeArrow();if(s0===peg$FAILED){s0=peg$parseFatLightArrow();if(s0===peg$FAILED){s0=peg$parseFatTildeArrow();if(s0===peg$FAILED){s0=peg$parseTildeLightArrow();if(s0===peg$FAILED){s0=peg$parseTildeFatArrow()}}}}}peg$silentFails--;if(s0===peg$FAILED){if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c228)}}return s0}function peg$parseArrow(){var s0;peg$silentFails++;s0=peg$parseMixedArrow();if(s0===peg$FAILED){s0=peg$parseLightArrow();if(s0===peg$FAILED){s0=peg$parseFatArrow();if(s0===peg$FAILED){s0=peg$parseTildeArrow()}}}peg$silentFails--;if(s0===peg$FAILED){if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c229)}}return s0}function peg$parseBoolean(){var s0,s1;s0=peg$currPos;if(input.substr(peg$currPos,4)===peg$c230){s1=peg$c230;peg$currPos+=4}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c231)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c232()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,5)===peg$c233){s1=peg$c233;peg$currPos+=5}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c234)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c235()}s0=s1}return s0}function peg$parseCorners(){var s0;if(input.substr(peg$currPos,7)===peg$c236){s0=peg$c236;peg$currPos+=7}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c237)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,7)===peg$c238){s0=peg$c238;peg$currPos+=7}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c239)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,5)===peg$c240){s0=peg$c240;peg$currPos+=5}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c241)}}}}return s0}function peg$parseLineStyle(){var s0;if(input.substr(peg$currPos,5)===peg$c242){s0=peg$c242;peg$currPos+=5}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c243)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,6)===peg$c244){s0=peg$c244;peg$currPos+=6}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c245)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,6)===peg$c246){s0=peg$c246;peg$currPos+=6}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c247)}}}}return s0}function peg$parseNull(){var s0,s1;s0=peg$currPos;if(input.substr(peg$currPos,4)===peg$c276){s1=peg$c276;peg$currPos+=4}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c277)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c278()}s0=s1;return s0}function peg$parseUndefined(){var s0,s1;s0=peg$currPos;if(input.substr(peg$currPos,9)===peg$c279){s1=peg$c279;peg$currPos+=9}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c280)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c281()}s0=s1;return s0}function peg$parseActionLabel(){var c,start,chunk,out,h,hv;peg$silentFails++;if(input.charCodeAt(peg$currPos)===39){start=peg$currPos;peg$currPos++;chunk=peg$currPos;out="";for(;;){c=input.charCodeAt(peg$currPos);if(c>=32&&c!==39&&c!==92){peg$currPos++;continue}if(c===39){out=out+input.substring(chunk,peg$currPos);peg$currPos++;peg$silentFails--;return out}if(c===92){out+=input.substring(chunk,peg$currPos);peg$currPos++;c=input.charCodeAt(peg$currPos);if(c===39){out+="'";peg$currPos++}else if(c===92){out+="\\";peg$currPos++}else if(c===47){out+="/";peg$currPos++}else if(c===98){out+="\b";peg$currPos++}else if(c===102){out+="\f";peg$currPos++}else if(c===110){out+="\n";peg$currPos++}else if(c===114){out+="\r";peg$currPos++}else if(c===116){out+="\t";peg$currPos++}else if(c===118){out+="\v";peg$currPos++}else if(c===117){hv=0;for(h=1;h<=4;++h){c=input.charCodeAt(peg$currPos+h);if(c>=48&&c<=57){hv=hv*16+(c-48)}else if(c>=97&&c<=102){hv=hv*16+(c-87)}else if(c>=65&&c<=70){hv=hv*16+(c-55)}else{hv=-1;break}}if(hv<0){break}out+=String.fromCharCode(hv);peg$currPos+=5}else{break}chunk=peg$currPos;continue}break}peg$currPos=start}peg$silentFails--;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c288)}return peg$FAILED}function peg$parseLineTerminator(){var s0;if(peg$c290.test(input.charAt(peg$currPos))){s0=input.charAt(peg$currPos);peg$currPos++}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c291)}}return s0}function peg$parseBlockComment(){var s0,s1,s2,s3,s4,s5;peg$silentFails++;s0=peg$currPos;if(input.substr(peg$currPos,2)===peg$c293){s1=peg$c293;peg$currPos+=2}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c294)}}if(s1!==peg$FAILED){s2=[];s3=peg$currPos;s4=peg$currPos;peg$silentFails++;if(input.substr(peg$currPos,2)===peg$c295){s5=peg$c295;peg$currPos+=2}else{s5=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c296)}}peg$silentFails--;if(s5===peg$FAILED){s4=void 0}else{peg$currPos=s4;s4=peg$FAILED}if(s4!==peg$FAILED){if(input.length>peg$currPos){s5=input.charAt(peg$currPos);peg$currPos++}else{s5=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c297)}}if(s5!==peg$FAILED){s4=[s4,s5];s3=s4}else{peg$currPos=s3;s3=peg$FAILED}}else{peg$currPos=s3;s3=peg$FAILED}while(s3!==peg$FAILED){s2.push(s3);s3=peg$currPos;s4=peg$currPos;peg$silentFails++;if(input.substr(peg$currPos,2)===peg$c295){s5=peg$c295;peg$currPos+=2}else{s5=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c296)}}peg$silentFails--;if(s5===peg$FAILED){s4=void 0}else{peg$currPos=s4;s4=peg$FAILED}if(s4!==peg$FAILED){if(input.length>peg$currPos){s5=input.charAt(peg$currPos);peg$currPos++}else{s5=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c297)}}if(s5!==peg$FAILED){s4=[s4,s5];s3=s4}else{peg$currPos=s3;s3=peg$FAILED}}else{peg$currPos=s3;s3=peg$FAILED}}if(s2!==peg$FAILED){if(input.substr(peg$currPos,2)===peg$c295){s3=peg$c295;peg$currPos+=2}else{s3=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c296)}}if(s3!==peg$FAILED){s1=[s1,s2,s3];s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}peg$silentFails--;if(s0===peg$FAILED){s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c292)}}return s0}function peg$parseEOF(){var s0,s1;s0=peg$currPos;peg$silentFails++;if(input.length>peg$currPos){s1=input.charAt(peg$currPos);peg$currPos++}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c297)}}peg$silentFails--;if(s1===peg$FAILED){s0=void 0}else{peg$currPos=s0;s0=peg$FAILED}return s0}function peg$parseLineComment(){var s0,s1,s2,s3,s4,s5;peg$silentFails++;s0=peg$currPos;if(input.substr(peg$currPos,2)===peg$c299){s1=peg$c299;peg$currPos+=2}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c300)}}if(s1!==peg$FAILED){s2=[];s3=peg$currPos;s4=peg$currPos;peg$silentFails++;s5=peg$parseLineTerminator();peg$silentFails--;if(s5===peg$FAILED){s4=void 0}else{peg$currPos=s4;s4=peg$FAILED}if(s4!==peg$FAILED){if(input.length>peg$currPos){s5=input.charAt(peg$currPos);peg$currPos++}else{s5=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c297)}}if(s5!==peg$FAILED){s4=[s4,s5];s3=s4}else{peg$currPos=s3;s3=peg$FAILED}}else{peg$currPos=s3;s3=peg$FAILED}while(s3!==peg$FAILED){s2.push(s3);s3=peg$currPos;s4=peg$currPos;peg$silentFails++;s5=peg$parseLineTerminator();peg$silentFails--;if(s5===peg$FAILED){s4=void 0}else{peg$currPos=s4;s4=peg$FAILED}if(s4!==peg$FAILED){if(input.length>peg$currPos){s5=input.charAt(peg$currPos);peg$currPos++}else{s5=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c297)}}if(s5!==peg$FAILED){s4=[s4,s5];s3=s4}else{peg$currPos=s3;s3=peg$FAILED}}else{peg$currPos=s3;s3=peg$FAILED}}if(s2!==peg$FAILED){s3=peg$parseLineTerminator();if(s3===peg$FAILED){s3=peg$parseEOF()}if(s3!==peg$FAILED){s1=[s1,s2,s3];s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}peg$silentFails--;if(s0===peg$FAILED){s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c298)}}return s0}function peg$parseWS(){var c,r,matched;peg$silentFails++;matched=false;for(;;){c=input.charCodeAt(peg$currPos);if(c===32||c===9||c===13||c===10||c===11){peg$currPos++;matched=true;continue}if(c!==47){break}r=peg$parseBlockComment();if(r===peg$FAILED){r=peg$parseLineComment()}if(r===peg$FAILED){break}matched=true}peg$silentFails--;if(matched){return null}if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c301)}return peg$FAILED}function peg$parseString(){var c,start,chunk,out,h,hv;peg$silentFails++;if(input.charCodeAt(peg$currPos)===34){start=peg$currPos;peg$currPos++;chunk=peg$currPos;out="";for(;;){c=input.charCodeAt(peg$currPos);if(c>=0&&c!==34&&c!==92){peg$currPos++;continue}if(c===34){out=out+input.substring(chunk,peg$currPos);peg$currPos++;peg$silentFails--;return out}if(c===92){out+=input.substring(chunk,peg$currPos);peg$currPos++;c=input.charCodeAt(peg$currPos);if(c===34){out+='"';peg$currPos++}else if(c===92){out+="\\";peg$currPos++}else if(c===47){out+="/";peg$currPos++}else if(c===98){out+="\b";peg$currPos++}else if(c===102){out+="\f";peg$currPos++}else if(c===110){out+="\n";peg$currPos++}else if(c===114){out+="\r";peg$currPos++}else if(c===116){out+="\t";peg$currPos++}else if(c===118){out+="\v";peg$currPos++}else if(c===117){hv=0;for(h=1;h<=4;++h){c=input.charCodeAt(peg$currPos+h);if(c>=48&&c<=57){hv=hv*16+(c-48)}else if(c>=97&&c<=102){hv=hv*16+(c-87)}else if(c>=65&&c<=70){hv=hv*16+(c-55)}else{hv=-1;break}}if(hv<0){break}out+=String.fromCharCode(hv);peg$currPos+=5}else{break}chunk=peg$currPos;continue}break}peg$currPos=start}peg$silentFails--;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c304)}return peg$FAILED}function peg$parseAtom(){var c,start;peg$silentFails++;c=input.charCodeAt(peg$currPos);if(c>=48&&c<=57||c>=97&&c<=122||c>=65&&c<=90||c===46||c===95||c===33||c===36||c===94||c===42||c===63||c===44||c>=128){start=peg$currPos;peg$currPos++;c=input.charCodeAt(peg$currPos);while(c>=48&&c<=57||c>=97&&c<=122||c>=65&&c<=90||c===46||c===95||c===33||c===36||c===94||c===42||c===63||c===44||c===43||c===40||c===41||c===38||c===35||c===64||c>=128){peg$currPos++;c=input.charCodeAt(peg$currPos)}peg$silentFails--;return input.substring(start,peg$currPos)}peg$silentFails--;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c309)}return peg$FAILED}function peg$parseLabel(){var s0;peg$silentFails++;s0=peg$parseAtom();if(s0===peg$FAILED){s0=peg$parseString()}peg$silentFails--;if(s0===peg$FAILED){if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c311)}}return s0}function peg$parseIntegerLiteral(){var c,start;c=input.charCodeAt(peg$currPos);if(c===48){peg$currPos++;return"0"}if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c313)}if(c>=49&&c<=57){start=peg$currPos;peg$currPos++;c=input.charCodeAt(peg$currPos);while(c>=48&&c<=57){peg$currPos++;c=input.charCodeAt(peg$currPos)}if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c315)}return input.substring(start,peg$currPos)}if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c317)}return peg$FAILED}function peg$parseDecimalDigit(){var s0;if(peg$c314.test(input.charAt(peg$currPos))){s0=input.charAt(peg$currPos);peg$currPos++}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c315)}}return s0}function peg$parseNonZeroDigit(){var s0;if(peg$c316.test(input.charAt(peg$currPos))){s0=input.charAt(peg$currPos);peg$currPos++}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c317)}}return s0}function peg$parseHexDigit(){var s0;if(peg$c318.test(input.charAt(peg$currPos))){s0=input.charAt(peg$currPos);peg$currPos++}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c319)}}return s0}function peg$parseBinaryDigit(){var s0;if(peg$c320.test(input.charAt(peg$currPos))){s0=input.charAt(peg$currPos);peg$currPos++}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c321)}}return s0}function peg$parseOctalDigit(){var s0;if(peg$c322.test(input.charAt(peg$currPos))){s0=input.charAt(peg$currPos);peg$currPos++}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c323)}}return s0}function peg$parseNonNegNumber(){var s0,s1,s2,s3,s4;peg$silentFails++;s0=peg$currPos;s1=peg$parseIntegerLiteral();if(s1!==peg$FAILED){if(input.charCodeAt(peg$currPos)===46){s2=peg$c325;peg$currPos++}else{s2=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c326)}}if(s2!==peg$FAILED){s3=[];s4=peg$parseDecimalDigit();while(s4!==peg$FAILED){s3.push(s4);s4=peg$parseDecimalDigit()}if(s3!==peg$FAILED){s4=peg$parseWS();if(s4===peg$FAILED){s4=null}if(s4!==peg$FAILED){peg$savedPos=s0;s1=peg$c327();s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}if(s0===peg$FAILED){s0=peg$currPos;s1=peg$parseIntegerLiteral();if(s1!==peg$FAILED){s2=peg$parseWS();if(s2===peg$FAILED){s2=null}if(s2!==peg$FAILED){peg$savedPos=s0;s1=peg$c327();s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}peg$silentFails--;if(s0===peg$FAILED){s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c324)}}return s0}function peg$parseJsNumericLiteral(){var s0,s1;peg$silentFails++;s0=peg$currPos;s1=peg$parseJsHexIntegerLiteral();if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c329(s1)}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;s1=peg$parseJsBinaryIntegerLiteral();if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c329(s1)}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;s1=peg$parseNonJsOctalIntegerLiteral();if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c329(s1)}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;s1=peg$parseJsDecimalLiteral();if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c329(s1)}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,3)===peg$c330){s1=peg$c330;peg$currPos+=3}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c331)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c332()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,16)===peg$c333){s1=peg$c333;peg$currPos+=16}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c334)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c335()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,11)===peg$c336){s1=peg$c336;peg$currPos+=11}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c337)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c335()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,11)===peg$c338){s1=peg$c338;peg$currPos+=11}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c339)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c335()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,6)===peg$c340){s1=peg$c340;peg$currPos+=6}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c341)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c335()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,9)===peg$c342){s1=peg$c342;peg$currPos+=9}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c343)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c335()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,4)===peg$c344){s1=peg$c344;peg$currPos+=4}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c345)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c335()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,2)===peg$c346){s1=peg$c346;peg$currPos+=2}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c347)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c335()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,9)===peg$c348){s1=peg$c348;peg$currPos+=9}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c349)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c350()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,8)===peg$c351){s1=peg$c351;peg$currPos+=8}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c352)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c350()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,4)===peg$c353){s1=peg$c353;peg$currPos+=4}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c354)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c350()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,3)===peg$c355){s1=peg$c355;peg$currPos+=3}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c356)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c350()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.charCodeAt(peg$currPos)===8734){s1=peg$c357;peg$currPos++}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c358)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c350()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,7)===peg$c359){s1=peg$c359;peg$currPos+=7}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c360)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c361()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,2)===peg$c362){s1=peg$c362;peg$currPos+=2}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c363)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c361()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.charCodeAt(peg$currPos)===949){s1=peg$c364;peg$currPos++}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c365)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c361()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,2)===peg$c366){s1=peg$c366;peg$currPos+=2}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c367)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c368()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,2)===peg$c369){s1=peg$c369;peg$currPos+=2}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c370)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c368()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.charCodeAt(peg$currPos)===960){s1=peg$c371;peg$currPos++}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c372)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c368()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,11)===peg$c373){s1=peg$c373;peg$currPos+=11}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c374)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c375()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.charCodeAt(peg$currPos)===69){s1=peg$c376;peg$currPos++}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c377)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c375()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.charCodeAt(peg$currPos)===101){s1=peg$c378;peg$currPos++}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c379)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c375()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.charCodeAt(peg$currPos)===400){s1=peg$c380;peg$currPos++}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c381)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c375()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.charCodeAt(peg$currPos)===8455){s1=peg$c382;peg$currPos++}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c383)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c375()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,5)===peg$c384){s1=peg$c384;peg$currPos+=5}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c385)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c386()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,8)===peg$c387){s1=peg$c387;peg$currPos+=8}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c388)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c389()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,3)===peg$c390){s1=peg$c390;peg$currPos+=3}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c391)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c392()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,7)===peg$c393){s1=peg$c393;peg$currPos+=7}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c394)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c392()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,4)===peg$c395){s1=peg$c395;peg$currPos+=4}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c396)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c397()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,8)===peg$c398){s1=peg$c398;peg$currPos+=8}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c399)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c397()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,5)===peg$c400){s1=peg$c400;peg$currPos+=5}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c401)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c402()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,6)===peg$c403){s1=peg$c403;peg$currPos+=6}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c404)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c405()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,10)===peg$c406){s1=peg$c406;peg$currPos+=10}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c407)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c408()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,10)===peg$c409){s1=peg$c409;peg$currPos+=10}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c410)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c411()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,9)===peg$c412){s1=peg$c412;peg$currPos+=9}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c413)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c414()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,9)===peg$c415){s1=peg$c415;peg$currPos+=9}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c416)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c417()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,3)===peg$c418){s1=peg$c418;peg$currPos+=3}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c419)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c420()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,2)===peg$c421){s1=peg$c421;peg$currPos+=2}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c422)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c420()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,2)===peg$c423){s1=peg$c423;peg$currPos+=2}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c424)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c420()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.charCodeAt(peg$currPos)===981){s1=peg$c425;peg$currPos++}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c426)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c420()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.charCodeAt(peg$currPos)===966){s1=peg$c427;peg$currPos++}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c428)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c420()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,13)===peg$c429){s1=peg$c429;peg$currPos+=13}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c430)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c431()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.charCodeAt(peg$currPos)===947){s1=peg$c432;peg$currPos++}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c433)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c431()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,2)===peg$c434){s1=peg$c434;peg$currPos+=2}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c435)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c431()}s0=s1}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}peg$silentFails--;if(s0===peg$FAILED){s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c328)}}return s0}function peg$parseJsDecimalLiteral(){var s0,s1,s2,s3,s4;s0=peg$currPos;s1=peg$parseJsDecimalIntegerLiteral();if(s1!==peg$FAILED){if(input.charCodeAt(peg$currPos)===46){s2=peg$c325;peg$currPos++}else{s2=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c326)}}if(s2!==peg$FAILED){s3=[];s4=peg$parseDecimalDigit();while(s4!==peg$FAILED){s3.push(s4);s4=peg$parseDecimalDigit()}if(s3!==peg$FAILED){s4=peg$parseJsNExponentPart();if(s4===peg$FAILED){s4=null}if(s4!==peg$FAILED){peg$savedPos=s0;s1=peg$c327();s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}if(s0===peg$FAILED){s0=peg$currPos;if(input.charCodeAt(peg$currPos)===46){s1=peg$c325;peg$currPos++}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c326)}}if(s1!==peg$FAILED){s2=[];s3=peg$parseDecimalDigit();if(s3!==peg$FAILED){while(s3!==peg$FAILED){s2.push(s3);s3=peg$parseDecimalDigit()}}else{s2=peg$FAILED}if(s2!==peg$FAILED){s3=peg$parseJsNExponentPart();if(s3===peg$FAILED){s3=null}if(s3!==peg$FAILED){peg$savedPos=s0;s1=peg$c327();s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}if(s0===peg$FAILED){s0=peg$currPos;s1=peg$parseJsDecimalIntegerLiteral();if(s1!==peg$FAILED){s2=peg$parseJsNExponentPart();if(s2===peg$FAILED){s2=null}if(s2!==peg$FAILED){peg$savedPos=s0;s1=peg$c327();s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}}return s0}function peg$parseJsDecimalIntegerLiteral(){var s0,s1,s2,s3;if(input.charCodeAt(peg$currPos)===48){s0=peg$c312;peg$currPos++}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c313)}}if(s0===peg$FAILED){s0=peg$currPos;s1=peg$parseNonZeroDigit();if(s1!==peg$FAILED){s2=[];s3=peg$parseDecimalDigit();while(s3!==peg$FAILED){s2.push(s3);s3=peg$parseDecimalDigit()}if(s2!==peg$FAILED){s1=[s1,s2];s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}return s0}function peg$parseJsNExponentPart(){var s0,s1,s2;s0=peg$currPos;s1=peg$parseJsNExponentIndicator();if(s1!==peg$FAILED){s2=peg$parseJsNSignedInteger();if(s2!==peg$FAILED){s1=[s1,s2];s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}return s0}function peg$parseJsNExponentIndicator(){var s0;if(input.substr(peg$currPos,1).toLowerCase()===peg$c378){s0=input.charAt(peg$currPos);peg$currPos++}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c436)}}return s0}function peg$parseJsNSignedInteger(){var s0,s1,s2,s3;s0=peg$currPos;if(peg$c437.test(input.charAt(peg$currPos))){s1=input.charAt(peg$currPos);peg$currPos++}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c438)}}if(s1===peg$FAILED){s1=null}if(s1!==peg$FAILED){s2=[];s3=peg$parseDecimalDigit();if(s3!==peg$FAILED){while(s3!==peg$FAILED){s2.push(s3);s3=peg$parseDecimalDigit()}}else{s2=peg$FAILED}if(s2!==peg$FAILED){s1=[s1,s2];s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}return s0}function peg$parseJsHexIntegerLiteral(){var s0,s1,s2,s3,s4;s0=peg$currPos;if(input.substr(peg$currPos,2).toLowerCase()===peg$c439){s1=input.substr(peg$currPos,2);peg$currPos+=2}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c440)}}if(s1!==peg$FAILED){s2=peg$currPos;s3=[];s4=peg$parseHexDigit();if(s4!==peg$FAILED){while(s4!==peg$FAILED){s3.push(s4);s4=peg$parseHexDigit()}}else{s3=peg$FAILED}if(s3!==peg$FAILED){s2=input.substring(s2,peg$currPos)}else{s2=s3}if(s2!==peg$FAILED){peg$savedPos=s0;s1=peg$c441(s2);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}return s0}function peg$parseJsBinaryIntegerLiteral(){var s0,s1,s2,s3,s4;s0=peg$currPos;if(input.substr(peg$currPos,2).toLowerCase()===peg$c442){s1=input.substr(peg$currPos,2);peg$currPos+=2}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c443)}}if(s1!==peg$FAILED){s2=peg$currPos;s3=[];s4=peg$parseBinaryDigit();if(s4!==peg$FAILED){while(s4!==peg$FAILED){s3.push(s4);s4=peg$parseBinaryDigit()}}else{s3=peg$FAILED}if(s3!==peg$FAILED){s2=input.substring(s2,peg$currPos)}else{s2=s3}if(s2!==peg$FAILED){peg$savedPos=s0;s1=peg$c444(s2);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}return s0}function peg$parseNonJsOctalIntegerLiteral(){var s0,s1,s2,s3,s4;s0=peg$currPos;if(input.substr(peg$currPos,2).toLowerCase()===peg$c445){s1=input.substr(peg$currPos,2);peg$currPos+=2}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c446)}}if(s1!==peg$FAILED){s2=peg$currPos;s3=[];s4=peg$parseOctalDigit();if(s4!==peg$FAILED){while(s4!==peg$FAILED){s3.push(s4);s4=peg$parseOctalDigit()}}else{s3=peg$FAILED}if(s3!==peg$FAILED){s2=input.substring(s2,peg$currPos)}else{s2=s3}if(s2!==peg$FAILED){peg$savedPos=s0;s1=peg$c447(s2);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}return s0}function peg$parseSemVer(){var s0,s1,s2,s3,s4,s5;s0=peg$currPos;s1=peg$parseIntegerLiteral();if(s1!==peg$FAILED){if(input.charCodeAt(peg$currPos)===46){s2=peg$c325;peg$currPos++}else{s2=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c326)}}if(s2!==peg$FAILED){s3=peg$parseIntegerLiteral();if(s3!==peg$FAILED){if(input.charCodeAt(peg$currPos)===46){s4=peg$c325;peg$currPos++}else{s4=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c326)}}if(s4!==peg$FAILED){s5=peg$parseIntegerLiteral();if(s5!==peg$FAILED){peg$savedPos=s0;s1=peg$c448(s1,s3,s5);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}return s0}function peg$parseUrlProtocol(){var s0;if(input.substr(peg$currPos,7)===peg$c459){s0=peg$c459;peg$currPos+=7}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c460)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,8)===peg$c461){s0=peg$c461;peg$currPos+=8}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c462)}}}return s0}function peg$parseURL(){var s0,s1,s2,s3;s0=peg$currPos;s1=peg$parseUrlProtocol();if(s1!==peg$FAILED){s2=[];if(peg$c463.test(input.charAt(peg$currPos))){s3=input.charAt(peg$currPos);peg$currPos++}else{s3=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c464)}}if(s3!==peg$FAILED){while(s3!==peg$FAILED){s2.push(s3);if(peg$c463.test(input.charAt(peg$currPos))){s3=input.charAt(peg$currPos);peg$currPos++}else{s3=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c464)}}}}else{s2=peg$FAILED}if(s2!==peg$FAILED){peg$savedPos=s0;s1=peg$c465();s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}return s0}function peg$parseSvgColorLabel(){var s0,s1;s0=peg$currPos;if(input.substr(peg$currPos,9)===peg$c466){s1=peg$c466;peg$currPos+=9}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c467)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c468()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,9)===peg$c469){s1=peg$c469;peg$currPos+=9}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c470)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c468()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,12)===peg$c471){s1=peg$c471;peg$currPos+=12}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c472)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c473()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,12)===peg$c474){s1=peg$c474;peg$currPos+=12}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c475)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c473()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,10)===peg$c476){s1=peg$c476;peg$currPos+=10}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c477)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c478()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,10)===peg$c479){s1=peg$c479;peg$currPos+=10}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c480)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c478()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,4)===peg$c481){s1=peg$c481;peg$currPos+=4}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c482)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c483()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,4)===peg$c484){s1=peg$c484;peg$currPos+=4}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c485)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c483()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,5)===peg$c486){s1=peg$c486;peg$currPos+=5}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c487)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c488()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,5)===peg$c489){s1=peg$c489;peg$currPos+=5}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c490)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c488()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,5)===peg$c491){s1=peg$c491;peg$currPos+=5}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c492)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c493()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,5)===peg$c494){s1=peg$c494;peg$currPos+=5}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c495)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c493()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,6)===peg$c496){s1=peg$c496;peg$currPos+=6}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c497)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c498()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,6)===peg$c499){s1=peg$c499;peg$currPos+=6}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c500)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c498()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,5)===peg$c501){s1=peg$c501;peg$currPos+=5}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c502)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c503()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,5)===peg$c504){s1=peg$c504;peg$currPos+=5}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c505)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c503()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,14)===peg$c506){s1=peg$c506;peg$currPos+=14}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c507)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c508()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,14)===peg$c509){s1=peg$c509;peg$currPos+=14}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c510)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c508()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,10)===peg$c511){s1=peg$c511;peg$currPos+=10}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c512)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c513()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,10)===peg$c514){s1=peg$c514;peg$currPos+=10}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c515)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c513()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,4)===peg$c516){s1=peg$c516;peg$currPos+=4}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c517)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c518()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,4)===peg$c519){s1=peg$c519;peg$currPos+=4}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c520)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c518()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,5)===peg$c521){s1=peg$c521;peg$currPos+=5}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c522)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c523()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,5)===peg$c524){s1=peg$c524;peg$currPos+=5}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c525)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c523()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,9)===peg$c526){s1=peg$c526;peg$currPos+=9}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c527)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c528()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,9)===peg$c529){s1=peg$c529;peg$currPos+=9}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c530)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c528()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,9)===peg$c531){s1=peg$c531;peg$currPos+=9}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c532)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c533()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,9)===peg$c534){s1=peg$c534;peg$currPos+=9}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c535)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c533()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,10)===peg$c536){s1=peg$c536;peg$currPos+=10}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c537)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c538()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,10)===peg$c539){s1=peg$c539;peg$currPos+=10}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c540)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c538()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,9)===peg$c541){s1=peg$c541;peg$currPos+=9}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c542)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c543()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,9)===peg$c544){s1=peg$c544;peg$currPos+=9}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c545)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c543()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,5)===peg$c546){s1=peg$c546;peg$currPos+=5}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c547)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c548()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,5)===peg$c549){s1=peg$c549;peg$currPos+=5}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c550)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c548()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,14)===peg$c551){s1=peg$c551;peg$currPos+=14}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c552)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c553()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,14)===peg$c554){s1=peg$c554;peg$currPos+=14}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c555)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c553()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,8)===peg$c556){s1=peg$c556;peg$currPos+=8}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c557)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c558()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,8)===peg$c559){s1=peg$c559;peg$currPos+=8}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c560)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c558()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,7)===peg$c561){s1=peg$c561;peg$currPos+=7}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c562)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c563()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,7)===peg$c564){s1=peg$c564;peg$currPos+=7}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c565)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c563()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,4)===peg$c566){s1=peg$c566;peg$currPos+=4}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c567)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c483()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,4)===peg$c568){s1=peg$c568;peg$currPos+=4}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c569)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c483()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,8)===peg$c570){s1=peg$c570;peg$currPos+=8}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c571)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c572()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,8)===peg$c573){s1=peg$c573;peg$currPos+=8}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c574)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c572()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,8)===peg$c575){s1=peg$c575;peg$currPos+=8}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c576)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c577()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,8)===peg$c578){s1=peg$c578;peg$currPos+=8}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c579)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c577()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,13)===peg$c580){s1=peg$c580;peg$currPos+=13}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c581)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c582()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,13)===peg$c583){s1=peg$c583;peg$currPos+=13}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c584)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c582()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,8)===peg$c585){s1=peg$c585;peg$currPos+=8}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c586)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c587()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,8)===peg$c588){s1=peg$c588;peg$currPos+=8}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c589)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c587()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,8)===peg$c590){s1=peg$c590;peg$currPos+=8}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c591)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c587()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,8)===peg$c592){s1=peg$c592;peg$currPos+=8}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c593)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c587()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,9)===peg$c594){s1=peg$c594;peg$currPos+=9}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c595)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c596()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,9)===peg$c597){s1=peg$c597;peg$currPos+=9}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c598)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c596()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,9)===peg$c599){s1=peg$c599;peg$currPos+=9}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c600)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c601()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,9)===peg$c602){s1=peg$c602;peg$currPos+=9}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c603)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c601()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,11)===peg$c604){s1=peg$c604;peg$currPos+=11}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c605)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c606()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,11)===peg$c607){s1=peg$c607;peg$currPos+=11}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c608)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c606()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,14)===peg$c609){s1=peg$c609;peg$currPos+=14}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c610)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c611()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,14)===peg$c612){s1=peg$c612;peg$currPos+=14}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c613)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c611()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,10)===peg$c614){s1=peg$c614;peg$currPos+=10}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c615)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c616()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,10)===peg$c617){s1=peg$c617;peg$currPos+=10}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c618)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c616()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,10)===peg$c619){s1=peg$c619;peg$currPos+=10}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c620)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c621()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,10)===peg$c622){s1=peg$c622;peg$currPos+=10}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c623)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c621()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,7)===peg$c624){s1=peg$c624;peg$currPos+=7}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c625)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c626()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,7)===peg$c627){s1=peg$c627;peg$currPos+=7}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c628)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c626()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,10)===peg$c629){s1=peg$c629;peg$currPos+=10}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c630)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c631()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,10)===peg$c632){s1=peg$c632;peg$currPos+=10}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c633)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c631()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,12)===peg$c634){s1=peg$c634;peg$currPos+=12}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c635)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c636()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,12)===peg$c637){s1=peg$c637;peg$currPos+=12}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c638)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c636()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,13)===peg$c639){s1=peg$c639;peg$currPos+=13}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c640)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c641()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,13)===peg$c642){s1=peg$c642;peg$currPos+=13}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c643)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c641()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,13)===peg$c644){s1=peg$c644;peg$currPos+=13}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c645)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c646()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,13)===peg$c647){s1=peg$c647;peg$currPos+=13}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c648)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c646()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,13)===peg$c649){s1=peg$c649;peg$currPos+=13}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c650)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c646()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,13)===peg$c651){s1=peg$c651;peg$currPos+=13}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c652)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c646()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,13)===peg$c653){s1=peg$c653;peg$currPos+=13}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c654)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c655()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,13)===peg$c656){s1=peg$c656;peg$currPos+=13}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c657)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c655()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,10)===peg$c658){s1=peg$c658;peg$currPos+=10}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c659)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c660()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,10)===peg$c661){s1=peg$c661;peg$currPos+=10}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c662)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c660()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,8)===peg$c663){s1=peg$c663;peg$currPos+=8}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c664)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c665()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,8)===peg$c666){s1=peg$c666;peg$currPos+=8}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c667)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c665()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,11)===peg$c668){s1=peg$c668;peg$currPos+=11}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c669)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c670()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,11)===peg$c671){s1=peg$c671;peg$currPos+=11}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c672)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c670()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,7)===peg$c673){s1=peg$c673;peg$currPos+=7}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c674)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c675()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,7)===peg$c676){s1=peg$c676;peg$currPos+=7}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c677)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c675()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,7)===peg$c678){s1=peg$c678;peg$currPos+=7}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c679)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c675()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,7)===peg$c680){s1=peg$c680;peg$currPos+=7}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c681)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c675()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,10)===peg$c682){s1=peg$c682;peg$currPos+=10}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c683)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c684()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,10)===peg$c685){s1=peg$c685;peg$currPos+=10}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c686)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c684()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,9)===peg$c687){s1=peg$c687;peg$currPos+=9}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c688)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c689()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,9)===peg$c690){s1=peg$c690;peg$currPos+=9}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c691)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c689()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,11)===peg$c692){s1=peg$c692;peg$currPos+=11}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c693)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c694()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,11)===peg$c695){s1=peg$c695;peg$currPos+=11}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c696)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c694()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,11)===peg$c697){s1=peg$c697;peg$currPos+=11}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c698)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c699()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,11)===peg$c700){s1=peg$c700;peg$currPos+=11}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c701)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c699()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,7)===peg$c702){s1=peg$c702;peg$currPos+=7}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c703)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c704()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,7)===peg$c705){s1=peg$c705;peg$currPos+=7}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c706)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c704()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,9)===peg$c707){s1=peg$c707;peg$currPos+=9}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c708)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c709()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,9)===peg$c710){s1=peg$c710;peg$currPos+=9}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c711)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c709()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,10)===peg$c712){s1=peg$c712;peg$currPos+=10}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c713)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c714()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,10)===peg$c715){s1=peg$c715;peg$currPos+=10}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c716)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c714()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,9)===peg$c717){s1=peg$c717;peg$currPos+=9}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c718)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c719()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,9)===peg$c720){s1=peg$c720;peg$currPos+=9}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c721)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c719()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,4)===peg$c722){s1=peg$c722;peg$currPos+=4}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c723)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c724()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,4)===peg$c725){s1=peg$c725;peg$currPos+=4}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c726)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c724()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,4)===peg$c727){s1=peg$c727;peg$currPos+=4}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c728)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c729()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,4)===peg$c730){s1=peg$c730;peg$currPos+=4}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c731)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c729()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,4)===peg$c732){s1=peg$c732;peg$currPos+=4}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c733)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c729()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,4)===peg$c734){s1=peg$c734;peg$currPos+=4}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c735)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c729()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,11)===peg$c736){s1=peg$c736;peg$currPos+=11}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c737)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c738()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,11)===peg$c739){s1=peg$c739;peg$currPos+=11}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c740)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c738()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,5)===peg$c741){s1=peg$c741;peg$currPos+=5}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c742)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c743()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,5)===peg$c744){s1=peg$c744;peg$currPos+=5}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c745)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c743()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,8)===peg$c746){s1=peg$c746;peg$currPos+=8}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c747)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c748()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,8)===peg$c749){s1=peg$c749;peg$currPos+=8}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c750)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c748()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,7)===peg$c751){s1=peg$c751;peg$currPos+=7}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c752)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c753()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,7)===peg$c754){s1=peg$c754;peg$currPos+=7}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c755)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c753()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,9)===peg$c756){s1=peg$c756;peg$currPos+=9}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c757)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c758()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,9)===peg$c759){s1=peg$c759;peg$currPos+=9}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c760)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c758()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,6)===peg$c761){s1=peg$c761;peg$currPos+=6}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c762)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c763()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,6)===peg$c764){s1=peg$c764;peg$currPos+=6}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c765)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c763()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,5)===peg$c766){s1=peg$c766;peg$currPos+=5}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c767)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c768()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,5)===peg$c769){s1=peg$c769;peg$currPos+=5}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c770)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c768()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,5)===peg$c771){s1=peg$c771;peg$currPos+=5}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c772)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c773()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,5)===peg$c774){s1=peg$c774;peg$currPos+=5}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c775)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c773()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,13)===peg$c776){s1=peg$c776;peg$currPos+=13}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c777)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c778()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,13)===peg$c779){s1=peg$c779;peg$currPos+=13}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c780)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c778()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,8)===peg$c781){s1=peg$c781;peg$currPos+=8}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c782)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c783()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,8)===peg$c784){s1=peg$c784;peg$currPos+=8}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c785)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c783()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,9)===peg$c786){s1=peg$c786;peg$currPos+=9}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c787)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c788()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,9)===peg$c789){s1=peg$c789;peg$currPos+=9}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c790)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c788()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,12)===peg$c791){s1=peg$c791;peg$currPos+=12}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c792)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c793()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,12)===peg$c794){s1=peg$c794;peg$currPos+=12}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c795)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c793()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,9)===peg$c796){s1=peg$c796;peg$currPos+=9}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c797)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c798()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,9)===peg$c799){s1=peg$c799;peg$currPos+=9}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c800)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c798()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,10)===peg$c801){s1=peg$c801;peg$currPos+=10}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c802)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c803()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,10)===peg$c804){s1=peg$c804;peg$currPos+=10}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c805)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c803()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,9)===peg$c806){s1=peg$c806;peg$currPos+=9}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c807)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c808()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,9)===peg$c809){s1=peg$c809;peg$currPos+=9}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c810)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c808()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,20)===peg$c811){s1=peg$c811;peg$currPos+=20}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c812)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c813()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,20)===peg$c814){s1=peg$c814;peg$currPos+=20}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c815)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c813()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,9)===peg$c816){s1=peg$c816;peg$currPos+=9}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c817)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c818()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,9)===peg$c819){s1=peg$c819;peg$currPos+=9}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c820)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c818()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,9)===peg$c821){s1=peg$c821;peg$currPos+=9}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c822)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c818()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,9)===peg$c823){s1=peg$c823;peg$currPos+=9}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c824)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c818()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,10)===peg$c825){s1=peg$c825;peg$currPos+=10}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c826)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c827()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,10)===peg$c828){s1=peg$c828;peg$currPos+=10}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c829)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c827()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,9)===peg$c830){s1=peg$c830;peg$currPos+=9}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c831)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c832()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,9)===peg$c833){s1=peg$c833;peg$currPos+=9}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c834)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c832()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,11)===peg$c835){s1=peg$c835;peg$currPos+=11}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c836)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c837()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,11)===peg$c838){s1=peg$c838;peg$currPos+=11}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c839)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c837()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,13)===peg$c840){s1=peg$c840;peg$currPos+=13}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c841)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c842()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,13)===peg$c843){s1=peg$c843;peg$currPos+=13}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c844)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c842()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,12)===peg$c845){s1=peg$c845;peg$currPos+=12}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c846)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c847()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,12)===peg$c848){s1=peg$c848;peg$currPos+=12}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c849)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c847()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,14)===peg$c850){s1=peg$c850;peg$currPos+=14}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c851)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c852()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,14)===peg$c853){s1=peg$c853;peg$currPos+=14}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c854)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c852()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,14)===peg$c855){s1=peg$c855;peg$currPos+=14}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c856)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c852()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,14)===peg$c857){s1=peg$c857;peg$currPos+=14}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c858)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c852()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,14)===peg$c859){s1=peg$c859;peg$currPos+=14}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c860)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c861()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,14)===peg$c862){s1=peg$c862;peg$currPos+=14}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c863)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c861()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,11)===peg$c864){s1=peg$c864;peg$currPos+=11}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c865)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c866()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,11)===peg$c867){s1=peg$c867;peg$currPos+=11}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c868)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c866()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,9)===peg$c869){s1=peg$c869;peg$currPos+=9}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c870)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c871()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,9)===peg$c872){s1=peg$c872;peg$currPos+=9}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c873)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c871()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,4)===peg$c874){s1=peg$c874;peg$currPos+=4}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c875)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c876()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,4)===peg$c877){s1=peg$c877;peg$currPos+=4}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c878)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c876()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,5)===peg$c879){s1=peg$c879;peg$currPos+=5}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c880)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c881()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,5)===peg$c882){s1=peg$c882;peg$currPos+=5}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c883)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c881()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,7)===peg$c884){s1=peg$c884;peg$currPos+=7}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c885)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c704()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,7)===peg$c886){s1=peg$c886;peg$currPos+=7}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c887)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c704()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,6)===peg$c888){s1=peg$c888;peg$currPos+=6}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c889)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c890()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,6)===peg$c891){s1=peg$c891;peg$currPos+=6}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c892)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c890()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,16)===peg$c893){s1=peg$c893;peg$currPos+=16}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c894)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c895()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,16)===peg$c896){s1=peg$c896;peg$currPos+=16}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c897)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c895()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,10)===peg$c898){s1=peg$c898;peg$currPos+=10}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c899)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c900()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,10)===peg$c901){s1=peg$c901;peg$currPos+=10}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c902)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c900()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,12)===peg$c903){s1=peg$c903;peg$currPos+=12}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c904)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c905()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,12)===peg$c906){s1=peg$c906;peg$currPos+=12}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c907)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c905()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,12)===peg$c908){s1=peg$c908;peg$currPos+=12}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c909)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c910()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,12)===peg$c911){s1=peg$c911;peg$currPos+=12}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c912)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c910()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,14)===peg$c913){s1=peg$c913;peg$currPos+=14}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c914)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c915()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,14)===peg$c916){s1=peg$c916;peg$currPos+=14}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c917)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c915()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,15)===peg$c918){s1=peg$c918;peg$currPos+=15}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c919)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c920()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,15)===peg$c921){s1=peg$c921;peg$currPos+=15}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c922)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c920()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,17)===peg$c923){s1=peg$c923;peg$currPos+=17}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c924)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c925()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,17)===peg$c926){s1=peg$c926;peg$currPos+=17}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c927)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c925()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,15)===peg$c928){s1=peg$c928;peg$currPos+=15}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c929)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c930()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,15)===peg$c931){s1=peg$c931;peg$currPos+=15}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c932)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c930()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,15)===peg$c933){s1=peg$c933;peg$currPos+=15}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c934)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c935()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,15)===peg$c936){s1=peg$c936;peg$currPos+=15}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c937)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c935()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,12)===peg$c938){s1=peg$c938;peg$currPos+=12}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c939)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c940()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,12)===peg$c941){s1=peg$c941;peg$currPos+=12}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c942)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c940()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,9)===peg$c943){s1=peg$c943;peg$currPos+=9}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c944)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c945()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,9)===peg$c946){s1=peg$c946;peg$currPos+=9}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c947)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c945()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,9)===peg$c948){s1=peg$c948;peg$currPos+=9}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c949)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c950()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,9)===peg$c951){s1=peg$c951;peg$currPos+=9}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c952)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c950()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,8)===peg$c953){s1=peg$c953;peg$currPos+=8}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c954)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c955()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,8)===peg$c956){s1=peg$c956;peg$currPos+=8}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c957)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c955()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,11)===peg$c958){s1=peg$c958;peg$currPos+=11}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c959)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c960()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,11)===peg$c961){s1=peg$c961;peg$currPos+=11}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c962)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c960()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,4)===peg$c963){s1=peg$c963;peg$currPos+=4}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c964)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c965()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,4)===peg$c966){s1=peg$c966;peg$currPos+=4}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c967)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c965()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,7)===peg$c968){s1=peg$c968;peg$currPos+=7}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c969)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c970()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,7)===peg$c971){s1=peg$c971;peg$currPos+=7}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c972)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c970()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,9)===peg$c973){s1=peg$c973;peg$currPos+=9}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c974)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c975()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,9)===peg$c976){s1=peg$c976;peg$currPos+=9}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c977)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c975()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,5)===peg$c978){s1=peg$c978;peg$currPos+=5}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c979)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c980()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,5)===peg$c981){s1=peg$c981;peg$currPos+=5}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c982)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c980()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,9)===peg$c983){s1=peg$c983;peg$currPos+=9}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c984)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c985()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,9)===peg$c986){s1=peg$c986;peg$currPos+=9}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c987)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c985()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,6)===peg$c988){s1=peg$c988;peg$currPos+=6}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c989)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c990()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,6)===peg$c991){s1=peg$c991;peg$currPos+=6}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c992)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c990()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,6)===peg$c993){s1=peg$c993;peg$currPos+=6}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c994)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c995()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,6)===peg$c996){s1=peg$c996;peg$currPos+=6}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c997)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c995()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,13)===peg$c998){s1=peg$c998;peg$currPos+=13}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c999)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1000()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,13)===peg$c1001){s1=peg$c1001;peg$currPos+=13}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1002)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1000()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,9)===peg$c1003){s1=peg$c1003;peg$currPos+=9}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1004)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1005()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,9)===peg$c1006){s1=peg$c1006;peg$currPos+=9}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1007)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1005()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,13)===peg$c1008){s1=peg$c1008;peg$currPos+=13}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1009)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1010()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,13)===peg$c1011){s1=peg$c1011;peg$currPos+=13}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1012)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1010()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,13)===peg$c1013){s1=peg$c1013;peg$currPos+=13}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1014)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1015()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,13)===peg$c1016){s1=peg$c1016;peg$currPos+=13}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1017)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1015()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,10)===peg$c1018){s1=peg$c1018;peg$currPos+=10}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1019)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1020()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,10)===peg$c1021){s1=peg$c1021;peg$currPos+=10}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1022)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1020()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,9)===peg$c1023){s1=peg$c1023;peg$currPos+=9}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1024)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1025()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,9)===peg$c1026){s1=peg$c1026;peg$currPos+=9}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1027)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1025()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,4)===peg$c1028){s1=peg$c1028;peg$currPos+=4}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1029)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1030()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,4)===peg$c1031){s1=peg$c1031;peg$currPos+=4}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1032)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1030()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,4)===peg$c1033){s1=peg$c1033;peg$currPos+=4}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1034)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1035()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,4)===peg$c1036){s1=peg$c1036;peg$currPos+=4}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1037)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1035()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,4)===peg$c1038){s1=peg$c1038;peg$currPos+=4}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1039)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1040()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,4)===peg$c1041){s1=peg$c1041;peg$currPos+=4}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1042)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1040()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,10)===peg$c1043){s1=peg$c1043;peg$currPos+=10}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1044)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1045()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,10)===peg$c1046){s1=peg$c1046;peg$currPos+=10}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1047)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1045()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,6)===peg$c1048){s1=peg$c1048;peg$currPos+=6}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1049)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1050()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,6)===peg$c1051){s1=peg$c1051;peg$currPos+=6}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1052)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1050()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,3)===peg$c1053){s1=peg$c1053;peg$currPos+=3}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1054)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1055()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,3)===peg$c1056){s1=peg$c1056;peg$currPos+=3}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1057)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1055()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,9)===peg$c1058){s1=peg$c1058;peg$currPos+=9}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1059)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1060()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,9)===peg$c1061){s1=peg$c1061;peg$currPos+=9}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1062)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1060()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,9)===peg$c1063){s1=peg$c1063;peg$currPos+=9}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1064)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1065()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,9)===peg$c1066){s1=peg$c1066;peg$currPos+=9}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1067)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1065()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,11)===peg$c1068){s1=peg$c1068;peg$currPos+=11}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1069)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1070()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,11)===peg$c1071){s1=peg$c1071;peg$currPos+=11}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1072)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1070()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,6)===peg$c1073){s1=peg$c1073;peg$currPos+=6}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1074)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1075()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,6)===peg$c1076){s1=peg$c1076;peg$currPos+=6}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1077)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1075()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,10)===peg$c1078){s1=peg$c1078;peg$currPos+=10}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1079)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1080()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,10)===peg$c1081){s1=peg$c1081;peg$currPos+=10}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1082)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1080()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,8)===peg$c1083){s1=peg$c1083;peg$currPos+=8}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1084)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1085()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,8)===peg$c1086){s1=peg$c1086;peg$currPos+=8}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1087)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1085()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,8)===peg$c1088){s1=peg$c1088;peg$currPos+=8}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1089)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1090()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,8)===peg$c1091){s1=peg$c1091;peg$currPos+=8}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1092)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1090()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,6)===peg$c1093){s1=peg$c1093;peg$currPos+=6}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1094)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1095()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,6)===peg$c1096){s1=peg$c1096;peg$currPos+=6}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1097)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1095()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,6)===peg$c1098){s1=peg$c1098;peg$currPos+=6}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1099)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1100()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,6)===peg$c1101){s1=peg$c1101;peg$currPos+=6}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1102)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1100()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,7)===peg$c1103){s1=peg$c1103;peg$currPos+=7}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1104)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1105()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,7)===peg$c1106){s1=peg$c1106;peg$currPos+=7}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1107)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1105()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,9)===peg$c1108){s1=peg$c1108;peg$currPos+=9}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1109)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1110()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,9)===peg$c1111){s1=peg$c1111;peg$currPos+=9}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1112)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1110()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,9)===peg$c1113){s1=peg$c1113;peg$currPos+=9}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1114)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1115()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,9)===peg$c1116){s1=peg$c1116;peg$currPos+=9}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1117)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1115()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,9)===peg$c1118){s1=peg$c1118;peg$currPos+=9}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1119)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1115()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,9)===peg$c1120){s1=peg$c1120;peg$currPos+=9}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1121)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1115()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,4)===peg$c1122){s1=peg$c1122;peg$currPos+=4}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1123)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1124()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,4)===peg$c1125){s1=peg$c1125;peg$currPos+=4}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1126)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1124()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,11)===peg$c1127){s1=peg$c1127;peg$currPos+=11}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1128)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1129()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,11)===peg$c1130){s1=peg$c1130;peg$currPos+=11}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1131)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1129()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,9)===peg$c1132){s1=peg$c1132;peg$currPos+=9}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1133)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1134()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,9)===peg$c1135){s1=peg$c1135;peg$currPos+=9}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1136)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1134()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,3)===peg$c1137){s1=peg$c1137;peg$currPos+=3}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1138)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1139()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,3)===peg$c1140){s1=peg$c1140;peg$currPos+=3}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1141)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1139()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,4)===peg$c1142){s1=peg$c1142;peg$currPos+=4}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1143)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1144()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,4)===peg$c1145){s1=peg$c1145;peg$currPos+=4}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1146)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1144()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,7)===peg$c1147){s1=peg$c1147;peg$currPos+=7}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1148)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1149()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,7)===peg$c1150){s1=peg$c1150;peg$currPos+=7}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1151)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1149()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,6)===peg$c1152){s1=peg$c1152;peg$currPos+=6}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1153)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1154()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,6)===peg$c1155){s1=peg$c1155;peg$currPos+=6}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1156)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1154()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,11)===peg$c1157){s1=peg$c1157;peg$currPos+=11}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1158)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1159()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,11)===peg$c1160){s1=peg$c1160;peg$currPos+=11}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1161)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1159()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,9)===peg$c1162){s1=peg$c1162;peg$currPos+=9}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1163)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1164()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,9)===peg$c1165){s1=peg$c1165;peg$currPos+=9}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1166)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1164()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,6)===peg$c1167){s1=peg$c1167;peg$currPos+=6}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1168)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1169()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,6)===peg$c1170){s1=peg$c1170;peg$currPos+=6}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1171)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1169()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,5)===peg$c1172){s1=peg$c1172;peg$currPos+=5}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1173)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1174()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,5)===peg$c1175){s1=peg$c1175;peg$currPos+=5}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1176)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1174()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,10)===peg$c1177){s1=peg$c1177;peg$currPos+=10}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1178)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1179()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,10)===peg$c1180){s1=peg$c1180;peg$currPos+=10}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1181)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1179()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,5)===peg$c1182){s1=peg$c1182;peg$currPos+=5}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1183)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1184()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,5)===peg$c1185){s1=peg$c1185;peg$currPos+=5}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1186)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1184()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,11)===peg$c1187){s1=peg$c1187;peg$currPos+=11}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1188)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1189()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,11)===peg$c1190){s1=peg$c1190;peg$currPos+=11}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1191)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1189()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,6)===peg$c1192){s1=peg$c1192;peg$currPos+=6}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1193)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1194()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,6)===peg$c1195){s1=peg$c1195;peg$currPos+=6}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1196)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1194()}s0=s1}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}return s0}function peg$parseSvgColor(){var s0,s1,s2;s0=peg$currPos;s1=peg$parseSvgColorLabel();if(s1!==peg$FAILED){s2=peg$parseWS();if(s2===peg$FAILED){s2=null}if(s2!==peg$FAILED){peg$savedPos=s0;s1=peg$c1197(s1);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}return s0}function peg$parseRgb3(){var s0,s1,s2,s3,s4,s5;s0=peg$currPos;if(input.charCodeAt(peg$currPos)===35){s1=peg$c1198;peg$currPos++}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1199)}}if(s1!==peg$FAILED){s2=peg$parseHexDigit();if(s2!==peg$FAILED){s3=peg$parseHexDigit();if(s3!==peg$FAILED){s4=peg$parseHexDigit();if(s4!==peg$FAILED){s5=peg$parseWS();if(s5===peg$FAILED){s5=null}if(s5!==peg$FAILED){peg$savedPos=s0;s1=peg$c1200(s2,s3,s4);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}return s0}function peg$parseRgb6(){var s0,s1,s2,s3,s4,s5,s6,s7,s8;s0=peg$currPos;if(input.charCodeAt(peg$currPos)===35){s1=peg$c1198;peg$currPos++}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1199)}}if(s1!==peg$FAILED){s2=peg$parseHexDigit();if(s2!==peg$FAILED){s3=peg$parseHexDigit();if(s3!==peg$FAILED){s4=peg$parseHexDigit();if(s4!==peg$FAILED){s5=peg$parseHexDigit();if(s5!==peg$FAILED){s6=peg$parseHexDigit();if(s6!==peg$FAILED){s7=peg$parseHexDigit();if(s7!==peg$FAILED){s8=peg$parseWS();if(s8===peg$FAILED){s8=null}if(s8!==peg$FAILED){peg$savedPos=s0;s1=peg$c1201(s2,s3,s4,s5,s6,s7);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}return s0}function peg$parseRgba4(){var s0,s1,s2,s3,s4,s5,s6;s0=peg$currPos;if(input.charCodeAt(peg$currPos)===35){s1=peg$c1198;peg$currPos++}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1199)}}if(s1!==peg$FAILED){s2=peg$parseHexDigit();if(s2!==peg$FAILED){s3=peg$parseHexDigit();if(s3!==peg$FAILED){s4=peg$parseHexDigit();if(s4!==peg$FAILED){s5=peg$parseHexDigit();if(s5!==peg$FAILED){s6=peg$parseWS();if(s6===peg$FAILED){s6=null}if(s6!==peg$FAILED){peg$savedPos=s0;s1=peg$c1202(s2,s3,s4,s5);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}return s0}function peg$parseRgba8(){var s0,s1,s2,s3,s4,s5,s6,s7,s8,s9,s10;s0=peg$currPos;if(input.charCodeAt(peg$currPos)===35){s1=peg$c1198;peg$currPos++}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1199)}}if(s1!==peg$FAILED){s2=peg$parseHexDigit();if(s2!==peg$FAILED){s3=peg$parseHexDigit();if(s3!==peg$FAILED){s4=peg$parseHexDigit();if(s4!==peg$FAILED){s5=peg$parseHexDigit();if(s5!==peg$FAILED){s6=peg$parseHexDigit();if(s6!==peg$FAILED){s7=peg$parseHexDigit();if(s7!==peg$FAILED){s8=peg$parseHexDigit();if(s8!==peg$FAILED){s9=peg$parseHexDigit();if(s9!==peg$FAILED){s10=peg$parseWS();if(s10===peg$FAILED){s10=null}if(s10!==peg$FAILED){peg$savedPos=s0;s1=peg$c1203(s2,s3,s4,s5,s6,s7,s8,s9);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}return s0}function peg$parseColor(){var s0;peg$silentFails++;s0=peg$parseSvgColor();if(s0===peg$FAILED){s0=peg$parseRgba8();if(s0===peg$FAILED){s0=peg$parseRgb6();if(s0===peg$FAILED){s0=peg$parseRgba4();if(s0===peg$FAILED){s0=peg$parseRgb3()}}}}peg$silentFails--;if(s0===peg$FAILED){if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1204)}}return s0}function peg$parseArrowItemKey(){var s0;if(input.substr(peg$currPos,9)===peg$c1205){s0=peg$c1205;peg$currPos+=9}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1206)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,10)===peg$c1207){s0=peg$c1207;peg$currPos+=10}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1208)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,10)===peg$c1209){s0=peg$c1209;peg$currPos+=10}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1210)}}}}return s0}function peg$parseArrowItem(){var s0,s1,s2,s3,s4,s5,s6,s7,s8,s9;s0=peg$currPos;s1=peg$parseWS();if(s1===peg$FAILED){s1=null}if(s1!==peg$FAILED){s2=peg$parseArrowItemKey();if(s2!==peg$FAILED){s3=peg$parseWS();if(s3===peg$FAILED){s3=null}if(s3!==peg$FAILED){if(input.charCodeAt(peg$currPos)===58){s4=peg$c1211;peg$currPos++}else{s4=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1212)}}if(s4!==peg$FAILED){s5=peg$parseWS();if(s5===peg$FAILED){s5=null}if(s5!==peg$FAILED){s6=peg$parseLabel();if(s6!==peg$FAILED){s7=peg$parseWS();if(s7===peg$FAILED){s7=null}if(s7!==peg$FAILED){if(input.charCodeAt(peg$currPos)===59){s8=peg$c1213;peg$currPos++}else{s8=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1214)}}if(s8!==peg$FAILED){s9=peg$parseWS();if(s9===peg$FAILED){s9=null}if(s9!==peg$FAILED){peg$savedPos=s0;s1=peg$c1215(s2,s6);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}return s0}function peg$parseSingleEdgeColor(){var s0,s1,s2,s3,s4,s5,s6,s7,s8,s9;peg$silentFails++;s0=peg$currPos;s1=peg$parseWS();if(s1===peg$FAILED){s1=null}if(s1!==peg$FAILED){if(input.substr(peg$currPos,10)===peg$c1217){s2=peg$c1217;peg$currPos+=10}else{s2=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1218)}}if(s2!==peg$FAILED){s3=peg$parseWS();if(s3===peg$FAILED){s3=null}if(s3!==peg$FAILED){if(input.charCodeAt(peg$currPos)===58){s4=peg$c1211;peg$currPos++}else{s4=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1212)}}if(s4!==peg$FAILED){s5=peg$parseWS();if(s5===peg$FAILED){s5=null}if(s5!==peg$FAILED){s6=peg$currPos;s7=peg$parseColor();if(s7!==peg$FAILED){peg$savedPos=s6;s7=peg$c1219(s7)}s6=s7;if(s6!==peg$FAILED){s7=peg$parseWS();if(s7===peg$FAILED){s7=null}if(s7!==peg$FAILED){if(input.charCodeAt(peg$currPos)===59){s8=peg$c1213;peg$currPos++}else{s8=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1214)}}if(s8!==peg$FAILED){s9=peg$parseWS();if(s9===peg$FAILED){s9=null}if(s9!==peg$FAILED){peg$savedPos=s0;s1=peg$c1220(s6);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}if(s0===peg$FAILED){s0=peg$currPos;s1=peg$parseWS();if(s1===peg$FAILED){s1=null}if(s1!==peg$FAILED){if(input.substr(peg$currPos,10)===peg$c1221){s2=peg$c1221;peg$currPos+=10}else{s2=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1222)}}if(s2!==peg$FAILED){s3=peg$parseWS();if(s3===peg$FAILED){s3=null}if(s3!==peg$FAILED){if(input.charCodeAt(peg$currPos)===58){s4=peg$c1211;peg$currPos++}else{s4=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1212)}}if(s4!==peg$FAILED){s5=peg$parseWS();if(s5===peg$FAILED){s5=null}if(s5!==peg$FAILED){s6=peg$currPos;s7=peg$parseColor();if(s7!==peg$FAILED){peg$savedPos=s6;s7=peg$c1219(s7)}s6=s7;if(s6!==peg$FAILED){s7=peg$parseWS();if(s7===peg$FAILED){s7=null}if(s7!==peg$FAILED){if(input.charCodeAt(peg$currPos)===59){s8=peg$c1213;peg$currPos++}else{s8=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1214)}}if(s8!==peg$FAILED){s9=peg$parseWS();if(s9===peg$FAILED){s9=null}if(s9!==peg$FAILED){peg$savedPos=s0;s1=peg$c1220(s6);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}peg$silentFails--;if(s0===peg$FAILED){s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1216)}}return s0}function peg$parseTransitionLineStyle(){var s0,s1,s2,s3,s4,s5,s6,s7,s8,s9;peg$silentFails++;s0=peg$currPos;s1=peg$parseWS();if(s1===peg$FAILED){s1=null}if(s1!==peg$FAILED){if(input.substr(peg$currPos,10)===peg$c1224){s2=peg$c1224;peg$currPos+=10}else{s2=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1225)}}if(s2!==peg$FAILED){s3=peg$parseWS();if(s3===peg$FAILED){s3=null}if(s3!==peg$FAILED){if(input.charCodeAt(peg$currPos)===58){s4=peg$c1211;peg$currPos++}else{s4=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1212)}}if(s4!==peg$FAILED){s5=peg$parseWS();if(s5===peg$FAILED){s5=null}if(s5!==peg$FAILED){s6=peg$parseLineStyle();if(s6!==peg$FAILED){s7=peg$parseWS();if(s7===peg$FAILED){s7=null}if(s7!==peg$FAILED){if(input.charCodeAt(peg$currPos)===59){s8=peg$c1213;peg$currPos++}else{s8=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1214)}}if(s8!==peg$FAILED){s9=peg$parseWS();if(s9===peg$FAILED){s9=null}if(s9!==peg$FAILED){peg$savedPos=s0;s1=peg$c1226(s6);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}peg$silentFails--;if(s0===peg$FAILED){s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1223)}}return s0}function peg$parseArrowItems(){var s0,s1;s0=peg$parseSingleEdgeColor();if(s0===peg$FAILED){s0=peg$parseTransitionLineStyle();if(s0===peg$FAILED){s0=[];s1=peg$parseArrowItem();if(s1!==peg$FAILED){while(s1!==peg$FAILED){s0.push(s1);s1=peg$parseArrowItem()}}else{s0=peg$FAILED}}}return s0}function peg$parseArrowDesc(){var s0,s1,s2,s3,s4,s5;s0=peg$currPos;if(input.charCodeAt(peg$currPos)===123){s1=peg$c1227;peg$currPos++}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1228)}}if(s1!==peg$FAILED){s2=peg$parseWS();if(s2===peg$FAILED){s2=null}if(s2!==peg$FAILED){s3=peg$parseArrowItems();if(s3===peg$FAILED){s3=null}if(s3!==peg$FAILED){s4=peg$parseWS();if(s4===peg$FAILED){s4=null}if(s4!==peg$FAILED){if(input.charCodeAt(peg$currPos)===125){s5=peg$c1229;peg$currPos++}else{s5=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1230)}}if(s5!==peg$FAILED){peg$savedPos=s0;s1=peg$c1231(s3);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}return s0}function peg$parseArrowProbability(){var s0,s1,s2;s0=peg$currPos;s1=peg$parseNonNegNumber();if(s1!==peg$FAILED){if(input.charCodeAt(peg$currPos)===37){s2=peg$c1232;peg$currPos++}else{s2=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1233)}}if(s2!==peg$FAILED){peg$savedPos=s0;s1=peg$c1234(s1);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}return s0}var peg$timetype_alts=[[12,peg$c1235,peg$c1236,peg$c1237,109],[11,peg$c1238,peg$c1239,peg$c1237,109],[5,peg$c1240,peg$c1241,peg$c1237,109],[4,peg$c1242,peg$c1243,peg$c1237,109],[2,peg$c1244,peg$c1245,peg$c1237,109],[7,peg$c1246,peg$c1247,peg$c1248,115],[6,peg$c1249,peg$c1250,peg$c1248,115],[4,peg$c1251,peg$c1252,peg$c1248,115],[3,peg$c1253,peg$c1254,peg$c1248,115],[1,peg$c1255,peg$c1256,peg$c1248,115],[7,peg$c1257,peg$c1258,peg$c1259,109],[6,peg$c1260,peg$c1261,peg$c1259,109],[4,peg$c1262,peg$c1263,peg$c1259,109],[3,peg$c1264,peg$c1265,peg$c1259,109],[1,peg$c1266,peg$c1267,peg$c1259,109],[5,peg$c1268,peg$c1269,peg$c1270,104],[4,peg$c1271,peg$c1272,peg$c1270,104],[3,peg$c1273,peg$c1274,peg$c1270,104],[2,peg$c1275,peg$c1276,peg$c1270,104],[1,peg$c1277,peg$c1278,peg$c1270,104],[4,peg$c1279,peg$c1280,peg$c1281,100],[3,peg$c1282,peg$c1283,peg$c1281,100],[1,peg$c1284,peg$c1285,peg$c1281,100],[5,peg$c1286,peg$c1287,peg$c1288,119],[4,peg$c1289,peg$c1290,peg$c1288,119],[3,peg$c1291,peg$c1292,peg$c1288,119],[2,peg$c1293,peg$c1294,peg$c1288,119],[1,peg$c1295,peg$c1296,peg$c1288,119]];function peg$parseTimeType(){var i,j,alt,start;var c=input.charCodeAt(peg$currPos);for(i=0;i<28;i++){alt=peg$timetype_alts[i];if(alt[4]!==c){continue}if(alt[0]!==1&&input.substr(peg$currPos,alt[0])!==alt[1]){continue}if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){for(j=0;j<i;j++){peg$fail(peg$timetype_alts[j][2])}}start=peg$currPos;peg$currPos+=alt[0];peg$savedPos=start;return alt[3]()}if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){for(j=0;j<28;j++){peg$fail(peg$timetype_alts[j][2])}}return peg$FAILED}function peg$parseArrowAfter(){var s0,s1,s2,s3,s4,s5;s0=peg$currPos;if(input.substr(peg$currPos,5)===peg$c1297){s1=peg$c1297;peg$currPos+=5}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1298)}}if(s1!==peg$FAILED){s2=peg$parseWS();if(s2!==peg$FAILED){s3=peg$parseNonNegNumber();if(s3!==peg$FAILED){s4=peg$parseWS();if(s4===peg$FAILED){s4=null}if(s4!==peg$FAILED){s5=peg$parseTimeType();if(s5===peg$FAILED){s5=null}if(s5!==peg$FAILED){peg$savedPos=s0;s1=peg$c1299(s3,s5);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}return s0}function peg$parseLabelList(){var s0,s1,s2,s3,s4,s5,s6;s0=peg$currPos;if(input.charCodeAt(peg$currPos)===91){s1=peg$c11;peg$currPos++}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c12)}}if(s1!==peg$FAILED){s2=peg$parseWS();if(s2===peg$FAILED){s2=null}if(s2!==peg$FAILED){s3=[];s4=peg$currPos;s5=peg$parseLabel();if(s5!==peg$FAILED){s6=peg$parseWS();if(s6===peg$FAILED){s6=null}if(s6!==peg$FAILED){s5=[s5,s6];s4=s5}else{peg$currPos=s4;s4=peg$FAILED}}else{peg$currPos=s4;s4=peg$FAILED}while(s4!==peg$FAILED){s3.push(s4);s4=peg$currPos;s5=peg$parseLabel();if(s5!==peg$FAILED){s6=peg$parseWS();if(s6===peg$FAILED){s6=null}if(s6!==peg$FAILED){s5=[s5,s6];s4=s5}else{peg$currPos=s4;s4=peg$FAILED}}else{peg$currPos=s4;s4=peg$FAILED}}if(s3!==peg$FAILED){if(input.charCodeAt(peg$currPos)===93){s4=peg$c13;peg$currPos++}else{s4=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c14)}}if(s4!==peg$FAILED){peg$savedPos=s0;s1=peg$c1300(s3);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}return s0}function peg$parseLabelOrLabelList(){var s0;s0=peg$parseLabelList();if(s0===peg$FAILED){s0=peg$parseLabel()}return s0}function peg$parseGroupRef(){var s0,s1,s2,s3;peg$silentFails++;s0=peg$currPos;if(input.charCodeAt(peg$currPos)===38){s1=peg$c1302;peg$currPos++}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1303)}}if(s1!==peg$FAILED){s2=peg$parseWS();if(s2===peg$FAILED){s2=null}if(s2!==peg$FAILED){s3=peg$parseLabel();if(s3!==peg$FAILED){peg$savedPos=s0;s1=peg$c1304(s3);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}peg$silentFails--;if(s0===peg$FAILED){s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1301)}}return s0}function peg$parseGroupMember(){var s0,s1,s2,s3,s4,s5;s0=peg$currPos;if(input.substr(peg$currPos,3)===peg$c1305){s1=peg$c1305;peg$currPos+=3}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1306)}}if(s1!==peg$FAILED){s2=peg$parseWS();if(s2===peg$FAILED){s2=null}if(s2!==peg$FAILED){if(input.charCodeAt(peg$currPos)===38){s3=peg$c1302;peg$currPos++}else{s3=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1303)}}if(s3!==peg$FAILED){s4=peg$parseWS();if(s4===peg$FAILED){s4=null}if(s4!==peg$FAILED){s5=peg$parseLabel();if(s5!==peg$FAILED){peg$savedPos=s0;s1=peg$c1307(s5);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}if(s0===peg$FAILED){s0=peg$currPos;if(input.charCodeAt(peg$currPos)===38){s1=peg$c1302;peg$currPos++}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1303)}}if(s1!==peg$FAILED){s2=peg$parseWS();if(s2===peg$FAILED){s2=null}if(s2!==peg$FAILED){s3=peg$parseLabel();if(s3!==peg$FAILED){peg$savedPos=s0;s1=peg$c1308(s3);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}if(s0===peg$FAILED){s0=peg$currPos;s1=peg$parseLabel();if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1309(s1)}s0=s1}}return s0}function peg$parseGroupMemberList(){var s0,s1,s2,s3,s4,s5,s6;s0=peg$currPos;if(input.charCodeAt(peg$currPos)===91){s1=peg$c11;peg$currPos++}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c12)}}if(s1!==peg$FAILED){s2=peg$parseWS();if(s2===peg$FAILED){s2=null}if(s2!==peg$FAILED){s3=[];s4=peg$currPos;s5=peg$parseGroupMember();if(s5!==peg$FAILED){s6=peg$parseWS();if(s6===peg$FAILED){s6=null}if(s6!==peg$FAILED){s5=[s5,s6];s4=s5}else{peg$currPos=s4;s4=peg$FAILED}}else{peg$currPos=s4;s4=peg$FAILED}while(s4!==peg$FAILED){s3.push(s4);s4=peg$currPos;s5=peg$parseGroupMember();if(s5!==peg$FAILED){s6=peg$parseWS();if(s6===peg$FAILED){s6=null}if(s6!==peg$FAILED){s5=[s5,s6];s4=s5}else{peg$currPos=s4;s4=peg$FAILED}}else{peg$currPos=s4;s4=peg$FAILED}}if(s3!==peg$FAILED){if(input.charCodeAt(peg$currPos)===93){s4=peg$c13;peg$currPos++}else{s4=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c14)}}if(s4!==peg$FAILED){peg$savedPos=s0;s1=peg$c1310(s3);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}return s0}function peg$parseStripe(){var s0,s1,s2,s3,s4,s5,s6;var cg=input.charCodeAt(peg$currPos);if(cg!==43&&cg!==45){if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1312);peg$fail(peg$c1315)}return peg$FAILED}s0=peg$currPos;if(input.substr(peg$currPos,2)===peg$c1311){s1=peg$c1311;peg$currPos+=2}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1312)}}if(s1!==peg$FAILED){s2=peg$currPos;s3=peg$currPos;s4=peg$parseNonZeroDigit();if(s4!==peg$FAILED){s5=[];s6=peg$parseDecimalDigit();while(s6!==peg$FAILED){s5.push(s6);s6=peg$parseDecimalDigit()}if(s5!==peg$FAILED){s4=[s4,s5];s3=s4}else{peg$currPos=s3;s3=peg$FAILED}}else{peg$currPos=s3;s3=peg$FAILED}if(s3!==peg$FAILED){s2=input.substring(s2,peg$currPos)}else{s2=s3}if(s2!==peg$FAILED){peg$savedPos=s0;s1=peg$c1313(s2);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,2)===peg$c1314){s1=peg$c1314;peg$currPos+=2}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1315)}}if(s1!==peg$FAILED){s2=peg$currPos;s3=peg$currPos;s4=peg$parseNonZeroDigit();if(s4!==peg$FAILED){s5=[];s6=peg$parseDecimalDigit();while(s6!==peg$FAILED){s5.push(s6);s6=peg$parseDecimalDigit()}if(s5!==peg$FAILED){s4=[s4,s5];s3=s4}else{peg$currPos=s3;s3=peg$FAILED}}else{peg$currPos=s3;s3=peg$FAILED}if(s3!==peg$FAILED){s2=input.substring(s2,peg$currPos)}else{s2=s3}if(s2!==peg$FAILED){peg$savedPos=s0;s1=peg$c1316(s2);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}return s0}function peg$parseCycle(){var s0,s1,s2,s3,s4,s5,s6;var cg=input.charCodeAt(peg$currPos);if(cg!==43&&cg!==45){if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1318);peg$fail(peg$c1321);peg$fail(peg$c1324)}return peg$FAILED}s0=peg$currPos;if(input.charCodeAt(peg$currPos)===43){s1=peg$c1317;peg$currPos++}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1318)}}if(s1!==peg$FAILED){s2=peg$currPos;s3=peg$currPos;s4=peg$parseNonZeroDigit();if(s4!==peg$FAILED){s5=[];s6=peg$parseDecimalDigit();while(s6!==peg$FAILED){s5.push(s6);s6=peg$parseDecimalDigit()}if(s5!==peg$FAILED){s4=[s4,s5];s3=s4}else{peg$currPos=s3;s3=peg$FAILED}}else{peg$currPos=s3;s3=peg$FAILED}if(s3!==peg$FAILED){s2=input.substring(s2,peg$currPos)}else{s2=s3}if(s2!==peg$FAILED){peg$savedPos=s0;s1=peg$c1319(s2);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}if(s0===peg$FAILED){s0=peg$currPos;if(input.charCodeAt(peg$currPos)===45){s1=peg$c1320;peg$currPos++}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1321)}}if(s1!==peg$FAILED){s2=peg$currPos;s3=peg$currPos;s4=peg$parseNonZeroDigit();if(s4!==peg$FAILED){s5=[];s6=peg$parseDecimalDigit();while(s6!==peg$FAILED){s5.push(s6);s6=peg$parseDecimalDigit()}if(s5!==peg$FAILED){s4=[s4,s5];s3=s4}else{peg$currPos=s3;s3=peg$FAILED}}else{peg$currPos=s3;s3=peg$FAILED}if(s3!==peg$FAILED){s2=input.substring(s2,peg$currPos)}else{s2=s3}if(s2!==peg$FAILED){peg$savedPos=s0;s1=peg$c1322(s2);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,2)===peg$c1323){s1=peg$c1323;peg$currPos+=2}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1324)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1325()}s0=s1}}return s0}function peg$parseArrowTarget(){var s0;s0=peg$parseStripe();if(s0===peg$FAILED){s0=peg$parseCycle();if(s0===peg$FAILED){s0=peg$parseLabelList();if(s0===peg$FAILED){s0=peg$parseGroupRef();if(s0===peg$FAILED){s0=peg$parseLabel()}}}}return s0}function peg$parseArrowDecoration(){var s0,s1;s0=peg$currPos;s1=peg$parseArrowAfter();if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1326(s1)}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;s1=peg$parseActionLabel();if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1327(s1)}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;s1=peg$parseArrowProbability();if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1328(s1)}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;s1=peg$parseArrowDesc();if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1329(s1)}s0=s1}}}return s0}function peg$parseArrowDecorations(){var s0,s1,s2,s3;s0=[];s1=peg$currPos;s2=peg$parseArrowDecoration();if(s2!==peg$FAILED){s3=peg$parseWS();if(s3===peg$FAILED){s3=null}if(s3!==peg$FAILED){peg$savedPos=s1;s2=peg$c1330(s2);s1=s2}else{peg$currPos=s1;s1=peg$FAILED}}else{peg$currPos=s1;s1=peg$FAILED}while(s1!==peg$FAILED){s0.push(s1);s1=peg$currPos;s2=peg$parseArrowDecoration();if(s2!==peg$FAILED){s3=peg$parseWS();if(s3===peg$FAILED){s3=null}if(s3!==peg$FAILED){peg$savedPos=s1;s2=peg$c1330(s2);s1=s2}else{peg$currPos=s1;s1=peg$FAILED}}else{peg$currPos=s1;s1=peg$FAILED}}return s0}function peg$parseSubexp(){var s0,s1,s2,s3,s4,s5,s6,s7,s8,s9,s10;s0=peg$currPos;s1=peg$parseWS();if(s1===peg$FAILED){s1=null}if(s1!==peg$FAILED){s2=peg$parseArrowDecorations();if(s2!==peg$FAILED){s3=peg$parseWS();if(s3===peg$FAILED){s3=null}if(s3!==peg$FAILED){s4=peg$parseArrow();if(s4!==peg$FAILED){s5=peg$parseWS();if(s5===peg$FAILED){s5=null}if(s5!==peg$FAILED){s6=peg$parseArrowDecorations();if(s6!==peg$FAILED){s7=peg$parseWS();if(s7===peg$FAILED){s7=null}if(s7!==peg$FAILED){s8=peg$currPos;s9=peg$parseArrowTarget();if(s9!==peg$FAILED){peg$savedPos=s8;s9=peg$c1331(s2,s4,s6,s9)}s8=s9;if(s8!==peg$FAILED){s9=peg$parseWS();if(s9===peg$FAILED){s9=null}if(s9!==peg$FAILED){s10=peg$parseSubexp();if(s10===peg$FAILED){s10=null}if(s10!==peg$FAILED){peg$savedPos=s0;s1=peg$c1332(s2,s4,s6,s8,s10);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}return s0}function peg$parseExp(){var s0,s1,s2,s3,s4,s5;s0=peg$currPos;s1=peg$currPos;s2=peg$parseArrowTarget();if(s2!==peg$FAILED){peg$savedPos=s1;s2=peg$c1333(s2)}s1=s2;if(s1!==peg$FAILED){s2=peg$parseSubexp();if(s2!==peg$FAILED){s3=peg$parseWS();if(s3===peg$FAILED){s3=null}if(s3!==peg$FAILED){if(input.charCodeAt(peg$currPos)===59){s4=peg$c1213;peg$currPos++}else{s4=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1214)}}if(s4!==peg$FAILED){s5=peg$parseWS();if(s5===peg$FAILED){s5=null}if(s5!==peg$FAILED){peg$savedPos=s0;s1=peg$c1334(s1,s2);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}return s0}function peg$parseGvizLayout(){var s0;if(input.substr(peg$currPos,3)===peg$c1335){s0=peg$c1335;peg$currPos+=3}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1336)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,5)===peg$c1337){s0=peg$c1337;peg$currPos+=5}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1338)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,3)===peg$c1339){s0=peg$c1339;peg$currPos+=3}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1340)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,5)===peg$c1341){s0=peg$c1341;peg$currPos+=5}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1342)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,5)===peg$c1343){s0=peg$c1343;peg$currPos+=5}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1344)}}}}}}return s0}function peg$parseStateItems(){var s0,s1;s0=[];s1=peg$parseStateDeclarationItem();if(s1!==peg$FAILED){while(s1!==peg$FAILED){s0.push(s1);s1=peg$parseStateDeclarationItem()}}else{s0=peg$FAILED}return s0}function peg$parseConfigState(){var s0,s1,s2,s3,s4,s5,s6,s7,s8,s9,s10,s11;s0=peg$currPos;s1=peg$parseWS();if(s1===peg$FAILED){s1=null}if(s1!==peg$FAILED){if(input.substr(peg$currPos,5)===peg$c1345){s2=peg$c1345;peg$currPos+=5}else{s2=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1346)}}if(s2!==peg$FAILED){s3=peg$parseWS();if(s3===peg$FAILED){s3=null}if(s3!==peg$FAILED){if(input.charCodeAt(peg$currPos)===58){s4=peg$c1211;peg$currPos++}else{s4=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1212)}}if(s4!==peg$FAILED){s5=peg$parseWS();if(s5===peg$FAILED){s5=null}if(s5!==peg$FAILED){if(input.charCodeAt(peg$currPos)===123){s6=peg$c1227;peg$currPos++}else{s6=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1228)}}if(s6!==peg$FAILED){s7=peg$parseWS();if(s7===peg$FAILED){s7=null}if(s7!==peg$FAILED){s8=peg$parseStateItems();if(s8===peg$FAILED){s8=null}if(s8!==peg$FAILED){s9=peg$parseWS();if(s9===peg$FAILED){s9=null}if(s9!==peg$FAILED){if(input.substr(peg$currPos,2)===peg$c1347){s10=peg$c1347;peg$currPos+=2}else{s10=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1348)}}if(s10!==peg$FAILED){s11=peg$parseWS();if(s11===peg$FAILED){s11=null}if(s11!==peg$FAILED){peg$savedPos=s0;s1=peg$c1349(s8);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}return s0}function peg$parseConfigStartState(){var s0,s1,s2,s3,s4,s5,s6,s7,s8,s9,s10,s11;s0=peg$currPos;s1=peg$parseWS();if(s1===peg$FAILED){s1=null}if(s1!==peg$FAILED){if(input.substr(peg$currPos,11)===peg$c1350){s2=peg$c1350;peg$currPos+=11}else{s2=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1351)}}if(s2!==peg$FAILED){s3=peg$parseWS();if(s3===peg$FAILED){s3=null}if(s3!==peg$FAILED){if(input.charCodeAt(peg$currPos)===58){s4=peg$c1211;peg$currPos++}else{s4=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1212)}}if(s4!==peg$FAILED){s5=peg$parseWS();if(s5===peg$FAILED){s5=null}if(s5!==peg$FAILED){if(input.charCodeAt(peg$currPos)===123){s6=peg$c1227;peg$currPos++}else{s6=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1228)}}if(s6!==peg$FAILED){s7=peg$parseWS();if(s7===peg$FAILED){s7=null}if(s7!==peg$FAILED){s8=peg$parseStateItems();if(s8===peg$FAILED){s8=null}if(s8!==peg$FAILED){s9=peg$parseWS();if(s9===peg$FAILED){s9=null}if(s9!==peg$FAILED){if(input.substr(peg$currPos,2)===peg$c1347){s10=peg$c1347;peg$currPos+=2}else{s10=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1348)}}if(s10!==peg$FAILED){s11=peg$parseWS();if(s11===peg$FAILED){s11=null}if(s11!==peg$FAILED){peg$savedPos=s0;s1=peg$c1352(s8);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}return s0}function peg$parseConfigEndState(){var s0,s1,s2,s3,s4,s5,s6,s7,s8,s9,s10,s11;s0=peg$currPos;s1=peg$parseWS();if(s1===peg$FAILED){s1=null}if(s1!==peg$FAILED){if(input.substr(peg$currPos,9)===peg$c1353){s2=peg$c1353;peg$currPos+=9}else{s2=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1354)}}if(s2!==peg$FAILED){s3=peg$parseWS();if(s3===peg$FAILED){s3=null}if(s3!==peg$FAILED){if(input.charCodeAt(peg$currPos)===58){s4=peg$c1211;peg$currPos++}else{s4=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1212)}}if(s4!==peg$FAILED){s5=peg$parseWS();if(s5===peg$FAILED){s5=null}if(s5!==peg$FAILED){if(input.charCodeAt(peg$currPos)===123){s6=peg$c1227;peg$currPos++}else{s6=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1228)}}if(s6!==peg$FAILED){s7=peg$parseWS();if(s7===peg$FAILED){s7=null}if(s7!==peg$FAILED){s8=peg$parseStateItems();if(s8===peg$FAILED){s8=null}if(s8!==peg$FAILED){s9=peg$parseWS();if(s9===peg$FAILED){s9=null}if(s9!==peg$FAILED){if(input.substr(peg$currPos,2)===peg$c1347){s10=peg$c1347;peg$currPos+=2}else{s10=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1348)}}if(s10!==peg$FAILED){s11=peg$parseWS();if(s11===peg$FAILED){s11=null}if(s11!==peg$FAILED){peg$savedPos=s0;s1=peg$c1355(s8);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}return s0}function peg$parseConfigActiveState(){var s0,s1,s2,s3,s4,s5,s6,s7,s8,s9,s10,s11;s0=peg$currPos;s1=peg$parseWS();if(s1===peg$FAILED){s1=null}if(s1!==peg$FAILED){if(input.substr(peg$currPos,12)===peg$c1356){s2=peg$c1356;peg$currPos+=12}else{s2=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1357)}}if(s2!==peg$FAILED){s3=peg$parseWS();if(s3===peg$FAILED){s3=null}if(s3!==peg$FAILED){if(input.charCodeAt(peg$currPos)===58){s4=peg$c1211;peg$currPos++}else{s4=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1212)}}if(s4!==peg$FAILED){s5=peg$parseWS();if(s5===peg$FAILED){s5=null}if(s5!==peg$FAILED){if(input.charCodeAt(peg$currPos)===123){s6=peg$c1227;peg$currPos++}else{s6=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1228)}}if(s6!==peg$FAILED){s7=peg$parseWS();if(s7===peg$FAILED){s7=null}if(s7!==peg$FAILED){s8=peg$parseStateItems();if(s8===peg$FAILED){s8=null}if(s8!==peg$FAILED){s9=peg$parseWS();if(s9===peg$FAILED){s9=null}if(s9!==peg$FAILED){if(input.substr(peg$currPos,2)===peg$c1347){s10=peg$c1347;peg$currPos+=2}else{s10=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1348)}}if(s10!==peg$FAILED){s11=peg$parseWS();if(s11===peg$FAILED){s11=null}if(s11!==peg$FAILED){peg$savedPos=s0;s1=peg$c1358(s8);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}return s0}function peg$parseConfigTerminalState(){var s0,s1,s2,s3,s4,s5,s6,s7,s8,s9,s10,s11;s0=peg$currPos;s1=peg$parseWS();if(s1===peg$FAILED){s1=null}if(s1!==peg$FAILED){if(input.substr(peg$currPos,14)===peg$c1359){s2=peg$c1359;peg$currPos+=14}else{s2=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1360)}}if(s2!==peg$FAILED){s3=peg$parseWS();if(s3===peg$FAILED){s3=null}if(s3!==peg$FAILED){if(input.charCodeAt(peg$currPos)===58){s4=peg$c1211;peg$currPos++}else{s4=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1212)}}if(s4!==peg$FAILED){s5=peg$parseWS();if(s5===peg$FAILED){s5=null}if(s5!==peg$FAILED){if(input.charCodeAt(peg$currPos)===123){s6=peg$c1227;peg$currPos++}else{s6=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1228)}}if(s6!==peg$FAILED){s7=peg$parseWS();if(s7===peg$FAILED){s7=null}if(s7!==peg$FAILED){s8=peg$parseStateItems();if(s8===peg$FAILED){s8=null}if(s8!==peg$FAILED){s9=peg$parseWS();if(s9===peg$FAILED){s9=null}if(s9!==peg$FAILED){if(input.substr(peg$currPos,2)===peg$c1347){s10=peg$c1347;peg$currPos+=2}else{s10=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1348)}}if(s10!==peg$FAILED){s11=peg$parseWS();if(s11===peg$FAILED){s11=null}if(s11!==peg$FAILED){peg$savedPos=s0;s1=peg$c1361(s8);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}return s0}function peg$parseConfigHookedState(){var s0,s1,s2,s3,s4,s5,s6,s7,s8,s9,s10,s11;s0=peg$currPos;s1=peg$parseWS();if(s1===peg$FAILED){s1=null}if(s1!==peg$FAILED){if(input.substr(peg$currPos,12)===peg$c1362){s2=peg$c1362;peg$currPos+=12}else{s2=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1363)}}if(s2!==peg$FAILED){s3=peg$parseWS();if(s3===peg$FAILED){s3=null}if(s3!==peg$FAILED){if(input.charCodeAt(peg$currPos)===58){s4=peg$c1211;peg$currPos++}else{s4=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1212)}}if(s4!==peg$FAILED){s5=peg$parseWS();if(s5===peg$FAILED){s5=null}if(s5!==peg$FAILED){if(input.charCodeAt(peg$currPos)===123){s6=peg$c1227;peg$currPos++}else{s6=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1228)}}if(s6!==peg$FAILED){s7=peg$parseWS();if(s7===peg$FAILED){s7=null}if(s7!==peg$FAILED){s8=peg$parseStateItems();if(s8===peg$FAILED){s8=null}if(s8!==peg$FAILED){s9=peg$parseWS();if(s9===peg$FAILED){s9=null}if(s9!==peg$FAILED){if(input.substr(peg$currPos,2)===peg$c1347){s10=peg$c1347;peg$currPos+=2}else{s10=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1348)}}if(s10!==peg$FAILED){s11=peg$parseWS();if(s11===peg$FAILED){s11=null}if(s11!==peg$FAILED){peg$savedPos=s0;s1=peg$c1364(s8);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}return s0}function peg$parseConfigAnyState(){var s0;s0=peg$parseConfigState();if(s0===peg$FAILED){s0=peg$parseConfigStartState();if(s0===peg$FAILED){s0=peg$parseConfigEndState();if(s0===peg$FAILED){s0=peg$parseConfigActiveState();if(s0===peg$FAILED){s0=peg$parseConfigTerminalState();if(s0===peg$FAILED){s0=peg$parseConfigHookedState()}}}}}return s0}function peg$parseGraphDefaultEdgeColor(){var s0,s1,s2,s3,s4,s5,s6,s7,s8,s9;peg$silentFails++;s0=peg$currPos;s1=peg$parseWS();if(s1===peg$FAILED){s1=null}if(s1!==peg$FAILED){if(input.substr(peg$currPos,10)===peg$c1217){s2=peg$c1217;peg$currPos+=10}else{s2=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1218)}}if(s2!==peg$FAILED){s3=peg$parseWS();if(s3===peg$FAILED){s3=null}if(s3!==peg$FAILED){if(input.charCodeAt(peg$currPos)===58){s4=peg$c1211;peg$currPos++}else{s4=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1212)}}if(s4!==peg$FAILED){s5=peg$parseWS();if(s5===peg$FAILED){s5=null}if(s5!==peg$FAILED){s6=peg$currPos;s7=peg$parseColor();if(s7!==peg$FAILED){peg$savedPos=s6;s7=peg$c1219(s7)}s6=s7;if(s6!==peg$FAILED){s7=peg$parseWS();if(s7===peg$FAILED){s7=null}if(s7!==peg$FAILED){if(input.charCodeAt(peg$currPos)===59){s8=peg$c1213;peg$currPos++}else{s8=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1214)}}if(s8!==peg$FAILED){s9=peg$parseWS();if(s9===peg$FAILED){s9=null}if(s9!==peg$FAILED){peg$savedPos=s0;s1=peg$c1366(s6);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}if(s0===peg$FAILED){s0=peg$currPos;s1=peg$parseWS();if(s1===peg$FAILED){s1=null}if(s1!==peg$FAILED){if(input.substr(peg$currPos,10)===peg$c1221){s2=peg$c1221;peg$currPos+=10}else{s2=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1222)}}if(s2!==peg$FAILED){s3=peg$parseWS();if(s3===peg$FAILED){s3=null}if(s3!==peg$FAILED){if(input.charCodeAt(peg$currPos)===58){s4=peg$c1211;peg$currPos++}else{s4=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1212)}}if(s4!==peg$FAILED){s5=peg$parseWS();if(s5===peg$FAILED){s5=null}if(s5!==peg$FAILED){s6=peg$currPos;s7=peg$parseColor();if(s7!==peg$FAILED){peg$savedPos=s6;s7=peg$c1219(s7)}s6=s7;if(s6!==peg$FAILED){s7=peg$parseWS();if(s7===peg$FAILED){s7=null}if(s7!==peg$FAILED){if(input.charCodeAt(peg$currPos)===59){s8=peg$c1213;peg$currPos++}else{s8=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1214)}}if(s8!==peg$FAILED){s9=peg$parseWS();if(s9===peg$FAILED){s9=null}if(s9!==peg$FAILED){peg$savedPos=s0;s1=peg$c1366(s6);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}peg$silentFails--;if(s0===peg$FAILED){s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1365)}}return s0}function peg$parseConfigStyleItems(){var s0,s1,s2;s0=peg$parseGraphDefaultEdgeColor();if(s0===peg$FAILED){s0=peg$currPos;s1=[];s2=peg$parseStateDeclarationItem();if(s2!==peg$FAILED){while(s2!==peg$FAILED){s1.push(s2);s2=peg$parseStateDeclarationItem()}}else{s1=peg$FAILED}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1231(s1)}s0=s1}return s0}function peg$parseConfigTransition(){var s0,s1,s2,s3,s4,s5,s6,s7,s8,s9,s10,s11;s0=peg$currPos;s1=peg$parseWS();if(s1===peg$FAILED){s1=null}if(s1!==peg$FAILED){if(input.substr(peg$currPos,10)===peg$c1367){s2=peg$c1367;peg$currPos+=10}else{s2=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1368)}}if(s2!==peg$FAILED){s3=peg$parseWS();if(s3===peg$FAILED){s3=null}if(s3!==peg$FAILED){if(input.charCodeAt(peg$currPos)===58){s4=peg$c1211;peg$currPos++}else{s4=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1212)}}if(s4!==peg$FAILED){s5=peg$parseWS();if(s5===peg$FAILED){s5=null}if(s5!==peg$FAILED){if(input.charCodeAt(peg$currPos)===123){s6=peg$c1227;peg$currPos++}else{s6=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1228)}}if(s6!==peg$FAILED){s7=peg$parseWS();if(s7===peg$FAILED){s7=null}if(s7!==peg$FAILED){s8=peg$parseConfigStyleItems();if(s8===peg$FAILED){s8=null}if(s8!==peg$FAILED){s9=peg$parseWS();if(s9===peg$FAILED){s9=null}if(s9!==peg$FAILED){if(input.substr(peg$currPos,2)===peg$c1347){s10=peg$c1347;peg$currPos+=2}else{s10=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1348)}}if(s10!==peg$FAILED){s11=peg$parseWS();if(s11===peg$FAILED){s11=null}if(s11!==peg$FAILED){peg$savedPos=s0;s1=peg$c1369(s8);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}return s0}function peg$parseConfigGraph(){var s0,s1,s2,s3,s4,s5,s6,s7,s8,s9,s10,s11;s0=peg$currPos;s1=peg$parseWS();if(s1===peg$FAILED){s1=null}if(s1!==peg$FAILED){if(input.substr(peg$currPos,5)===peg$c1370){s2=peg$c1370;peg$currPos+=5}else{s2=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1371)}}if(s2!==peg$FAILED){s3=peg$parseWS();if(s3===peg$FAILED){s3=null}if(s3!==peg$FAILED){if(input.charCodeAt(peg$currPos)===58){s4=peg$c1211;peg$currPos++}else{s4=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1212)}}if(s4!==peg$FAILED){s5=peg$parseWS();if(s5===peg$FAILED){s5=null}if(s5!==peg$FAILED){if(input.charCodeAt(peg$currPos)===123){s6=peg$c1227;peg$currPos++}else{s6=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1228)}}if(s6!==peg$FAILED){s7=peg$parseWS();if(s7===peg$FAILED){s7=null}if(s7!==peg$FAILED){s8=peg$parseConfigStyleItems();if(s8===peg$FAILED){s8=null}if(s8!==peg$FAILED){s9=peg$parseWS();if(s9===peg$FAILED){s9=null}if(s9!==peg$FAILED){if(input.substr(peg$currPos,2)===peg$c1347){s10=peg$c1347;peg$currPos+=2}else{s10=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1348)}}if(s10!==peg$FAILED){s11=peg$parseWS();if(s11===peg$FAILED){s11=null}if(s11!==peg$FAILED){peg$savedPos=s0;s1=peg$c1372(s8);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}return s0}function peg$parseConfigEditor(){var s0,s1,s2,s3,s4,s5,s6,s7,s8,s9,s10,s11;s0=peg$currPos;s1=peg$parseWS();if(s1===peg$FAILED){s1=null}if(s1!==peg$FAILED){if(input.substr(peg$currPos,6)===peg$c1373){s2=peg$c1373;peg$currPos+=6}else{s2=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1374)}}if(s2!==peg$FAILED){s3=peg$parseWS();if(s3===peg$FAILED){s3=null}if(s3!==peg$FAILED){if(input.charCodeAt(peg$currPos)===58){s4=peg$c1211;peg$currPos++}else{s4=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1212)}}if(s4!==peg$FAILED){s5=peg$parseWS();if(s5===peg$FAILED){s5=null}if(s5!==peg$FAILED){if(input.charCodeAt(peg$currPos)===123){s6=peg$c1227;peg$currPos++}else{s6=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1228)}}if(s6!==peg$FAILED){s7=peg$parseWS();if(s7===peg$FAILED){s7=null}if(s7!==peg$FAILED){s8=[];s9=peg$parseEditorConfigItem();while(s9!==peg$FAILED){s8.push(s9);s9=peg$parseEditorConfigItem()}if(s8!==peg$FAILED){s9=peg$parseWS();if(s9===peg$FAILED){s9=null}if(s9!==peg$FAILED){if(input.substr(peg$currPos,2)===peg$c1347){s10=peg$c1347;peg$currPos+=2}else{s10=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1348)}}if(s10!==peg$FAILED){s11=peg$parseWS();if(s11===peg$FAILED){s11=null}if(s11!==peg$FAILED){peg$savedPos=s0;s1=peg$c1375(s8);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}return s0}function peg$parseEditorConfigItem(){var s0;s0=peg$parseEditorStochasticRunCount();if(s0===peg$FAILED){s0=peg$parseEditorPanels()}return s0}function peg$parseEditorStochasticRunCount(){var s0,s1,s2,s3,s4,s5,s6,s7,s8,s9;s0=peg$currPos;s1=peg$parseWS();if(s1===peg$FAILED){s1=null}if(s1!==peg$FAILED){if(input.substr(peg$currPos,20)===peg$c1376){s2=peg$c1376;peg$currPos+=20}else{s2=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1377)}}if(s2!==peg$FAILED){s3=peg$parseWS();if(s3===peg$FAILED){s3=null}if(s3!==peg$FAILED){if(input.charCodeAt(peg$currPos)===58){s4=peg$c1211;peg$currPos++}else{s4=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1212)}}if(s4!==peg$FAILED){s5=peg$parseWS();if(s5===peg$FAILED){s5=null}if(s5!==peg$FAILED){s6=peg$parseIntegerLiteral();if(s6!==peg$FAILED){s7=peg$parseWS();if(s7===peg$FAILED){s7=null}if(s7!==peg$FAILED){if(input.charCodeAt(peg$currPos)===59){s8=peg$c1213;peg$currPos++}else{s8=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1214)}}if(s8!==peg$FAILED){s9=peg$parseWS();if(s9===peg$FAILED){s9=null}if(s9!==peg$FAILED){peg$savedPos=s0;s1=peg$c1378(s6);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}return s0}function peg$parseEditorPanels(){var s0,s1,s2,s3,s4,s5,s6,s7,s8,s9;s0=peg$currPos;s1=peg$parseWS();if(s1===peg$FAILED){s1=null}if(s1!==peg$FAILED){if(input.substr(peg$currPos,6)===peg$c1379){s2=peg$c1379;peg$currPos+=6}else{s2=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1380)}}if(s2!==peg$FAILED){s3=peg$parseWS();if(s3===peg$FAILED){s3=null}if(s3!==peg$FAILED){if(input.charCodeAt(peg$currPos)===58){s4=peg$c1211;peg$currPos++}else{s4=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1212)}}if(s4!==peg$FAILED){s5=peg$parseWS();if(s5===peg$FAILED){s5=null}if(s5!==peg$FAILED){s6=peg$parseLabelList();if(s6!==peg$FAILED){s7=peg$parseWS();if(s7===peg$FAILED){s7=null}if(s7!==peg$FAILED){if(input.charCodeAt(peg$currPos)===59){s8=peg$c1213;peg$currPos++}else{s8=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1214)}}if(s8!==peg$FAILED){s9=peg$parseWS();if(s9===peg$FAILED){s9=null}if(s9!==peg$FAILED){peg$savedPos=s0;s1=peg$c1381(s6);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}return s0}function peg$parseConfigGraphLayout(){var s0,s1,s2,s3,s4,s5,s6,s7,s8,s9;s0=peg$currPos;s1=peg$parseWS();if(s1===peg$FAILED){s1=null}if(s1!==peg$FAILED){if(input.substr(peg$currPos,12)===peg$c1382){s2=peg$c1382;peg$currPos+=12}else{s2=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1383)}}if(s2!==peg$FAILED){s3=peg$parseWS();if(s3===peg$FAILED){s3=null}if(s3!==peg$FAILED){if(input.charCodeAt(peg$currPos)===58){s4=peg$c1211;peg$currPos++}else{s4=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1212)}}if(s4!==peg$FAILED){s5=peg$parseWS();if(s5===peg$FAILED){s5=null}if(s5!==peg$FAILED){s6=peg$parseGvizLayout();if(s6!==peg$FAILED){s7=peg$parseWS();if(s7===peg$FAILED){s7=null}if(s7!==peg$FAILED){if(input.charCodeAt(peg$currPos)===59){s8=peg$c1213;peg$currPos++}else{s8=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1214)}}if(s8!==peg$FAILED){s9=peg$parseWS();if(s9===peg$FAILED){s9=null}if(s9!==peg$FAILED){peg$savedPos=s0;s1=peg$c1384(s6);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}return s0}function peg$parseConfigStartNodes(){var s0,s1,s2,s3,s4,s5,s6,s7,s8,s9;s0=peg$currPos;s1=peg$parseWS();if(s1===peg$FAILED){s1=null}if(s1!==peg$FAILED){if(input.substr(peg$currPos,12)===peg$c1385){s2=peg$c1385;peg$currPos+=12}else{s2=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1386)}}if(s2!==peg$FAILED){s3=peg$parseWS();if(s3===peg$FAILED){s3=null}if(s3!==peg$FAILED){if(input.charCodeAt(peg$currPos)===58){s4=peg$c1211;peg$currPos++}else{s4=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1212)}}if(s4!==peg$FAILED){s5=peg$parseWS();if(s5===peg$FAILED){s5=null}if(s5!==peg$FAILED){s6=peg$parseLabelList();if(s6!==peg$FAILED){s7=peg$parseWS();if(s7===peg$FAILED){s7=null}if(s7!==peg$FAILED){if(input.charCodeAt(peg$currPos)===59){s8=peg$c1213;peg$currPos++}else{s8=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1214)}}if(s8!==peg$FAILED){s9=peg$parseWS();if(s9===peg$FAILED){s9=null}if(s9!==peg$FAILED){peg$savedPos=s0;s1=peg$c1387(s6);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}return s0}function peg$parseConfigEndNodes(){var s0,s1,s2,s3,s4,s5,s6,s7,s8,s9;s0=peg$currPos;s1=peg$parseWS();if(s1===peg$FAILED){s1=null}if(s1!==peg$FAILED){if(input.substr(peg$currPos,10)===peg$c1388){s2=peg$c1388;peg$currPos+=10}else{s2=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1389)}}if(s2!==peg$FAILED){s3=peg$parseWS();if(s3===peg$FAILED){s3=null}if(s3!==peg$FAILED){if(input.charCodeAt(peg$currPos)===58){s4=peg$c1211;peg$currPos++}else{s4=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1212)}}if(s4!==peg$FAILED){s5=peg$parseWS();if(s5===peg$FAILED){s5=null}if(s5!==peg$FAILED){s6=peg$parseLabelList();if(s6!==peg$FAILED){s7=peg$parseWS();if(s7===peg$FAILED){s7=null}if(s7!==peg$FAILED){if(input.charCodeAt(peg$currPos)===59){s8=peg$c1213;peg$currPos++}else{s8=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1214)}}if(s8!==peg$FAILED){s9=peg$parseWS();if(s9===peg$FAILED){s9=null}if(s9!==peg$FAILED){peg$savedPos=s0;s1=peg$c1390(s6);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}return s0}function peg$parseConfigFailedOutputs(){var s0,s1,s2,s3,s4,s5,s6,s7,s8,s9;s0=peg$currPos;s1=peg$parseWS();if(s1===peg$FAILED){s1=null}if(s1!==peg$FAILED){if(input.substr(peg$currPos,14)===peg$c1391){s2=peg$c1391;peg$currPos+=14}else{s2=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1392)}}if(s2!==peg$FAILED){s3=peg$parseWS();if(s3===peg$FAILED){s3=null}if(s3!==peg$FAILED){if(input.charCodeAt(peg$currPos)===58){s4=peg$c1211;peg$currPos++}else{s4=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1212)}}if(s4!==peg$FAILED){s5=peg$parseWS();if(s5===peg$FAILED){s5=null}if(s5!==peg$FAILED){s6=peg$currPos;s7=peg$parseLabelOrLabelList();if(s7!==peg$FAILED){peg$savedPos=s6;s7=peg$c1219(s7)}s6=s7;if(s6!==peg$FAILED){s7=peg$parseWS();if(s7===peg$FAILED){s7=null}if(s7!==peg$FAILED){if(input.charCodeAt(peg$currPos)===59){s8=peg$c1213;peg$currPos++}else{s8=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1214)}}if(s8!==peg$FAILED){s9=peg$parseWS();if(s9===peg$FAILED){s9=null}if(s9!==peg$FAILED){peg$savedPos=s0;s1=peg$c1393(s6);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}return s0}function peg$parseConfigGraphBgColor(){var s0,s1,s2,s3,s4,s5,s6,s7,s8,s9;s0=peg$currPos;s1=peg$parseWS();if(s1===peg$FAILED){s1=null}if(s1!==peg$FAILED){if(input.substr(peg$currPos,14)===peg$c1394){s2=peg$c1394;peg$currPos+=14}else{s2=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1395)}}if(s2!==peg$FAILED){s3=peg$parseWS();if(s3===peg$FAILED){s3=null}if(s3!==peg$FAILED){if(input.charCodeAt(peg$currPos)===58){s4=peg$c1211;peg$currPos++}else{s4=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1212)}}if(s4!==peg$FAILED){s5=peg$parseWS();if(s5===peg$FAILED){s5=null}if(s5!==peg$FAILED){s6=peg$currPos;s7=peg$parseColor();if(s7!==peg$FAILED){peg$savedPos=s6;s7=peg$c1219(s7)}s6=s7;if(s6!==peg$FAILED){s7=peg$parseWS();if(s7===peg$FAILED){s7=null}if(s7!==peg$FAILED){if(input.charCodeAt(peg$currPos)===59){s8=peg$c1213;peg$currPos++}else{s8=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1214)}}if(s8!==peg$FAILED){s9=peg$parseWS();if(s9===peg$FAILED){s9=null}if(s9!==peg$FAILED){peg$savedPos=s0;s1=peg$c1396(s6);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}return s0}function peg$parseConfigAllowsOverride(){var s0,s1,s2,s3,s4,s5,s6,s7,s8,s9;s0=peg$currPos;s1=peg$parseWS();if(s1===peg$FAILED){s1=null}if(s1!==peg$FAILED){if(input.substr(peg$currPos,15)===peg$c1397){s2=peg$c1397;peg$currPos+=15}else{s2=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1398)}}if(s2!==peg$FAILED){s3=peg$parseWS();if(s3===peg$FAILED){s3=null}if(s3!==peg$FAILED){if(input.charCodeAt(peg$currPos)===58){s4=peg$c1211;peg$currPos++}else{s4=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1212)}}if(s4!==peg$FAILED){s5=peg$parseWS();if(s5===peg$FAILED){s5=null}if(s5!==peg$FAILED){s6=peg$parseOverrideT();if(s6!==peg$FAILED){s7=peg$parseWS();if(s7===peg$FAILED){s7=null}if(s7!==peg$FAILED){if(input.charCodeAt(peg$currPos)===59){s8=peg$c1213;peg$currPos++}else{s8=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1214)}}if(s8!==peg$FAILED){s9=peg$parseWS();if(s9===peg$FAILED){s9=null}if(s9!==peg$FAILED){peg$savedPos=s0;s1=peg$c1399(s6);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}return s0}function peg$parseConfigAllowIslands(){var s0,s1,s2,s3,s4,s5,s6,s7,s8,s9;s0=peg$currPos;s1=peg$parseWS();if(s1===peg$FAILED){s1=null}if(s1!==peg$FAILED){if(input.substr(peg$currPos,13)===peg$c1400){s2=peg$c1400;peg$currPos+=13}else{s2=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1401)}}if(s2!==peg$FAILED){s3=peg$parseWS();if(s3===peg$FAILED){s3=null}if(s3!==peg$FAILED){if(input.charCodeAt(peg$currPos)===58){s4=peg$c1211;peg$currPos++}else{s4=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1212)}}if(s4!==peg$FAILED){s5=peg$parseWS();if(s5===peg$FAILED){s5=null}if(s5!==peg$FAILED){s6=peg$currPos;s7=peg$parseIslandsT();if(s7!==peg$FAILED){peg$savedPos=s6;s7=peg$c1219(s7)}s6=s7;if(s6!==peg$FAILED){s7=peg$parseWS();if(s7===peg$FAILED){s7=null}if(s7!==peg$FAILED){if(input.charCodeAt(peg$currPos)===59){s8=peg$c1213;peg$currPos++}else{s8=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1214)}}if(s8!==peg$FAILED){s9=peg$parseWS();if(s9===peg$FAILED){s9=null}if(s9!==peg$FAILED){peg$savedPos=s0;s1=peg$c1402(s6);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}return s0}function peg$parseOverrideT(){var s0,s1;s0=peg$currPos;if(input.substr(peg$currPos,4)===peg$c230){s1=peg$c230;peg$currPos+=4}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c231)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1403()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,5)===peg$c233){s1=peg$c233;peg$currPos+=5}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c234)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1404()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,9)===peg$c279){s1=peg$c279;peg$currPos+=9}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c280)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c281()}s0=s1}}return s0}function peg$parseIslandsT(){var s0,s1;s0=peg$currPos;if(input.substr(peg$currPos,10)===peg$c1405){s1=peg$c1405;peg$currPos+=10}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1406)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1407()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,4)===peg$c230){s1=peg$c230;peg$currPos+=4}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c231)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1408()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,5)===peg$c233){s1=peg$c233;peg$currPos+=5}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c234)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1409()}s0=s1}}return s0}function peg$parseConfig(){var s0;peg$silentFails++;s0=peg$parseConfigGraphLayout();if(s0===peg$FAILED){s0=peg$parseConfigStartNodes();if(s0===peg$FAILED){s0=peg$parseConfigEndNodes();if(s0===peg$FAILED){s0=peg$parseConfigFailedOutputs();if(s0===peg$FAILED){s0=peg$parseConfigTransition();if(s0===peg$FAILED){s0=peg$parseConfigGraph();if(s0===peg$FAILED){s0=peg$parseConfigEditor();if(s0===peg$FAILED){s0=peg$parseConfigAnyState();if(s0===peg$FAILED){s0=peg$parseConfigGraphBgColor();if(s0===peg$FAILED){s0=peg$parseConfigAllowsOverride();if(s0===peg$FAILED){s0=peg$parseConfigAllowIslands()}}}}}}}}}}peg$silentFails--;if(s0===peg$FAILED){if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1410)}}return s0}function peg$parseLicenseOrLabelOrList(){var s0;if(input.substr(peg$currPos,3)===peg$c1411){s0=peg$c1411;peg$currPos+=3}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1412)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,12)===peg$c1413){s0=peg$c1413;peg$currPos+=12}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1414)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,12)===peg$c1415){s0=peg$c1415;peg$currPos+=12}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1416)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,10)===peg$c1417){s0=peg$c1417;peg$currPos+=10}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1418)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,11)===peg$c1419){s0=peg$c1419;peg$currPos+=11}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1420)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,13)===peg$c1421){s0=peg$c1421;peg$currPos+=13}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1422)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,6)===peg$c1423){s0=peg$c1423;peg$currPos+=6}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1424)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,6)===peg$c1425){s0=peg$c1425;peg$currPos+=6}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1426)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,9)===peg$c1427){s0=peg$c1427;peg$currPos+=9}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1428)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,9)===peg$c1429){s0=peg$c1429;peg$currPos+=9}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1430)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,7)===peg$c1431){s0=peg$c1431;peg$currPos+=7}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1432)}}if(s0===peg$FAILED){s0=peg$parseLabel();if(s0===peg$FAILED){s0=peg$parseLabelList()}}}}}}}}}}}}return s0}function peg$parseDirection(){var s0;peg$silentFails++;if(input.substr(peg$currPos,2)===peg$c1434){s0=peg$c1434;peg$currPos+=2}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1435)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,5)===peg$c1436){s0=peg$c1436;peg$currPos+=5}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1437)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,4)===peg$c1438){s0=peg$c1438;peg$currPos+=4}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1439)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,4)===peg$c1440){s0=peg$c1440;peg$currPos+=4}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1441)}}}}}peg$silentFails--;if(s0===peg$FAILED){if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1433)}}return s0}function peg$parseHookDefinition(){var s0;peg$silentFails++;if(input.substr(peg$currPos,4)===peg$c1443){s0=peg$c1443;peg$currPos+=4}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1444)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,6)===peg$c1445){s0=peg$c1445;peg$currPos+=6}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1446)}}}peg$silentFails--;if(s0===peg$FAILED){if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1442)}}return s0}function peg$parseMachineAuthor(){var s0,s1,s2,s3,s4,s5,s6,s7,s8,s9;s0=peg$currPos;s1=peg$parseWS();if(s1===peg$FAILED){s1=null}if(s1!==peg$FAILED){if(input.substr(peg$currPos,14)===peg$c1447){s2=peg$c1447;peg$currPos+=14}else{s2=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1448)}}if(s2!==peg$FAILED){s3=peg$parseWS();if(s3===peg$FAILED){s3=null}if(s3!==peg$FAILED){if(input.charCodeAt(peg$currPos)===58){s4=peg$c1211;peg$currPos++}else{s4=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1212)}}if(s4!==peg$FAILED){s5=peg$parseWS();if(s5===peg$FAILED){s5=null}if(s5!==peg$FAILED){s6=peg$currPos;s7=peg$parseLabelOrLabelList();if(s7!==peg$FAILED){peg$savedPos=s6;s7=peg$c1219(s7)}s6=s7;if(s6!==peg$FAILED){s7=peg$parseWS();if(s7===peg$FAILED){s7=null}if(s7!==peg$FAILED){if(input.charCodeAt(peg$currPos)===59){s8=peg$c1213;peg$currPos++}else{s8=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1214)}}if(s8!==peg$FAILED){s9=peg$parseWS();if(s9===peg$FAILED){s9=null}if(s9!==peg$FAILED){peg$savedPos=s0;s1=peg$c1449(s6);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}return s0}function peg$parseMachineContributor(){var s0,s1,s2,s3,s4,s5,s6,s7,s8,s9;s0=peg$currPos;s1=peg$parseWS();if(s1===peg$FAILED){s1=null}if(s1!==peg$FAILED){if(input.substr(peg$currPos,19)===peg$c1450){s2=peg$c1450;peg$currPos+=19}else{s2=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1451)}}if(s2!==peg$FAILED){s3=peg$parseWS();if(s3===peg$FAILED){s3=null}if(s3!==peg$FAILED){if(input.charCodeAt(peg$currPos)===58){s4=peg$c1211;peg$currPos++}else{s4=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1212)}}if(s4!==peg$FAILED){s5=peg$parseWS();if(s5===peg$FAILED){s5=null}if(s5!==peg$FAILED){s6=peg$currPos;s7=peg$parseLabelOrLabelList();if(s7!==peg$FAILED){peg$savedPos=s6;s7=peg$c1219(s7)}s6=s7;if(s6!==peg$FAILED){s7=peg$parseWS();if(s7===peg$FAILED){s7=null}if(s7!==peg$FAILED){if(input.charCodeAt(peg$currPos)===59){s8=peg$c1213;peg$currPos++}else{s8=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1214)}}if(s8!==peg$FAILED){s9=peg$parseWS();if(s9===peg$FAILED){s9=null}if(s9!==peg$FAILED){peg$savedPos=s0;s1=peg$c1452(s6);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}return s0}function peg$parseMachineComment(){var s0,s1,s2,s3,s4,s5,s6,s7,s8,s9;s0=peg$currPos;s1=peg$parseWS();if(s1===peg$FAILED){s1=null}if(s1!==peg$FAILED){if(input.substr(peg$currPos,15)===peg$c1453){s2=peg$c1453;peg$currPos+=15}else{s2=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1454)}}if(s2!==peg$FAILED){s3=peg$parseWS();if(s3===peg$FAILED){s3=null}if(s3!==peg$FAILED){if(input.charCodeAt(peg$currPos)===58){s4=peg$c1211;peg$currPos++}else{s4=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1212)}}if(s4!==peg$FAILED){s5=peg$parseWS();if(s5===peg$FAILED){s5=null}if(s5!==peg$FAILED){s6=peg$currPos;s7=peg$parseLabelOrLabelList();if(s7!==peg$FAILED){peg$savedPos=s6;s7=peg$c1219(s7)}s6=s7;if(s6!==peg$FAILED){s7=peg$parseWS();if(s7===peg$FAILED){s7=null}if(s7!==peg$FAILED){if(input.charCodeAt(peg$currPos)===59){s8=peg$c1213;peg$currPos++}else{s8=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1214)}}if(s8!==peg$FAILED){s9=peg$parseWS();if(s9===peg$FAILED){s9=null}if(s9!==peg$FAILED){peg$savedPos=s0;s1=peg$c1455(s6);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}return s0}function peg$parseMachineDefinition(){var s0,s1,s2,s3,s4,s5,s6,s7,s8,s9;s0=peg$currPos;s1=peg$parseWS();if(s1===peg$FAILED){s1=null}if(s1!==peg$FAILED){if(input.substr(peg$currPos,18)===peg$c1456){s2=peg$c1456;peg$currPos+=18}else{s2=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1457)}}if(s2!==peg$FAILED){s3=peg$parseWS();if(s3===peg$FAILED){s3=null}if(s3!==peg$FAILED){if(input.charCodeAt(peg$currPos)===58){s4=peg$c1211;peg$currPos++}else{s4=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1212)}}if(s4!==peg$FAILED){s5=peg$parseWS();if(s5===peg$FAILED){s5=null}if(s5!==peg$FAILED){s6=peg$currPos;s7=peg$parseURL();if(s7!==peg$FAILED){peg$savedPos=s6;s7=peg$c1219(s7)}s6=s7;if(s6!==peg$FAILED){s7=peg$parseWS();if(s7===peg$FAILED){s7=null}if(s7!==peg$FAILED){if(input.charCodeAt(peg$currPos)===59){s8=peg$c1213;peg$currPos++}else{s8=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1214)}}if(s8!==peg$FAILED){s9=peg$parseWS();if(s9===peg$FAILED){s9=null}if(s9!==peg$FAILED){peg$savedPos=s0;s1=peg$c1458(s6);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}return s0}function peg$parseMachineName(){var s0,s1,s2,s3,s4,s5,s6,s7,s8,s9;s0=peg$currPos;s1=peg$parseWS();if(s1===peg$FAILED){s1=null}if(s1!==peg$FAILED){if(input.substr(peg$currPos,12)===peg$c1459){s2=peg$c1459;peg$currPos+=12}else{s2=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1460)}}if(s2!==peg$FAILED){s3=peg$parseWS();if(s3===peg$FAILED){s3=null}if(s3!==peg$FAILED){if(input.charCodeAt(peg$currPos)===58){s4=peg$c1211;peg$currPos++}else{s4=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1212)}}if(s4!==peg$FAILED){s5=peg$parseWS();if(s5===peg$FAILED){s5=null}if(s5!==peg$FAILED){s6=peg$currPos;s7=peg$parseLabel();if(s7!==peg$FAILED){peg$savedPos=s6;s7=peg$c1219(s7)}s6=s7;if(s6!==peg$FAILED){s7=peg$parseWS();if(s7===peg$FAILED){s7=null}if(s7!==peg$FAILED){if(input.charCodeAt(peg$currPos)===59){s8=peg$c1213;peg$currPos++}else{s8=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1214)}}if(s8!==peg$FAILED){s9=peg$parseWS();if(s9===peg$FAILED){s9=null}if(s9!==peg$FAILED){peg$savedPos=s0;s1=peg$c1461(s6);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}return s0}function peg$parseNpmName(){var s0,s1,s2,s3,s4,s5,s6,s7,s8,s9;s0=peg$currPos;s1=peg$parseWS();if(s1===peg$FAILED){s1=null}if(s1!==peg$FAILED){if(input.substr(peg$currPos,8)===peg$c1462){s2=peg$c1462;peg$currPos+=8}else{s2=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1463)}}if(s2!==peg$FAILED){s3=peg$parseWS();if(s3===peg$FAILED){s3=null}if(s3!==peg$FAILED){if(input.charCodeAt(peg$currPos)===58){s4=peg$c1211;peg$currPos++}else{s4=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1212)}}if(s4!==peg$FAILED){s5=peg$parseWS();if(s5===peg$FAILED){s5=null}if(s5!==peg$FAILED){s6=peg$currPos;s7=peg$parseLabel();if(s7!==peg$FAILED){peg$savedPos=s6;s7=peg$c1219(s7)}s6=s7;if(s6!==peg$FAILED){s7=peg$parseWS();if(s7===peg$FAILED){s7=null}if(s7!==peg$FAILED){if(input.charCodeAt(peg$currPos)===59){s8=peg$c1213;peg$currPos++}else{s8=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1214)}}if(s8!==peg$FAILED){s9=peg$parseWS();if(s9===peg$FAILED){s9=null}if(s9!==peg$FAILED){peg$savedPos=s0;s1=peg$c1464(s6);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}return s0}function peg$parseMachineReference(){var s0,s1,s2,s3,s4,s5,s6,s7,s8,s9;s0=peg$currPos;s1=peg$parseWS();if(s1===peg$FAILED){s1=null}if(s1!==peg$FAILED){if(input.substr(peg$currPos,17)===peg$c1465){s2=peg$c1465;peg$currPos+=17}else{s2=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1466)}}if(s2!==peg$FAILED){s3=peg$parseWS();if(s3===peg$FAILED){s3=null}if(s3!==peg$FAILED){if(input.charCodeAt(peg$currPos)===58){s4=peg$c1211;peg$currPos++}else{s4=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1212)}}if(s4!==peg$FAILED){s5=peg$parseWS();if(s5===peg$FAILED){s5=null}if(s5!==peg$FAILED){s6=peg$currPos;s7=peg$parseLabelOrLabelList();if(s7!==peg$FAILED){peg$savedPos=s6;s7=peg$c1219(s7)}s6=s7;if(s6!==peg$FAILED){s7=peg$parseWS();if(s7===peg$FAILED){s7=null}if(s7!==peg$FAILED){if(input.charCodeAt(peg$currPos)===59){s8=peg$c1213;peg$currPos++}else{s8=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1214)}}if(s8!==peg$FAILED){s9=peg$parseWS();if(s9===peg$FAILED){s9=null}if(s9!==peg$FAILED){peg$savedPos=s0;s1=peg$c1467(s6);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}return s0}function peg$parseMachineVersion(){var s0,s1,s2,s3,s4,s5,s6,s7,s8,s9;s0=peg$currPos;s1=peg$parseWS();if(s1===peg$FAILED){s1=null}if(s1!==peg$FAILED){if(input.substr(peg$currPos,15)===peg$c1468){s2=peg$c1468;peg$currPos+=15}else{s2=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1469)}}if(s2!==peg$FAILED){s3=peg$parseWS();if(s3===peg$FAILED){s3=null}if(s3!==peg$FAILED){if(input.charCodeAt(peg$currPos)===58){s4=peg$c1211;peg$currPos++}else{s4=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1212)}}if(s4!==peg$FAILED){s5=peg$parseWS();if(s5===peg$FAILED){s5=null}if(s5!==peg$FAILED){s6=peg$currPos;s7=peg$parseSemVer();if(s7!==peg$FAILED){peg$savedPos=s6;s7=peg$c1219(s7)}s6=s7;if(s6!==peg$FAILED){s7=peg$parseWS();if(s7===peg$FAILED){s7=null}if(s7!==peg$FAILED){if(input.charCodeAt(peg$currPos)===59){s8=peg$c1213;peg$currPos++}else{s8=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1214)}}if(s8!==peg$FAILED){s9=peg$parseWS();if(s9===peg$FAILED){s9=null}if(s9!==peg$FAILED){peg$savedPos=s0;s1=peg$c1470(s6);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}return s0}function peg$parseMachineLicense(){var s0,s1,s2,s3,s4,s5,s6,s7,s8,s9;s0=peg$currPos;s1=peg$parseWS();if(s1===peg$FAILED){s1=null}if(s1!==peg$FAILED){if(input.substr(peg$currPos,15)===peg$c1471){s2=peg$c1471;peg$currPos+=15}else{s2=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1472)}}if(s2!==peg$FAILED){s3=peg$parseWS();if(s3===peg$FAILED){s3=null}if(s3!==peg$FAILED){if(input.charCodeAt(peg$currPos)===58){s4=peg$c1211;peg$currPos++}else{s4=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1212)}}if(s4!==peg$FAILED){s5=peg$parseWS();if(s5===peg$FAILED){s5=null}if(s5!==peg$FAILED){s6=peg$currPos;s7=peg$parseLicenseOrLabelOrList();if(s7!==peg$FAILED){peg$savedPos=s6;s7=peg$c1219(s7)}s6=s7;if(s6!==peg$FAILED){s7=peg$parseWS();if(s7===peg$FAILED){s7=null}if(s7!==peg$FAILED){if(input.charCodeAt(peg$currPos)===59){s8=peg$c1213;peg$currPos++}else{s8=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1214)}}if(s8!==peg$FAILED){s9=peg$parseWS();if(s9===peg$FAILED){s9=null}if(s9!==peg$FAILED){peg$savedPos=s0;s1=peg$c1473(s6);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}return s0}function peg$parseMachineLanguage(){var s0,s1,s2,s3,s4,s5,s6,s7,s8,s9;s0=peg$currPos;s1=peg$parseWS();if(s1===peg$FAILED){s1=null}if(s1!==peg$FAILED){if(input.substr(peg$currPos,16)===peg$c1474){s2=peg$c1474;peg$currPos+=16}else{s2=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1475)}}if(s2!==peg$FAILED){s3=peg$parseWS();if(s3===peg$FAILED){s3=null}if(s3!==peg$FAILED){if(input.charCodeAt(peg$currPos)===58){s4=peg$c1211;peg$currPos++}else{s4=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1212)}}if(s4!==peg$FAILED){s5=peg$parseWS();if(s5===peg$FAILED){s5=null}if(s5!==peg$FAILED){s6=peg$currPos;s7=peg$parseLabel();if(s7!==peg$FAILED){peg$savedPos=s6;s7=peg$c1219(s7)}s6=s7;if(s6!==peg$FAILED){s7=peg$parseWS();if(s7===peg$FAILED){s7=null}if(s7!==peg$FAILED){if(input.charCodeAt(peg$currPos)===59){s8=peg$c1213;peg$currPos++}else{s8=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1214)}}if(s8!==peg$FAILED){s9=peg$parseWS();if(s9===peg$FAILED){s9=null}if(s9!==peg$FAILED){peg$savedPos=s0;s1=peg$c1476(s6);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}return s0}function peg$parseFslVersion(){var s0,s1,s2,s3,s4,s5,s6,s7,s8,s9;s0=peg$currPos;s1=peg$parseWS();if(s1===peg$FAILED){s1=null}if(s1!==peg$FAILED){if(input.substr(peg$currPos,11)===peg$c1477){s2=peg$c1477;peg$currPos+=11}else{s2=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1478)}}if(s2!==peg$FAILED){s3=peg$parseWS();if(s3===peg$FAILED){s3=null}if(s3!==peg$FAILED){if(input.charCodeAt(peg$currPos)===58){s4=peg$c1211;peg$currPos++}else{s4=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1212)}}if(s4!==peg$FAILED){s5=peg$parseWS();if(s5===peg$FAILED){s5=null}if(s5!==peg$FAILED){s6=peg$currPos;s7=peg$parseSemVer();if(s7!==peg$FAILED){peg$savedPos=s6;s7=peg$c1219(s7)}s6=s7;if(s6!==peg$FAILED){s7=peg$parseWS();if(s7===peg$FAILED){s7=null}if(s7!==peg$FAILED){if(input.charCodeAt(peg$currPos)===59){s8=peg$c1213;peg$currPos++}else{s8=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1214)}}if(s8!==peg$FAILED){s9=peg$parseWS();if(s9===peg$FAILED){s9=null}if(s9!==peg$FAILED){peg$savedPos=s0;s1=peg$c1479(s6);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}return s0}function peg$parseMachineTheme(){var s0,s1,s2,s3,s4,s5,s6,s7,s8,s9;s0=peg$currPos;s1=peg$parseWS();if(s1===peg$FAILED){s1=null}if(s1!==peg$FAILED){if(input.substr(peg$currPos,5)===peg$c1480){s2=peg$c1480;peg$currPos+=5}else{s2=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1481)}}if(s2!==peg$FAILED){s3=peg$parseWS();if(s3===peg$FAILED){s3=null}if(s3!==peg$FAILED){if(input.charCodeAt(peg$currPos)===58){s4=peg$c1211;peg$currPos++}else{s4=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1212)}}if(s4!==peg$FAILED){s5=peg$parseWS();if(s5===peg$FAILED){s5=null}if(s5!==peg$FAILED){s6=peg$currPos;s7=peg$parseThemeOrThemeList();if(s7!==peg$FAILED){peg$savedPos=s6;s7=peg$c1219(s7)}s6=s7;if(s6!==peg$FAILED){s7=peg$parseWS();if(s7===peg$FAILED){s7=null}if(s7!==peg$FAILED){if(input.charCodeAt(peg$currPos)===59){s8=peg$c1213;peg$currPos++}else{s8=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1214)}}if(s8!==peg$FAILED){s9=peg$parseWS();if(s9===peg$FAILED){s9=null}if(s9!==peg$FAILED){peg$savedPos=s0;s1=peg$c1482(s6);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}return s0}function peg$parseMachineFlow(){var s0,s1,s2,s3,s4,s5,s6,s7,s8,s9;s0=peg$currPos;s1=peg$parseWS();if(s1===peg$FAILED){s1=null}if(s1!==peg$FAILED){if(input.substr(peg$currPos,4)===peg$c1483){s2=peg$c1483;peg$currPos+=4}else{s2=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1484)}}if(s2!==peg$FAILED){s3=peg$parseWS();if(s3===peg$FAILED){s3=null}if(s3!==peg$FAILED){if(input.charCodeAt(peg$currPos)===58){s4=peg$c1211;peg$currPos++}else{s4=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1212)}}if(s4!==peg$FAILED){s5=peg$parseWS();if(s5===peg$FAILED){s5=null}if(s5!==peg$FAILED){s6=peg$currPos;s7=peg$parseDirection();if(s7!==peg$FAILED){peg$savedPos=s6;s7=peg$c1219(s7)}s6=s7;if(s6!==peg$FAILED){s7=peg$parseWS();if(s7===peg$FAILED){s7=null}if(s7!==peg$FAILED){if(input.charCodeAt(peg$currPos)===59){s8=peg$c1213;peg$currPos++}else{s8=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1214)}}if(s8!==peg$FAILED){s9=peg$parseWS();if(s9===peg$FAILED){s9=null}if(s9!==peg$FAILED){peg$savedPos=s0;s1=peg$c1485(s6);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}return s0}function peg$parseMachineHookDefinition(){var s0,s1,s2,s3,s4,s5,s6,s7,s8,s9;s0=peg$currPos;s1=peg$parseWS();if(s1===peg$FAILED){s1=null}if(s1!==peg$FAILED){if(input.substr(peg$currPos,5)===peg$c1486){s2=peg$c1486;peg$currPos+=5}else{s2=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1487)}}if(s2!==peg$FAILED){s3=peg$parseWS();if(s3===peg$FAILED){s3=null}if(s3!==peg$FAILED){if(input.charCodeAt(peg$currPos)===58){s4=peg$c1211;peg$currPos++}else{s4=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1212)}}if(s4!==peg$FAILED){s5=peg$parseWS();if(s5===peg$FAILED){s5=null}if(s5!==peg$FAILED){s6=peg$currPos;s7=peg$parseHookDefinition();if(s7!==peg$FAILED){peg$savedPos=s6;s7=peg$c1219(s7)}s6=s7;if(s6!==peg$FAILED){s7=peg$parseWS();if(s7===peg$FAILED){s7=null}if(s7!==peg$FAILED){if(input.charCodeAt(peg$currPos)===59){s8=peg$c1213;peg$currPos++}else{s8=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1214)}}if(s8!==peg$FAILED){s9=peg$parseWS();if(s9===peg$FAILED){s9=null}if(s9!==peg$FAILED){peg$savedPos=s0;s1=peg$c1488(s6);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}return s0}function peg$parseDotPreamble(){var s0,s1,s2,s3,s4,s5,s6,s7,s8,s9;s0=peg$currPos;s1=peg$parseWS();if(s1===peg$FAILED){s1=null}if(s1!==peg$FAILED){if(input.substr(peg$currPos,12)===peg$c1489){s2=peg$c1489;peg$currPos+=12}else{s2=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1490)}}if(s2!==peg$FAILED){s3=peg$parseWS();if(s3===peg$FAILED){s3=null}if(s3!==peg$FAILED){if(input.charCodeAt(peg$currPos)===58){s4=peg$c1211;peg$currPos++}else{s4=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1212)}}if(s4!==peg$FAILED){s5=peg$parseWS();if(s5===peg$FAILED){s5=null}if(s5!==peg$FAILED){s6=peg$currPos;s7=peg$parseString();if(s7!==peg$FAILED){peg$savedPos=s6;s7=peg$c1219(s7)}s6=s7;if(s6!==peg$FAILED){s7=peg$parseWS();if(s7===peg$FAILED){s7=null}if(s7!==peg$FAILED){if(input.charCodeAt(peg$currPos)===59){s8=peg$c1213;peg$currPos++}else{s8=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1214)}}if(s8!==peg$FAILED){s9=peg$parseWS();if(s9===peg$FAILED){s9=null}if(s9!==peg$FAILED){peg$savedPos=s0;s1=peg$c1491(s6);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}return s0}function peg$parseDefaultSizeVal(){var s0,s1,s2,s3;s0=peg$currPos;if(input.substr(peg$currPos,6)===peg$c1492){s1=peg$c1492;peg$currPos+=6}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1493)}}if(s1!==peg$FAILED){s2=peg$parseWS();if(s2!==peg$FAILED){s3=peg$parseNonNegNumber();if(s3!==peg$FAILED){peg$savedPos=s0;s1=peg$c1494(s3);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}if(s0===peg$FAILED){s0=peg$currPos;s1=peg$parseNonNegNumber();if(s1!==peg$FAILED){s2=peg$parseNonNegNumber();if(s2!==peg$FAILED){peg$savedPos=s0;s1=peg$c1495(s1,s2);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}if(s0===peg$FAILED){s0=peg$currPos;s1=peg$parseNonNegNumber();if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1496(s1)}s0=s1}}return s0}function peg$parseDefaultSize(){var s0,s1,s2,s3,s4,s5,s6,s7,s8,s9;s0=peg$currPos;s1=peg$parseWS();if(s1===peg$FAILED){s1=null}if(s1!==peg$FAILED){if(input.substr(peg$currPos,12)===peg$c1497){s2=peg$c1497;peg$currPos+=12}else{s2=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1498)}}if(s2!==peg$FAILED){s3=peg$parseWS();if(s3===peg$FAILED){s3=null}if(s3!==peg$FAILED){if(input.charCodeAt(peg$currPos)===58){s4=peg$c1211;peg$currPos++}else{s4=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1212)}}if(s4!==peg$FAILED){s5=peg$parseWS();if(s5===peg$FAILED){s5=null}if(s5!==peg$FAILED){s6=peg$currPos;s7=peg$parseDefaultSizeVal();if(s7!==peg$FAILED){peg$savedPos=s6;s7=peg$c1219(s7)}s6=s7;if(s6!==peg$FAILED){s7=peg$parseWS();if(s7===peg$FAILED){s7=null}if(s7!==peg$FAILED){if(input.charCodeAt(peg$currPos)===59){s8=peg$c1213;peg$currPos++}else{s8=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1214)}}if(s8!==peg$FAILED){s9=peg$parseWS();if(s9===peg$FAILED){s9=null}if(s9!==peg$FAILED){peg$savedPos=s0;s1=peg$c1499(s6);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}return s0}function peg$parseMachineAttribute(){var s0;peg$silentFails++;s0=peg$parseFslVersion();if(s0===peg$FAILED){s0=peg$parseMachineName();if(s0===peg$FAILED){s0=peg$parseNpmName();if(s0===peg$FAILED){s0=peg$parseMachineAuthor();if(s0===peg$FAILED){s0=peg$parseMachineContributor();if(s0===peg$FAILED){s0=peg$parseMachineComment();if(s0===peg$FAILED){s0=peg$parseMachineDefinition();if(s0===peg$FAILED){s0=peg$parseMachineReference();if(s0===peg$FAILED){s0=peg$parseMachineVersion();if(s0===peg$FAILED){s0=peg$parseMachineLicense();if(s0===peg$FAILED){s0=peg$parseMachineLanguage();if(s0===peg$FAILED){s0=peg$parseMachineTheme();if(s0===peg$FAILED){s0=peg$parseDotPreamble();if(s0===peg$FAILED){s0=peg$parseMachineFlow();if(s0===peg$FAILED){s0=peg$parseMachineHookDefinition();if(s0===peg$FAILED){s0=peg$parseDefaultSize()}}}}}}}}}}}}}}}peg$silentFails--;if(s0===peg$FAILED){if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1500)}}return s0}function peg$parsePropertyVal(){var s0;s0=peg$parseString();if(s0===peg$FAILED){s0=peg$parseBoolean();if(s0===peg$FAILED){s0=peg$parseJsNumericLiteral();if(s0===peg$FAILED){s0=peg$parseNull();if(s0===peg$FAILED){s0=peg$parseUndefined()}}}}return s0}function peg$parseSdStateLabel(){var s0,s1,s2,s3,s4,s5,s6,s7,s8,s9;peg$silentFails++;s0=peg$currPos;s1=peg$parseWS();if(s1===peg$FAILED){s1=null}if(s1!==peg$FAILED){if(input.substr(peg$currPos,5)===peg$c1501){s2=peg$c1501;peg$currPos+=5}else{s2=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1502)}}if(s2!==peg$FAILED){s3=peg$parseWS();if(s3===peg$FAILED){s3=null}if(s3!==peg$FAILED){if(input.charCodeAt(peg$currPos)===58){s4=peg$c1211;peg$currPos++}else{s4=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1212)}}if(s4!==peg$FAILED){s5=peg$parseWS();if(s5===peg$FAILED){s5=null}if(s5!==peg$FAILED){s6=peg$parseLabel();if(s6!==peg$FAILED){s7=peg$parseWS();if(s7===peg$FAILED){s7=null}if(s7!==peg$FAILED){if(input.charCodeAt(peg$currPos)===59){s8=peg$c1213;peg$currPos++}else{s8=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1214)}}if(s8!==peg$FAILED){s9=peg$parseWS();if(s9===peg$FAILED){s9=null}if(s9!==peg$FAILED){peg$savedPos=s0;s1=peg$c1503(s6);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}peg$silentFails--;if(s0===peg$FAILED){s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c311)}}return s0}function peg$parseSdStateColor(){var s0,s1,s2,s3,s4,s5,s6,s7,s8,s9;peg$silentFails++;s0=peg$currPos;s1=peg$parseWS();if(s1===peg$FAILED){s1=null}if(s1!==peg$FAILED){if(input.substr(peg$currPos,5)===peg$c1504){s2=peg$c1504;peg$currPos+=5}else{s2=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1505)}}if(s2!==peg$FAILED){s3=peg$parseWS();if(s3===peg$FAILED){s3=null}if(s3!==peg$FAILED){if(input.charCodeAt(peg$currPos)===58){s4=peg$c1211;peg$currPos++}else{s4=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1212)}}if(s4!==peg$FAILED){s5=peg$parseWS();if(s5===peg$FAILED){s5=null}if(s5!==peg$FAILED){s6=peg$currPos;s7=peg$parseColor();if(s7!==peg$FAILED){peg$savedPos=s6;s7=peg$c1219(s7)}s6=s7;if(s6!==peg$FAILED){s7=peg$parseWS();if(s7===peg$FAILED){s7=null}if(s7!==peg$FAILED){if(input.charCodeAt(peg$currPos)===59){s8=peg$c1213;peg$currPos++}else{s8=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1214)}}if(s8!==peg$FAILED){s9=peg$parseWS();if(s9===peg$FAILED){s9=null}if(s9!==peg$FAILED){peg$savedPos=s0;s1=peg$c1506(s6);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}peg$silentFails--;if(s0===peg$FAILED){s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1204)}}return s0}function peg$parseSdStateTextColor(){var s0,s1,s2,s3,s4,s5,s6,s7,s8,s9;peg$silentFails++;s0=peg$currPos;s1=peg$parseWS();if(s1===peg$FAILED){s1=null}if(s1!==peg$FAILED){if(input.substr(peg$currPos,10)===peg$c1508){s2=peg$c1508;peg$currPos+=10}else{s2=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1509)}}if(s2!==peg$FAILED){s3=peg$parseWS();if(s3===peg$FAILED){s3=null}if(s3!==peg$FAILED){if(input.charCodeAt(peg$currPos)===58){s4=peg$c1211;peg$currPos++}else{s4=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1212)}}if(s4!==peg$FAILED){s5=peg$parseWS();if(s5===peg$FAILED){s5=null}if(s5!==peg$FAILED){s6=peg$currPos;s7=peg$parseColor();if(s7!==peg$FAILED){peg$savedPos=s6;s7=peg$c1219(s7)}s6=s7;if(s6!==peg$FAILED){s7=peg$parseWS();if(s7===peg$FAILED){s7=null}if(s7!==peg$FAILED){if(input.charCodeAt(peg$currPos)===59){s8=peg$c1213;peg$currPos++}else{s8=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1214)}}if(s8!==peg$FAILED){s9=peg$parseWS();if(s9===peg$FAILED){s9=null}if(s9!==peg$FAILED){peg$savedPos=s0;s1=peg$c1510(s6);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}peg$silentFails--;if(s0===peg$FAILED){s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1507)}}return s0}function peg$parseSdStateBackgroundColor(){var s0,s1,s2,s3,s4,s5,s6,s7,s8,s9;peg$silentFails++;s0=peg$currPos;s1=peg$parseWS();if(s1===peg$FAILED){s1=null}if(s1!==peg$FAILED){if(input.substr(peg$currPos,16)===peg$c1512){s2=peg$c1512;peg$currPos+=16}else{s2=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1513)}}if(s2!==peg$FAILED){s3=peg$parseWS();if(s3===peg$FAILED){s3=null}if(s3!==peg$FAILED){if(input.charCodeAt(peg$currPos)===58){s4=peg$c1211;peg$currPos++}else{s4=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1212)}}if(s4!==peg$FAILED){s5=peg$parseWS();if(s5===peg$FAILED){s5=null}if(s5!==peg$FAILED){s6=peg$currPos;s7=peg$parseColor();if(s7!==peg$FAILED){peg$savedPos=s6;s7=peg$c1219(s7)}s6=s7;if(s6!==peg$FAILED){s7=peg$parseWS();if(s7===peg$FAILED){s7=null}if(s7!==peg$FAILED){if(input.charCodeAt(peg$currPos)===59){s8=peg$c1213;peg$currPos++}else{s8=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1214)}}if(s8!==peg$FAILED){s9=peg$parseWS();if(s9===peg$FAILED){s9=null}if(s9!==peg$FAILED){peg$savedPos=s0;s1=peg$c1514(s6);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}peg$silentFails--;if(s0===peg$FAILED){s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1511)}}return s0}function peg$parseSdStateBorderColor(){var s0,s1,s2,s3,s4,s5,s6,s7,s8,s9;peg$silentFails++;s0=peg$currPos;s1=peg$parseWS();if(s1===peg$FAILED){s1=null}if(s1!==peg$FAILED){if(input.substr(peg$currPos,12)===peg$c1516){s2=peg$c1516;peg$currPos+=12}else{s2=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1517)}}if(s2!==peg$FAILED){s3=peg$parseWS();if(s3===peg$FAILED){s3=null}if(s3!==peg$FAILED){if(input.charCodeAt(peg$currPos)===58){s4=peg$c1211;peg$currPos++}else{s4=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1212)}}if(s4!==peg$FAILED){s5=peg$parseWS();if(s5===peg$FAILED){s5=null}if(s5!==peg$FAILED){s6=peg$currPos;s7=peg$parseColor();if(s7!==peg$FAILED){peg$savedPos=s6;s7=peg$c1219(s7)}s6=s7;if(s6!==peg$FAILED){s7=peg$parseWS();if(s7===peg$FAILED){s7=null}if(s7!==peg$FAILED){if(input.charCodeAt(peg$currPos)===59){s8=peg$c1213;peg$currPos++}else{s8=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1214)}}if(s8!==peg$FAILED){s9=peg$parseWS();if(s9===peg$FAILED){s9=null}if(s9!==peg$FAILED){peg$savedPos=s0;s1=peg$c1518(s6);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}peg$silentFails--;if(s0===peg$FAILED){s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1515)}}return s0}function peg$parseSdStateShape(){var s0,s1,s2,s3,s4,s5,s6,s7,s8,s9;peg$silentFails++;s0=peg$currPos;s1=peg$parseWS();if(s1===peg$FAILED){s1=null}if(s1!==peg$FAILED){if(input.substr(peg$currPos,5)===peg$c1520){s2=peg$c1520;peg$currPos+=5}else{s2=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1521)}}if(s2!==peg$FAILED){s3=peg$parseWS();if(s3===peg$FAILED){s3=null}if(s3!==peg$FAILED){if(input.charCodeAt(peg$currPos)===58){s4=peg$c1211;peg$currPos++}else{s4=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1212)}}if(s4!==peg$FAILED){s5=peg$parseWS();if(s5===peg$FAILED){s5=null}if(s5!==peg$FAILED){s6=peg$parseGvizShape();if(s6!==peg$FAILED){s7=peg$parseWS();if(s7===peg$FAILED){s7=null}if(s7!==peg$FAILED){if(input.charCodeAt(peg$currPos)===59){s8=peg$c1213;peg$currPos++}else{s8=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1214)}}if(s8!==peg$FAILED){s9=peg$parseWS();if(s9===peg$FAILED){s9=null}if(s9!==peg$FAILED){peg$savedPos=s0;s1=peg$c1522(s6);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}peg$silentFails--;if(s0===peg$FAILED){s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1519)}}return s0}function peg$parseSdStateCorners(){var s0,s1,s2,s3,s4,s5,s6,s7,s8,s9;peg$silentFails++;s0=peg$currPos;s1=peg$parseWS();if(s1===peg$FAILED){s1=null}if(s1!==peg$FAILED){if(input.substr(peg$currPos,7)===peg$c1524){s2=peg$c1524;peg$currPos+=7}else{s2=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1525)}}if(s2!==peg$FAILED){s3=peg$parseWS();if(s3===peg$FAILED){s3=null}if(s3!==peg$FAILED){if(input.charCodeAt(peg$currPos)===58){s4=peg$c1211;peg$currPos++}else{s4=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1212)}}if(s4!==peg$FAILED){s5=peg$parseWS();if(s5===peg$FAILED){s5=null}if(s5!==peg$FAILED){s6=peg$parseCorners();if(s6!==peg$FAILED){s7=peg$parseWS();if(s7===peg$FAILED){s7=null}if(s7!==peg$FAILED){if(input.charCodeAt(peg$currPos)===59){s8=peg$c1213;peg$currPos++}else{s8=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1214)}}if(s8!==peg$FAILED){s9=peg$parseWS();if(s9===peg$FAILED){s9=null}if(s9!==peg$FAILED){peg$savedPos=s0;s1=peg$c1526(s6);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}peg$silentFails--;if(s0===peg$FAILED){s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1523)}}return s0}function peg$parseSdStateLineStyle(){var s0,s1,s2,s3,s4,s5,s6,s7,s8,s9;peg$silentFails++;s0=peg$currPos;s1=peg$parseWS();if(s1===peg$FAILED){s1=null}if(s1!==peg$FAILED){if(input.substr(peg$currPos,10)===peg$c1224){s2=peg$c1224;peg$currPos+=10}else{s2=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1225)}}if(s2!==peg$FAILED){s3=peg$parseWS();if(s3===peg$FAILED){s3=null}if(s3!==peg$FAILED){if(input.charCodeAt(peg$currPos)===58){s4=peg$c1211;peg$currPos++}else{s4=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1212)}}if(s4!==peg$FAILED){s5=peg$parseWS();if(s5===peg$FAILED){s5=null}if(s5!==peg$FAILED){s6=peg$parseLineStyle();if(s6!==peg$FAILED){s7=peg$parseWS();if(s7===peg$FAILED){s7=null}if(s7!==peg$FAILED){if(input.charCodeAt(peg$currPos)===59){s8=peg$c1213;peg$currPos++}else{s8=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1214)}}if(s8!==peg$FAILED){s9=peg$parseWS();if(s9===peg$FAILED){s9=null}if(s9!==peg$FAILED){peg$savedPos=s0;s1=peg$c1528(s6);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}if(s0===peg$FAILED){s0=peg$currPos;s1=peg$parseWS();if(s1===peg$FAILED){s1=null}if(s1!==peg$FAILED){if(input.substr(peg$currPos,9)===peg$c1529){s2=peg$c1529;peg$currPos+=9}else{s2=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1530)}}if(s2!==peg$FAILED){s3=peg$parseWS();if(s3===peg$FAILED){s3=null}if(s3!==peg$FAILED){if(input.charCodeAt(peg$currPos)===58){s4=peg$c1211;peg$currPos++}else{s4=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1212)}}if(s4!==peg$FAILED){s5=peg$parseWS();if(s5===peg$FAILED){s5=null}if(s5!==peg$FAILED){s6=peg$parseLineStyle();if(s6!==peg$FAILED){s7=peg$parseWS();if(s7===peg$FAILED){s7=null}if(s7!==peg$FAILED){if(input.charCodeAt(peg$currPos)===59){s8=peg$c1213;peg$currPos++}else{s8=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1214)}}if(s8!==peg$FAILED){s9=peg$parseWS();if(s9===peg$FAILED){s9=null}if(s9!==peg$FAILED){peg$savedPos=s0;s1=peg$c1528(s6);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}peg$silentFails--;if(s0===peg$FAILED){s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1527)}}return s0}function peg$parseSdStateImage(){var s0,s1,s2,s3,s4,s5,s6,s7,s8,s9;peg$silentFails++;s0=peg$currPos;s1=peg$parseWS();if(s1===peg$FAILED){s1=null}if(s1!==peg$FAILED){if(input.substr(peg$currPos,5)===peg$c1532){s2=peg$c1532;peg$currPos+=5}else{s2=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1533)}}if(s2!==peg$FAILED){s3=peg$parseWS();if(s3===peg$FAILED){s3=null}if(s3!==peg$FAILED){if(input.charCodeAt(peg$currPos)===58){s4=peg$c1211;peg$currPos++}else{s4=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1212)}}if(s4!==peg$FAILED){s5=peg$parseWS();if(s5===peg$FAILED){s5=null}if(s5!==peg$FAILED){s6=peg$parseString();if(s6!==peg$FAILED){s7=peg$parseWS();if(s7===peg$FAILED){s7=null}if(s7!==peg$FAILED){if(input.charCodeAt(peg$currPos)===59){s8=peg$c1213;peg$currPos++}else{s8=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1214)}}if(s8!==peg$FAILED){s9=peg$parseWS();if(s9===peg$FAILED){s9=null}if(s9!==peg$FAILED){peg$savedPos=s0;s1=peg$c1534(s6);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}peg$silentFails--;if(s0===peg$FAILED){s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1531)}}return s0}function peg$parseSdStateUrl(){var s0,s1,s2,s3,s4,s5,s6,s7,s8,s9;peg$silentFails++;s0=peg$currPos;s1=peg$parseWS();if(s1===peg$FAILED){s1=null}if(s1!==peg$FAILED){if(input.substr(peg$currPos,3)===peg$c1536){s2=peg$c1536;peg$currPos+=3}else{s2=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1537)}}if(s2!==peg$FAILED){s3=peg$parseWS();if(s3===peg$FAILED){s3=null}if(s3!==peg$FAILED){if(input.charCodeAt(peg$currPos)===58){s4=peg$c1211;peg$currPos++}else{s4=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1212)}}if(s4!==peg$FAILED){s5=peg$parseWS();if(s5===peg$FAILED){s5=null}if(s5!==peg$FAILED){s6=peg$parseString();if(s6!==peg$FAILED){s7=peg$parseWS();if(s7===peg$FAILED){s7=null}if(s7!==peg$FAILED){if(input.charCodeAt(peg$currPos)===59){s8=peg$c1213;peg$currPos++}else{s8=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1214)}}if(s8!==peg$FAILED){s9=peg$parseWS();if(s9===peg$FAILED){s9=null}if(s9!==peg$FAILED){peg$savedPos=s0;s1=peg$c1538(s6);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}peg$silentFails--;if(s0===peg$FAILED){s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1535)}}return s0}function peg$parseSdStateProperty(){var s0,s1,s2,s3,s4,s5,s6,s7,s8,s9,s10,s11,s12,s13;peg$silentFails++;s0=peg$currPos;s1=peg$parseWS();if(s1===peg$FAILED){s1=null}if(s1!==peg$FAILED){if(input.substr(peg$currPos,8)===peg$c1540){s2=peg$c1540;peg$currPos+=8}else{s2=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1541)}}if(s2!==peg$FAILED){s3=peg$parseWS();if(s3===peg$FAILED){s3=null}if(s3!==peg$FAILED){if(input.charCodeAt(peg$currPos)===58){s4=peg$c1211;peg$currPos++}else{s4=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1212)}}if(s4!==peg$FAILED){s5=peg$parseWS();if(s5===peg$FAILED){s5=null}if(s5!==peg$FAILED){s6=peg$parseAtom();if(s6!==peg$FAILED){s7=peg$parseWS();if(s7!==peg$FAILED){s8=peg$parsePropertyVal();if(s8!==peg$FAILED){s9=peg$parseWS();if(s9===peg$FAILED){s9=null}if(s9!==peg$FAILED){if(input.charCodeAt(peg$currPos)===59){s10=peg$c1213;peg$currPos++}else{s10=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1214)}}if(s10!==peg$FAILED){s11=peg$parseWS();if(s11===peg$FAILED){s11=null}if(s11!==peg$FAILED){peg$savedPos=s0;s1=peg$c1542(s6,s8);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}if(s0===peg$FAILED){s0=peg$currPos;s1=peg$parseWS();if(s1===peg$FAILED){s1=null}if(s1!==peg$FAILED){if(input.substr(peg$currPos,8)===peg$c1540){s2=peg$c1540;peg$currPos+=8}else{s2=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1541)}}if(s2!==peg$FAILED){s3=peg$parseWS();if(s3===peg$FAILED){s3=null}if(s3!==peg$FAILED){if(input.charCodeAt(peg$currPos)===58){s4=peg$c1211;peg$currPos++}else{s4=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1212)}}if(s4!==peg$FAILED){s5=peg$parseWS();if(s5===peg$FAILED){s5=null}if(s5!==peg$FAILED){s6=peg$parseAtom();if(s6!==peg$FAILED){s7=peg$parseWS();if(s7!==peg$FAILED){s8=peg$parsePropertyVal();if(s8!==peg$FAILED){s9=peg$parseWS();if(s9!==peg$FAILED){if(input.substr(peg$currPos,8)===peg$c1543){s10=peg$c1543;peg$currPos+=8}else{s10=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1544)}}if(s10!==peg$FAILED){s11=peg$parseWS();if(s11===peg$FAILED){s11=null}if(s11!==peg$FAILED){if(input.charCodeAt(peg$currPos)===59){s12=peg$c1213;peg$currPos++}else{s12=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1214)}}if(s12!==peg$FAILED){s13=peg$parseWS();if(s13===peg$FAILED){s13=null}if(s13!==peg$FAILED){peg$savedPos=s0;s1=peg$c1545(s6,s8);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}peg$silentFails--;if(s0===peg$FAILED){s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1539)}}return s0}function peg$parseStateDeclarationItem(){var s0;s0=peg$parseSdStateLabel();if(s0===peg$FAILED){s0=peg$parseSdStateColor();if(s0===peg$FAILED){s0=peg$parseSdStateTextColor();if(s0===peg$FAILED){s0=peg$parseSdStateBackgroundColor();if(s0===peg$FAILED){s0=peg$parseSdStateBorderColor();if(s0===peg$FAILED){s0=peg$parseSdStateShape();if(s0===peg$FAILED){s0=peg$parseSdStateCorners();if(s0===peg$FAILED){s0=peg$parseSdStateLineStyle();if(s0===peg$FAILED){s0=peg$parseSdStateImage();if(s0===peg$FAILED){s0=peg$parseSdStateUrl();if(s0===peg$FAILED){s0=peg$parseSdStateProperty()}}}}}}}}}}return s0}function peg$parseStateDeclarationDesc(){var s0,s1,s2,s3,s4,s5;s0=peg$currPos;if(input.charCodeAt(peg$currPos)===123){s1=peg$c1227;peg$currPos++}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1228)}}if(s1!==peg$FAILED){s2=peg$parseWS();if(s2===peg$FAILED){s2=null}if(s2!==peg$FAILED){s3=[];s4=peg$parseStateDeclarationItem();while(s4!==peg$FAILED){s3.push(s4);s4=peg$parseStateDeclarationItem()}if(s3!==peg$FAILED){s4=peg$parseWS();if(s4===peg$FAILED){s4=null}if(s4!==peg$FAILED){if(input.charCodeAt(peg$currPos)===125){s5=peg$c1229;peg$currPos++}else{s5=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1230)}}if(s5!==peg$FAILED){peg$savedPos=s0;s1=peg$c1231(s3);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}return s0}function peg$parseStateDeclaration(){var s0,s1,s2,s3,s4,s5,s6,s7,s8,s9,s10,s11;s0=peg$currPos;s1=peg$parseWS();if(s1===peg$FAILED){s1=null}if(s1!==peg$FAILED){if(input.substr(peg$currPos,5)===peg$c1345){s2=peg$c1345;peg$currPos+=5}else{s2=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1346)}}if(s2!==peg$FAILED){s3=peg$parseWS();if(s3!==peg$FAILED){s4=peg$currPos;s5=peg$parseGroupRef();if(s5!==peg$FAILED){peg$savedPos=s4;s5=peg$c1546(s5)}s4=s5;if(s4!==peg$FAILED){s5=peg$parseWS();if(s5===peg$FAILED){s5=null}if(s5!==peg$FAILED){if(input.charCodeAt(peg$currPos)===58){s6=peg$c1211;peg$currPos++}else{s6=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1212)}}if(s6!==peg$FAILED){s7=peg$parseWS();if(s7===peg$FAILED){s7=null}if(s7!==peg$FAILED){s8=peg$parseStateDeclarationDesc();if(s8!==peg$FAILED){s9=peg$parseWS();if(s9===peg$FAILED){s9=null}if(s9!==peg$FAILED){if(input.charCodeAt(peg$currPos)===59){s10=peg$c1213;peg$currPos++}else{s10=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1214)}}if(s10!==peg$FAILED){s11=peg$parseWS();if(s11===peg$FAILED){s11=null}if(s11!==peg$FAILED){peg$savedPos=s0;s1=peg$c1547(s4,s8);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}if(s0===peg$FAILED){s0=peg$currPos;s1=peg$parseWS();if(s1===peg$FAILED){s1=null}if(s1!==peg$FAILED){if(input.substr(peg$currPos,5)===peg$c1345){s2=peg$c1345;peg$currPos+=5}else{s2=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1346)}}if(s2!==peg$FAILED){s3=peg$parseWS();if(s3!==peg$FAILED){s4=peg$currPos;s5=peg$parseLabel();if(s5!==peg$FAILED){peg$savedPos=s4;s5=peg$c1546(s5)}s4=s5;if(s4!==peg$FAILED){s5=peg$parseWS();if(s5===peg$FAILED){s5=null}if(s5!==peg$FAILED){if(input.charCodeAt(peg$currPos)===58){s6=peg$c1211;peg$currPos++}else{s6=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1212)}}if(s6!==peg$FAILED){s7=peg$parseWS();if(s7===peg$FAILED){s7=null}if(s7!==peg$FAILED){s8=peg$parseStateDeclarationDesc();if(s8!==peg$FAILED){s9=peg$parseWS();if(s9===peg$FAILED){s9=null}if(s9!==peg$FAILED){if(input.charCodeAt(peg$currPos)===59){s10=peg$c1213;peg$currPos++}else{s10=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1214)}}if(s10!==peg$FAILED){s11=peg$parseWS();if(s11===peg$FAILED){s11=null}if(s11!==peg$FAILED){peg$savedPos=s0;s1=peg$c1547(s4,s8);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}return s0}function peg$parseNamedList(){var s0,s1,s2,s3,s4,s5,s6,s7,s8,s9,s10,s11;s0=peg$currPos;s1=peg$parseWS();if(s1===peg$FAILED){s1=null}if(s1!==peg$FAILED){if(input.charCodeAt(peg$currPos)===38){s2=peg$c1302;peg$currPos++}else{s2=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1303)}}if(s2!==peg$FAILED){s3=peg$parseWS();if(s3===peg$FAILED){s3=null}if(s3!==peg$FAILED){s4=peg$parseLabel();if(s4!==peg$FAILED){s5=peg$parseWS();if(s5===peg$FAILED){s5=null}if(s5!==peg$FAILED){if(input.charCodeAt(peg$currPos)===58){s6=peg$c1211;peg$currPos++}else{s6=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1212)}}if(s6!==peg$FAILED){s7=peg$parseWS();if(s7===peg$FAILED){s7=null}if(s7!==peg$FAILED){s8=peg$parseGroupMemberList();if(s8!==peg$FAILED){s9=peg$parseWS();if(s9===peg$FAILED){s9=null}if(s9!==peg$FAILED){if(input.charCodeAt(peg$currPos)===59){s10=peg$c1213;peg$currPos++}else{s10=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1214)}}if(s10!==peg$FAILED){s11=peg$parseWS();if(s11===peg$FAILED){s11=null}if(s11!==peg$FAILED){peg$savedPos=s0;s1=peg$c1548(s4,s8);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}if(s0===peg$FAILED){s0=peg$currPos;s1=peg$parseWS();if(s1===peg$FAILED){s1=null}if(s1!==peg$FAILED){if(input.charCodeAt(peg$currPos)===38){s2=peg$c1302;peg$currPos++}else{s2=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1303)}}if(s2!==peg$FAILED){s3=peg$parseWS();if(s3===peg$FAILED){s3=null}if(s3!==peg$FAILED){s4=peg$parseLabel();if(s4!==peg$FAILED){s5=peg$parseWS();if(s5===peg$FAILED){s5=null}if(s5!==peg$FAILED){if(input.charCodeAt(peg$currPos)===58){s6=peg$c1211;peg$currPos++}else{s6=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1212)}}if(s6!==peg$FAILED){s7=peg$parseWS();if(s7===peg$FAILED){s7=null}if(s7!==peg$FAILED){s8=peg$parseLabel();if(s8!==peg$FAILED){s9=peg$parseWS();if(s9===peg$FAILED){s9=null}if(s9!==peg$FAILED){if(input.charCodeAt(peg$currPos)===59){s10=peg$c1213;peg$currPos++}else{s10=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1214)}}if(s10!==peg$FAILED){s11=peg$parseWS();if(s11===peg$FAILED){s11=null}if(s11!==peg$FAILED){peg$savedPos=s0;s1=peg$c1548(s4,s8);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}return s0}function peg$parseHookEvent(){var s0;peg$silentFails++;if(input.substr(peg$currPos,5)===peg$c1550){s0=peg$c1550;peg$currPos+=5}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1551)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,4)===peg$c1552){s0=peg$c1552;peg$currPos+=4}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1553)}}}peg$silentFails--;if(s0===peg$FAILED){if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1549)}}return s0}function peg$parseHookDeclaration(){var s0,s1,s2,s3,s4,s5,s6,s7,s8,s9,s10,s11,s12,s13;peg$silentFails++;s0=peg$currPos;s1=peg$parseWS();if(s1===peg$FAILED){s1=null}if(s1!==peg$FAILED){if(input.substr(peg$currPos,2)===peg$c1555){s2=peg$c1555;peg$currPos+=2}else{s2=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1556)}}if(s2!==peg$FAILED){s3=peg$parseWS();if(s3!==peg$FAILED){s4=peg$parseHookEvent();if(s4!==peg$FAILED){s5=peg$parseWS();if(s5!==peg$FAILED){s6=peg$parseGroupRef();if(s6===peg$FAILED){s6=peg$parseLabel()}if(s6!==peg$FAILED){s7=peg$parseWS();if(s7!==peg$FAILED){if(input.substr(peg$currPos,2)===peg$c1557){s8=peg$c1557;peg$currPos+=2}else{s8=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1558)}}if(s8!==peg$FAILED){s9=peg$parseWS();if(s9!==peg$FAILED){s10=peg$parseActionLabel();if(s10!==peg$FAILED){s11=peg$parseWS();if(s11===peg$FAILED){s11=null}if(s11!==peg$FAILED){if(input.charCodeAt(peg$currPos)===59){s12=peg$c1213;peg$currPos++}else{s12=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1214)}}if(s12!==peg$FAILED){s13=peg$parseWS();if(s13===peg$FAILED){s13=null}if(s13!==peg$FAILED){peg$savedPos=s0;s1=peg$c1559(s4,s6,s10);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}peg$silentFails--;if(s0===peg$FAILED){s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1554)}}return s0}function peg$parseMachineProperty(){var s0,s1,s2,s3,s4,s5,s6,s7,s8,s9,s10,s11,s12,s13;s0=peg$currPos;s1=peg$parseWS();if(s1===peg$FAILED){s1=null}if(s1!==peg$FAILED){if(input.substr(peg$currPos,8)===peg$c1540){s2=peg$c1540;peg$currPos+=8}else{s2=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1541)}}if(s2!==peg$FAILED){s3=peg$parseWS();if(s3!==peg$FAILED){s4=peg$parseLabel();if(s4!==peg$FAILED){s5=peg$parseWS();if(s5!==peg$FAILED){if(input.substr(peg$currPos,7)===peg$c1){s6=peg$c1;peg$currPos+=7}else{s6=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c2)}}if(s6!==peg$FAILED){s7=peg$parseWS();if(s7!==peg$FAILED){s8=peg$parsePropertyVal();if(s8!==peg$FAILED){s9=peg$parseWS();if(s9!==peg$FAILED){if(input.substr(peg$currPos,8)===peg$c1543){s10=peg$c1543;peg$currPos+=8}else{s10=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1544)}}if(s10!==peg$FAILED){s11=peg$parseWS();if(s11===peg$FAILED){s11=null}if(s11!==peg$FAILED){if(input.charCodeAt(peg$currPos)===59){s12=peg$c1213;peg$currPos++}else{s12=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1214)}}if(s12!==peg$FAILED){s13=peg$parseWS();if(s13===peg$FAILED){s13=null}if(s13!==peg$FAILED){peg$savedPos=s0;s1=peg$c1560(s4,s8);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}if(s0===peg$FAILED){s0=peg$currPos;s1=peg$parseWS();if(s1===peg$FAILED){s1=null}if(s1!==peg$FAILED){if(input.substr(peg$currPos,8)===peg$c1540){s2=peg$c1540;peg$currPos+=8}else{s2=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1541)}}if(s2!==peg$FAILED){s3=peg$parseWS();if(s3!==peg$FAILED){s4=peg$parseLabel();if(s4!==peg$FAILED){s5=peg$parseWS();if(s5!==peg$FAILED){if(input.substr(peg$currPos,8)===peg$c1543){s6=peg$c1543;peg$currPos+=8}else{s6=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1544)}}if(s6!==peg$FAILED){s7=peg$parseWS();if(s7===peg$FAILED){s7=null}if(s7!==peg$FAILED){if(input.charCodeAt(peg$currPos)===59){s8=peg$c1213;peg$currPos++}else{s8=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1214)}}if(s8!==peg$FAILED){s9=peg$parseWS();if(s9===peg$FAILED){s9=null}if(s9!==peg$FAILED){peg$savedPos=s0;s1=peg$c1561(s4);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}if(s0===peg$FAILED){s0=peg$currPos;s1=peg$parseWS();if(s1===peg$FAILED){s1=null}if(s1!==peg$FAILED){if(input.substr(peg$currPos,8)===peg$c1540){s2=peg$c1540;peg$currPos+=8}else{s2=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1541)}}if(s2!==peg$FAILED){s3=peg$parseWS();if(s3!==peg$FAILED){s4=peg$parseLabel();if(s4!==peg$FAILED){s5=peg$parseWS();if(s5!==peg$FAILED){if(input.substr(peg$currPos,7)===peg$c1){s6=peg$c1;peg$currPos+=7}else{s6=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c2)}}if(s6!==peg$FAILED){s7=peg$parseWS();if(s7!==peg$FAILED){s8=peg$parsePropertyVal();if(s8!==peg$FAILED){s9=peg$parseWS();if(s9===peg$FAILED){s9=null}if(s9!==peg$FAILED){if(input.charCodeAt(peg$currPos)===59){s10=peg$c1213;peg$currPos++}else{s10=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1214)}}if(s10!==peg$FAILED){s11=peg$parseWS();if(s11===peg$FAILED){s11=null}if(s11!==peg$FAILED){peg$savedPos=s0;s1=peg$c1562(s4,s8);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}if(s0===peg$FAILED){s0=peg$currPos;s1=peg$parseWS();if(s1===peg$FAILED){s1=null}if(s1!==peg$FAILED){if(input.substr(peg$currPos,8)===peg$c1540){s2=peg$c1540;peg$currPos+=8}else{s2=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1541)}}if(s2!==peg$FAILED){s3=peg$parseWS();if(s3!==peg$FAILED){s4=peg$parseLabel();if(s4!==peg$FAILED){s5=peg$parseWS();if(s5===peg$FAILED){s5=null}if(s5!==peg$FAILED){if(input.charCodeAt(peg$currPos)===59){s6=peg$c1213;peg$currPos++}else{s6=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1214)}}if(s6!==peg$FAILED){s7=peg$parseWS();if(s7===peg$FAILED){s7=null}if(s7!==peg$FAILED){peg$savedPos=s0;s1=peg$c1563(s4);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}}}return s0}function peg$parseRegularArrangeDeclaration(){var s0,s1,s2,s3,s4,s5,s6;s0=peg$currPos;if(input.substr(peg$currPos,7)===peg$c1564){s1=peg$c1564;peg$currPos+=7}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1565)}}if(s1!==peg$FAILED){s2=peg$parseWS();if(s2===peg$FAILED){s2=null}if(s2!==peg$FAILED){s3=peg$parseLabelOrLabelList();if(s3!==peg$FAILED){s4=peg$parseWS();if(s4===peg$FAILED){s4=null}if(s4!==peg$FAILED){if(input.charCodeAt(peg$currPos)===59){s5=peg$c1213;peg$currPos++}else{s5=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1214)}}if(s5!==peg$FAILED){s6=peg$parseWS();if(s6===peg$FAILED){s6=null}if(s6!==peg$FAILED){peg$savedPos=s0;s1=peg$c1566(s3);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}return s0}function peg$parseArrangeStartDeclaration(){var s0,s1,s2,s3,s4,s5,s6;s0=peg$currPos;if(input.substr(peg$currPos,13)===peg$c1567){s1=peg$c1567;peg$currPos+=13}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1568)}}if(s1!==peg$FAILED){s2=peg$parseWS();if(s2===peg$FAILED){s2=null}if(s2!==peg$FAILED){s3=peg$parseLabelOrLabelList();if(s3!==peg$FAILED){s4=peg$parseWS();if(s4===peg$FAILED){s4=null}if(s4!==peg$FAILED){if(input.charCodeAt(peg$currPos)===59){s5=peg$c1213;peg$currPos++}else{s5=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1214)}}if(s5!==peg$FAILED){s6=peg$parseWS();if(s6===peg$FAILED){s6=null}if(s6!==peg$FAILED){peg$savedPos=s0;s1=peg$c1569(s3);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}return s0}function peg$parseArrangeEndDeclaration(){var s0,s1,s2,s3,s4,s5,s6;s0=peg$currPos;if(input.substr(peg$currPos,11)===peg$c1570){s1=peg$c1570;peg$currPos+=11}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1571)}}if(s1!==peg$FAILED){s2=peg$parseWS();if(s2===peg$FAILED){s2=null}if(s2!==peg$FAILED){s3=peg$parseLabelOrLabelList();if(s3!==peg$FAILED){s4=peg$parseWS();if(s4===peg$FAILED){s4=null}if(s4!==peg$FAILED){if(input.charCodeAt(peg$currPos)===59){s5=peg$c1213;peg$currPos++}else{s5=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1214)}}if(s5!==peg$FAILED){s6=peg$parseWS();if(s6===peg$FAILED){s6=null}if(s6!==peg$FAILED){peg$savedPos=s0;s1=peg$c1572(s3);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}return s0}function peg$parseOArrangeDeclaration(){var s0,s1,s2,s3,s4,s5,s6;peg$silentFails++;s0=peg$currPos;if(input.substr(peg$currPos,8)===peg$c1574){s1=peg$c1574;peg$currPos+=8}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1575)}}if(s1!==peg$FAILED){s2=peg$parseWS();if(s2===peg$FAILED){s2=null}if(s2!==peg$FAILED){s3=peg$parseLabelOrLabelList();if(s3!==peg$FAILED){s4=peg$parseWS();if(s4===peg$FAILED){s4=null}if(s4!==peg$FAILED){if(input.charCodeAt(peg$currPos)===59){s5=peg$c1213;peg$currPos++}else{s5=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1214)}}if(s5!==peg$FAILED){s6=peg$parseWS();if(s6===peg$FAILED){s6=null}if(s6!==peg$FAILED){peg$savedPos=s0;s1=peg$c1576(s3);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}peg$silentFails--;if(s0===peg$FAILED){s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1573)}}return s0}function peg$parseFArrangeDeclaration(){var s0,s1,s2,s3,s4,s5,s6;peg$silentFails++;s0=peg$currPos;if(input.substr(peg$currPos,8)===peg$c1578){s1=peg$c1578;peg$currPos+=8}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1579)}}if(s1!==peg$FAILED){s2=peg$parseWS();if(s2===peg$FAILED){s2=null}if(s2!==peg$FAILED){s3=peg$parseLabelOrLabelList();if(s3!==peg$FAILED){s4=peg$parseWS();if(s4===peg$FAILED){s4=null}if(s4!==peg$FAILED){if(input.charCodeAt(peg$currPos)===59){s5=peg$c1213;peg$currPos++}else{s5=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1214)}}if(s5!==peg$FAILED){s6=peg$parseWS();if(s6===peg$FAILED){s6=null}if(s6!==peg$FAILED){peg$savedPos=s0;s1=peg$c1580(s3);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}peg$silentFails--;if(s0===peg$FAILED){s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1577)}}return s0}function peg$parseArrangeDeclaration(){var s0;peg$silentFails++;s0=peg$parseArrangeStartDeclaration();if(s0===peg$FAILED){s0=peg$parseArrangeEndDeclaration();if(s0===peg$FAILED){s0=peg$parseOArrangeDeclaration();if(s0===peg$FAILED){s0=peg$parseFArrangeDeclaration();if(s0===peg$FAILED){s0=peg$parseRegularArrangeDeclaration()}}}}peg$silentFails--;if(s0===peg$FAILED){if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1581)}}return s0}function peg$parseTerm(){var s0;s0=peg$parseHookDeclaration();if(s0===peg$FAILED){s0=peg$parseExp();if(s0===peg$FAILED){s0=peg$parseStateDeclaration();if(s0===peg$FAILED){s0=peg$parseArrangeDeclaration();if(s0===peg$FAILED){s0=peg$parseNamedList();if(s0===peg$FAILED){s0=peg$parseMachineAttribute();if(s0===peg$FAILED){s0=peg$parseMachineProperty();if(s0===peg$FAILED){s0=peg$parseConfig()}}}}}}}return s0}function peg$parseTermList(){var s0,s1;s0=[];s1=peg$parseTerm();while(s1!==peg$FAILED){s0.push(s1);s1=peg$parseTerm()}return s0}peg$result=peg$startRuleFunction();if(peg$result!==peg$FAILED&&peg$currPos===input.length){return peg$result}else{if(peg$result!==peg$FAILED&&peg$currPos<input.length){peg$fail(peg$endExpectation())}throw peg$buildStructuredError(peg$maxFailExpected,peg$maxFailPos<input.length?input.charAt(peg$maxFailPos):null,peg$maxFailPos<input.length?peg$computeLocation(peg$maxFailPos,peg$maxFailPos+1):peg$computeLocation(peg$maxFailPos,peg$maxFailPos))}}const array_box_if_string=n=>typeof n==="string"?[n]:n;const weighted_rand_select=(options,probability_property="probability",rng)=>{if(!Array.isArray(options)){throw new TypeError("options must be a non-empty array of objects")}if(options.length===0){throw new TypeError("options must be a non-empty array of objects")}if(!(typeof options[0]==="object")){throw new TypeError("options must be a non-empty array of objects")}const named=probability_property==="probability";let prob_sum=0;for(const opt of options){const p=named?opt.probability:opt[probability_property];prob_sum+=p===void 0?1:p}const rnd=(rng?rng():Math.random())*prob_sum;let cursor=0,cursor_sum=0;while(cursor<options.length){const p=named?options[cursor].probability:options[cursor][probability_property];cursor_sum+=p===void 0?1:p;++cursor;if(cursor_sum>rnd){break}}return options[cursor-1]};function seq(n){if(!Number.isInteger(n)){throw new TypeError("seq/1 takes a non-negative integer n as an argument")}if(n<0){throw new TypeError("seq/1 takes a non-negative integer n as an argument")}return Array.from({length:n},(_,i)=>i)}const histograph=ar=>{const counts=new Map;for(const v of ar){const c=counts.get(v);counts.set(v,c===void 0?1:c+1)}const out=new Map;for(const k of[...counts.keys()].sort()){out.set(k,counts.get(k))}return out};function name_bind_prop_and_state(prop,state){if(typeof prop!=="string"){throw new JssmError(void 0,`Name of property must be a string; got ${prop}`)}if(typeof state!=="string"){throw new JssmError(void 0,`Name of state must be a string; got ${state}`)}return JSON.stringify([prop,state])}function gen_splitmix32(a){if(a===void 0){a=(new Date).getTime()}return function(){a|=0;a=a+2654435769|0;let t=a^a>>>16;t=Math.imul(t,569420461);t=t^t>>>15;t=Math.imul(t,1935289751);return((t=t^t>>>15)>>>0)/4294967296}}const unique=arr=>{const seen=new Set;return arr.filter(v=>{if(v!==v){return false}if(seen.has(v)){return false}seen.add(v);return true})};function find_repeated(arr){const uniqued=unique(arr);if(uniqued.length!==arr.length){const residue_keys=new Map;arr.forEach(k=>residue_keys.set(k,residue_keys.has(k)?residue_keys.get(k)+1:1));uniqued.forEach(k=>residue_keys.set(k,residue_keys.get(k)-1));return[...residue_keys.entries()].filter(e=>e[1]>0&&!Number.isNaN(e[0])).map(e=>[e[0],e[1]+1])}else{return[]}}var reductions={abkhazian:"ab","аҧсуа бызшәа, аҧсшәа":"ab",ab:"ab",abk:"ab","аҧсуа бызшәа":"ab","аҧсшәа":"ab",afar:"aa",afaraf:"aa",aa:"aa",aar:"aa",afrikaans:"af",af:"af",afr:"af",akan:"ak",ak:"ak",aka:"ak","aka + 2":"ak",albanian:"sq",shqip:"sq",sq:"sq",sqi:"sq",alb:"sq","sqi + 4":"sq",amharic:"am","አማርኛ":"am",am:"am",amh:"am",arabic:"ar","العربية":"ar",ar:"ar",ara:"ar","ara + 30":"ar",aragonese:"an","aragonés":"an",an:"an",arg:"an",armenian:"hy","հայերեն":"hy",hy:"hy",hye:"hy",arm:"hy",assamese:"as","অসমীয়া":"as",as:"as",asm:"as",avaric:"av","авар мацӏ, магӏарул мацӏ":"av",av:"av",ava:"av","авар мацӏ":"av","магӏарул мацӏ":"av",avestan:"ae",avesta:"ae",ae:"ae",ave:"ae",aymara:"ay","aymar aru":"ay",ay:"ay",aym:"ay","aym + 2":"ay",azerbaijani:"az","azərbaycan dili":"az",az:"az",aze:"az","aze + 2":"az",bambara:"bm",bamanankan:"bm",bm:"bm",bam:"bm",bashkir:"ba","башҡорт теле":"ba",ba:"ba",bak:"ba",basque:"eu","euskara, euskera":"eu",eu:"eu",eus:"eu",baq:"eu",euskara:"eu",euskera:"eu",belarusian:"be","беларуская мова":"be",be:"be",bel:"be",bengali:"bn","বাংলা":"bn",bn:"bn",ben:"bn","bihari languages":"bh","भोजपुरी":"bh",bh:"bh",bih:"bh",bislama:"bi",bi:"bi",bis:"bi",bosnian:"bs","bosanski jezik":"bs",bs:"bs",bos:"bs",breton:"br",brezhoneg:"br",br:"br",bre:"br",bulgarian:"bg","български език":"bg",bg:"bg",bul:"bg",burmese:"my","ဗမာစာ":"my",my:"my",mya:"my",bur:"my","catalan, valencian":"ca","català, valencià":"ca",ca:"ca",cat:"ca","català":"ca","valencià":"ca",chamorro:"ch",chamoru:"ch",ch:"ch",cha:"ch",chechen:"ce","нохчийн мотт":"ce",ce:"ce",che:"ce","chichewa, chewa, nyanja":"ny","chicheŵa, chinyanja":"ny",ny:"ny",nya:"ny","chicheŵa":"ny",chinyanja:"ny",chinese:"zh","中文 (zhōngwén), 汉语, 漢語":"zh",zh:"zh",zho:"zh",chi:"zh","zho + 13":"zh","中文 (zhōngwén)":"zh","汉语":"zh","漢語":"zh",chuvash:"cv","чӑваш чӗлхи":"cv",cv:"cv",chv:"cv",cornish:"kw",kernewek:"kw",kw:"kw",cor:"kw",corsican:"co","corsu, lingua corsa":"co",co:"co",cos:"co",corsu:"co","lingua corsa":"co",cree:"cr","ᓀᐦᐃᔭᐍᐏᐣ":"cr",cr:"cr",cre:"cr","cre + 6":"cr",croatian:"hr","hrvatski jezik":"hr",hr:"hr",hrv:"hr",czech:"cs","čeština, český jazyk":"cs",cs:"cs",ces:"cs",cze:"cs","čeština":"cs","český jazyk":"cs",danish:"da",dansk:"da",da:"da",dan:"da","divehi, dhivehi, maldivian":"dv","ދިވެހި":"dv",dv:"dv",div:"dv","dutch, flemish":"nl","nederlands, vlaams":"nl",nl:"nl",nld:"nl",dut:"nl",nederlands:"nl",vlaams:"nl",dzongkha:"dz","རྫོང་ཁ":"dz",dz:"dz",dzo:"dz",english:"en",en:"en",eng:"en",esperanto:"eo",eo:"eo",epo:"eo",estonian:"et","eesti, eesti keel":"et",et:"et",est:"et","est + 2":"et",eesti:"et","eesti keel":"et",ewe:"ee","eʋegbe":"ee",ee:"ee",faroese:"fo","føroyskt":"fo",fo:"fo",fao:"fo",fijian:"fj","vosa vakaviti":"fj",fj:"fj",fij:"fj",finnish:"fi","suomi, suomen kieli":"fi",fi:"fi",fin:"fi",suomi:"fi","suomen kieli":"fi",french:"fr","français, langue française":"fr",fr:"fr",fra:"fr",fre:"fr","français":"fr","langue française":"fr",fulah:"ff","fulfulde, pulaar, pular":"ff",ff:"ff",ful:"ff","ful + 9":"ff",fulfulde:"ff",pulaar:"ff",pular:"ff",galician:"gl",galego:"gl",gl:"gl",glg:"gl",georgian:"ka","ქართული":"ka",ka:"ka",kat:"ka",geo:"ka",german:"de",deutsch:"de",de:"de",deu:"de",ger:"de","greek (modern)":"el","ελληνικά":"el",el:"el",ell:"el",gre:"el","guaraní":"gn","avañe'ẽ":"gn",gn:"gn",grn:"gn","grn + 5":"gn",gujarati:"gu","ગુજરાતી":"gu",gu:"gu",guj:"gu","haitian, haitian creole":"ht","kreyòl ayisyen":"ht",ht:"ht",hat:"ht",hausa:"ha","(hausa) هَوُسَ":"ha",ha:"ha",hau:"ha","hebrew (modern)":"he","עברית":"he",he:"he",heb:"he",herero:"hz",otjiherero:"hz",hz:"hz",her:"hz",hindi:"hi","हिन्दी, हिंदी":"hi",hi:"hi",hin:"hi","हिन्दी":"hi","हिंदी":"hi","hiri motu":"ho",ho:"ho",hmo:"ho",hungarian:"hu",magyar:"hu",hu:"hu",hun:"hu",interlingua:"ia",ia:"ia",ina:"ia",indonesian:"id","bahasa indonesia":"id",id:"id",ind:"id",interlingue:"ie","originally called occidental; then interlingue after wwii":"ie",ie:"ie",ile:"ie",irish:"ga",gaeilge:"ga",ga:"ga",gle:"ga",igbo:"ig","asụsụ igbo":"ig",ig:"ig",ibo:"ig",inupiaq:"ik","iñupiaq, iñupiatun":"ik",ik:"ik",ipk:"ik","ipk + 2":"ik","iñupiaq":"ik","iñupiatun":"ik",ido:"io",io:"io",icelandic:"is","íslenska":"is",is:"is",isl:"is",ice:"is",italian:"it",italiano:"it",it:"it",ita:"it",inuktitut:"iu","ᐃᓄᒃᑎᑐᑦ":"iu",iu:"iu",iku:"iu","iku + 2":"iu",japanese:"ja","日本語 (にほんご)":"ja",ja:"ja",jpn:"ja",javanese:"jv","ꦧꦱꦗꦮ, basa jawa":"jv",jv:"jv",jav:"jv","ꦧꦱꦗꦮ":"jv","basa jawa":"jv","kalaallisut, greenlandic":"kl","kalaallisut, kalaallit oqaasii":"kl",kl:"kl",kal:"kl",kalaallisut:"kl","kalaallit oqaasii":"kl",kannada:"kn","ಕನ್ನಡ":"kn",kn:"kn",kan:"kn",kanuri:"kr",kr:"kr",kau:"kr","kau + 3":"kr",kashmiri:"ks","कश्मीरी, كشميري‎":"ks",ks:"ks",kas:"ks","कश्मीरी":"ks","كشميري‎":"ks",kazakh:"kk","қазақ тілі":"kk",kk:"kk",kaz:"kk","central khmer":"km","ខ្មែរ, ខេមរភាសា, ភាសាខ្មែរ":"km",km:"km",khm:"km","ខ្មែរ":"km","ខេមរភាសា":"km","ភាសាខ្មែរ":"km","kikuyu, gikuyu":"ki","gĩkũyũ":"ki",ki:"ki",kik:"ki",kinyarwanda:"rw",ikinyarwanda:"rw",rw:"rw",kin:"rw","kirghiz, kyrgyz":"ky","кыргызча, кыргыз тили":"ky",ky:"ky",kir:"ky","кыргызча":"ky","кыргыз тили":"ky",komi:"kv","коми кыв":"kv",kv:"kv",kom:"kv","kom + 2":"kv",kongo:"kg",kikongo:"kg",kg:"kg",kon:"kg","kon + 3":"kg",korean:"ko","한국어":"ko",ko:"ko",kor:"ko",kurdish:"ku","kurdî, كوردی‎":"ku",ku:"ku",kur:"ku","kur + 3":"ku","kurdî":"ku","كوردی‎":"ku","kuanyama, kwanyama":"kj",kuanyama:"kj",kj:"kj",kua:"kj",latin:"la","latine, lingua latina":"la",la:"la",lat:"la",latine:"la","lingua latina":"la","luxembourgish, letzeburgesch":"lb","lëtzebuergesch":"lb",lb:"lb",ltz:"lb",ganda:"lg",luganda:"lg",lg:"lg",lug:"lg","limburgan, limburger, limburgish":"li",limburgs:"li",li:"li",lim:"li",lingala:"ln","lingála":"ln",ln:"ln",lin:"ln",lao:"lo","ພາສາລາວ":"lo",lo:"lo",lithuanian:"lt","lietuvių kalba":"lt",lt:"lt",lit:"lt","luba-katanga":"lu",kiluba:"lu",lu:"lu",lub:"lu",latvian:"lv","latviešu valoda":"lv",lv:"lv",lav:"lv","lav + 2":"lv",manx:"gv","gaelg, gailck":"gv",gv:"gv",glv:"gv",gaelg:"gv",gailck:"gv",macedonian:"mk","македонски јазик":"mk",mk:"mk",mkd:"mk",mac:"mk",malagasy:"mg","fiteny malagasy":"mg",mg:"mg",mlg:"mg","mlg + 10":"mg",malay:"ms","bahasa melayu, بهاس ملايو‎":"ms",ms:"ms",msa:"ms",may:"ms","msa + 13":"ms","bahasa melayu":"ms","بهاس ملايو‎":"ms",malayalam:"ml","മലയാളം":"ml",ml:"ml",mal:"ml",maltese:"mt",malti:"mt",mt:"mt",mlt:"mt",maori:"mi","te reo māori":"mi",mi:"mi",mri:"mi",mao:"mi",marathi:"mr","मराठी":"mr",mr:"mr",mar:"mr",marshallese:"mh","kajin m̧ajeļ":"mh",mh:"mh",mah:"mh",mongolian:"mn","монгол хэл":"mn",mn:"mn",mon:"mn","mon + 2":"mn",nauru:"na","dorerin naoero":"na",na:"na",nau:"na","navajo, navaho":"nv","diné bizaad":"nv",nv:"nv",nav:"nv","north ndebele":"nd",isindebele:"nr",nd:"nd",nde:"nd",nepali:"ne","नेपाली":"ne",ne:"ne",nep:"ne",ndonga:"ng",owambo:"ng",ng:"ng",ndo:"ng","norwegian bokmål":"nb","norsk bokmål":"nb",nb:"nb",nob:"nb","norwegian nynorsk":"nn","norsk nynorsk":"nn",nn:"nn",nno:"nn",norwegian:"no",norsk:"no",no:"no",nor:"no","nor + 2":"no","sichuan yi, nuosu":"ii","ꆈꌠ꒿ nuosuhxop":"ii",ii:"ii",iii:"ii","south ndebele":"nr",nr:"nr",nbl:"nr",occitan:"oc","occitan, lenga d'òc":"oc",oc:"oc",oci:"oc","lenga d'òc":"oc",ojibwa:"oj","ᐊᓂᔑᓈᐯᒧᐎᓐ":"oj",oj:"oj",oji:"oj","oji + 7":"oj","church slavic, church slavonic, old church slavonic, old slavonic, old bulgarian":"cu","ѩзыкъ словѣньскъ":"cu",cu:"cu",chu:"cu",oromo:"om","afaan oromoo":"om",om:"om",orm:"om","orm + 4":"om",oriya:"or","ଓଡ଼ିଆ":"or",or:"or",ori:"or","ossetian, ossetic":"os","ирон æвзаг":"os",os:"os",oss:"os","panjabi, punjabi":"pa","ਪੰਜਾਬੀ":"pa",pa:"pa",pan:"pa",pali:"pi","पाऴि":"pi",pi:"pi",pli:"pi",persian:"fa","فارسی":"fa",fa:"fa",fas:"fa",per:"fa","fas + 2":"fa",polish:"pl","język polski, polszczyzna":"pl",pl:"pl",pol:"pl","język polski":"pl",polszczyzna:"pl","pashto, pushto":"ps","پښتو":"ps",ps:"ps",pus:"ps","pus + 3":"ps",portuguese:"pt","português":"pt",pt:"pt",por:"pt",quechua:"qu","runa simi, kichwa":"qu",qu:"qu",que:"qu","que + 44":"qu","runa simi":"qu",kichwa:"qu",romansh:"rm","rumantsch grischun":"rm",rm:"rm",roh:"rm",rundi:"rn",ikirundi:"rn",rn:"rn",run:"rn","romanian, moldavian, moldovan":"ro","română":"ro",ro:"ro",ron:"ro",rum:"ro",russian:"ru","русский":"ru",ru:"ru",rus:"ru",sanskrit:"sa","संस्कृतम्":"sa",sa:"sa",san:"sa",sardinian:"sc",sardu:"sc",sc:"sc",srd:"sc","srd + 4":"sc",sindhi:"sd","सिन्धी, سنڌي، سندھی‎":"sd",sd:"sd",snd:"sd","सिन्धी":"sd","سنڌي، سندھی‎":"sd","northern sami":"se","davvisámegiella":"se",se:"se",sme:"se",samoan:"sm","gagana fa'a samoa":"sm",sm:"sm",smo:"sm",sango:"sg","yângâ tî sängö":"sg",sg:"sg",sag:"sg",serbian:"sr","српски језик":"sr",sr:"sr",srp:"sr","gaelic, scottish gaelic":"gd","gàidhlig":"gd",gd:"gd",gla:"gd",shona:"sn",chishona:"sn",sn:"sn",sna:"sn","sinhala, sinhalese":"si","සිංහල":"si",si:"si",sin:"si",slovak:"sk","slovenčina, slovenský jazyk":"sk",sk:"sk",slk:"sk",slo:"sk","slovenčina":"sk","slovenský jazyk":"sk",slovenian:"sl","slovenski jezik, slovenščina":"sl",sl:"sl",slv:"sl","slovenski jezik":"sl","slovenščina":"sl",somali:"so","soomaaliga, af soomaali":"so",so:"so",som:"so",soomaaliga:"so","af soomaali":"so","southern sotho":"st",sesotho:"st",st:"st",sot:"st","spanish, castilian":"es","español":"es",es:"es",spa:"es",sundanese:"su","basa sunda":"su",su:"su",sun:"su",swahili:"sw",kiswahili:"sw",sw:"sw",swa:"sw","swa + 2":"sw",swati:"ss",siswati:"ss",ss:"ss",ssw:"ss",swedish:"sv",svenska:"sv",sv:"sv",swe:"sv",tamil:"ta","தமிழ்":"ta",ta:"ta",tam:"ta",telugu:"te","తెలుగు":"te",te:"te",tel:"te",tajik:"tg","тоҷикӣ, toçikī, تاجیکی‎":"tg",tg:"tg",tgk:"tg","тоҷикӣ":"tg","toçikī":"tg","تاجیکی‎":"tg",thai:"th","ไทย":"th",th:"th",tha:"th",tigrinya:"ti","ትግርኛ":"ti",ti:"ti",tir:"ti",tibetan:"bo","བོད་ཡིག":"bo",bo:"bo",bod:"bo",tib:"bo",turkmen:"tk","türkmen, түркмен":"tk",tk:"tk",tuk:"tk","türkmen":"tk","түркмен":"tk",tagalog:"tl","wikang tagalog":"tl",tl:"tl",tgl:"tl",tswana:"tn",setswana:"tn",tn:"tn",tsn:"tn","tonga (tonga islands)":"to","faka tonga":"to",to:"to",ton:"to",turkish:"tr","türkçe":"tr",tr:"tr",tur:"tr",tsonga:"ts",xitsonga:"ts",ts:"ts",tso:"ts",tatar:"tt","татар теле, tatar tele":"tt",tt:"tt",tat:"tt","татар теле":"tt","tatar tele":"tt",twi:"tw",tw:"tw",tahitian:"ty","reo tahiti":"ty",ty:"ty",tah:"ty","uighur, uyghur":"ug","ئۇيغۇرچە‎, uyghurche":"ug",ug:"ug",uig:"ug","ئۇيغۇرچە‎":"ug",uyghurche:"ug",ukrainian:"uk","українська":"uk",uk:"uk",ukr:"uk",urdu:"ur","اردو":"ur",ur:"ur",urd:"ur",uzbek:"uz","oʻzbek, ўзбек, أۇزبېك‎":"uz",uz:"uz",uzb:"uz","uzb + 2":"uz","oʻzbek":"uz","ўзбек":"uz","أۇزبېك‎":"uz",venda:"ve","tshivenḓa":"ve",ve:"ve",ven:"ve",vietnamese:"vi","tiếng việt":"vi",vi:"vi",vie:"vi","volapük":"vo",vo:"vo",vol:"vo",walloon:"wa",walon:"wa",wa:"wa",wln:"wa",welsh:"cy",cymraeg:"cy",cy:"cy",cym:"cy",wel:"cy",wolof:"wo",wollof:"wo",wo:"wo",wol:"wo","western frisian":"fy",frysk:"fy",fy:"fy",fry:"fy",xhosa:"xh",isixhosa:"xh",xh:"xh",xho:"xh",yiddish:"yi","ייִדיש":"yi",yi:"yi",yid:"yi","yid + 2":"yi",yoruba:"yo","yorùbá":"yo",yo:"yo",yor:"yo","zhuang, chuang":"za","saɯ cueŋƅ, saw cuengh":"za",za:"za",zha:"za","zha + 16":"za","saɯ cueŋƅ":"za","saw cuengh":"za",zulu:"zu",isizulu:"zu",zu:"zu",zul:"zu"};function reduce(from){return reductions[from.toLowerCase()]}function nth_matching_loc(tree,predicate,n){let count=0;for(const node of tree){if(predicate(node)){count++;if(count===n){return node.loc}}}return void 0}function makeTransition(this_se,from,to,isRight,_wasList,_wasIndex){const kind=isRight?arrow_right_kind(this_se.kind):arrow_left_kind(this_se.kind),edge={from:from,to:to,kind:kind,after_time:isRight?this_se.r_after:this_se.l_after,forced_only:kind==="forced",main_path:kind==="main",action:void 0,probability:void 0};const action=isRight?"r_action":"l_action",probability=isRight?"r_probability":"l_probability";if(this_se[action]!=null){edge.action=this_se[action]}if(this_se[probability]!=null){edge.probability=this_se[probability]}return edge}function wrap_parse(input,options){return peg$parse(input,{})}function normalize_group_members(value){return value.map(member=>typeof member==="string"?{kind:"state",name:member}:member)}function build_group_registry(tree){const registry=new Map;tree.forEach(node=>{if(node.key==="named_list"){if(registry.has(node.name)){throw new JssmError(void 0,`Cannot redeclare group: &${node.name}`)}registry.set(node.name,normalize_group_members(node.value))}});return registry}function group_registry_cycle_check(registry){const visiting=new Set;const visited=new Set;const walk=(group,path)=>{if(visiting.has(group)){const cycle=[...path,group].map(g=>`&${g}`).join(" -> ");throw new JssmError(void 0,`Group membership cycle detected: ${cycle}`)}if(visited.has(group)){return}visiting.add(group);(registry.get(group)??[]).forEach(member=>{if(member.kind==="group"){walk(member.name,[...path,group])}});visiting.delete(group);visited.add(group)};registry.forEach((_members,group)=>walk(group,[]))}function transitive_members(registry,group,memo){const cached=memo.get(group);if(cached!==void 0){return cached}const out=[];(registry.get(group)??[]).forEach(member=>{if(member.kind==="state"){out.push(member.name)}else{transitive_members(registry,member.name,memo).forEach(s=>out.push(s))}});memo.set(group,out);return out}function validate_group_members(registry){registry.forEach(members=>{members.forEach(member=>{if(member.kind==="group"&&!registry.has(member.name)){throw new JssmError(void 0,`Unresolved group reference: &${member.name}`)}})})}function membership_distance(registry,state,group){const visited=new Set([group]);let frontier=[{group:group,hops:0}];while(frontier.length){const next=[];for(const{group:g,hops:hops}of frontier){const members=registry.get(g)??[];for(const member of members){if(member.kind==="state"){if(member.name===state){return hops+1}}else if(!visited.has(member.name)){visited.add(member.name);next.push({group:member.name,hops:hops+1})}}}frontier=next}return Infinity}const edge_decl_meta=new WeakMap;function resolve_transition_conflicts(edges,has_group_sources=true){if(!has_group_sources){return edges}const buckets=new Map;edges.forEach((edge,index)=>{if(edge.action==null){return}const key=JSON.stringify([String(edge.from),String(edge.action)]);let by_decl=buckets.get(key);if(by_decl===void 0){by_decl=new Map;buckets.set(key,by_decl)}const meta=edge_decl_meta.get(edge);const decl_id=meta===void 0?void 0:meta.decl_id;const entry=by_decl.get(decl_id);if(entry===void 0){by_decl.set(decl_id,{decl_id:decl_id,indices:[index],source_group:meta===void 0?void 0:meta.source_group,specificity:(meta===void 0?void 0:meta.specificity)??Infinity})}else{entry.indices.push(index)}});const dropped=new Set;buckets.forEach(by_decl=>{const decls=[...by_decl.values()];if(decls.length<2){return}const state_decls=decls.filter(d=>d.source_group===void 0);const group_decls=decls.filter(d=>d.source_group!==void 0);if(state_decls.length){group_decls.forEach(d=>d.indices.forEach(i=>dropped.add(i)));return}let winner=group_decls[0];group_decls.forEach(d=>{const nearer=d.specificity<winner.specificity;const tie_later=d.specificity===winner.specificity&&d.decl_id>winner.decl_id;if(nearer||tie_later){winner=d}});group_decls.forEach(d=>{if(d.decl_id!==winner.decl_id){d.indices.forEach(i=>dropped.add(i));console.warn(`jssm: group &${d.source_group} transition for state '${String(edges[d.indices[0]].from)}' on action '${String(edges[d.indices[0]].action)}' is overridden by nearer group &${winner.source_group}`)}})});const out=[];edges.forEach((edge,index)=>{if(dropped.has(index)){return}out.push(edge)});return out}function is_group_ref(endpoint){return typeof endpoint==="object"&&endpoint.key==="group_ref"}function resolve_group_refs(tree,registry){const memo=new Map;const require_resolvable=name=>{if(!registry.has(name)){throw new JssmError(void 0,`Unresolved group reference: &${name}`)}};const resolved=[];let decl_id=0;tree.forEach(node=>{if(node.key==="hook_decl"&&is_group_ref(node.subject)){require_resolvable(node.subject.name)}if(node.key!=="transition"){resolved.push(node);return}const this_decl=decl_id++;for(let link=node.se;link;link=link.se){if(is_group_ref(link.to)){require_resolvable(link.to.name);link.to=transitive_members(registry,link.to.name,memo)}}if(is_group_ref(node.from)){const group_name=node.from.name;require_resolvable(group_name);transitive_members(registry,group_name,memo).forEach(member=>{resolved.push({...node,from:member,__decl_id:this_decl,__source_group:group_name,__specificity:membership_distance(registry,member,group_name)})})}else if(registry.size===0){resolved.push(node)}else{resolved.push({...node,__decl_id:this_decl})}});return resolved}function compile_rule_transition_step(acc,from,to,this_se,next_se){const uFrom=Array.isArray(from)?from:[from],uTo=Array.isArray(to)?to:[to];for(const f of uFrom){for(const t of uTo){const right=makeTransition(this_se,f,t,true);if(right.kind!=="none"){acc.push(right)}const left=makeTransition(this_se,t,f,false);if(left.kind!=="none"){acc.push(left)}}}if(next_se){return compile_rule_transition_step(acc,to,next_se.to,next_se,next_se.se)}else{return acc}}function compile_rule_handle_transition(rule){return compile_rule_transition_step([],rule.from,rule.se.to,rule.se,rule.se.se)}function compile_rule_handler(rule){if(rule.key==="transition"){const edges=compile_rule_handle_transition(rule);const decl_id=rule.__decl_id;const source_group=rule.__source_group;const specificity=rule.__specificity;edges.forEach(edge=>{if(edge.from===rule.from){edge_decl_meta.set(edge,{decl_id:decl_id,source_group:source_group,specificity:specificity})}});return{agg_as:"transition",val:edges}}if(rule.key==="machine_language"){const primary_subtag=String(rule.value).split(/[-_]/)[0];return{agg_as:"machine_language",val:reduce(primary_subtag)}}if(rule.key==="property_definition"){const ret={agg_as:"property_definition",val:{name:rule.name}};if(rule.hasOwnProperty("default_value")){ret.val.default_value=rule.default_value}if(rule.hasOwnProperty("required")){ret.val.required=rule.required}return ret}if(rule.key==="named_list"){return{agg_as:"named_list",val:[]}}if(rule.key==="hook_decl"){return{agg_as:"hook_decl",val:[rule]}}if(rule.key==="state_declaration"){if(!rule.name){throw new JssmError(void 0,"State declarations must have a name",{source_location:rule.loc})}if(is_group_ref(rule.name)){return{agg_as:"group_metadata",val:[{group:rule.name.name,declarations:rule.value}]}}return{agg_as:"state_declaration",val:{state:rule.name,declarations:rule.value}}}if(["arrange_declaration","arrange_start_declaration","arrange_end_declaration","oarrange_declaration","farrange_declaration"].includes(rule.key)){return{agg_as:rule.key,val:[rule.value]}}const tautologies=["graph_layout","graph_bg_color","start_states","end_states","failed_outputs","machine_name","machine_version","machine_comment","machine_author","machine_contributor","machine_definition","machine_reference","machine_license","fsl_version","state_config","theme","flow","dot_preamble","allows_override","allow_islands","default_state_config","default_transition_config","default_graph_config","default_start_state_config","default_end_state_config","default_hooked_state_config","default_active_state_config","default_terminal_state_config","npm_name","default_size","editor_config"];if(tautologies.includes(rule.key)){return{agg_as:rule.key,val:rule.value}}throw new JssmError(void 0,`compile_rule_handler: Unknown rule: ${JSON.stringify(rule)}`)}function canonical_graph_alias_key(alias_key){if(alias_key==="graph_bg_color"){return"background-color"}return alias_key}const WARN_DEPRECATED_GRAPH_ALIASES=new Set(["graph_bg_color"]);function fold_graph_config(aliases,explicit_block){const folded=[];Object.keys(aliases).forEach(alias_key=>{aliases[alias_key].forEach(value=>{if(WARN_DEPRECATED_GRAPH_ALIASES.has(alias_key)){console.warn(`jssm: top-level \`${alias_key}\` is deprecated; prefer a \`graph: {}\` config block`)}folded.push({key:canonical_graph_alias_key(alias_key),value:value})})});explicit_block.forEach(item=>folded.push(item));const seen_at=new Map;const result=[];folded.forEach(item=>{const existing_index=seen_at.get(item.key);if(existing_index===void 0){seen_at.set(item.key,result.length);result.push(item)}else{result[existing_index]=item}});return result}function compile(tree){const results={graph_layout:[],graph_bg_color:[],transition:[],start_states:[],end_states:[],failed_outputs:[],state_config:[],state_declaration:[],fsl_version:[],machine_author:[],machine_comment:[],machine_contributor:[],machine_definition:[],machine_language:[],machine_license:[],machine_name:[],machine_reference:[],npm_name:[],default_size:[],property_definition:[],state_property:{},theme:[],flow:[],dot_preamble:[],arrange_declaration:[],arrange_start_declaration:[],arrange_end_declaration:[],oarrange_declaration:[],farrange_declaration:[],machine_version:[],default_state_config:[],default_active_state_config:[],default_hooked_state_config:[],default_terminal_state_config:[],default_start_state_config:[],default_end_state_config:[],default_transition_config:[],default_graph_config:[],named_list:[],group_metadata:[],hook_decl:[],allows_override:[],allow_islands:[],editor_config:[]};const group_registry=build_group_registry(tree);group_registry_cycle_check(group_registry);validate_group_members(group_registry);const resolved_tree=resolve_group_refs(tree,group_registry);for(const tr of resolved_tree){const rule=compile_rule_handler(tr),val=rule.val,bucket=results[rule.agg_as];if(Array.isArray(val)){for(const v of val){bucket.push(v)}}else{bucket.push(val)}}const property_keys=results["property_definition"].map(pd=>pd.name),repeat_props=find_repeated(property_keys);if(repeat_props.length){const dup=repeat_props[0][0];throw new JssmError(void 0,`Cannot repeat property definitions. Saw ${JSON.stringify(repeat_props)}`,{source_location:nth_matching_loc(tree,n=>n.key==="property_definition"&&n.name===dup,2)})}const assembled_transitions=resolve_transition_conflicts(results["transition"],group_registry.size!==0);if(assembled_transitions.length===0){throw new JssmError(void 0,"This machine has no transitions, only declarations; a machine requires at least one transition (like `a -> b;`)")}const result_cfg={start_states:results.start_states.length?results.start_states:[assembled_transitions[0].from],end_states:results.end_states,failed_outputs:results.failed_outputs,transitions:assembled_transitions,state_property:[]};if(group_registry.size){result_cfg.group_registry=group_registry}if(results.group_metadata.length){const group_metadata=new Map;results.group_metadata.forEach(gm=>{group_metadata.set(gm.group,{declarations:gm.declarations})});result_cfg.group_metadata=group_metadata}if(results.hook_decl.length){const group_hooks=new Map;const state_hooks=new Map;const merge_hook=(table,subject,event,action)=>{const existing=table.get(subject)??{};if(event==="enter"){existing.onEnter=action}else{existing.onExit=action}table.set(subject,existing)};results.hook_decl.forEach(decl=>{if(is_group_ref(decl.subject)){merge_hook(group_hooks,decl.subject.name,decl.event,decl.action)}else{merge_hook(state_hooks,decl.subject,decl.event,decl.action)}});if(group_hooks.size){result_cfg.group_hooks=group_hooks}if(state_hooks.size){result_cfg.state_hooks=state_hooks}}const oneOnlyKeys=["graph_layout","graph_bg_color","machine_name","machine_version","machine_comment","fsl_version","machine_license","machine_definition","machine_language","flow","dot_preamble","allows_override","allow_islands","npm_name","default_size"];oneOnlyKeys.map(oneOnlyKey=>{if(results[oneOnlyKey].length>1){throw new JssmError(void 0,`May only have one ${oneOnlyKey} statement maximum: ${JSON.stringify(results[oneOnlyKey])}`,{source_location:nth_matching_loc(tree,n=>n.key===oneOnlyKey,2)})}else{if(results[oneOnlyKey].length){result_cfg[oneOnlyKey]=results[oneOnlyKey][0]}}});["arrange_declaration","arrange_start_declaration","arrange_end_declaration","oarrange_declaration","farrange_declaration","machine_author","machine_contributor","machine_reference","theme","state_declaration","property_definition","default_state_config","default_start_state_config","default_end_state_config","default_hooked_state_config","default_terminal_state_config","default_active_state_config","default_transition_config"].map(multiKey=>{if(results[multiKey].length){result_cfg[multiKey]=results[multiKey]}});result_cfg.default_graph_config=fold_graph_config({graph_layout:results.graph_layout,graph_bg_color:results.graph_bg_color,dot_preamble:results.dot_preamble,theme:results.theme,flow:results.flow},results.default_graph_config);if(!result_cfg.default_graph_config.length){delete result_cfg.default_graph_config}if(results.editor_config.length){const ec={};for(const item of results.editor_config){if(item.key==="stochastic_run_count"){ec.stochastic_run_count=item.value}else{ec.panels=item.value}}result_cfg.editor_config=ec}results.state_declaration.forEach(sd=>{sd.declarations.forEach(decl=>{if(decl.key==="state_property"){const label=name_bind_prop_and_state(decl.name,sd.state);if(result_cfg.state_property.findIndex(c=>c.name===label)!==-1){throw new JssmError(void 0,`A state may only bind a property once (${sd.state} re-binds ${decl.name})`,{source_location:nth_matching_loc(tree,n=>n.key==="state_declaration"&&n.name===sd.state,1)})}else{result_cfg.state_property.push({name:label,default_value:decl.value,property:decl.name,state:sd.state})}}})});return result_cfg}function make(plan){return compile(wrap_parse(plan))}const base_state_style$5={shape:"rectangle",backgroundColor:"white",textColor:"black",borderColor:"black"};const base_active_state_style$5={textColor:"white",backgroundColor:"dodgerblue4"};const base_hooked_state_style$5={shape:"component"};const base_terminal_state_style$5={textColor:"white",backgroundColor:"crimson"};const base_start_state_style$5={backgroundColor:"yellow"};const base_end_state_style$5={textColor:"white",backgroundColor:"darkolivegreen"};const base_theme={state:base_state_style$5,start:base_start_state_style$5,end:base_end_state_style$5,terminal:base_terminal_state_style$5,hooked:base_hooked_state_style$5,active:base_active_state_style$5};const base_state_style$4={shape:"rectangle",backgroundColor:"white",textColor:"black",borderColor:"black"};const base_active_state_style$4={textColor:"white",backgroundColor:"dodgerblue4"};const base_hooked_state_style$4={shape:"component"};const base_terminal_state_style$4={textColor:"white",backgroundColor:"crimson"};const base_active_terminal_state_style$4={textColor:"white",backgroundColor:"indigo"};const base_start_state_style$4={backgroundColor:"yellow"};const base_active_start_state_style$4={backgroundColor:"yellowgreen"};const base_active_hooked_state_style$4={backgroundColor:"yellowgreen"};const base_end_state_style$4={textColor:"white",backgroundColor:"darkolivegreen"};const base_active_end_state_style$4={textColor:"white",backgroundColor:"darkgreen"};const default_theme={name:"default",state:base_state_style$4,start:base_start_state_style$4,end:base_end_state_style$4,terminal:base_terminal_state_style$4,hooked:base_hooked_state_style$4,active:base_active_state_style$4,active_start:base_active_start_state_style$4,active_end:base_active_end_state_style$4,active_terminal:base_active_terminal_state_style$4,active_hooked:base_active_hooked_state_style$4,legal:void 0,main:void 0,forced:void 0,action:void 0,graph:void 0,title:void 0};const base_state_style$3={shape:"rectangle",backgroundColor:"khaki",textColor:"black",borderColor:"black"};const base_active_state_style$3={textColor:"white",backgroundColor:"dodgerblue4"};const base_hooked_state_style$3={shape:"component"};const base_terminal_state_style$3={textColor:"white",backgroundColor:"crimson"};const base_active_terminal_state_style$3={textColor:"white",backgroundColor:"indigo"};const base_start_state_style$3={backgroundColor:"yellow"};const base_active_start_state_style$3={backgroundColor:"yellowgreen"};const base_active_hooked_state_style$3={backgroundColor:"yellowgreen"};const base_end_state_style$3={textColor:"white",backgroundColor:"darkolivegreen"};const base_active_end_state_style$3={textColor:"white",backgroundColor:"darkgreen"};const modern_theme={name:"modern",state:base_state_style$3,start:base_start_state_style$3,end:base_end_state_style$3,terminal:base_terminal_state_style$3,hooked:base_hooked_state_style$3,active:base_active_state_style$3,active_start:base_active_start_state_style$3,active_end:base_active_end_state_style$3,active_terminal:base_active_terminal_state_style$3,active_hooked:base_active_hooked_state_style$3,legal:void 0,main:void 0,forced:void 0,action:void 0,graph:void 0,title:void 0};const base_state_style$2={backgroundColor:"cadetblue1"};const base_active_state_style$2={textColor:"white",backgroundColor:"deepskyblue"};const base_hooked_state_style$2={shape:"component",backgroundColor:"mediumaquamarine"};const base_terminal_state_style$2={textColor:"white",backgroundColor:"darkviolet"};const base_active_terminal_state_style$2={textColor:"white",backgroundColor:"deeppink"};const base_start_state_style$2={backgroundColor:"darkseagreen1"};const base_active_start_state_style$2={backgroundColor:"aquamarine"};const base_active_hooked_state_style$2={backgroundColor:"aquamarine"};const base_end_state_style$2={textColor:"white",backgroundColor:"chartreuse1"};const base_active_end_state_style$2={textColor:"white",backgroundColor:"darkgreen"};const ocean_theme={name:"ocean",state:base_state_style$2,start:base_start_state_style$2,end:base_end_state_style$2,terminal:base_terminal_state_style$2,hooked:base_hooked_state_style$2,active:base_active_state_style$2,active_start:base_active_start_state_style$2,active_end:base_active_end_state_style$2,active_terminal:base_active_terminal_state_style$2,active_hooked:base_active_hooked_state_style$2,legal:void 0,main:void 0,forced:void 0,action:void 0,graph:void 0,title:void 0};const base_state_style$1={textColor:"black",backgroundColor:"transparent",shape:"plaintext"};const base_active_state_style$1={textColor:"black",backgroundColor:"transparent",shape:"plaintext"};const base_hooked_state_style$1={textColor:"black",backgroundColor:"transparent",shape:"plaintext"};const base_terminal_state_style$1={textColor:"black",backgroundColor:"transparent",shape:"plaintext"};const base_active_terminal_state_style$1={textColor:"black",backgroundColor:"transparent",shape:"plaintext"};const base_start_state_style$1={textColor:"black",backgroundColor:"transparent",shape:"plaintext"};const base_active_start_state_style$1={textColor:"black",backgroundColor:"transparent",shape:"plaintext"};const base_active_hooked_state_style$1={textColor:"black",backgroundColor:"transparent",shape:"plaintext"};const base_end_state_style$1={textColor:"black",backgroundColor:"transparent",shape:"plaintext"};const base_active_end_state_style$1={textColor:"black",backgroundColor:"transparent",shape:"plaintext"};const plain_theme={name:"plain",state:base_state_style$1,start:base_start_state_style$1,end:base_end_state_style$1,terminal:base_terminal_state_style$1,hooked:base_hooked_state_style$1,active:base_active_state_style$1,active_start:base_active_start_state_style$1,active_end:base_active_end_state_style$1,active_terminal:base_active_terminal_state_style$1,active_hooked:base_active_hooked_state_style$1,legal:void 0,main:void 0,forced:void 0,action:void 0,graph:void 0,title:void 0};const base_state_style={shape:"rectangle",backgroundColor:"khaki",textColor:"black",borderColor:"black"};const base_active_state_style={textColor:"white",backgroundColor:"dodgerblue4"};const base_hooked_state_style={shape:"component"};const base_terminal_state_style={textColor:"white",backgroundColor:"crimson"};const base_active_terminal_state_style={textColor:"white",backgroundColor:"indigo"};const base_start_state_style={backgroundColor:"yellow"};const base_active_start_state_style={backgroundColor:"yellowgreen"};const base_active_hooked_state_style={backgroundColor:"yellowgreen"};const base_end_state_style={textColor:"white",backgroundColor:"darkolivegreen"};const base_active_end_state_style={textColor:"white",backgroundColor:"darkgreen"};const bold_theme={name:"bold",state:base_state_style,start:base_start_state_style,end:base_end_state_style,terminal:base_terminal_state_style,hooked:base_hooked_state_style,active:base_active_state_style,active_start:base_active_start_state_style,active_end:base_active_end_state_style,active_terminal:base_active_terminal_state_style,active_hooked:base_active_hooked_state_style,legal:void 0,main:void 0,forced:void 0,action:void 0,graph:void 0,title:void 0};const theme_mapping=new Map;theme_mapping.set("default",default_theme);theme_mapping.set("modern",modern_theme);theme_mapping.set("ocean",ocean_theme);theme_mapping.set("plain",plain_theme);theme_mapping.set("bold",bold_theme);class Interner{constructor(){this.ids=new Map;this.names=[]}intern(name){const existing=this.ids.get(name);if(existing!==void 0){return existing}const id=this.names.length;this.ids.set(name,id);this.names.push(name);return id}id_of(name){return this.ids.get(name)}name_of(id){return this.names[id]}get size(){return this.names.length}}function pair_key(a,b){return a>=b?a*a+a+b:b*b+a}function un_pair_key(z){const s=Math.floor(Math.sqrt(z));const l=z-s*s;return l<s?[l,s]:[s,l-s]}const state_name_chars$1=Object.freeze([{from:"0",to:"9"},{from:"a",to:"z"},{from:"A",to:"Z"},{from:".",to:"."},{from:"+",to:"+"},{from:"_",to:"_"},{from:"^",to:"^"},{from:"(",to:"("},{from:")",to:")"},{from:"*",to:"*"},{from:"&",to:"&"},{from:"$",to:"$"},{from:"#",to:"#"},{from:"@",to:"@"},{from:"!",to:"!"},{from:"?",to:"?"},{from:",",to:","},{from:"€",to:"￿"}]);const state_name_first_chars$1=Object.freeze([{from:"0",to:"9"},{from:"a",to:"z"},{from:"A",to:"Z"},{from:".",to:"."},{from:"_",to:"_"},{from:"!",to:"!"},{from:"$",to:"$"},{from:"^",to:"^"},{from:"*",to:"*"},{from:"?",to:"?"},{from:",",to:","},{from:"€",to:"￿"}]);const action_label_chars$1=Object.freeze([{from:" ",to:"&"},{from:"(",to:"["},{from:"]",to:"￿"}]);var constants=Object.freeze({__proto__:null,action_label_chars:action_label_chars$1,state_name_chars:state_name_chars$1,state_name_first_chars:state_name_first_chars$1});const version="5.157.18";const{state_name_chars:state_name_chars,state_name_first_chars:state_name_first_chars,action_label_chars:action_label_chars}=constants;const empty_string_set=new Set;const hook_required_fields={hook:["from","to"],named:["from","to","action"],"global action":["action"],"any action":[],"standard transition":[],"main transition":[],"forced transition":[],"any transition":[],entry:["to"],exit:["from"],after:["from"],"post hook":["from","to"],"post named":["from","to","action"],"post global action":["action"],"post any action":[],"post standard transition":[],"post main transition":[],"post forced transition":[],"post any transition":[],"post entry":["to"],"post exit":["from"],"pre everything":[],everything:[],"pre post everything":[],"post everything":[]};const hook_spatial_fields=["from","to","action"];function transfer_state_properties(state_decl){state_decl.declarations.map(d=>{switch(d.key){case"shape":state_decl.shape=d.value;break;case"color":state_decl.color=d.value;break;case"corners":state_decl.corners=d.value;break;case"line-style":state_decl.lineStyle=d.value;break;case"text-color":state_decl.textColor=d.value;break;case"background-color":state_decl.backgroundColor=d.value;break;case"state-label":state_decl.stateLabel=d.value;break;case"border-color":state_decl.borderColor=d.value;break;case"image":state_decl.image=d.value;break;case"url":state_decl.url=d.value;break;case"state_property":state_decl.property={name:d.name,value:d.value};break;default:throw new JssmError(void 0,`Unknown state property: '${JSON.stringify(d)}'`)}});return state_decl}function state_style_condense(jssk,machine){const state_style={};if(Array.isArray(jssk)){jssk.forEach((key,i)=>{if(typeof key!=="object"){throw new JssmError(machine,`invalid state item ${i} in state_style_condense list: ${JSON.stringify(key)}`)}switch(key.key){case"shape":if(state_style.shape!==void 0){throw new JssmError(machine,`cannot redefine 'shape' in state_style_condense, already defined`)}state_style.shape=key.value;break;case"color":if(state_style.color!==void 0){throw new JssmError(machine,`cannot redefine 'color' in state_style_condense, already defined`)}state_style.color=key.value;break;case"text-color":if(state_style.textColor!==void 0){throw new JssmError(machine,`cannot redefine 'text-color' in state_style_condense, already defined`)}state_style.textColor=key.value;break;case"corners":if(state_style.corners!==void 0){throw new JssmError(machine,`cannot redefine 'corners' in state_style_condense, already defined`)}state_style.corners=key.value;break;case"line-style":if(state_style.lineStyle!==void 0){throw new JssmError(machine,`cannot redefine 'line-style' in state_style_condense, already defined`)}state_style.lineStyle=key.value;break;case"background-color":if(state_style.backgroundColor!==void 0){throw new JssmError(machine,`cannot redefine 'background-color' in state_style_condense, already defined`)}state_style.backgroundColor=key.value;break;case"state-label":if(state_style.stateLabel!==void 0){throw new JssmError(machine,`cannot redefine 'state-label' in state_style_condense, already defined`)}state_style.stateLabel=key.value;break;case"border-color":if(state_style.borderColor!==void 0){throw new JssmError(machine,`cannot redefine 'border-color' in state_style_condense, already defined`)}state_style.borderColor=key.value;break;case"url":if(state_style.url!==void 0){throw new JssmError(machine,`cannot redefine 'url' in state_style_condense, already defined`)}state_style.url=key.value;break;default:throw new JssmError(machine,`unknown state style key in condense: ${key.key}`)}})}else if(jssk===void 0);else{throw new JssmError(machine,"state_style_condense received a non-array")}return state_style}function merge_state_config(base,over){const merged={...base};Object.keys(over).forEach(key=>{if(over[key]!==void 0){merged[key]=over[key]}});return merged}function find_connected_components(states,edges){const adj=new Map;for(const name of states.keys()){adj.set(name,new Set)}for(const edge of edges){adj.get(edge.from).add(edge.to);adj.get(edge.to).add(edge.from)}const visited=new Set;const result=[];for(const start of states.keys()){if(visited.has(start)){continue}const component=[];const queue=[start];visited.add(start);let head=0;while(head<queue.length){const node=queue[head++];component.push(node);for(const neighbor of adj.get(node)){if(!visited.has(neighbor)){visited.add(neighbor);queue.push(neighbor)}}}result.push(component)}return result}const STOCHASTIC_DEFAULT_RUNS=1e3;const STOCHASTIC_DEFAULT_MAX_STEPS=1e3;const DEFAULT_TIME_SOURCE=()=>(new Date).getTime();const DEFAULT_TIMEOUT_SOURCE=(f,a)=>setTimeout(f,a);const DEFAULT_CLEAR_TIMEOUT_SOURCE=h=>clearTimeout(h);class Machine{constructor({start_states:start_states,end_states:end_states=[],failed_outputs:failed_outputs=[],initial_state:initial_state,start_states_no_enforce:start_states_no_enforce,complete:complete=[],transitions:transitions,machine_author:machine_author,machine_comment:machine_comment,machine_contributor:machine_contributor,machine_definition:machine_definition,machine_language:machine_language,machine_license:machine_license,machine_name:machine_name,machine_version:machine_version,npm_name:npm_name,default_size:default_size,state_declaration:state_declaration,property_definition:property_definition,state_property:state_property,fsl_version:fsl_version,dot_preamble:dot_preamble=void 0,arrange_declaration:arrange_declaration=[],arrange_start_declaration:arrange_start_declaration=[],arrange_end_declaration:arrange_end_declaration=[],oarrange_declaration:oarrange_declaration=[],farrange_declaration:farrange_declaration=[],theme:theme=["default"],flow:flow="down",graph_layout:graph_layout="dot",instance_name:instance_name,history:history,boundary_depth_limit:boundary_depth_limit,data:data,default_state_config:default_state_config,default_active_state_config:default_active_state_config,default_hooked_state_config:default_hooked_state_config,default_terminal_state_config:default_terminal_state_config,default_start_state_config:default_start_state_config,default_end_state_config:default_end_state_config,default_transition_config:default_transition_config,default_graph_config:default_graph_config,group_registry:group_registry,group_metadata:group_metadata,group_hooks:group_hooks,state_hooks:state_hooks,allows_override:allows_override,config_allows_override:config_allows_override,allow_islands:allow_islands,editor_config:editor_config,rng_seed:rng_seed,time_source:time_source,timeout_source:timeout_source,clear_timeout_source:clear_timeout_source}){this._time_source=time_source??DEFAULT_TIME_SOURCE;this._create_started=this._time_source();this._instance_name=instance_name;this._states=new Map;this._state_declarations=new Map;this._edges=[];this._edge_map=new Map;this._outbound_edge_ids=new Map;this._named_transitions=new Map;this._actions=new Map;this._reverse_actions=new Map;this._reverse_action_targets=new Map;this._state_interner=new Interner;this._action_interner=new Interner;this._state_id=NaN;this._edge_id_by_pair=new Map;this._edge_id_by_action_pair=new Map;this._edge_to_ids=[];this._start_states=new Set(start_states);this._end_states=new Set(end_states);this._failed_outputs=new Set(failed_outputs);this._machine_author=array_box_if_string(machine_author);this._machine_comment=machine_comment;this._machine_contributor=array_box_if_string(machine_contributor);this._machine_definition=machine_definition;this._machine_language=machine_language;this._machine_license=machine_license;this._machine_name=machine_name;this._machine_version=machine_version;this._npm_name=npm_name;this._default_size=default_size;this._raw_state_declaration=state_declaration||[];this._fsl_version=fsl_version;this._arrange_declaration=arrange_declaration;this._arrange_start_declaration=arrange_start_declaration;this._arrange_end_declaration=arrange_end_declaration;this._oarrange_declaration=oarrange_declaration;this._farrange_declaration=farrange_declaration;this._dot_preamble=dot_preamble;this._themes=theme;this._flow=flow;this._graph_layout=graph_layout;this._has_hooks=false;this._has_basic_hooks=false;this._has_named_hooks=false;this._has_entry_hooks=false;this._has_exit_hooks=false;this._has_after_hooks=false;this._has_global_action_hooks=false;this._has_transition_hooks=false;this._has_forced_transitions=false;this._hooks=new Map;this._named_hooks=new Map;this._entry_hooks=new Map;this._exit_hooks=new Map;this._after_hooks=new Map;this._global_action_hooks=new Map;this._any_action_hook=void 0;this._standard_transition_hook=void 0;this._main_transition_hook=void 0;this._forced_transition_hook=void 0;this._any_transition_hook=void 0;this._has_post_hooks=false;this._has_post_basic_hooks=false;this._has_post_named_hooks=false;this._has_post_entry_hooks=false;this._has_post_exit_hooks=false;this._has_post_global_action_hooks=false;this._has_post_transition_hooks=false;this._code_allows_override=allows_override;this._config_allows_override=config_allows_override;this._allow_islands=allow_islands??true;this._editor_config=editor_config;if(allows_override===false&&config_allows_override===true){throw new JssmError(void 0,"Code specifies no override, but config tries to permit; config may not be less strict than code")}this._post_hooks=new Map;this._post_named_hooks=new Map;this._post_entry_hooks=new Map;this._post_exit_hooks=new Map;this._post_global_action_hooks=new Map;this._post_any_action_hook=void 0;this._post_standard_transition_hook=void 0;this._post_main_transition_hook=void 0;this._post_forced_transition_hook=void 0;this._post_any_transition_hook=void 0;this._pre_everything_hook=void 0;this._everything_hook=void 0;this._pre_post_everything_hook=void 0;this._post_everything_hook=void 0;this._data=data;this._property_keys=new Set;this._default_properties=new Map;this._state_properties=new Map;this._required_properties=new Set;this._state_property_first_state=new Map;this._state_style=state_style_condense(default_state_config,this);this._active_state_style=state_style_condense(default_active_state_config,this);this._hooked_state_style=state_style_condense(default_hooked_state_config,this);this._terminal_state_style=state_style_condense(default_terminal_state_config,this);this._start_state_style=state_style_condense(default_start_state_config,this);this._end_state_style=state_style_condense(default_end_state_config,this);this._default_transition_config=default_transition_config;this._default_graph_config=default_graph_config;this._group_registry=group_registry??new Map;this._group_hooks=group_hooks??new Map;this._state_hooks=state_hooks??new Map;this._group_metadata=new Map;if(group_metadata){group_metadata.forEach((raw,group_name)=>this._group_metadata.set(group_name,state_style_condense(raw.declarations,this)))}this._group_order=[...this._group_registry.keys()];this._state_to_groups=new Map;{const memo=new Map;this._group_order.forEach(group_name=>{transitive_members(this._group_registry,group_name,memo).forEach(member=>{let bucket=this._state_to_groups.get(member);if(bucket===void 0){bucket=new Set;this._state_to_groups.set(member,bucket)}bucket.add(group_name)})})}this._static_state_config_cache=new Map;this._history_length=history||0;this._history=new circular_buffer(this._history_length);this._state_labels=new Map;this._rng_seed=rng_seed??(new Date).getTime();this._rng=gen_splitmix32(this._rng_seed);this._timeout_source=timeout_source??DEFAULT_TIMEOUT_SOURCE;this._clear_timeout_source=clear_timeout_source??DEFAULT_CLEAR_TIMEOUT_SOURCE;this._timeout_handle=void 0;this._timeout_target=void 0;this._timeout_target_time=void 0;this._after_mapping=new Map;this._event_handlers=new Map;this._event_listener_count=0;this._firing_error=false;this._boundary_depth=0;this._boundary_depth_limit=boundary_depth_limit??100;if(state_declaration){state_declaration.map(state_decl=>{if(this._state_declarations.has(state_decl.state)){throw new JssmError(this,`Added the same state declaration twice: ${JSON.stringify(state_decl.state)}`)}this._state_declarations.set(state_decl.state,transfer_state_properties(state_decl))})}[...this._state_declarations].map(sd=>{const[key,decl]=sd,labelled=decl.declarations.filter(d=>d.key==="state-label");if(labelled.length>1){throw new JssmError(this,`state ${key} may only have one state-label; has ${labelled.length}`)}if(labelled.length===1){this._state_labels.set(key,labelled[0].value)}});const seen_edges=new Map;const complete_set=new Set(complete);for(const tr of transitions){if(tr.from===void 0){throw new JssmError(this,`transition must define 'from': ${JSON.stringify(tr)}`)}if(tr.to===void 0){throw new JssmError(this,`transition must define 'to': ${JSON.stringify(tr)}`)}let cursor_from=this._states.get(tr.from);if(cursor_from===void 0){cursor_from={name:tr.from,from:[],to:[],complete:complete_set.has(tr.from)};this._new_state(cursor_from)}let cursor_to=this._states.get(tr.to);if(cursor_to===void 0){cursor_to={name:tr.to,from:[],to:[],complete:complete_set.has(tr.to)};this._new_state(cursor_to)}let to_slots=seen_edges.get(tr.from);if(to_slots===void 0){to_slots=new Map;seen_edges.set(tr.from,to_slots)}let slots=to_slots.get(tr.to);if(slots===void 0){slots=new Set;to_slots.set(tr.to,slots);cursor_from.to.push(tr.to);cursor_to.from.push(tr.from)}const edge_exempt=!tr.action&&tr.probability!==void 0;if(!edge_exempt){const slot=tr.action?tr.action:"";if(slots.has(slot)){throw new JssmError(this,`already has ${JSON.stringify(tr.from)} to ${JSON.stringify(tr.to)}`+(tr.action?` on action ${JSON.stringify(tr.action)}`:""))}slots.add(slot)}this._edges.push(tr);const thisEdgeId=this._edges.length-1;if(tr.forced_only){this._has_forced_transitions=true}if(tr.name){if(this._named_transitions.has(tr.name)){throw new JssmError(this,`named transition "${JSON.stringify(tr.name)}" already created`)}else{this._named_transitions.set(tr.name,thisEdgeId)}}if(tr.after_time){this._after_mapping.set(tr.from,[tr.to,tr.after_time])}let from_mapping=this._edge_map.get(tr.from);if(from_mapping===void 0){from_mapping=new Map;this._edge_map.set(tr.from,from_mapping)}if(!from_mapping.has(tr.to)){from_mapping.set(tr.to,thisEdgeId)}const from_id=this._state_interner.intern(tr.from);const to_id=this._state_interner.intern(tr.to);const pair=pair_key(from_id,to_id);if(!this._edge_id_by_pair.has(pair)){this._edge_id_by_pair.set(pair,thisEdgeId)}this._edge_to_ids[thisEdgeId]=to_id;let outbound=this._outbound_edge_ids.get(tr.from);if(!outbound){outbound=[];this._outbound_edge_ids.set(tr.from,outbound)}outbound.push(thisEdgeId);if(tr.action){let actionMap=this._actions.get(tr.action);if(!actionMap){actionMap=new Map;this._actions.set(tr.action,actionMap)}if(actionMap.has(tr.from)){throw new JssmError(this,`action ${JSON.stringify(tr.action)} already attached to origin ${JSON.stringify(tr.from)}`)}else{actionMap.set(tr.from,thisEdgeId)}let rActionMap=this._reverse_actions.get(tr.from);if(!rActionMap){rActionMap=new Map;this._reverse_actions.set(tr.from,rActionMap)}rActionMap.set(tr.action,thisEdgeId);const action_id=this._action_interner.intern(tr.action);this._edge_id_by_action_pair.set(pair_key(action_id,from_id),thisEdgeId);if(!this._reverse_action_targets.has(tr.to)){this._reverse_action_targets.set(tr.to,new Map)}}}if(Array.isArray(property_definition)){property_definition.forEach(pr=>{this._property_keys.add(pr.name);if(pr.hasOwnProperty("default_value")){this._default_properties.set(pr.name,pr.default_value)}if(pr.hasOwnProperty("required")&&pr.required===true){this._required_properties.add(pr.name)}})}if(Array.isArray(state_property)){state_property.forEach(sp=>{this._state_properties.set(sp.name,sp.default_value);let j_property=sp.property,j_state=sp.state;if(j_property===void 0||j_state===void 0){const inside=JSON.parse(sp.name);j_property=inside[0];j_state=inside[1]}if(!this._state_property_first_state.has(j_property)){this._state_property_first_state.set(j_property,j_state)}})}if(initial_state){if(!this._states.has(initial_state)){throw new JssmError(this,`requested start state ${initial_state} does not exist`)}if(!start_states_no_enforce&&!start_states.includes(initial_state)){throw new JssmError(this,`requested start state ${initial_state} is not in start state list; add {start_states_no_enforce:true} to constructor options if desired`)}this._state=initial_state;this._state_id=this._state_interner.intern(this._state)}else{this._state=start_states[0];this._state_id=this._state_interner.intern(this._state)}this._state_property_first_state.forEach((j_state,j_property)=>{if(!this.known_prop(j_property)){throw new JssmError(this,`State "${j_state}" has property "${j_property}" which is not globally declared`)}});const all_states_for_props=this.states();this._required_properties.forEach(dp_key=>{if(this._default_properties.has(dp_key)){throw new JssmError(this,`The property "${dp_key}" is required, but also has a default; these conflict`)}all_states_for_props.forEach(s=>{const bound_name=name_bind_prop_and_state(dp_key,s);if(!this._state_properties.has(bound_name)){throw new JssmError(this,`State "${s}" is missing required property "${dp_key}"`)}})});if(!this.has_state(this.state())){throw new JssmError(this,`Current start state "${this.state()}" does not exist`)}start_states.forEach((ss,ssi)=>{if(!this.has_state(ss)){throw new JssmError(this,`Start state ${ssi} "${ss}" does not exist`)}});if(!(start_states.length===this._start_states.size)){throw new JssmError(this,`Start states cannot be repeated`)}if(this._allow_islands!==true){const components=find_connected_components(this._states,this._edges);if(this._allow_islands===false){if(components.length>1){throw new JssmError(this,`allow_islands is false but the state graph has ${components.length} disconnected components`)}}else{for(const component of components){const has_start=component.some(s=>this._start_states.has(s));if(!has_start){throw new JssmError(this,`allow_islands is 'with_start' but a connected component has no start state: [${[...component].join(", ")}]`)}}}}this._created=this._time_source();this.auto_set_state_timeout();[this._arrange_declaration,this._oarrange_declaration,this._farrange_declaration].forEach(declaration=>declaration.forEach(arrange_pair=>arrange_pair.forEach(possibleState=>{if(!this._states.has(possibleState)){throw new JssmError(this,`Cannot arrange state that does not exist "${possibleState}"`)}})))}_new_state(state_config){if(this._states.has(state_config.name)){throw new JssmError(this,`state ${JSON.stringify(state_config.name)} already exists`)}this._states.set(state_config.name,state_config);this._state_interner.intern(state_config.name);return state_config.name}state(){return this._state}label_for(state){return this._state_labels.get(state)}display_text(state){return this._state_labels.get(state)??state}data(){return structuredClone(this._data)}_data_ref(){return this._data}prop(name){const bound_name=name_bind_prop_and_state(name,this.state());if(this._state_properties.has(bound_name)){return this._state_properties.get(bound_name)}else if(this._default_properties.has(name)){return this._default_properties.get(name)}else{return void 0}}strict_prop(name){const bound_name=name_bind_prop_and_state(name,this.state());if(this._state_properties.has(bound_name)){return this._state_properties.get(bound_name)}else if(this._default_properties.has(name)){return this._default_properties.get(name)}else{throw new JssmError(this,`Strictly requested a prop '${name}' which doesn't exist on current state '${this.state()}' and has no default`)}}props(){const ret={};this.known_props().forEach(p=>ret[p]=this.prop(p));return ret}known_prop(prop_name){return this._property_keys.has(prop_name)}known_props(){return[...this._property_keys]}is_start_state(whichState){return this._start_states.has(whichState)}is_end_state(whichState){return this._end_states.has(whichState)}failed_outputs(){return[...this._failed_outputs]}is_failed_output(whichState){return this._failed_outputs.has(whichState)}is_failed(){return this._failed_outputs.has(this._state)}state_is_final(whichState){return this.state_is_terminal(whichState)||this.state_is_complete(whichState)}is_final(){return this.state_is_final(this.state())}serialize(comment){return{comment:comment,state:this._state,data:this._data,jssm_version:version,history:this._history.toArray(),history_capacity:this._history.capacity,timestamp:this._time_source()}}graph_layout(){return this._graph_layout}dot_preamble(){return this._dot_preamble}default_transition_config(){return this._default_transition_config}default_graph_config(){return this._default_graph_config}machine_author(){return this._machine_author}machine_comment(){return this._machine_comment}machine_contributor(){return this._machine_contributor}machine_definition(){return this._machine_definition}machine_language(){return this._machine_language}machine_license(){return this._machine_license}machine_name(){return this._machine_name}editor_config(){return this._editor_config}npm_name(){return this._npm_name}default_size(){return this._default_size}machine_version(){return this._machine_version}raw_state_declarations(){return this._raw_state_declaration}state_declaration(which){return this._state_declarations.get(which)}state_declarations(){return this._state_declarations}fsl_version(){return this._fsl_version}machine_state(){return{internal_state_impl_version:1,actions:this._actions,edge_map:this._edge_map,edges:this._edges,named_transitions:this._named_transitions,reverse_actions:this._reverse_actions,state:this._state,states:this._states}}states(){return Array.from(this._states.keys())}state_for(whichState){const state=this._states.get(whichState);if(state){return state}else{throw new JssmError(this,"No such state",{requested_state:whichState})}}has_state(whichState){return this._states.get(whichState)!==void 0}list_edges(){return this._edges}list_named_transitions(){return this._named_transitions}list_actions(){return Array.from(this._actions.keys())}get uses_actions(){return this._actions.size>0}get uses_forced_transitions(){return this._has_forced_transitions}get code_allows_override(){return this._code_allows_override}get config_allows_override(){return this._config_allows_override}get allows_override(){if(this._code_allows_override===false){if(this._config_allows_override===true){throw new JssmError(this,"Code specifies no override, but config tries to permit; config may not be less strict than code; should be unreachable")}else{return false}}if(this._code_allows_override===true){if(this._config_allows_override===false){return false}else{return true}}if(this._config_allows_override===true){return true}else{return false}}get allow_islands(){return this._allow_islands}all_themes(){return[...theme_mapping.keys()]}all_state_name_chars(){return state_name_chars}all_state_name_first_chars(){return state_name_first_chars}all_action_label_chars(){return action_label_chars}get themes(){return this._themes}set themes(to){if(typeof to==="string"){this._themes=[to]}else{this._themes=to}}flow(){return this._flow}get_transition_by_state_names(from2,to){const emg=this._edge_map.get(from2);if(emg){return emg.get(to)}else{return void 0}}lookup_transition_for(from2,to){const id=this.get_transition_by_state_names(from2,to);return id===void 0||id===null?void 0:this._edges[id]}list_transitions(whichState=this.state()){return{entrances:this.list_entrances(whichState),exits:this.list_exits(whichState)}}list_entrances(whichState=this.state()){const guaranteed=this._states.get(whichState)??{from:void 0};return guaranteed.from??[]}list_exits(whichState=this.state()){const guaranteed=this._states.get(whichState)??{to:void 0};return guaranteed.to??[]}probable_exits_for(whichState){const wstate=this._states.get(whichState);if(!wstate){throw new JssmError(this,`No such state ${JSON.stringify(whichState)} in probable_exits_for`)}const legal_exits=[],probability_bearing=[];const emg=this._edge_map.get(whichState);for(const ws of wstate.to){const edge=this._edges[emg.get(ws)];if(!edge){continue}if(edge.forced_only){continue}legal_exits.push(edge);if(edge.probability!==void 0){probability_bearing.push(edge)}}return probability_bearing.length>0?probability_bearing:legal_exits}probabilistic_transition(){const selected=weighted_rand_select(this.probable_exits_for(this.state()),void 0,this._rng);return this.transition(selected.to)}probabilistic_walk(n){return seq(n).map(()=>{const state_was=this.state();this.probabilistic_transition();return state_was}).concat([this.state()])}probabilistic_histo_walk(n){return histograph(this.probabilistic_walk(n))}_stochastic_one_walk(start,max_steps,exit_memo){const states=[start];const edges=[];let cur=start;let terminated=false;for(let step=0;step<max_steps;step++){let exits=exit_memo.get(cur);if(exits===void 0){exits=this.probable_exits_for(cur);exit_memo.set(cur,exits)}if(exits.length===0){terminated=true;break}const selected=weighted_rand_select(exits,void 0,this._rng);edges.push(`${cur}→${selected.to}`);cur=selected.to;states.push(cur)}return{states:states,edges:edges,length:states.length-1,terminated:terminated}}*stochastic_runs(opts={}){if(opts.seed!==void 0){this.rng_seed=opts.seed}const mode=opts.mode??"montecarlo";const max_steps=opts.max_steps??STOCHASTIC_DEFAULT_MAX_STEPS;const runs=mode==="steady_state"?1:opts.runs??this.editor_config()?.stochastic_run_count??STOCHASTIC_DEFAULT_RUNS;const start=this.state();const exit_memo=new Map;for(let i=0;i<runs;i++){yield this._stochastic_one_walk(start,max_steps,exit_memo)}}stochastic_summary(opts={}){const mode=opts.mode??"montecarlo";const saved_seed=this._rng_seed;if(opts.seed!==void 0){this.rng_seed=opts.seed}const effective_seed=this._rng_seed;const state_visits=new Map;const edge_traversals=new Map;const path_lengths=[];let terminal_reached=0,capped=0,runs=0;try{for(const run of this.stochastic_runs({...opts,mode:mode})){runs+=1;for(const s of run.states){state_visits.set(s,(state_visits.get(s)??0)+1)}for(const e of run.edges){edge_traversals.set(e,(edge_traversals.get(e)??0)+1)}if(mode==="montecarlo"){if(run.terminated){terminal_reached+=1;path_lengths.push(run.length)}else{capped+=1}}}}finally{this.rng_seed=saved_seed}const total_visits=[...state_visits.values()].reduce((a,b)=>a+b,0);const state_visit_fraction=new Map;for(const[s,c]of state_visits){state_visit_fraction.set(s,c/total_visits)}const summary={mode:mode,runs:runs,seed:effective_seed,state_visits:state_visits,state_visit_fraction:state_visit_fraction,edge_traversals:edge_traversals};if(mode==="montecarlo"){summary.path_lengths=path_lengths;summary.terminal_reached=terminal_reached;summary.capped=capped}return summary}actions(whichState=this.state()){const wstate=this._reverse_actions.get(whichState);if(wstate){return Array.from(wstate.keys())}else{if(this.has_state(whichState)){return[]}else{throw new JssmError(this,`No such state ${JSON.stringify(whichState)}`)}}}list_states_having_action(whichState){const wstate=this._actions.get(whichState);if(wstate){return Array.from(wstate.keys())}else{throw new JssmError(this,`No such state ${JSON.stringify(whichState)}`)}}list_exit_actions(whichState=this.state()){const ra_base=this._reverse_actions.get(whichState);if(!ra_base){if(this.has_state(whichState)){return[]}throw new JssmError(this,`No such state ${JSON.stringify(whichState)}`)}return Array.from(ra_base.keys())}probable_action_exits(whichState=this.state()){const ra_base=this._reverse_actions.get(whichState);if(!ra_base){if(this.has_state(whichState)){return[]}throw new JssmError(this,`No such state ${JSON.stringify(whichState)}`)}const exits=[];ra_base.forEach((edgeId,action)=>{exits.push({action:action,probability:this._edges[edgeId].probability})});return exits}is_unenterable(whichState){if(!this.has_state(whichState)){throw new JssmError(this,`No such state ${whichState}`)}return this.list_entrances(whichState).length===0}has_unenterables(){return this.states().some(x=>this.is_unenterable(x))}is_terminal(){return this.state_is_terminal(this.state())}state_is_terminal(whichState){if(!this.has_state(whichState)){throw new JssmError(this,`No such state ${whichState}`)}return this.list_exits(whichState).length===0}has_terminals(){return this.states().some(x=>this.state_is_terminal(x))}isIn(groupName){return this.groupsOf(this.state()).has(groupName)}groupsOf(state){return new Set(this._state_to_groups.get(state)??[])}groups(){return[...this._group_order]}statesIn(groupName){if(!this._group_registry.has(groupName)){throw new JssmError(this,`No such group ${JSON.stringify(groupName)}`)}return transitive_members(this._group_registry,groupName,new Map)}is_complete(){return this.state_is_complete(this.state())}state_is_complete(whichState){const wstate=this._states.get(whichState);if(wstate){return wstate.complete}else{throw new JssmError(this,`No such state ${JSON.stringify(whichState)}`)}}has_completes(){return this.states().some(x=>this.state_is_complete(x))}on(name,filterOrFn,maybeFn){return this._subscribe(name,filterOrFn,maybeFn,false)}once(name,filterOrFn,maybeFn){return this._subscribe(name,filterOrFn,maybeFn,true)}off(name,handler){const set=this._event_handlers.get(name);if(set===void 0){return false}for(const entry of set){if(entry.handler===handler){this._unsubscribe_entry(set,entry);return true}}return false}_unsubscribe_entry(set,entry){if(set.delete(entry)){this._event_listener_count--}}_subscribe(name,filterOrFn,maybeFn,once){let filter;let handler;if(typeof filterOrFn==="function"){filter=void 0;handler=filterOrFn}else{filter=filterOrFn;handler=maybeFn}if(typeof handler!=="function"){throw new JssmError(this,`event handler for "${name}" must be a function`)}let set=this._event_handlers.get(name);if(set===void 0){set=new Set;this._event_handlers.set(name,set)}const entry={handler:handler,filter:filter,once:once};set.add(entry);this._event_listener_count++;return()=>{this._unsubscribe_entry(set,entry)}}_fire_one(entry,set,name,detail){if(entry.filter!==void 0){for(const k of Object.keys(entry.filter)){if(entry.filter[k]!==detail[k]){return}}}if(entry.once){this._unsubscribe_entry(set,entry)}try{entry.handler(detail)}catch(err){if(name==="error"||this._firing_error){console.error(err)}else{this._firing_error=true;try{this._fire("error",{error:err,source_event:name,source_detail:detail,handler:entry.handler})}finally{this._firing_error=false}}}}_has_subscribers(name){const set=this._event_handlers.get(name);return set!==void 0&&set.size!==0}_fire(name,detail){const set=this._event_handlers.get(name);if(set===void 0||set.size===0){return}if(set.size===1){const only=set.values().next().value;this._fire_one(only,set,name,detail);return}const entries=Array.from(set);for(const entry of entries){this._fire_one(entry,set,name,detail)}}_validate_hook_description(HookDesc){const required=hook_required_fields[HookDesc.kind];if(required===void 0){throw new JssmError(this,`unknown hook kind ${JSON.stringify(HookDesc.kind)}`)}if(typeof HookDesc.handler!=="function"){throw new JssmError(this,`${HookDesc.kind} hook requires a handler function`)}for(const field of hook_spatial_fields){const needed=required.includes(field);const present=HookDesc[field]!==void 0;if(needed&&!present){throw new JssmError(this,`${HookDesc.kind} hook requires '${field}'`)}if(!needed&&present){throw new JssmError(this,`${HookDesc.kind} hook does not take '${field}'`)}}}set_hook(HookDesc){this._validate_hook_description(HookDesc);switch(HookDesc.kind){case"hook":{this._hooks.set(pair_key(this._state_interner.intern(HookDesc.from),this._state_interner.intern(HookDesc.to)),HookDesc.handler);this._has_hooks=true;this._has_basic_hooks=true;break}case"named":{const pk=pair_key(this._state_interner.intern(HookDesc.from),this._state_interner.intern(HookDesc.to));let inner=this._named_hooks.get(pk);if(inner===void 0){inner=new Map;this._named_hooks.set(pk,inner)}inner.set(this._action_interner.intern(HookDesc.action),HookDesc.handler);this._has_hooks=true;this._has_named_hooks=true;break}case"global action":this._global_action_hooks.set(this._action_interner.intern(HookDesc.action),HookDesc.handler);this._has_hooks=true;this._has_global_action_hooks=true;break;case"any action":this._any_action_hook=HookDesc.handler;this._has_hooks=true;break;case"standard transition":this._standard_transition_hook=HookDesc.handler;this._has_transition_hooks=true;this._has_hooks=true;break;case"main transition":this._main_transition_hook=HookDesc.handler;this._has_transition_hooks=true;this._has_hooks=true;break;case"forced transition":this._forced_transition_hook=HookDesc.handler;this._has_transition_hooks=true;this._has_hooks=true;break;case"any transition":this._any_transition_hook=HookDesc.handler;this._has_hooks=true;break;case"entry":this._entry_hooks.set(this._state_interner.intern(HookDesc.to),HookDesc.handler);this._has_hooks=true;this._has_entry_hooks=true;break;case"exit":this._exit_hooks.set(this._state_interner.intern(HookDesc.from),HookDesc.handler);this._has_hooks=true;this._has_exit_hooks=true;break;case"after":this._after_hooks.set(HookDesc.from,HookDesc.handler);this._has_hooks=true;this._has_after_hooks=true;break;case"post hook":{this._post_hooks.set(pair_key(this._state_interner.intern(HookDesc.from),this._state_interner.intern(HookDesc.to)),HookDesc.handler);this._has_post_hooks=true;this._has_post_basic_hooks=true;break}case"post named":{const pk=pair_key(this._state_interner.intern(HookDesc.from),this._state_interner.intern(HookDesc.to));let inner=this._post_named_hooks.get(pk);if(inner===void 0){inner=new Map;this._post_named_hooks.set(pk,inner)}inner.set(this._action_interner.intern(HookDesc.action),HookDesc.handler);this._has_post_hooks=true;this._has_post_named_hooks=true;break}case"post global action":this._post_global_action_hooks.set(this._action_interner.intern(HookDesc.action),HookDesc.handler);this._has_post_hooks=true;this._has_post_global_action_hooks=true;break;case"post any action":this._post_any_action_hook=HookDesc.handler;this._has_post_hooks=true;break;case"post standard transition":this._post_standard_transition_hook=HookDesc.handler;this._has_post_transition_hooks=true;this._has_post_hooks=true;break;case"post main transition":this._post_main_transition_hook=HookDesc.handler;this._has_post_transition_hooks=true;this._has_post_hooks=true;break;case"post forced transition":this._post_forced_transition_hook=HookDesc.handler;this._has_post_transition_hooks=true;this._has_post_hooks=true;break;case"post any transition":this._post_any_transition_hook=HookDesc.handler;this._has_post_hooks=true;break;case"post entry":this._post_entry_hooks.set(this._state_interner.intern(HookDesc.to),HookDesc.handler);this._has_post_entry_hooks=true;this._has_post_hooks=true;break;case"post exit":this._post_exit_hooks.set(this._state_interner.intern(HookDesc.from),HookDesc.handler);this._has_post_exit_hooks=true;this._has_post_hooks=true;break;case"pre everything":this._pre_everything_hook=HookDesc.handler;this._has_hooks=true;break;case"everything":this._everything_hook=HookDesc.handler;this._has_hooks=true;break;case"pre post everything":this._pre_post_everything_hook=HookDesc.handler;this._has_post_hooks=true;break;case"post everything":this._post_everything_hook=HookDesc.handler;this._has_post_hooks=true;break}this._static_state_config_cache.clear();this._fire("hook-registration",{description:HookDesc})}remove_hook(HookDesc){let removed=false;switch(HookDesc.kind){case"hook":{const fid=this._state_interner.id_of(HookDesc.from),tid=this._state_interner.id_of(HookDesc.to);removed=fid!==void 0&&tid!==void 0&&this._hooks.delete(pair_key(fid,tid));break}case"named":{const fid=this._state_interner.id_of(HookDesc.from),tid=this._state_interner.id_of(HookDesc.to),aid=this._action_interner.id_of(HookDesc.action);const inner=fid===void 0||tid===void 0?void 0:this._named_hooks.get(pair_key(fid,tid));removed=inner!==void 0&&aid!==void 0&&inner.delete(aid);break}case"global action":{const aid=this._action_interner.id_of(HookDesc.action);removed=aid!==void 0&&this._global_action_hooks.delete(aid);break}case"any action":if(this._any_action_hook!==void 0){this._any_action_hook=void 0;removed=true}break;case"standard transition":if(this._standard_transition_hook!==void 0){this._standard_transition_hook=void 0;removed=true}break;case"main transition":if(this._main_transition_hook!==void 0){this._main_transition_hook=void 0;removed=true}break;case"forced transition":if(this._forced_transition_hook!==void 0){this._forced_transition_hook=void 0;removed=true}break;case"any transition":if(this._any_transition_hook!==void 0){this._any_transition_hook=void 0;removed=true}break;case"entry":{const tid=this._state_interner.id_of(HookDesc.to);removed=tid!==void 0&&this._entry_hooks.delete(tid);break}case"exit":{const fid=this._state_interner.id_of(HookDesc.from);removed=fid!==void 0&&this._exit_hooks.delete(fid);break}case"after":removed=this._after_hooks.delete(HookDesc.from);break;case"post hook":{const fid=this._state_interner.id_of(HookDesc.from),tid=this._state_interner.id_of(HookDesc.to);removed=fid!==void 0&&tid!==void 0&&this._post_hooks.delete(pair_key(fid,tid));break}case"post named":{const fid=this._state_interner.id_of(HookDesc.from),tid=this._state_interner.id_of(HookDesc.to),aid=this._action_interner.id_of(HookDesc.action);const inner=fid===void 0||tid===void 0?void 0:this._post_named_hooks.get(pair_key(fid,tid));removed=inner!==void 0&&aid!==void 0&&inner.delete(aid);break}case"post global action":{const aid=this._action_interner.id_of(HookDesc.action);removed=aid!==void 0&&this._post_global_action_hooks.delete(aid);break}case"post any action":if(this._post_any_action_hook!==void 0){this._post_any_action_hook=void 0;removed=true}break;case"post standard transition":if(this._post_standard_transition_hook!==void 0){this._post_standard_transition_hook=void 0;removed=true}break;case"post main transition":if(this._post_main_transition_hook!==void 0){this._post_main_transition_hook=void 0;removed=true}break;case"post forced transition":if(this._post_forced_transition_hook!==void 0){this._post_forced_transition_hook=void 0;removed=true}break;case"post any transition":if(this._post_any_transition_hook!==void 0){this._post_any_transition_hook=void 0;removed=true}break;case"post entry":{const tid=this._state_interner.id_of(HookDesc.to);removed=tid!==void 0&&this._post_entry_hooks.delete(tid);break}case"post exit":{const fid=this._state_interner.id_of(HookDesc.from);removed=fid!==void 0&&this._post_exit_hooks.delete(fid);break}case"pre everything":if(this._pre_everything_hook!==void 0){this._pre_everything_hook=void 0;removed=true}break;case"everything":if(this._everything_hook!==void 0){this._everything_hook=void 0;removed=true}break;case"pre post everything":if(this._pre_post_everything_hook!==void 0){this._pre_post_everything_hook=void 0;removed=true}break;case"post everything":if(this._post_everything_hook!==void 0){this._post_everything_hook=void 0;removed=true}break;default:throw new JssmError(this,`Unknown hook type ${HookDesc.kind}, should be impossible`)}if(removed){this._static_state_config_cache.clear();this._fire("hook-removal",{description:HookDesc})}return removed}hook(from2,to,handler){this.set_hook({kind:"hook",from:from2,to:to,handler:handler});return this}hook_action(from2,to,action,handler){this.set_hook({kind:"named",from:from2,to:to,action:action,handler:handler});return this}hook_global_action(action,handler){this.set_hook({kind:"global action",action:action,handler:handler});return this}hook_any_action(handler){this.set_hook({kind:"any action",handler:handler});return this}hook_standard_transition(handler){this.set_hook({kind:"standard transition",handler:handler});return this}hook_main_transition(handler){this.set_hook({kind:"main transition",handler:handler});return this}hook_forced_transition(handler){this.set_hook({kind:"forced transition",handler:handler});return this}hook_any_transition(handler){this.set_hook({kind:"any transition",handler:handler});return this}hook_entry(to,handler){this.set_hook({kind:"entry",to:to,handler:handler});return this}hook_exit(from2,handler){this.set_hook({kind:"exit",from:from2,handler:handler});return this}hook_after(from2,handler){this.set_hook({kind:"after",from:from2,handler:handler});return this}post_hook(from2,to,handler){this.set_hook({kind:"post hook",from:from2,to:to,handler:handler});return this}post_hook_action(from2,to,action,handler){this.set_hook({kind:"post named",from:from2,to:to,action:action,handler:handler});return this}post_hook_global_action(action,handler){this.set_hook({kind:"post global action",action:action,handler:handler});return this}post_hook_any_action(handler){this.set_hook({kind:"post any action",handler:handler});return this}post_hook_standard_transition(handler){this.set_hook({kind:"post standard transition",handler:handler});return this}post_hook_main_transition(handler){this.set_hook({kind:"post main transition",handler:handler});return this}post_hook_forced_transition(handler){this.set_hook({kind:"post forced transition",handler:handler});return this}post_hook_any_transition(handler){this.set_hook({kind:"post any transition",handler:handler});return this}post_hook_entry(to,handler){this.set_hook({kind:"post entry",to:to,handler:handler});return this}post_hook_exit(from2,handler){this.set_hook({kind:"post exit",from:from2,handler:handler});return this}hook_pre_everything(handler){this.set_hook({kind:"pre everything",handler:handler});return this}hook_everything(handler){this.set_hook({kind:"everything",handler:handler});return this}hook_post_everything(handler){this.set_hook({kind:"post everything",handler:handler});return this}hook_pre_post_everything(handler){this.set_hook({kind:"pre post everything",handler:handler});return this}get rng_seed(){return this._rng_seed}set rng_seed(to){if(typeof to==="undefined"){this._rng_seed=(new Date).getTime()}else{this._rng_seed=to}this._rng=gen_splitmix32(this._rng_seed)}edges_between(from2,to){const to_id=this._state_interner.id_of(to);if(to_id===void 0){return[]}const outbound=this._outbound_edge_ids.get(from2)??[];const result=[];for(const edgeId of outbound){if(this._edge_to_ids[edgeId]===to_id){result.push(this._edges[edgeId])}}return result}override(newState,newData){if(this.allows_override){if(this._states.has(newState)){const fromState=this._state;const oldData=this._data;this._state=newState;this._state_id=this._state_interner.intern(newState);this._data=newData;this._fire("override",{from:fromState,to:newState,old_data:oldData,new_data:newData});if(oldData!==newData){this._fire("data-change",{from:fromState,to:newState,old_data:oldData,new_data:newData,cause:"override"})}this._fire_boundary_actions(fromState,newState)}else{throw new JssmError(this,`Cannot override state to "${newState}", a state that does not exist`)}}else{throw new JssmError(this,"Code specifies no override, but config tries to permit; config may not be less strict than code")}}_fire_hook_rejection(hook_name,fromState,newState,fromAction,oldData,newData,wasForced){this._fire("rejection",{from:fromState,to:newState,action:fromAction,data:oldData,next_data:newData,reason:"hook",hook_name:hook_name,forced:wasForced})}_fire_boundary_actions(prev_state,next_state){if(prev_state===next_state){return}if(this._group_hooks.size===0&&this._state_hooks.size===0){return}if(this._boundary_depth>=this._boundary_depth_limit){throw new JssmError(this,`boundary-hook action cascade exceeded depth limit (${this._boundary_depth_limit}) crossing from ${JSON.stringify(prev_state)} to ${JSON.stringify(next_state)} (possible infinite loop)`)}const prev_groups=this._state_to_groups.get(prev_state)??empty_string_set;const next_groups=this._state_to_groups.get(next_state)??empty_string_set;const labels=[];for(const group of prev_groups){if(!next_groups.has(group)){const label=this._group_hooks.get(group)?.onExit;if(label!==void 0){labels.push(label)}}}const prev_state_exit=this._state_hooks.get(prev_state)?.onExit;if(prev_state_exit!==void 0){labels.push(prev_state_exit)}for(const group of next_groups){if(!prev_groups.has(group)){const label=this._group_hooks.get(group)?.onEnter;if(label!==void 0){labels.push(label)}}}const next_state_enter=this._state_hooks.get(next_state)?.onEnter;if(next_state_enter!==void 0){labels.push(next_state_enter)}if(labels.length===0){return}this._boundary_depth+=1;try{for(const label of labels){this.action(label)}}finally{this._boundary_depth-=1}}transition_impl(newStateOrAction,newData,wasForced,wasAction){let valid=false,trans_type,newState,newStateId=NaN,actionId=NaN,fromAction=void 0;if(wasForced){const to_id=this._state_interner.id_of(newStateOrAction);const edgeId=to_id===void 0?void 0:this._edge_id_by_pair.get(pair_key(this._state_id,to_id));if(edgeId!==void 0){valid=true;trans_type="forced";newState=newStateOrAction;newStateId=to_id}}else if(wasAction){const aid=this._action_interner.id_of(newStateOrAction);const edgeId=aid===void 0?void 0:this._edge_id_by_action_pair.get(pair_key(aid,this._state_id));if(edgeId!==void 0){const edge=this._edges[edgeId];valid=true;trans_type=edge.kind;newState=edge.to;newStateId=this._edge_to_ids[edgeId];fromAction=newStateOrAction;actionId=aid}}else{const to_id=this._state_interner.id_of(newStateOrAction);const edgeId=to_id===void 0?void 0:this._edge_id_by_pair.get(pair_key(this._state_id,to_id));if(edgeId!==void 0&&!this._edges[edgeId].forced_only){if(this._has_transition_hooks||this._has_post_transition_hooks){trans_type=this._edges[edgeId].kind}valid=true;newState=newStateOrAction;newStateId=to_id}}const hook_args_obj=this._has_hooks||this._has_post_hooks?{data:this._data,action:fromAction,from:this._state,to:newState,next_data:newData,forced:wasForced,trans_type:trans_type}:void 0;const hook_args=hook_args_obj;if(wasAction){if(this._event_listener_count!==0){this._fire("action",{action:newStateOrAction,from:this._state,to:newState,data:this._data,next_data:newData})}}const fromState=this._state;const fromStateId=this._state_id;const oldData=this._data;if(valid){this.clear_state_timeout();if(this._has_hooks){let data_changed=false;if(this._pre_everything_hook!==void 0){const outcome=abstract_everything_hook_step(this._pre_everything_hook,{...hook_args,hook_name:"pre everything"});if(outcome.pass===false){this._fire_hook_rejection("pre everything",fromState,newState,fromAction,oldData,newData,wasForced);return false}if(_update_hook_fields(hook_args,outcome)){data_changed=true}}if(wasAction){const outcome=abstract_hook_step(this._any_action_hook,hook_args);if(outcome.pass===false){this._fire_hook_rejection("any action",fromState,newState,fromAction,oldData,newData,wasForced);return false}if(_update_hook_fields(hook_args,outcome)){data_changed=true}const outcome2=abstract_hook_step(this._global_action_hooks.get(actionId),hook_args);if(outcome2.pass===false){this._fire_hook_rejection("global action",fromState,newState,fromAction,oldData,newData,wasForced);return false}if(_update_hook_fields(hook_args,outcome2)){data_changed=true}}if(this._any_transition_hook!==void 0){const outcome=abstract_hook_step(this._any_transition_hook,hook_args);if(outcome.pass===false){this._fire_hook_rejection("any transition",fromState,newState,fromAction,oldData,newData,wasForced);return false}if(_update_hook_fields(hook_args,outcome)){data_changed=true}}if(this._has_exit_hooks){const outcome=abstract_hook_step(this._exit_hooks.get(this._state_id),hook_args);if(outcome.pass===false){this._fire_hook_rejection("exit",fromState,newState,fromAction,oldData,newData,wasForced);return false}if(_update_hook_fields(hook_args,outcome)){data_changed=true}}const pre_pair_id=pair_key(this._state_id,newStateId);if(this._has_named_hooks){if(wasAction){const byPair=this._named_hooks.get(pre_pair_id);const nh=byPair===void 0?void 0:byPair.get(actionId);const outcome=abstract_hook_step(nh,hook_args);if(outcome.pass===false){this._fire_hook_rejection("named",fromState,newState,fromAction,oldData,newData,wasForced);return false}if(_update_hook_fields(hook_args,outcome)){data_changed=true}}}if(this._has_basic_hooks){const h=this._hooks.get(pre_pair_id);const outcome=abstract_hook_step(h,hook_args);if(outcome.pass===false){this._fire_hook_rejection("hook",fromState,newState,fromAction,oldData,newData,wasForced);return false}if(_update_hook_fields(hook_args,outcome)){data_changed=true}}if(trans_type==="legal"){const outcome=abstract_hook_step(this._standard_transition_hook,hook_args);if(outcome.pass===false){this._fire_hook_rejection("standard transition",fromState,newState,fromAction,oldData,newData,wasForced);return false}if(_update_hook_fields(hook_args,outcome)){data_changed=true}}if(trans_type==="main"){const outcome=abstract_hook_step(this._main_transition_hook,hook_args);if(outcome.pass===false){this._fire_hook_rejection("main transition",fromState,newState,fromAction,oldData,newData,wasForced);return false}if(_update_hook_fields(hook_args,outcome)){data_changed=true}}if(trans_type==="forced"){const outcome=abstract_hook_step(this._forced_transition_hook,hook_args);if(outcome.pass===false){this._fire_hook_rejection("forced transition",fromState,newState,fromAction,oldData,newData,wasForced);return false}if(_update_hook_fields(hook_args,outcome)){data_changed=true}}if(this._has_entry_hooks){const outcome=abstract_hook_step(this._entry_hooks.get(newStateId),hook_args);if(outcome.pass===false){this._fire_hook_rejection("entry",fromState,newState,fromAction,oldData,newData,wasForced);return false}if(_update_hook_fields(hook_args,outcome)){data_changed=true}}if(this._everything_hook!==void 0){const outcome=abstract_everything_hook_step(this._everything_hook,{...hook_args,hook_name:"everything"});if(outcome.pass===false){this._fire_hook_rejection("everything",fromState,newState,fromAction,oldData,newData,wasForced);return false}if(_update_hook_fields(hook_args,outcome)){data_changed=true}}if(this._history_length){this._history.shove([this._state,this._data])}this._state=newState;this._state_id=newStateId;if(data_changed){this._data=hook_args.data}else if(newData!==void 0){this._data=newData}}else{if(this._history_length){this._history.shove([this._state,this._data])}this._state=newState;this._state_id=newStateId;if(newData!==void 0){this._data=newData}}}else{if(this._event_listener_count!==0){this._fire("rejection",{from:fromState,to:newStateOrAction,action:fromAction,data:oldData,next_data:newData,reason:"invalid",forced:wasForced})}return false}if(this._has_post_hooks){if(this._pre_post_everything_hook!==void 0){this._pre_post_everything_hook({...hook_args,hook_name:"pre post everything"})}if(wasAction){if(this._post_any_action_hook!==void 0){this._post_any_action_hook(hook_args)}const pgah=this._post_global_action_hooks.get(actionId);if(pgah!==void 0){pgah(hook_args)}}if(this._post_any_transition_hook!==void 0){this._post_any_transition_hook(hook_args)}if(this._has_post_exit_hooks){const peh=this._post_exit_hooks.get(fromStateId);if(peh!==void 0){peh(hook_args)}}const post_pair_id=pair_key(fromStateId,newStateId);if(this._has_post_named_hooks){if(wasAction){const byPair=this._post_named_hooks.get(post_pair_id);const pnh=byPair===void 0?void 0:byPair.get(actionId);if(pnh!==void 0){pnh(hook_args)}}}if(this._has_post_basic_hooks){const hook=this._post_hooks.get(post_pair_id);if(hook!==void 0){hook(hook_args)}}if(trans_type==="legal"){if(this._post_standard_transition_hook!==void 0){this._post_standard_transition_hook(hook_args)}}if(trans_type==="main"){if(this._post_main_transition_hook!==void 0){this._post_main_transition_hook(hook_args)}}if(trans_type==="forced"){if(this._post_forced_transition_hook!==void 0){this._post_forced_transition_hook(hook_args)}}if(this._has_post_entry_hooks){const hook=this._post_entry_hooks.get(newStateId);if(hook!==void 0){hook(hook_args)}}if(this._post_everything_hook!==void 0){this._post_everything_hook({...hook_args,hook_name:"post everything"})}}if(this._event_listener_count!==0){const newData_after=this._data;if(this._has_subscribers("exit")){this._fire("exit",{state:fromState,to:newState,action:fromAction,data:newData_after})}if(this._has_subscribers("transition")){this._fire("transition",{from:fromState,to:newState,action:fromAction,data:newData_after,next_data:newData,trans_type:trans_type,forced:wasForced})}if(this._has_subscribers("entry")){this._fire("entry",{state:newState,from:fromState,action:fromAction,data:newData_after})}if(oldData!==newData_after&&this._has_subscribers("data-change")){this._fire("data-change",{from:fromState,to:newState,action:fromAction,old_data:oldData,new_data:newData_after,cause:"transition"})}const new_state_rec=this._states.get(newState);if(new_state_rec.to.length===0&&this._has_subscribers("terminal")){this._fire("terminal",{state:newState,data:newData_after})}if(new_state_rec.complete&&this._has_subscribers("complete")){this._fire("complete",{state:newState,data:newData_after})}}this._fire_boundary_actions(fromState,newState);this.auto_set_state_timeout();return true}auto_set_state_timeout(){if(this._after_mapping.size===0){return}const after_res=this._after_mapping.get(this._state);if(after_res!==void 0){const[next_state,after_time]=after_res;this.set_state_timeout(next_state,after_time)}}get history(){return this._history.toArray()}get history_inclusive(){const ret=this._history.toArray();ret.push([this.state(),this.data()]);return ret}get history_length(){return this._history_length}set history_length(to){this._history_length=to;this._history.resize(to,true)}action(actionName,newData){return this.transition_impl(actionName,newData,false,true)}get standard_state_style(){return this._state_style}get hooked_state_style(){return this._hooked_state_style}get start_state_style(){return this._start_state_style}get end_state_style(){return this._end_state_style}get terminal_state_style(){return this._terminal_state_style}get active_state_style(){return this._active_state_style}hook_registry(){const entries=[];const state_name=id=>this._state_interner.name_of(id);const action_name=id=>this._action_interner.name_of(id);const push_edges=(table,kind,phase)=>{table.forEach((_handler,pk)=>{const[fid,tid]=un_pair_key(pk);entries.push({kind:kind,phase:phase,target:{scope:"edge",from:state_name(fid),to:state_name(tid)}})})};const push_named=(table,kind,phase)=>{table.forEach((byAction,pk)=>{const[fid,tid]=un_pair_key(pk);const from2=state_name(fid),to=state_name(tid);byAction.forEach((_handler,aid)=>{entries.push({kind:kind,phase:phase,target:{scope:"edge",from:from2,to:to,action:action_name(aid)}})})})};const push_states=(table,kind,phase)=>{table.forEach((_handler,sid)=>{entries.push({kind:kind,phase:phase,target:{scope:"state",state:state_name(sid)}})})};const push_states_by_name=(table,kind,phase)=>{table.forEach((_handler,state)=>{entries.push({kind:kind,phase:phase,target:{scope:"state",state:state}})})};const push_actions=(table,kind,phase)=>{table.forEach((_handler,aid)=>{entries.push({kind:kind,phase:phase,target:{scope:"action",action:action_name(aid)}})})};const push_global=(handler,kind,phase)=>{if(handler!==void 0){entries.push({kind:kind,phase:phase,target:{scope:"global"}})}};const push_boundary=(table,enterKind,exitKind,target_of)=>{table.forEach((bh,subject)=>{if(bh.onEnter!==void 0){entries.push({kind:enterKind,phase:"post",target:target_of(subject)})}if(bh.onExit!==void 0){entries.push({kind:exitKind,phase:"post",target:target_of(subject)})}})};push_edges(this._hooks,"hook","pre");push_named(this._named_hooks,"named","pre");push_states(this._entry_hooks,"entry","pre");push_states(this._exit_hooks,"exit","pre");push_states_by_name(this._after_hooks,"after","pre");push_actions(this._global_action_hooks,"global action","pre");push_global(this._any_action_hook,"any action","pre");push_global(this._standard_transition_hook,"standard transition","pre");push_global(this._main_transition_hook,"main transition","pre");push_global(this._forced_transition_hook,"forced transition","pre");push_global(this._any_transition_hook,"any transition","pre");push_global(this._pre_everything_hook,"pre everything","pre");push_global(this._everything_hook,"everything","pre");push_edges(this._post_hooks,"post hook","post");push_named(this._post_named_hooks,"post named","post");push_states(this._post_entry_hooks,"post entry","post");push_states(this._post_exit_hooks,"post exit","post");push_actions(this._post_global_action_hooks,"post global action","post");push_global(this._post_any_action_hook,"post any action","post");push_global(this._post_standard_transition_hook,"post standard transition","post");push_global(this._post_main_transition_hook,"post main transition","post");push_global(this._post_forced_transition_hook,"post forced transition","post");push_global(this._post_any_transition_hook,"post any transition","post");push_global(this._pre_post_everything_hook,"pre post everything","post");push_global(this._post_everything_hook,"post everything","post");push_boundary(this._group_hooks,"group enter","group exit",group=>({scope:"group",group:group}));push_boundary(this._state_hooks,"state enter","state exit",state=>({scope:"state",state:state}));return entries}static _entry_touches_state(entry,state){const t=entry.target;if(t.scope==="state"){return t.state===state}if(t.scope==="edge"){return t.from===state||t.to===state}return false}static _entry_matches_edge(entry,from2,to,action){const t=entry.target;if(t.scope!=="edge"){return false}if(t.from!==from2||t.to!==to){return false}if(action!==void 0){return t.action===action}return true}static _entry_matches_action(entry,action){const t=entry.target;if(t.scope==="action"){return t.action===action}if(t.scope==="edge"){return t.action===action}return false}static _entry_matches_group(entry,group){const t=entry.target;if(t.scope==="group"){return t.group===group}return false}hooks_on(query){const registry=this.hook_registry();if(typeof query==="string"){return registry.filter(e=>Machine._entry_touches_state(e,query))}if("from"in query){return registry.filter(e=>Machine._entry_matches_edge(e,query.from,query.to,query.action))}if("group"in query){return registry.filter(e=>Machine._entry_matches_group(e,query.group))}return registry.filter(e=>Machine._entry_matches_action(e,query.action))}has_hook(query,phase){const matches=this.hooks_on(query);if(phase===void 0){return matches.length>0}return matches.some(e=>e.phase===phase)}state_has_hooks(state){if(!this._has_hooks&&!this._has_post_hooks&&this._state_hooks.size===0&&this._group_hooks.size===0){return false}return this.hook_registry().some(e=>Machine._entry_touches_state(e,state))}_resolved_themes(){const themes=[];this._themes.forEach(th=>{const theme_impl=theme_mapping.get(th);if(theme_impl!==void 0){themes.push(theme_impl)}});return themes.reverse()}_individual_state_config(state){const decl=this._state_declarations.get(state);return{color:decl?.color,textColor:decl?.textColor,borderColor:decl?.borderColor,backgroundColor:decl?.backgroundColor,lineStyle:decl?.lineStyle,corners:decl?.corners,shape:decl?.shape,image:decl?.image,url:decl?.url}}_groups_by_depth(state){const containing=[...this.groupsOf(state)];if(containing.length<2){return containing}return containing.sort((ga,gb)=>{const da=membership_distance(this._group_registry,state,ga),db=membership_distance(this._group_registry,state,gb);if(da!==db){return db-da}return this._group_order.indexOf(ga)-this._group_order.indexOf(gb)})}_compose_state_config(state,active){const themes=this._resolved_themes();let acc={};acc=merge_state_config(acc,base_theme.state);themes.forEach(theme=>{if(theme.state){acc=merge_state_config(acc,theme.state)}});acc=merge_state_config(acc,this._state_style);if(this.state_has_hooks(state)){acc=merge_state_config(acc,base_theme.hooked);themes.forEach(theme=>{if(theme.hooked){acc=merge_state_config(acc,theme.hooked)}});acc=merge_state_config(acc,this._hooked_state_style)}if(this.state_is_terminal(state)){acc=merge_state_config(acc,base_theme.terminal);themes.forEach(theme=>{if(theme.terminal){acc=merge_state_config(acc,theme.terminal)}});acc=merge_state_config(acc,this._terminal_state_style)}if(this.is_start_state(state)){acc=merge_state_config(acc,base_theme.start);themes.forEach(theme=>{if(theme.start){acc=merge_state_config(acc,theme.start)}});acc=merge_state_config(acc,this._start_state_style)}if(this.is_end_state(state)){acc=merge_state_config(acc,base_theme.end);themes.forEach(theme=>{if(theme.end){acc=merge_state_config(acc,theme.end)}});acc=merge_state_config(acc,this._end_state_style)}if(active){acc=merge_state_config(acc,base_theme.active);themes.forEach(theme=>{if(theme.active){acc=merge_state_config(acc,theme.active)}})}this._groups_by_depth(state).forEach(group_name=>{const group_cfg=this._group_metadata.get(group_name);if(group_cfg!==void 0){acc=merge_state_config(acc,group_cfg)}});acc=merge_state_config(acc,this._individual_state_config(state));return acc}resolve_state_config(state){if(this.state()===state){const acc=this._compose_state_config(state,true);return merge_state_config(acc,this._active_state_style)}const cached=this._static_state_config_cache.get(state);if(cached!==void 0){return cached}const resolved=this._compose_state_config(state,false);this._static_state_config_cache.set(state,resolved);return resolved}style_for(state){return this.resolve_state_config(state)}do(actionName,newData){return this.transition_impl(actionName,newData,false,true)}transition(newState,newData){return this.transition_impl(newState,newData,false,false)}go(newState,newData){return this.transition_impl(newState,newData,false,false)}force_transition(newState,newData){return this.transition_impl(newState,newData,true,false)}current_action_for(action){const action_id=this._action_interner.id_of(action);return action_id===void 0?void 0:this._edge_id_by_action_pair.get(pair_key(action_id,this._state_id))}current_action_edge_for(action){const idx=this.current_action_for(action);if(idx===void 0||idx===null){throw new JssmError(this,`No such action ${JSON.stringify(action)}`)}return this._edges[idx]}valid_action(action,_newData){return this.current_action_for(action)!==void 0}valid_transition(newState,_newData){const transition_for=this.lookup_transition_for(this.state(),newState);if(!transition_for){return false}if(transition_for.forced_only){return false}return true}valid_force_transition(newState,_newData){return this.lookup_transition_for(this.state(),newState)!==void 0}instance_name(){return this._instance_name}get creation_date(){return new Date(Math.floor(this.creation_timestamp))}get creation_timestamp(){return this._created}get create_start_time(){return this._create_started}set_state_timeout(next_state,after_time){if(this._timeout_handle!==void 0){throw new JssmError(this,`Asked to set a state timeout to ${next_state}:${after_time}, but already timing out to ${this._timeout_target}:${this._timeout_target_time}`)}this._timeout_handle=this._timeout_source(()=>{const from_state=this.state();this.clear_state_timeout();if(this._has_after_hooks){const ah=this._after_hooks.get(from_state);if(ah!==void 0){ah({data:this._data,next_data:this._data})}}this._fire("timeout",{from:from_state,to:next_state,after_time:after_time});this.go(next_state)},after_time);this._timeout_target=next_state;this._timeout_target_time=after_time}clear_state_timeout(){if(this._timeout_handle===void 0){return}this._clear_timeout_source(this._timeout_handle);this._timeout_handle=void 0;this._timeout_target=void 0;this._timeout_target_time=void 0}state_timeout_for(which_state){return this._after_mapping.get(which_state)}current_state_timeout(){return this._timeout_target!==void 0?[this._timeout_target,this._timeout_target_time]:void 0}sm(template_strings,...remainder){return sm(template_strings,...remainder)}}function sm(template_strings,...remainder){return new Machine(make(template_strings.reduce((acc,val,idx)=>`${acc}${remainder[idx-1]}${val}`)))}function is_hook_complex_result(hr){if(hr!==null&&typeof hr==="object"){if(typeof hr.pass==="boolean"){return true}}return false}function _update_hook_fields(hook_args,res){if(res===HOOK_PASSED){return false}if(Object.prototype.hasOwnProperty.call(res,"data")){hook_args.data=res.data;hook_args.next_data=res.next_data;return true}return false}const HOOK_PASSED=Object.freeze({pass:true});const HOOK_REJECTED=Object.freeze({pass:false});function abstract_hook_step(maybe_hook,hook_args){if(maybe_hook!==void 0){const result=maybe_hook(hook_args);if(result===void 0){return HOOK_PASSED}if(result===true){return HOOK_PASSED}if(result===false){return HOOK_REJECTED}if(result===null){return HOOK_REJECTED}if(is_hook_complex_result(result)){return result}throw new TypeError(`Unknown hook result type ${result}`)}else{return HOOK_PASSED}}function abstract_everything_hook_step(maybe_hook,hook_args){if(maybe_hook!==void 0){const result=maybe_hook(hook_args);if(result===void 0){return HOOK_PASSED}if(result===true){return HOOK_PASSED}if(result===false){return HOOK_REJECTED}if(result===null){return HOOK_REJECTED}if(is_hook_complex_result(result)){return result}throw new TypeError(`Unknown hook result type ${result}`)}else{return HOOK_PASSED}}const default_viz_colors={graph_bg_color:"#eeeeee",fill_final:"#ddddff",fill_terminal:"#ffdddd",fill_complete:"#ddffdd",legal_1:"#888888",legal_2:"#777777",legal_solo:"#777777",legal_final_1:"#7777aa",legal_final_2:"#666699",legal_final_solo:"#666699",legal_terminal_1:"#aa7777",legal_terminal_2:"#996666",legal_terminal_solo:"#996666",legal_complete_1:"#77aa77",legal_complete_2:"#669966",legal_complete_solo:"#669966",main_1:"#444444",main_2:"#333333",main_solo:"#333333",main_final_1:"#333366",main_final_2:"#222255",main_final_solo:"#222255",main_terminal_1:"#663333",main_terminal_2:"#552222",main_terminal_solo:"#552222",main_complete_1:"#336633",main_complete_2:"#225522",main_complete_solo:"#225522",forced_1:"#cccccc",forced_2:"#bbbbbb",forced_solo:"#bbbbbb",forced_final_1:"#bbbbee",forced_final_2:"#aaaadd",forced_final_solo:"#aaaadd",forced_terminal_1:"#eebbbb",forced_terminal_2:"#ddaaaa",forced_terminal_solo:"#ddaaaa",forced_complete_1:"#bbeebb",forced_complete_2:"#aaddaa",forced_complete_solo:"#aaddaa",text_final_1:"#000088",text_final_2:"#000088",text_final_solo:"#000088",text_terminal_1:"#880000",text_terminal_2:"#880000",text_terminal_solo:"#880000",text_complete_1:"#007700",text_complete_2:"#007700",text_complete_solo:"#007700"};let viz_instance=null;async function get_viz(){if(viz_instance===null){const mod=await import("@viz-js/viz");viz_instance=await mod.instance()}return viz_instance}function vc(col){return default_viz_colors[col]??""}function doublequote(txt){return txt.replace(/"/g,'\\"')}function slug_for(state){return state.toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"")}function slug_states(states){const used=new Set;const out=new Map;states.forEach((s,i)=>{const base=slug_for(s)||`node-${i+1}`;let candidate=base;let n=2;while(used.has(candidate)){candidate=`${base}-${n}`;n+=1}used.add(candidate);out.set(s,candidate)});return out}function node_of(state,state_index){if(Array.isArray(state_index)){return`n${state_index.indexOf(state)}`}const v=state_index.get(state);if(typeof v==="string"){return`"${v}"`}return`n${v}`}function compose_style_string(style){if(style.corners===void 0&&style.lineStyle===void 0){return""}const corners_map={rounded:"rounded",lined:"diagonals",regular:"regular"};const lines_map={dashed:"dashed",dotted:"dotted",solid:"solid"};const corners=corners_map[style.corners??"regular"];const lines=lines_map[style.lineStyle??"solid"];return`${corners},${lines},filled`}function flow_direction_to_rankdir(flow_direction){switch(flow_direction){case"up":return"rankdir=BT;";case"right":return"rankdir=LR;";case"down":return"rankdir=TB;";case"left":return"rankdir=RL;";default:throw new JssmError(void 0,`unknown flow direction '${flow_direction}'`)}}function edge_attr_for(key,value){switch(key){case"color":case"graph_default_edge_color":return`color="${doublequote(value)}"`;case"text-color":return`fontcolor="${doublequote(value)}"`;case"line-style":return`style="${doublequote(value)}"`;default:return void 0}}function edge_defaults_body(config){if(!config){return""}return config.map(item=>edge_attr_for(item.key,item.value)).filter(a=>a!==void 0).join(" ")}function graph_attr_for(key,value){switch(key){case"color":return`color="${doublequote(value)}"`;case"text-color":return`fontcolor="${doublequote(value)}"`;default:return void 0}}function graph_bg_color_from_config(config,fallback){if(!config){return fallback}const item=config.find(i=>i.key==="background-color");return item?item.value:fallback}function graph_attrs_body(config){if(!config){return""}return config.map(item=>graph_attr_for(item.key,item.value)).filter(a=>a!==void 0).map(a=>`${a};`).join("\n")}function dot_template(rank_dir,graph_bg_color,nodes,edges,arranges,preamble="",footer="",edge_defaults="",extra_graph_attrs=""){return`digraph G {\n${preamble}\n\n${rank_dir}\nfontname="Open Sans";\nstyle=filled;\nbgcolor="${graph_bg_color}";\n${extra_graph_attrs}\nnode [fontsize=14; shape=box; style=filled; fillcolor=white; fontname="Times New Roman"];\nedge [fontsize=6; fontname="Open Sans"; fontcolor="#0066bb"];\n${edge_defaults?`edge [ ${edge_defaults} ];\n`:""}\n${nodes}\n\n${edges}\n\n${arranges}\n\n${footer}\n}`}function classify_states(u_jssm,l_states){const kinds=new Map;for(const s of l_states){const is_complete=u_jssm.state_is_complete(s);const is_terminal=u_jssm.state_is_terminal(s);if(is_complete&&is_terminal){kinds.set(s,"final")}else if(is_complete){kinds.set(s,"complete")}else if(is_terminal){kinds.set(s,"terminal")}else{kinds.set(s,"base")}}return kinds}function default_fillcolor_for(kind){switch(kind){case"final":return vc("fill_final");case"complete":return vc("fill_complete");case"terminal":return vc("fill_terminal");default:return""}}function state_node_line(u_jssm,s,state_index,state_kinds,hide_state_labels,chips){const style=u_jssm.style_for(s);const fillcolor=style.backgroundColor||default_fillcolor_for(state_kinds.get(s)??"base");const label=hide_state_labels?"":label_with_chips(doublequote(u_jssm.display_text(s)),chips);const features=[["label",label],["shape",style.shape||""],["color",style.borderColor||""],["style",compose_style_string(style)],["fontcolor",style.textColor||""],["image",style.image||""],["URL",style.url||""],["fillcolor",fillcolor]].filter(r=>r[1]).map(r=>`${r[0]}="${r[1]}"`).join(" ");return`${node_of(s,state_index)} [${features}];`}function states_to_nodes_string(u_jssm,l_states,state_index,state_kinds,hide_state_labels=false,chips=new Map){return l_states.map(s=>state_node_line(u_jssm,s,state_index,state_kinds,hide_state_labels,chips.get(s)??[])).join(" ")}function transition_label(tr){if(!tr){return void 0}const parts=[`${tr.action||""}`,`${tr.probability||""}`].filter(x=>x!=="");return parts.length?parts.join("\n"):void 0}function arrow_for(tr){if(!tr){return""}if(tr.forced_only){return"ediamond"}if(tr.main_path){return"normal;weight=5"}return"empty"}function line_color(kind,lkind,suffix){switch(kind){case"final":return vc(`${lkind}_final${suffix}`);case"complete":return vc(`${lkind}_complete${suffix}`);case"terminal":return vc(`${lkind}_terminal${suffix}`);default:return vc(`${lkind}${suffix}`)}}function text_color(kind,suffix){switch(kind){case"final":return vc(`text_final${suffix}`);case"complete":return vc(`text_complete${suffix}`);case"terminal":return vc(`text_terminal${suffix}`);default:return""}}function colored_label(tr,which,color){if(!tr){return""}const text=[tr.name,tr.probability,tr.action].filter(q=>q).join("<br/>");if(!text){return""}const body=color?`<<font color="${color}">${text}</font>>`:`"${text}"`;return`${which}=${body};`}function states_to_edges_string(u_jssm,l_states,state_index,state_kinds){const strike=new Set;const kind_of=s=>state_kinds.get(s)??"base";const farrange_members=new Set((u_jssm._farrange_declaration||[]).flat().map(String));const cf=(s,ex)=>farrange_members.has(String(s))||farrange_members.has(String(ex))?"constraint=false;":"";const solo_edge=(s,ex,tr)=>{const ex_kind=kind_of(ex);const tailColor=text_color(ex_kind,"_solo");const labelInline=colored_label(tr,"taillabel",tailColor);const label=transition_label(tr);const maybeLabel=label?`taillabel="${doublequote(label)}";`:"";const arrowHead=arrow_for(tr);const edgeInline=`${maybeLabel}arrowhead=${arrowHead};color="${line_color(ex_kind,tr.kind,"_solo")}"`;return`${node_of(s,state_index)}->${node_of(ex,state_index)} [${cf(s,ex)}${labelInline}${edgeInline}];`};return l_states.map(s=>u_jssm.list_exits(s).map(ex=>{if(strike.has(`${s}|${ex}`)){return""}const forward=u_jssm.edges_between(s,ex);if(forward.length===0){return""}const reverse=s!==ex?u_jssm.edges_between(ex,s):[];if(forward.length===1&&reverse.length===1){const edge_tr=forward[0];const pair_tr=reverse[0];const s_kind=kind_of(s);const ex_kind=kind_of(ex);const headColor=text_color(s_kind,"_1");const tailColor=text_color(ex_kind,"_2");const labelInline=colored_label(pair_tr,"headlabel",headColor)+colored_label(edge_tr,"taillabel",tailColor);const label=transition_label(edge_tr);const rlabel=transition_label(pair_tr);const maybeLabel=label?`taillabel="${doublequote(label)}";`:"";const maybeRLabel=rlabel?`headlabel="${doublequote(rlabel)}";`:"";const arrowHead=arrow_for(edge_tr);const arrowTail=arrow_for(pair_tr);const edgeInline=`${maybeLabel}${maybeRLabel}arrowhead=${arrowHead};arrowtail=${arrowTail};dir=both;color="${line_color(ex_kind,edge_tr.kind,"_1")}:${line_color(s_kind,pair_tr.kind,"_2")}"`;strike.add(`${ex}|${s}`);return`${node_of(s,state_index)}->${node_of(ex,state_index)} [${cf(s,ex)}${labelInline}${edgeInline}];`}return forward.map(tr=>solo_edge(s,ex,tr)).join(" ")}).join(" ")).join(" ")}function arranges_for(u_jssm,state_index){const group=(decls,rank)=>decls?decls.map(d=>`{rank=${rank}; ${d.map(di=>node_of(di,state_index)).join("; ")};};`).join("\n"):"";const order_chain=decls=>decls?decls.map(d=>d.slice(1).map((di,i)=>`${node_of(d[i],state_index)}->${node_of(di,state_index)} [style=invis];`).join(" ")).join("\n"):"";return group(u_jssm._arrange_declaration,"same")+group(u_jssm._arrange_start_declaration,"min")+group(u_jssm._arrange_end_declaration,"max")+group(u_jssm._oarrange_declaration,"same")+order_chain(u_jssm._oarrange_declaration)+group(u_jssm._farrange_declaration,"same")+order_chain(u_jssm._farrange_declaration)}function cluster_id_for(group,index){const body=group.toLowerCase().replace(/[^a-z0-9]+/g,"_").replace(/^_+|_+$/g,"");return body?`cluster_${body}_${index}`:`cluster_g${index}`}function label_with_chips(label,chips){if(chips.length===0){return label}return`${label} ${chips.map(c=>`[${doublequote(c)}]`).join(" ")}`}function group_parent_map(registry,order){const parent=new Map;for(const parent_name of order){for(const member of registry.get(parent_name)??[]){if(member.kind==="group"&&!parent.has(member.name)){parent.set(member.name,parent_name)}}}return parent}function group_ancestry(group,parents){const chain=new Set;let cursor=group;while(cursor!==void 0&&!chain.has(cursor)){chain.add(cursor);cursor=parents.get(cursor)}return chain}function primary_group_for(u_jssm,state,order){const containing=[...u_jssm.groupsOf(state)];if(containing.length===0){return void 0}return containing.reduce((best,g)=>{const d_best=membership_distance(u_jssm._group_registry,state,best);const d_g=membership_distance(u_jssm._group_registry,state,g);if(d_g!==d_best){return d_g<d_best?g:best}return order.indexOf(g)>order.indexOf(best)?g:best})}function plan_cluster_groups(u_jssm,l_states,order,parents){const placement=new Map;const chips=new Map;for(const s of l_states){const primary=primary_group_for(u_jssm,s,order);if(primary===void 0){continue}placement.set(s,primary);const represented=group_ancestry(primary,parents);const overflow=order.filter(g=>u_jssm.groupsOf(s).has(g)&&!represented.has(g));if(overflow.length){chips.set(s,overflow)}}return{placement:placement,chips:chips}}function groups_to_subgraph_string(u_jssm,l_states,state_index,state_kinds,hide_state_labels){const order=u_jssm.groups();const parents=group_parent_map(u_jssm._group_registry,order);const{placement:placement,chips:chips}=plan_cluster_groups(u_jssm,l_states,order,parents);const spread_children_of=new Map;const is_spread_child=new Set;for(const p of order){for(const member of u_jssm._group_registry.get(p)??[]){if(member.kind==="group"&&member.mode==="spread"&&parents.get(member.name)===p){const bucket=spread_children_of.get(p)??[];bucket.push(member.name);spread_children_of.set(p,bucket);is_spread_child.add(member.name)}}}const children=new Map;for(const g of order){const p=parents.get(g);if(p!==void 0&&!is_spread_child.has(g)){const bucket=children.get(p)??[];bucket.push(g);children.set(p,bucket)}}const members=new Map;for(const s of l_states){const g=placement.get(s);if(g!==void 0){const bucket=members.get(g)??[];bucket.push(s);members.set(g,bucket)}}const node_line=s=>state_node_line(u_jssm,s,state_index,state_kinds,hide_state_labels,chips.get(s)??[]);const render_cluster=(g,index)=>{const direct_nodes=(members.get(g)??[]).map(node_line).join(" ");const spread_nodes=(spread_children_of.get(g)??[]).flatMap(c=>members.get(c)??[]).map(node_line).join(" ");const inner_nodes=[direct_nodes,spread_nodes].filter(Boolean).join(" ");const sub=(children.get(g)??[]).map(c=>render_cluster(c,order.indexOf(c))).join(" ");const body=[inner_nodes,sub].filter(Boolean).join(" ");if(!body){return""}return`subgraph ${cluster_id_for(g,index)} { label="${doublequote(g)}"; ${body} };`};const roots=order.filter(g=>parents.get(g)===void 0&&!is_spread_child.has(g));const clusters=roots.map(g=>render_cluster(g,order.indexOf(g))).filter(Boolean).join(" ");const ungrouped_nodes=l_states.filter(s=>!placement.has(s)).map(node_line).join(" ");return{clusters:clusters,ungrouped_nodes:ungrouped_nodes}}function chips_for_all_groups(u_jssm,l_states){const order=u_jssm.groups();const chips=new Map;for(const s of l_states){const groups=u_jssm.groupsOf(s);const mine=order.filter(g=>groups.has(g));if(mine.length){chips.set(s,mine)}}return chips}function node_block_for(u_jssm,l_states,state_index,state_kinds,hide_labels,mode){if(mode==="off"||u_jssm.groups().length===0){return states_to_nodes_string(u_jssm,l_states,state_index,state_kinds,hide_labels)}if(mode==="chips"){const chips=chips_for_all_groups(u_jssm,l_states);return states_to_nodes_string(u_jssm,l_states,state_index,state_kinds,hide_labels,chips)}const{clusters:clusters,ungrouped_nodes:ungrouped_nodes}=groups_to_subgraph_string(u_jssm,l_states,state_index,state_kinds,hide_labels);return`${clusters}${clusters&&ungrouped_nodes?" ":""}${ungrouped_nodes}`}function machine_to_dot(u_jssm,opts={}){const l_states=u_jssm.states();const state_index=slug_states(l_states);const state_kinds=classify_states(u_jssm,l_states);const hide_labels=opts.hide_state_labels===true;const mode=opts.render_groups??"cluster";const nodes=node_block_for(u_jssm,l_states,state_index,state_kinds,hide_labels,mode);const edges=states_to_edges_string(u_jssm,l_states,state_index,state_kinds);const arranges=arranges_for(u_jssm,state_index);const rank_dir=flow_direction_to_rankdir(u_jssm.flow()||"down");const preamble=u_jssm.dot_preamble()||"";const footer=opts?.footer??"";const transition_config=u_jssm.default_transition_config();const graph_config=u_jssm.default_graph_config();const edge_defaults=edge_defaults_body(transition_config);const extra_graph_attrs=graph_attrs_body(graph_config);const bg_color=graph_bg_color_from_config(graph_config,vc("graph_bg_color"));return dot_template(rank_dir,bg_color,nodes,edges,arranges,preamble,footer,edge_defaults,extra_graph_attrs)}function fsl_to_dot(fsl,opts={}){return machine_to_dot(sm`${fsl}`,opts)}async function dot_to_svg(dot2,options){const viz=await get_viz();return viz.renderString(dot2,{format:"svg",...options??{}})}async function fsl_to_svg_string(fsl,opts={}){return dot_to_svg(fsl_to_dot(fsl,opts),opts)}async function svgTarget(fsl){try{return await fsl_to_svg_string(fsl)}catch(e){throw new RenderError(`SVG render failed: ${e.message}`)}}async function dotTarget(fsl){try{return fsl_to_dot(fsl)}catch(e){throw new RenderError(`DOT render failed: ${e.message}`)}}const escapeHtml=s=>s.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#39;");async function htmlTarget(fsl,opts={}){const title=escapeHtml(opts.title??"FSL Machine");let svg;try{svg=await svgTarget(fsl)}catch(e){throw e instanceof RenderError?e:new RenderError(`HTML render failed: ${String(e)}`)}return`<!DOCTYPE html>\n<html lang="en">\n<head>\n<meta charset="utf-8">\n<title>${title}</title>\n<style>\nbody { font-family: system-ui, -apple-system, "Segoe UI", Roboto, sans-serif; margin: 2rem auto; max-width: 80rem; padding: 0 1rem; color: #222; }\nh1 { font-size: 1.4rem; margin-bottom: 1.5rem; }\n.diagram { display: flex; justify-content: center; }\n.diagram svg { max-width: 100%; height: auto; }\n</style>\n</head>\n<body>\n<h1>${title}</h1>\n<div class="diagram">\n${svg}\n</div>\n</body>\n</html>\n`}const BUNDLED_FONT_BASE64=["AAEAAAASAQAABAAgR0RFRhgSGFIAAANEAAAApkdQT1NEdEx1AAABPAAAAB5HU1VC9vYgIQAAFNQAAAn2T1MvMnMmA9oAAAJYAAAAYFNUQVRe/0M5AAAB","+AAAAF5jbWFwbPZpegAAArgAAACMY3Z0ID0/LMgAAAPsAAAA/GZwZ23iGZ5aAAAezAAAD5RnYXNwABUAIwAAASwAAAAQZ2x5ZhGmxv4AAC5gAACA/Ghl","YWQfoeqVAAABwAAAADZoaGVhDcgGWwAAAZwAAAAkaG10eJDssVgAAA10AAAHYGxvY2HUKbTuAAAJwAAAA7JtYXhwBV8QpQAAAVwAAAAgbmFtZTCeW1EA","AAToAAACOHBvc3T/nwAyAAABfAAAACBwcmVwhf176QAAByAAAAKfAAEAAwAIAAoADQAH//8ADwABAAAACgAcABwAAURGTFQACAAEAAAAAP//AAAAAAAA","AAEAAAHYAJEAFgBfAAUAAgAQAC8AmgAAAr4PgwADAAEAAwAAAAAAAP+cADIAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAIjf2oAAAJpvuc/TQJnAABAAAA","AAAAAAAAAAAAAAAB2AABAAAAAwDFtwl03l8PPPUACwgAAAAAANnMwvcAAAAA4Xvbqfuc/dMJnAhiAAAABgACAAAAAAAAAAEAAQAIAAMAAAAUAAMAAAAs","AAJ3ZHRoAQEAAHdnaHQBAAABaXRhbAEcAAIAJgAWAAYAAwACAAIBHQAAAAAAAQAAAAMAAQACAQQBkAAAArwAAAABAAAAAgEaAGQAAAAAAAQEkAGQAAUA","AAUzBM0AAACaBTMEzQAAAs0AMgKSAAAAAAAAAAAAAAAAgAAABwAAAAIAAAAAAAAAAEdPT0cBwAAgIKwIjf2oAAAI/gKLAAABnwAAAAAESAW2AAAAIAAE","AAAAAgAAAAMAAAAUAAMAAQAAABQABAB4AAAAGgAQAAMACgB+ATABMQFhAWMBfyAUIBkgHSAiICYgrP//AAAAIACgATEBMgFiAWQgEyAYIBwgIiAmIKz/","///h/8AAS/+///n/v+E34TThMuEu4SvgqAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAwAAAAAAAAAAgAZACIAOwABAEIAWwABAGoAagAB","AHoAegABAIAAiwABAJAAlgABAJgAtgABALgA3AABAN4A3gABAOAA4AABAOIA4gABAOQA5wABAOkA6QABAOsA6wABAO0A7QABAO8A7wABAPIBQAABAVsB","XAABAWABYgABAWMBZwACAWoBawABAW0BegABAXwBfgABAYEBiAABAdcB1wABAAAGFAALBbYAFgW2ABYESAAUAAD/6gAA/+wAAP/q/hb//gW2ABUAAP/r","AAAAqACqAJYAlgCmAIIAggCrAJYAcQCfAI8AqQCmAMgAbQCKAJoAawCOAJsAegCkAI0BOgCEAJoAogCKAO4AhQB4AUgAhQB6AJoAngCqALMAlgBxAIUA","kACZAJ8ApACpALAAmwCmAKwAyABtAHoAggCKAJoAawCCAIoAkgCbAKAApgB6AKMAqwCvAIMAjACYAToAcQCAAIcAjwCbAKUAfQCGAIsAlQCbAKUArgDu","AHgAfgCIAJMBSAB5AIAAhgCLAJQAmgCnBsIDegUKABT/OAKeA6cAAAANAKIAAwABBAkAAACsAOoAAwABBAkAAQASANgAAwABBAkAAgAOAMoAAwABBAkA","AwA2AJQAAwABBAkABAAiAHIAAwABBAkABQAaAFgAAwABBAkABgAgADgAAwABBAkBAAAMACwAAwABBAkBAQAKACIAAwABBAkBBAAOAMoAAwABBAkBGgAM","ABYAAwABBAkBHAAMAAoAAwABBAkBHQAKAAAAUgBvAG0AYQBuAEkAdABhAGwAaQBjAE4AbwByAG0AYQBsAFcAaQBkAHQAaABXAGUAaQBnAGgAdABPAHAA","ZQBuAFMAYQBuAHMALQBSAGUAZwB1AGwAYQByAFYAZQByAHMAaQBvAG4AIAAzAC4AMAAwADMATwBwAGUAbgAgAFMAYQBuAHMAIABSAGUAZwB1AGwAYQBy","ADMALgAwADAAMwA7AEcATwBPAEcAOwBPAHAAZQBuAFMAYQBuAHMALQBSAGUAZwB1AGwAYQByAFIAZQBnAHUAbABhAHIATwBwAGUAbgAgAFMAYQBuAHMA","QwBvAHAAeQByAGkAZwBoAHQAIAAyADAAMgAwACAAVABoAGUAIABPAHAAZQBuACAAUwBhAG4AcwAgAFAAcgBvAGoAZQBjAHQAIABBAHUAdABoAG8AcgBz","ACAAKABoAHQAdABwAHMAOgAvAC8AZwBpAHQAaAB1AGIALgBjAG8AbQAvAGcAbwBvAGcAbABlAGYAbwBuAHQAcwAvAG8AcABlAG4AcwBhAG4AcwApQP96","PHlVeVl2OE8fdTj/H3Q4qx9zNs0fcjb/H3E2qx9wN/8fbzX/H24zXh9tM/8fbDSrH2s0/x9qMv8faTBnH2gw/x9nMHIfZjBFH2Ux/x9kMc0fYzFPH2Iv","Xh9hL/8fYC5PH18uqx9eLv8fXS42H1wt/x9bLF4fWiz/H1ksZx9YK14fVyuTH1Yr/x9VKv8fVCleH1Mpqx9SKf8fUSiAH1Ao/x9PKIAfTif/H00m/x9M","Jf8fSyWAH0olQB9JJP8fSCP/H0ciqx9GIv8fRSJeH0Qhkx9DIf8fQh/NH0Ef/x9AH6sfPyD/Hz4gZx89Hv8fPB3/Hzscch86HP8fORxPHzdAwjZeHzQz","Tx8xMCsfKShPHygVGxlcJxstHyYlQB8lDhoZXCQaMR8jGR8fIhn/HyEfZx8gH0AfHxwYFlweGBwfHRf/HxwW/x8bMhkfWxg4FjdbGjIZH1sXOBY3WxUZ","Phb/WhMxElURMRBVElkQWQ0yDFUFMgRVDFkEWQ8EfwTvBAMP/w5VCzIKVQcyBlUBXwBVDlkKWQZZzwbvBgIAWW8AfwCvAO8ABBAAAQkyCFUDMgJVCFkC","WQ8CfwLvAgMQAANAQAUBuAGQsFQrS7gH/1JLsAlQW7ABiLAlU7ABiLBAUVqwBoiwAFVaW1ixAQGOWYWNjQAdQkuwkFNYsgMAAB1CWbECAkNRWLEEA45Z","QnMAKwArKytzcwArcwArACsAKysrKytzACsAKysrACsAKysrASsBKwErASsBKwErACsrASsrKwErKwArACsrKwErKwErACsrASsrKwArKysrKysrKysB","KysrKwArKysrKysrKysrKysBKysrKwArKysrKysrKysrASsrKysrKysrACsrKysrKysrKysrKwArKxgAAAAAAAAAACkARwCfAQUBZQHYAewCEwI9Am4C","jQKqArsC1gLrAysDUQONA+AEGQRgBLgE1AU8BZUFwgXyBhAGKgZIBpUHIQdWB6EH3QgOCDMIUwiYCLwIzgjzCR8JNQltCZsJ3QoQCl8KmgrvCwoLNQtf","C7ML3gwBDCQMPwxUDG4MigycDL4NDw1bDZIN3Q4dDlMO1Q8NDzMPag+gD7IQARAyEG0QvhELETwRiRG/EfMSGxJuEpsS2hL9E0UTVhOdE9YT1hP9FD4U","hxT8FTsVVBXGFfQWZRayFuoXARcJF3sXjRfBF+wYIRhrGI0YzBj2GP8ZLRlTGYMZtxoVGnIa9BtAG1IbZBt2G4gbmxunG+Mb7xwBHBMcJRw4HEocXBxu","HIEcxBzWHOgc+h0MHR4dMR1kHdQd5h34HgoeHR4vHmgexx7ZHuse/R8OHyAfNB+3H8Mf1R/nH/kgCyAcIC0gPyBSILUgxyDZIOsg/SEPISEhWCHAIdIh","5CH2IggiGiJrIn0ijyKhIrMixSLRIt0i7yMBIxMjJSM3I0kjWyNtI38jkiOaI/AkAiQUJCYkOCRKJFwkaCTOJOAk8iUEJRYlKCU7JU0lYCVsJX0ljyWi","JdomHyYyJkQmVyZoJnsmjCaXJqImtSbBJs0m3ybxJv0nCCc7J00nXydqJ3YniSebJ6cnsyfdKAIoFCgmKDIoPihQKGIobiixKPkpCykdKS8pQSlUKWcp","wCowKkIqVCpgKmwqfiqPKqEqsyrFKtYq4iruKwArESscKycrOStFK3MrtCvGK9gr6iv8LA4sICw0LEgsWyxuLL8syyzdLO8tAS0SLSUtNy1JLVstbS1/","LZAtti3BLcwt+S4oLjsuYi5+Lqsu1S8ML0UvVi9nL4UvpC/WMAkwKTA5ME4wfTDhMQExIDFTMZMxrjIHMhMyHzJMMpsy6TMxMzkzhTORM50zqTO5M8kz","3DPvM/s0BzQZNCU0UTR3NIk0mzStNMA00jTkNPY1AjUNNR81KzU9NU81dDWFNZc1qzYiNi42OTaQNu43ADcSNyQ3VjeGN5c34zgSOFk4ozjXOOA46Tjy","OPs5BDkNORY5HzkoOTE5cTmYOdM6JDpbOqE6+DsSO3k70DvZO+I76zv0O/08BjwPPBg8ITwqPF88hDy/PRA9Rz2NPec+Aj5rPsE/Dz8XPx8/Jz8vPzc/","Pz9HP08/Vz9fP2g/cT96P4M/jD+VP54/pz+wP7k/2T/iQANADEAqQENATEBVQHNAfgAABM0AwQIUAAACHQCWAzAAhwUrADQEkwB/Bp0AZgXUAG8BwQCH","AlwAUgJcAD4EaABZBJMAZwISAFMCkwBSAhoAlgLvABUEkwBnBJMAuQSTAGUEkwBcBJMALASTAIQEkwB0BJMAXQSTAGcEkwBnAhoAlgIaAEEEkwBnBJMA","cwSTAGcDdAAfBywAdgUPAAAFKwDIBQoAfQXOAMgEcgDIBCEAyAXRAH0F5gDIAjwAyAIm/1wE5gDIBC0AyAcyAMgGBgDIBjkAfQTQAMgGOQB9BPAAyARj","AGkEaAASBdUAuQTFAAAHYwAeBJ8ABgR5AAAElABOAp4ApgLvABUCngAzBJMAUAOB//wCOABSBHIAXgTlAK8D1QByBOUAcgR+AHICsQAeBFgAHwToAK8C","BQCgAgX/kAQ0AK8CBQCvB2gArwToAK8E0AByBOUArwTlAHEDRQCvA9AAZwLaACAE6ACjA/8AAAYzABgEMAAnBAIAAgPAAFADAAA5BGUB7AMAAEMEkwBn","AhQAAAIdAJYEkwC5BJMARASTAHkEkwAfBGUB7AQcAHoEowE2BqgAZALTAEQD9wBPBJMAZwKTAFIGqABkBAD/+gNtAHUEkwBnAsgAMgLIACUCOABSBPIA","rwU9AHoCGgCWAcYAHALIAEwC/QBDA/cATQXsAEIGJQAsBjoAIQN0ADUFDwAABQ8AAAUPAAAFDwAABQ8AAAUPAAAG8v/+BQoAfQRyAMgEcgDIBHIAyARy","AMgCPP/0AjwAtAI8/84CPAAGBc4AOgYGAMgGOQB9BjkAfQY5AH0GOQB9BjkAfQSTAIUGOQB9BdUAuQXVALkF1QC5BdUAuQR5AAAE0ADIBPsArwRyAF4E","cgBeBHIAXgRyAF4EcgBeBHIAXgbmAF4D1QByBH4AcgR+AHIEfgByBH4AcgIF//gCBQCPAgX/tQIF/+cEzABxBOgArwTQAHIE0AByBNAAcgTQAHIE0ABy","BJMAZwTQAHIE6ACjBOgAowToAKME6ACjBAIAAgTlAK8EAgACBQ8AAARyAF4FDwAABHIAXgUPAAAEcgBeBQoAfQPVAHIFCgB9A9UAcgUKAH0D1QByBQoA","fQPVAHIFzgDIBOUAcgXOADoE6AByBHIAyAR+AHIEcgDIBH4AcgRyAMgEfgByBHIAyAR+AHIEcgDIBH4AcgXRAH0EWAAfBdEAfQRYAB8F0QB9BFgAHwXR","AH0EWAAfBeYAyATo/7cF5gAABOgAFAI8/60CBf+JAjz/8wIF/9YCPP/nAgX/0wI8AFgCBQAxAjwAvQRiAMgECgCgAib/XAIF/5AE5gDIBDQArwQ0AK8E","LQCnAgUAjwQtAMgCBQCDBC0AyAIFAK8ELQDIAhcArwQtABoCBf/yBgYAyAToAK8GBgDIBOgArwYGAMgE6ACvBWkAAgYGAMgE6ACvBjkAfQTQAHIGOQB9","BNAAcgY5AH0E0AByB2YAfQeWAHAE8ADIA0UArwTwAMgDRQB9BPAAyANFAJUEYwBpA9AAZwRjAGkD0ABnBGMAaQPQAGcEYwBpA9AAZwRoABIC2gAgBGgA","EgLaACAEaAASAtoAIAXVALkE6ACjBdUAuQToAKMF1QC5BOgAowXVALkE6ACjBdUAuQToAKMF1QC5BOgAowdjAB4GMwAYBHkAAAQCAAIEeQAABJQATgPA","AFAElABOA8AAUASUAE4DwABQApUArwRjAGkD0ABnA0UAUgNFAFIC+wBSAxIAUgFsAFICYgBSAe8AUgOKAFIDdgBSBAAAUggAAFIBWwAbAVsAGgLKABsC","ygAaAwIAqwY5AJYBBv6EAzAAcgSTADQEAAGJBAABgQLIABUCyAA+AsgAOgLIADQEaAASAtoAIALIACkCyAApAsgAIwW8AMcGBgDIBakAugViAB4EtgAe","BLYAHgdmAB4HZgAeBC0AyAYGAMgFDwAABHIAyAI8AFgF1QC5AqoAVwNHADgCqgBMAqoAVwKqAAkCqgA6Aqr/3AKqACkCqgAmAqoAVwKqAFcCqgBXBM8A","VwNHADgCBQCvAgX/kATlAHICBQBBBOgArwRyAF4EfgByAgUAMQToAKME5QByBOUAcgTlAHIE5QByAzAAcgK7AHIBUQByBNEAcgMwAHIDLgByAnoAQwHb","ABUCyAApAsgATALIADICyAAlAsgAFQLIAD4CyAApAsgAOgLIADQCyAAjBKoAcwN2ADMEagBPBIgAVwSaADAEiAB+BJAAcwQSABEEtAB6BJAAZgLIACkC","yABMAsgAMgLIACUCyAAVAsgAPgLIACkCyAA6AsgANALIACMErABwAyQAKgRQAFUEQwA7BIsALgR7AHkEmQB2BDgAIQSTAGcEmQBiBJMAZwRcAEgEXACX","BFwAXwRcAEsEXAAHBFwAYARcAFQEXABCBFwATARcAEYCyAApAsgATALIADICyAAlAsgAFQLIAD4CyAApAsgAOgLIADQCyAAjAcsAUAHLAFABywA9AcsA","PQKtAEgCrQBIAq0ASAKtAEgEAAF0AgUAMwABAAAACgFKAlYABURGTFQBFGN5cmwBFGdyZWsBFGhlYnIBFGxhdG4AIAD4AAVDQVQgAMpNQUggAKBNT0wg","AHZOQVYgAExST00gACIAAP//ABIAAAABAAIAAwAEAAkACgALAAwADQAOAA8AEAARABIAEwAUABUAAP//ABIAAAABAAIAAwAEAAgACgALAAwADQAOAA8A","EAARABIAEwAUABUAAP//ABIAAAABAAIAAwAEAAcACgALAAwADQAOAA8AEAARABIAEwAUABUAAP//ABIAAAABAAIAAwAEAAYACgALAAwADQAOAA8AEAAR","ABIAEwAUABUAAP//ABIAAAABAAIAAwAEAAUACgALAAwADQAOAA8AEAARABIAEwAUABUABAAAAAD//wARAAAAAQACAAMABAAKAAsADAANAA4ADwAQABEA","EgATABQAFQAWYWFsdAEEZG5vbQD+ZnJhYwD0bGlnYQDubG51bQDobG9jbADibG9jbADcbG9jbADWbG9jbADQbG9jbADKbnVtcgDEb251bQC+b3JkbgC4","cG51bQCyc2FsdACqc3MwMQCqc3MwMgCkc3MwMwCec3VicwCYc3VwcwCSdG51bQCMemVybwCGAAAAAQAZAAAAAQAWAAAAAQAKAAAAAQAJAAAAAQAbAAAA","AQAaAAAAAgAaABsAAAABABUAAAABABIAAAABABcAAAABAAsAAAABAAQAAAABAAIAAAABAAMAAAABAAUAAAABAAYAAAABABQAAAABABgAAAADAA0ADgAP","AAAAAQAMAAAAAgAAAAEAHAauBIwEWgQ4BDgEFgPUA7QDlAMqAtwCxAK2AqICxAJaAkwCTAIOAewB1AGOAUgBAgC+AKoAhAA6AAEAAAABAAgAAgAiAA4B","bgFvAXABcQFyAXMBdAF1AXYBdwF5AXoBewF4AAEADgAqACsAjACNAI4AjwDoAOoA7ADuAPAA8QDzAWwAAQAAAAEACAACABAABQGFAYYBhwGIAX4AAQAF","AEgA3QDfAOEA4wABAAAAAQAIAAEABgGoAAEAAQARAAQAAAABAAgAAQA2AAEACAAFACYAHgAYABIADAFlAAIATQFkAAIASgFjAAIARwFnAAMARwBNAWYA","AwBHAEoAAQABAEcAAQAAAAEACAACAC4AFAG6AbsBvAG9Ab4BvwHAAcEBwgHDAa8BsAGxAbIBswG0AbUBtgG3AbgAAgACABEAGgAAAZsBpAAKAAEAAAAB","AAgAAgAuABQAEQASABMAFAAVABYAFwAYABkAGgG6AbsBvAG9Ab4BvwHAAcEBwgHDAAIAAgGbAaQAAAGvAbgACgABAAAAAQAIAAIALgAUAZsBnAGdAZ4B","nwGgAaEBogGjAaQBrwGwAbEBsgGzAbQBtQG2AbcBuAACAAIAEQAaAAABugHDAAoAAQAAAAEACAABAAb/7AACAAEBrwG4AAAAAQAAAAEACAACAA4ABABq","AHoAagB6AAEABAAiADAAQgBQAAYAAAACACQACgADAAEAugABABIAAAABAAAAEwABAAIAMABQAAMAAQCgAAEAEgAAAAEAAAATAAEAAgAiAEIAAQAAAAEA","CAABAD7/7AAGAAAAAgAmAAoAAwABABIAAQAuAAAAAQAAABEAAgABAZEBmgAAAAMAAQAcAAEAEgAAAAEAAAAQAAIAAQGlAa4AAAABAAEBUgABAAAAAQAI","AAEABgFCAAEAAQAQAAEAAAABAAgAAQAUAYAAAQAAAAEACAABAAYBlAACAAEAEQAaAAAAAQAAAAEACAACACQADwHOAdAB0gFdAHkAcgBzAVcBWAFeAVkB","WgFfAdMBUwABAA8ACQAKAAwAEQASABMAFAAVABYAFwAYABkAGgAeAE8AAQAAAAEACAACADIAFgHPAdEB1AHEAcUBxgHHAcgByQHKAcsBzAHNAdUBiQGK","AYsBjAGNAY4BjwGQAAEAFgAJAAoADAARABIAEwAUABUAFgAXABgAGQAaAB4ASQBMAE0ATgBPAFEAVABVAAQAAAABAAgAAQASAAEACAABAAQA/gACAHcA","AQABAC0ABAAAAAEACAABABIAAQAIAAEABAD/AAIAdwABAAEATQAGAAAAAQAIAAEACgACACYAEgABAAIALQBNAAEABAAAAAIAdwABAE0AAQAAAAcAAQAE","AAAAAgB3AAEALQABAAAACAABAAAAAQAIAAIADgAEAWgBfwFpAYAAAQAEAPoA+wEEAQUAAQAAAAEACAACAA4ABAE/AUABIQEiAAEABAEdAR4BWwFcAAEA","AAABAAgAAgAWAAgBagGBAWsBggFsAYMBbQGEAAEACADEAMUA2ADZAO4A7wExATIAAwAAAAEACAABAGYAMAIUAg4CCAH4AeoB3AHOAcABsgGkAZYBiAF6","AXQBbgFoAWIBWgFUAU4BSAFCATwBNgEwASoBJAEeARgBEgEMAQYBAAD6APQA7gDoAOIA3ADWANAAygDEAL4AuACyAKwApgACAAoACQAKAAAADAAMAAIA","EQAaAAMAHgAeAA0ATwBPAA4A7gDvAA8BCQEJABEBmwGkABIBrwG4ABwBugHDACYAAgGkAbgAAgGjAbcAAgGiAbYAAgGhAbUAAgGgAbQAAgGfAbMAAgGe","AbIAAgGdAbEAAgGcAbAAAgGbAa8AAgGkAcMAAgGjAcIAAgGiAcEAAgGhAcAAAgGgAb8AAgGfAb4AAgGeAb0AAgGdAbwAAgGcAbsAAgGbAboAAgAaAbgA","AgAZAbcAAgAYAbYAAgAXAbUAAgAWAbQAAgAVAbMAAgAUAbIAAgATAbEAAgASAbAAAgARAa8AAwFgAWEBYgACAYMB1wACAWwBdwACAVMBjQACAdMB1QAG","AV8BmgGkAa4BwwHNAAYBWgGZAaMBrQHCAcwABgFZAZgBogGsAcEBywAGAV4BlwGhAasBwAHKAAYBWAGWAaABqgG/AckABgFXAZUBnwGpAb4ByAAGAHMB","lAGeAagBvQHHAAYAcgGTAZ0BpwG8AcYABgB5AZIBnAGmAbsBxQAHAV0BkQGbAaUBuQG6AcQAAgHSAdQAAgHQAdEAAgHOAc8AAQAAAAEACAACAHYAOAFS","AGoBbgFvAHoAagGFAYkBfAF9AYoBiwGMAHoBjgGPAZABcAFxAXIBcwFqAYEBawGCAYYBhwGIAX4BdAF1AXYBeQF6AXsBaAF/AWkBgAE/AUABbQGEASEB","IgF4AZEBkgGTAZQBlQGWAZcBmAGZAZoAAQA4ABAAIgAqACsAMABCAEgASQBKAEsATABNAE4AUABRAFQAVQCMAI0AjgCPAMQAxQDYANkA3QDfAOEA4wDo","AOoA7ADwAPEA8wD6APsBBAEFAR0BHgExATIBWwFcAWwBpQGmAacBqAGpAaoBqwGsAa0BrgAAQEqZmJeWh4aFhIOCgYB/fn18e3p5eHd2dXRzcnFwb25t","bGtqaWhnZmVkY2JhYF9eXVxbWllYV1ZVVFNRUE9OTUxLSklIR0YoHxAKCSwBsQsKQyNDZQotLACxCgtDI0MLLSwBsAZDsAdDZQotLLBPKyCwQFFYIUtS","WEVEGyEhWRsjIbBAsAQlRbAEJUVhZIpjUlhFRBshIVlZLSwAsAdDsAZDCy0sS1MjS1FaWCBFimBEGyEhWS0sS1RYIEWKYEQbISFZLSxLUyNLUVpYOBsh","IVktLEtUWDgbISFZLSywAkNUWLBGKxshISEhWS0ssAJDVFiwRysbISEhWS0ssAJDVFiwSCsbISEhIVktLLACQ1RYsEkrGyEhIVktLCMgsABQiopksQAD","JVRYsEAbsQEDJVRYsAVDi1mwTytZI7BiKyMhI1hlWS0ssQgADCFUYEMtLLEMAAwhVGBDLSwBIEewAkMguBAAYrgQAGNXI7gBAGK4EABjV1pYsCBgZllI","LSyxAAIlsAIlsAIlU7gANSN4sAIlsAIlYLAgYyAgsAYlI2JQWIohsAFgIxsgILAGJSNiUlgjIbABYRuKISMhIFlZuP/BHGCwIGMjIS0ssQIAQrEjAYhR","sUABiFNaWLgQALAgiFRYsgIBAkNgQlmxJAGIUVi4IACwQIhUWLICAgJDYEKxJAGIVFiyAiACQ2BCAEsBS1JYsgIIAkNgQlkbuEAAsICIVFiyAgQCQ2BC","WbhAALCAY7gBAIhUWLICCAJDYEJZuUAAAQBjuAIAiFRYsgIQAkNgQlmxJgGIUVi5QAACAGO4BACIVFiyAkACQ2BCWblAAAQAY7gIAIhUWLICgAJDYEJZ","sSgBiFFYuUAACABjuBAAiFRYuQACAQCwAkNgQllZWVlZWVmxAAJDVFhACgVACEAJQAwCDQIbsQECQ1RYsgVACLoBAAAJAQCzDAENARuxgAJDUliyBUAI","uAGAsQlAG7gBALACQ1JYsgVACLoBgAAJAUAbuAGAsAJDUliyBUAIuAIAsQlAG7IFQAi6AQAACQEAWVlZuEAAsICIVblAAAIAY7gEAIhVWlizDAANARuz","DAANAVlZWUJCQkJCLSxFsQJOKyOwTysgsEBRWCFLUViwAiVFsQFOK2BZGyNLUViwAyVFIGSKY7BAU1ixAk4rYBshWRshWVlELSwgsABQIFgjZRsjWbEU","FIpwRbEQEENLikNRWliwQBuwTytZI7FhBiZgK4pYsAVDi1kjWGVZIxA6LSywAyVJYyNGYLBPKyOwBCWwBCVJsAMlY1YgYLBiYCuwAyUgEEaKRmCwIGNh","Oi0ssAAWsQIDJbEBBCUBPgA+sQECBgywCiNlQrALI0KxAgMlsQEEJQE/AD+xAQIGDLAGI2VCsAcjQrABFrEAAkNUWEUjRSAYaYpjI2IgILBAUFhnG2ZZ","YbAgY7BAI2GwBCNCG7EEAEIhIVkYAS0sIEWxAE4rRC0sS1GxQE8rUFtYIEWxAU4rIIqKRCCxQAQmYWNhsQFOK0QhGyMhikWxAU4rIIojRERZLSxLUbFA","TytQW1hFIIqwQGFjYBsjIUVZsQFOK0QtLCNFIIpFI2EgZLBAUbAEJSCwAFMjsEBRWlqxQE8rVFpYigxkI2QjU1ixQECKYSBjYRsgY1kbilljsQJOK2BE","LSwBLSwALSwFsQsKQyNDZQotLLEKC0MjQwsCLSywAiVjZrACJbggAGJgI2ItLLACJWOwIGBmsAIluCAAYmAjYi0ssAIlY2ewAiW4IABiYCNiLSywAiVj","ZrAgYLACJbggAGJgI2ItLCNKsQJOKy0sI0qxAU4rLSwjikojRWSwAiVksAIlYWSwA0NSWCEgZFmxAk4rI7AAUFhlWS0sI4pKI0VksAIlZLACJWFksAND","UlghIGRZsQFOKyOwAFBYZVktLCCwAyVKsQJOK4oQOy0sILADJUqxAU4rihA7LSywAyWwAyWKsGcrihA7LSywAyWwAyWKsGgrihA7LSywAyVGsAMlRmCw","BCUusAQlsAQlsAQmILAAUFghsGobsGxZK7ADJUawAyVGYGGwgGIgiiAQIzojIBAjOi0ssAMlR7ADJUdgsAUlR7CAY2GwAiWwBiVJYyOwBSVKsIBjIFhi","GyFZsAQmRmCKRopGYLAgY2EtLLAEJrAEJbAEJbAEJrBuKyCKIBAjOiMgECM6LSwjILABVFghsAIlsQJOK7CAUCBgWSBgYCCwAVFYISEbILAFUVghIGZh","sEAjYbEAAyVQsAMlsAMlUFpYILADJWGKU1ghsABZGyFZG7AHVFggZmFlIyEbISGwAFlZWbECTistLLACJbAEJUqwAFNYsAAbioojirABWbAEJUYgZmEg","sAUmsAYmSbAFJrAFJrBwKyNhZbAgYCBmYbAgYWUtLLACJUYgiiCwAFBYIbECTisbRSMhWWFlsAIlEDstLLAEJiC4AgBiILgCAGOKI2EgsF1gK7AFJRGK","EoogOYpYuQBdEACwBCZjVmArIyEgECBGILECTisjYRsjISCKIBBJsQJOK1k7LSy5AF0QALAJJWNWYCuwBSWwBSWwBSawbSuxXQclYCuwBSWwBSWwBSWw","BSWwbyu5AF0QALAIJmNWYCsgsABSWLBQK7AFJbAFJbAHJbAHJbAFJbBxK7ACFziwAFKwAiWwAVJaWLAEJbAGJUmwAyWwBSVJYCCwQFJYIRuwAFJYILAC","VFiwBCWwBCWwByWwByVJsAIXOBuwBCWwBCWwBCWwBiVJsAIXOFlZWVlZISEhISEtLLkAXRAAsAslY1ZgK7AHJbAHJbAGJbAGJbAMJbAMJbAJJbAIJbBu","K7AEFziwByWwByWwByawbSuwBCWwBCWwBCawbSuwUCuwBiWwBiWwAyWwcSuwBSWwBSWwAyWwAhc4ILAGJbAGJbAFJbBxK2CwBiWwBiWwBCVlsAIXOLAC","JbACJWAgsEBTWCGwQGEjsEBhIxu4/8BQWLBAYCOwQGAjWVmwCCWwCCWwBCawAhc4sAUlsAUlirACFzggsABSWLAGJbAIJUmwAyWwBSVJYCCwQFJYIRuw","AFJYsAYlsAYlsAYlsAYlsAslsAslSbAEFziwBiWwBiWwBiWwBiWwCiWwCiWwByWwcSuwBBc4sAQlsAQlsAUlsAclsAUlsHErsAIXOBuwBCWwBCW4/8Cw","Ahc4WVlZISEhISEhISEtLLAEJbADJYewAyWwAyWKILAAUFghsGUbsGhZK2SwBCWwBCUGsAQlsAQlSSAgY7ADJSBjUbEAAyVUW1ghISMhBxsgY7ACJSBj","YSCwUyuKY7AFJbAFJYewBCWwBCZKsABQWGVZsAQmIAFGIwBGsAUmIAFGIwBGsAAWALAAI0gBsAAjSAAgsAEjSLACI0gBILABI0iwAiNII7ICAAEIIziy","AgABCSM4sQIBB7ABFlktLCMQDQyKYyOKY2BkuUAABABjUFiwADgbPFktLLAGJbAJJbAJJbAHJrB2KyOwAFRYBRsEWbAEJbAGJrB3K7AFJbAFJrAFJbAF","JrB2K7AAVFgFGwRZsHcrLSywByWwCiWwCiWwCCawdiuKsABUWAUbBFmwBSWwByawdyuwBiWwBiawBiWwBiawdisIsHcrLSywByWwCiWwCiWwCCawdiuK","igiwBCWwBiawdyuwBSWwBSawBSWwBSawdiuwAFRYBRsEWbB3Ky0ssAglsAslsAslsAkmsHYrsAQmsAQmCLAFJbAHJrB3K7AGJbAGJrAGJbAGJrB2Kwiw","dystLAOwAyWwAyVKsAQlsAMlSgKwBSWwBSZKsAUmsAUmSrAEJmOKimNhLSyxXQ4lYCuwDCYRsAUmErAKJTmwByU5sAolsAolsAklsHwrsABQsAslsAgl","sAolsHwrsABQVFiwByWwCyWHsAQlsAQlC7AKJRCwCSXBsAIlsAIlC7AHJRCwBiXBG7AHJbALJbALJbj//7B2K7AEJbAEJQuwByWwCiWwdyuwCiWwCCWw","CCW4//+wdiuwAiWwAiULsAolsAclsHcrWbAKJUawCiVGYLAIJUawCCVGYLAGJbAGJQuwDCWwDCWwDCYgsABQWCGwahuwbFkrsAQlsAQlC7AJJbAJJbAJ","JiCwAFBYIbBqG7BsWSsjsAolRrAKJUZgYbAgYyOwCCVGsAglRmBhsCBjsQEMJVRYBBsFWbAKJiAQsAMlOrAGJrAGJguwByYgEIo6sQEHJlRYBBsFWbAF","JiAQsAIlOoqKCyMgECM6LSwjsAFUWLkAAEAAG7hAALAAWYqwAVRYuQAAQAAbuEAAsABZsH0rLSyKiggNirABVFi5AABAABu4QACwAFmwfSstLAiwAVRY","uQAAQAAbuEAAsABZDbB9Ky0ssAQmsAQmCA2wBCawBCYIDbB9Ky0sIAFGIwBGsApDsAtDimMjYmEtLLAJK7AGJS6wBSV9xbAGJbAFJbAEJSCwAFBYIbBq","G7BsWSuwBSWwBCWwAyUgsABQWCGwahuwbFkrGLAIJbAHJbAGJbAKJbBvK7AGJbAFJbAEJiCwAFBYIbBmG7BoWSuwBSWwBCWwBCYgsABQWCGwZhuwaFkr","VFh9sAQlELADJcWwAiUQsAElxbAFJiGwBSYhG7AGJrAEJbADJbAIJrBvK1mxAAJDVFh9sAIlsIIrsAUlsIIrICBpYbAEQwEjYbBgYCBpYbAgYSCwCCaw","CCaKsAIXOIqKYSBpYWGwAhc4GyEhISFZGC0sS1KxAQJDU1pYIxAgATwAPBshIVktLCOwAiWwAiVTWCCwBCVYPBs5WbABYLj/6RxZISEhLSywAiVHsAIl","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","AAEHAEEBKQFvAAqzGQUCcgArzjAx//8AAAAABQ0HkAYmACIAAAEHAHQBwAFvAAqzGQUCcgArzjAx//8AAAAABQ0HjwYmACIAAAEHAUEA5wFvAAqzHwUC","cgArzjAx//8AAAAABQ0HTAYmACIAAAEHAUgAuwFvAAqzJAUCcgArzjAx//8AAAAABQ0HQQYmACIAAAEHAGgANAFvAAy0KBwFAnIAK87OMDH//wAAAAAF","DQcKBiYAIgAAAAcBRgFUAIIAAv/+AAAGgQW2AA8AEwArQBUTCQkQAwoNAw0DDQUGAnIOAQEFCHIAKzIRMysROTkvLxEzETMyETMwMWEhESEDIwEhFSER","IRUhESEBIREjBoH9BP4H3rACrwPU/a4CK/3VAlL7TQG3cwHQ/jAFtpb+J5T94wHRArf//wB9/hQEywXLBiYAJAAAAAcAeAIWAAD//wDIAAAD9geQBiYA","JgAAAQcAQQEVAW8ACrMSAgJyACvOMDH//wDIAAAD9geQBiYAJgAAAQcAdAGtAW8ACrMSAgJyACvOMDH//wDIAAAD9gePBiYAJgAAAQcBQQDTAW8ACrMS","AgJyACvOMDH//wDIAAAD9gdBBiYAJgAAAQcAaAAhAW8ADLQhFQICcgArzs4wMf////QAAAGJB5AGJgAqAAABBwBB/6IBbwAKswoBAnIAK84wMf//ALQA","AAJJB5AGJgAqAAABBwB0AGIBbwAKswoBAnIAK84wMf///84AAAJvB48GJgAqAAABBwFB/3wBbwAKswoBAnIAK84wMf//AAYAAAI7B0EGJgAqAAABBwBo","/tABbwAMtA0ZAQJyACvOzjAxAAIAOgAABVEFtgAOABwAH0APDBERCxQUCRAOAnIVCQhyACsyKzIROS8zMxEzMDFBMgQSFRQCBCMhESM1MxEFIxEhFSER","MyAAETQCJgKB3gFDr7T+qvT+gpubAZLpAXT+jMMBLwEuhP0FtqP+wev3/rWnAomVApiR/fmV/gkBKgEnxQEAfQD//wDIAAAFPwdMBiYALwAAAQcBSAE8","AW8ACrMUCgJyACvOMDH//wB9/+wFvAeQBiYAMAAAAQcAQQHCAW8ACrMnDgNyACvOMDH//wB9/+wFvAeQBiYAMAAAAQcAdAJYAW8ACrMoDgNyACvOMDH/","/wB9/+wFvAePBiYAMAAAAQcBQQF/AW8ACrMtDgNyACvOMDH//wB9/+wFvAdMBiYAMAAAAQcBSAFSAW8ACrMyDgNyACvOMDH//wB9/+wFvAdBBiYAMAAA","AQcAaADMAW8ADLQ2Kg4DcgArzs4wMQABAIUBEAQKBJYACwAkQBMHCQEDCAsCBQgKBgAACgoGBAQGAC8zLxEzLzMvERIXOTAxQRcBAQcBAScBATcBA6xe","/p4BYV/+nP6jYwFh/p5jAWAElmH+nv6eYQFg/qBhAWIBYGP+nAADAH3/wgW8BfcAGgAlADAAOUAcKh4eGBgVFS0tFxYSA3IfKSkLCwgIIiIKCQUJcgAr","zjIzETMRMxEzETMrzjIzETMRMxEzETMwMUEUAgYGIyImJwcnNyYCNTQSJDMyFhc3FwcWEgc0JicBFhYzMjYSJRQWFwEmJiMiBgIFvFap+qV2wEpmdG5b","WpQBLeNruktic2pdY7M4N/1fOJJbqtlo/Cc0NAKeNopVqtxrAt2p/uvHbDMzkEycZAEfsuABUrwzLotPlGL+4baG2Uz8TCgtlAEQuoLTTQOuJiiS/vMA","//8Auf/sBRoHkAYmADYAAAEHAEEBjwFvAAqzGgkCcgArzjAx//8Auf/sBRoHkAYmADYAAAEHAHQCJgFvAAqzGwkCcgArzjAx//8Auf/sBRoHjwYmADYA","AAEHAUEBTQFvAAqzIQkCcgArzjAx//8Auf/sBRoHQQYmADYAAAEHAGgAmwFvAAy0KR0JAnIAK87OMDH//wAAAAAEeQeQBiYAOgAAAQcAdAF4AW8ACrMQ","BwJyACvOMDEAAgDIAAAEZwW2AA4AGAAfQA8PBhgLBgsGCwgJAnIICHIAKysROTkvLxEzETMwMUEUDgIjIxEjETMRMyAEATMyNjY1NCYjIwRnPIffo7Cq","qtEBIgEC/QuekLtct8vDAw5ep39J/r8Ftv8A3f35PYdvk40AAQCv/+wEnQYfADwAFUALLjkBcjQKchoSC3IAKzIrKzIwMUEUDgMVFBYWFx4CFRQGBiMi","Jic1HgIzMjY1NCYmJy4CNTQ+AzU0JiMiBgYVESMRNDY2MzIWFgQaOlVVOh1PSkhqOV6pcWGQNiVdajZ0ZyVVR1NiKjhUUziRc02ATKZ0yoGBwGsE9Edm","TkJBKB8wPTEwYndTcJJHIyCXFSYYY1Q1TksuNlhZOEFZREBPOFhSK2db+1kEp4mlSkOF//8AXv/sA8sGIQYmAEIAAAEHAEEA3AAAAAqzLwAHcgArzjAx","//8AXv/sA8sGIQYmAEIAAAEHAHQBdAAAAAqzLwAHcgArzjAx//8AXv/sA8sGIAYmAEIAAAEHAUEAmgAAAAqzNQAHcgArzjAx//8AXv/sA8sF3QYmAEIA","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"].join("");let decoded=null;function bundledFontBytes(){if(decoded===null){decoded=new Uint8Array(Buffer.from(BUNDLED_FONT_BASE64,"base64"))}return decoded}const mimeOf=target=>target==="jpeg"?"image/jpeg":"image/png";const DEFAULT_SCALE_ZOOM=3;function zoomFor(opts){return(opts.scale??100)/100*DEFAULT_SCALE_ZOOM}function resvgFitTo(opts){if(opts.width!==void 0)return{mode:"width",value:opts.width};if(opts.height!==void 0)return{mode:"height",value:opts.height};return{mode:"zoom",value:zoomFor(opts)}}async function rasterize(svg,target,opts={}){if(typeof OffscreenCanvas!=="undefined"){return rasterizeViaCanvas(svg,target,opts)}return rasterizeViaResvgWasm(svg,target,opts)}async function rasterizeViaCanvas(svg,target,opts){const encoded=typeof btoa!=="undefined"?btoa(unescape(encodeURIComponent(svg))):Buffer.from(svg,"utf8").toString("base64");const url=`data:image/svg+xml;base64,${encoded}`;const ImageCtor=globalThis.Image;if(typeof ImageCtor==="undefined"){throw new RasterizationUnsupportedError("OffscreenCanvas present but Image constructor is not")}const img=new ImageCtor;img.src=url;if(typeof img.decode==="function"){await img.decode()}else{await new Promise((res,rej)=>{img.onload=()=>res();img.onerror=()=>rej(new Error("image load failed"))})}const natW=img.width??800;const natH=img.height??600;let width;let height;if(opts.width!==void 0){width=opts.width;height=Math.round(width*natH/natW)}else if(opts.height!==void 0){height=opts.height;width=Math.round(height*natW/natH)}else{const zoom=zoomFor(opts);width=Math.round(natW*zoom);height=Math.round(natH*zoom)}const canvas=new OffscreenCanvas(width,height);const ctx=canvas.getContext("2d");if(!ctx)throw new RenderError("failed to acquire 2d canvas context");ctx.drawImage(img,0,0,width,height);const blob=await canvas.convertToBlob({type:mimeOf(target),quality:target==="jpeg"?(opts.quality??85)/100:void 0});const ab=await blob.arrayBuffer();return new Uint8Array(ab)}let wasmInited=false;async function rasterizeViaResvgWasm(svg,target,opts){let mod;try{mod=await import("@resvg/resvg-wasm")}catch(e){throw new RasterizationUnsupportedError(`PNG/JPEG in this runtime requires @resvg/resvg-wasm; install with: npm install @resvg/resvg-wasm`)}if(typeof mod.initWasm==="function"&&!wasmInited){try{const{readFileSync:readFileSync}=await import("fs");const{resolve:resolve}=await import("path");const{createRequire:createRequire}=await import("module");const req=createRequire(typeof document==="undefined"?require("u"+"rl").pathToFileURL(__filename).href:_documentCurrentScript&&_documentCurrentScript.tagName.toUpperCase()==="SCRIPT"&&_documentCurrentScript.src||new URL("lib.cjs",document.baseURI).href);const wasmPath=resolve(req.resolve("@resvg/resvg-wasm"),"../index_bg.wasm");const wasmBuffer=readFileSync(wasmPath);await mod.initWasm(wasmBuffer);wasmInited=true}catch(e){wasmInited=true}}const Resvg=mod.Resvg;const resvg=new Resvg(svg,{font:{fontBuffers:[bundledFontBytes()],defaultFontFamily:"Open Sans",loadSystemFonts:false},fitTo:resvgFitTo(opts)});let rendered;try{rendered=resvg.render();const pngData=rendered.asPng();if(target==="png")return new Uint8Array(pngData);throw new RasterizationUnsupportedError("JPEG output in a non-Canvas runtime is not supported in v1; use --target=png instead")}finally{rendered?.free();resvg.free()}}async function pngTarget(fsl,opts={}){const svg=await svgTarget(fsl);return rasterize(svg,"png",{width:opts.width,height:opts.height,scale:opts.scale})}async function jpegTarget(fsl,opts={}){const svg=await svgTarget(fsl);return rasterize(svg,"jpeg",{width:opts.width,height:opts.height,scale:opts.scale,quality:opts.quality})}async function render(fsl,opts){switch(opts.target){case"svg":return{target:"svg",kind:"text",content:await svgTarget(fsl)};case"dot":return{target:"dot",kind:"text",content:await dotTarget(fsl)};case"html":return{target:"html",kind:"text",content:await htmlTarget(fsl)};case"png":return{target:"png",kind:"raster",buffer:await pngTarget(fsl,{width:opts.width,height:opts.height,scale:opts.scale})};case"jpeg":return{target:"jpeg",kind:"raster",buffer:await jpegTarget(fsl,{width:opts.width,height:opts.height,scale:opts.scale,quality:opts.quality})};default:throw new RenderError(`unknown target: ${String(opts.target)}`)}}async function renderSet(inputs,opts){return Promise.all(inputs.map(async(fsl,index)=>{try{const result=await render(fsl,opts);return{ok:true,index:index,result:result}}catch(e){return{ok:false,index:index,error:e}}}))}function parseFslArgs(argv,spec){const positional=[];const flags={};const shortMap={};for(const[name,fs]of Object.entries(spec.flags)){if(fs.short)shortMap[fs.short]=name}const isBoolean=name=>spec.flags[name]?.boolean===true;const flagType=name=>{const fs=spec.flags[name];return fs.type??"string"};const coerce=(name,raw)=>{const t=flagType(name);if(t==="number"){const n=Number(raw);if(Number.isNaN(n)){throw new Error(`flag --${name} requires a number, got: ${raw}`)}return n}const fs=spec.flags[name];if(fs.enum&&!fs.enum.includes(raw)){throw new Error(`flag --${name} value '${raw}' not in: ${fs.enum.join(", ")}`)}return raw};let i=0;let positionalOnly=false;while(i<argv.length){const a=argv[i];if(positionalOnly){positional.push(a);i++;continue}if(a==="--"){positionalOnly=true;i++;continue}if(a==="-"){positional.push(a);i++;continue}if(a.startsWith("--")){const eq=a.indexOf("=");const name=eq>=0?a.slice(2,eq):a.slice(2);if(!(name in spec.flags))throw new Error(`unknown flag: --${name}`);if(isBoolean(name)){flags[name]=true;i++}else if(eq>=0){flags[name]=coerce(name,a.slice(eq+1));i++}else{if(i+1>=argv.length)throw new Error(`flag --${name} requires a value`);flags[name]=coerce(name,argv[i+1]);i+=2}continue}if(a.startsWith("-")&&a.length>1){const short=a[1];const name=shortMap[short];if(!name)throw new Error(`unknown flag: -${short}`);if(isBoolean(name)){flags[name]=true;if(a.length>2)throw new Error(`combined short flags not supported: ${a}`);i++}else if(a.length>2){flags[name]=coerce(name,a.slice(2));i++}else{if(i+1>=argv.length)throw new Error(`flag -${short} requires a value`);flags[name]=coerce(name,argv[i+1]);i+=2}continue}positional.push(a);i++}for(const[name,fs]of Object.entries(spec.flags)){if(flags[name]===void 0&&fs.default!==void 0){flags[name]=fs.default}}const helpText=()=>{const lines=[];lines.push("Usage:");lines.push(" "+spec.usage);lines.push("");lines.push("Options:");for(const[name,fs]of Object.entries(spec.flags)){const short=fs.short?`-${fs.short}, `:" ";const longPart=`--${name}`;const arg=fs.boolean?"":fs.enum?` ${fs.enum.join("|")}`:fs.type==="number"?" N":" VALUE";const defStr=fs.default!==void 0?` (default: ${fs.default})`:"";lines.push(` ${short}${longPart}${arg}${defStr}`)}return lines.join("\n")};return{positional:positional,flags:flags,helpText:helpText}}exports.RasterizationUnsupportedError=RasterizationUnsupportedError;exports.RenderError=RenderError;exports.parseFslArgs=parseFslArgs;exports.render=render;exports.renderSet=renderSet;
1
+ "use strict";var _documentCurrentScript=typeof document!=="undefined"?document.currentScript:null;class RenderError extends Error{constructor(message,opts={}){super(message);this.name="RenderError";this.path=opts.path;this.line=opts.line;this.column=opts.column}}class RasterizationUnsupportedError extends RenderError{constructor(message){super(message);this.name="RasterizationUnsupportedError";Object.setPrototypeOf(this,RasterizationUnsupportedError.prototype)}}class circular_buffer{constructor(uCapacity){if(!Number.isInteger(uCapacity)){throw new RangeError(`Capacity must be an integer, received ${uCapacity}`)}if(uCapacity<0){throw new RangeError(`Capacity must be a non-negative integer, received ${uCapacity}`)}this._values=new Array(uCapacity);this._capacity=uCapacity;this._cursor=0;this._offset=0;this._length=0}get capacity(){return this._capacity}set capacity(newSize){this.resize(newSize)}get length(){return this._length}set length(newLength){if(newLength>this._capacity){throw new RangeError(`Requested new length [${newLength}] exceeds container capacity [${this._capacity}]`)}if(newLength<0){throw new RangeError(`Requested new length [${newLength}] cannot be negative`)}if(!Number.isInteger(newLength)){throw new RangeError(`Requested new length [${newLength}] must be an integer`)}if(this._length<=newLength){return}this._length=newLength}get available(){return this._capacity-this._length}get isEmpty(){return this._length===0}get isFull(){return this._length===this._capacity}get first(){if(this.isEmpty){throw new RangeError("Cannot return first element of an empty container")}return this.at(0)}get last(){if(this.isEmpty){throw new RangeError("Cannot return last element of an empty container")}return this.at(this.length-1)}static from(i,map_fn,t){const new_array=map_fn?Array.from(i,map_fn,t):Array.from(i);const target_length=new_array.length;const ncb=new circular_buffer(target_length);ncb._values=new_array;ncb._length=target_length;return ncb}push(v){if(this.isFull){throw new RangeError(`Cannot push, structure is full to capacity`)}this._values[(this._cursor+this._length++)%this._capacity]=v;return v}shove(v){let shoved;if(this._capacity===0){throw new RangeError(`Cannot shove, structure is zero-capacity`)}if(this.isFull){shoved=this.pop()}this.push(v);return shoved}fill(x){for(let i=0;i<this._capacity;i++){this._values[i]=x}this._length=this._capacity;return this._values}indexOf(searchElement,fromIndex){const normalized=this.toArray();return normalized.indexOf(searchElement,fromIndex)}find(predicate,thisArg){return this.toArray().find(predicate,thisArg)}every(functor,thisArg){const normalized=this.toArray(),res=normalized.every(functor,thisArg);this._values=normalized;this._values.length=this._capacity;this._cursor=0;return res}some(functor,thisArg){const normalized=this.toArray(),res=normalized.some(functor,thisArg);this._values=normalized;this._values.length=this._capacity;this._cursor=0;return res}reverse(){const normalized=this.toArray();this._values=normalized.reverse();this._values.length=this._capacity;this._cursor=0;return this}clear(){const old=this.toArray();this._length=0;return old}pop(){if(this._length<=0){throw new RangeError(`Cannot pop, structure is empty`)}const cache=this.at(0);--this._length;++this._offset;++this._cursor;if(this._cursor>=this._capacity){this._cursor-=this._capacity}return cache}at(i){if(i<0){throw new RangeError(`circular_buffer does not support negative traversals; called at(${i})`)}if(!Number.isInteger(i)){throw new RangeError(`Accessors must be non-negative integers; called at(${i})`)}if(i>=this._capacity){throw new RangeError(`Requested cell ${i} exceeds container permanent capacity`)}if(i>=this._length){throw new RangeError(`Requested cell ${i} exceeds container current length`)}return this._values[(this._cursor+i)%this._capacity]}pos(i){return this.at(i-this.offset())}offset(){return this._offset}resize(newSize,preferEnd=false){this._values=this.toArray();this._cursor=0;const oldSize=this._length;this._length=Math.min(this._length,newSize);this._capacity=newSize;if(newSize>=oldSize){this._values.length=newSize}else{if(preferEnd){const tmp=this._values.slice(oldSize-newSize);this._values=tmp}else{this._values.length=newSize}}}toArray(){const startPoint=this._cursor%this._capacity;if(this._capacity>startPoint+this._length){return this._values.slice(startPoint,startPoint+this._length)}else{const base=this._values.slice(startPoint,this._capacity);base.push(...this._values.slice(0,this.length-(this._capacity-startPoint)));return base}}}class JssmError extends Error{constructor(machine,message,JEEI){const{requested_state:requested_state,source_location:source_location}=JEEI===void 0?{requested_state:void 0,source_location:void 0}:JEEI;const follow_ups=[];if(machine){if(machine.state()!==void 0){follow_ups.push(`at "${machine.state()}"`)}}if(requested_state!==void 0){follow_ups.push(`requested "${requested_state}"`)}const complex_msg=`${machine?.instance_name()!==void 0?`[[${machine.instance_name()}]]: `:""}${message}${follow_ups.length?` (${follow_ups.join(", ")})`:""}`;super(complex_msg);this.name="JssmError";this.message=complex_msg;this.base_message=message;this.requested_state=requested_state;this.source_location=source_location}}function arrow_left_kind(arrow){switch(String(arrow)){case"->":case"→":case"=>":case"⇒":case"~>":case"↛":return"none";case"<-":case"←":case"<->":case"↔":case"<-=>":case"←⇒":case"←=>":case"<-⇒":case"<-~>":case"←↛":case"←~>":case"<-↛":return"legal";case"<=":case"⇐":case"<=>":case"⇔":case"<=->":case"⇐→":case"⇐->":case"<=→":case"<=~>":case"⇐↛":case"⇐~>":case"<=↛":return"main";case"<~":case"↚":case"<~>":case"↮":case"<~->":case"↚→":case"↚->":case"<~→":case"<~=>":case"↚⇒":case"↚=>":case"<~⇒":return"forced";default:throw new JssmError(void 0,`arrow_direction: unknown arrow type ${arrow}`)}}function arrow_right_kind(arrow){switch(String(arrow)){case"<-":case"←":case"<=":case"⇐":case"<~":case"↚":return"none";case"->":case"→":case"<->":case"↔":case"<=->":case"⇐→":case"⇐->":case"<=→":case"<~->":case"↚→":case"↚->":case"<~→":return"legal";case"=>":case"⇒":case"<=>":case"⇔":case"<-=>":case"←⇒":case"←=>":case"<-⇒":case"<~=>":case"↚⇒":case"↚=>":case"<~⇒":return"main";case"~>":case"↛":case"<~>":case"↮":case"<-~>":case"←↛":case"←~>":case"<-↛":case"<=~>":case"⇐↛":case"⇐~>":case"<=↛":return"forced";default:throw new JssmError(void 0,`arrow_direction: unknown arrow type ${arrow}`)}}function peg$subclass(child,parent){function ctor(){this.constructor=child}ctor.prototype=parent.prototype;child.prototype=new ctor}function peg$SyntaxError(message,expected,found,location){this.message=message;this.expected=expected;this.found=found;this.location=location;this.name="SyntaxError";if(typeof Error.captureStackTrace==="function"){Error.captureStackTrace(this,peg$SyntaxError)}}peg$subclass(peg$SyntaxError,Error);peg$SyntaxError.buildMessage=function(expected,found){var DESCRIBE_EXPECTATION_FNS={literal:function(expectation){return'"'+literalEscape(expectation.text)+'"'},class:function(expectation){var escapedParts="",i;for(i=0;i<expectation.parts.length;i++){escapedParts+=expectation.parts[i]instanceof Array?classEscape(expectation.parts[i][0])+"-"+classEscape(expectation.parts[i][1]):classEscape(expectation.parts[i])}return"["+(expectation.inverted?"^":"")+escapedParts+"]"},any:function(expectation){return"any character"},end:function(expectation){return"end of input"},other:function(expectation){return expectation.description}};function hex(ch){return ch.charCodeAt(0).toString(16).toUpperCase()}function literalEscape(s){return s.replace(/\\/g,"\\\\").replace(/"/g,'\\"').replace(/\0/g,"\\0").replace(/\t/g,"\\t").replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/[\x00-\x0F]/g,function(ch){return"\\x0"+hex(ch)}).replace(/[\x10-\x1F\x7F-\x9F]/g,function(ch){return"\\x"+hex(ch)})}function classEscape(s){return s.replace(/\\/g,"\\\\").replace(/\]/g,"\\]").replace(/\^/g,"\\^").replace(/-/g,"\\-").replace(/\0/g,"\\0").replace(/\t/g,"\\t").replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/[\x00-\x0F]/g,function(ch){return"\\x0"+hex(ch)}).replace(/[\x10-\x1F\x7F-\x9F]/g,function(ch){return"\\x"+hex(ch)})}function describeExpectation(expectation){return DESCRIBE_EXPECTATION_FNS[expectation.type](expectation)}function describeExpected(expected2){var descriptions=new Array(expected2.length),i,j;for(i=0;i<expected2.length;i++){descriptions[i]=describeExpectation(expected2[i])}descriptions.sort();if(descriptions.length>0){for(i=1,j=1;i<descriptions.length;i++){if(descriptions[i-1]!==descriptions[i]){descriptions[j]=descriptions[i];j++}}descriptions.length=j}switch(descriptions.length){case 1:return descriptions[0];case 2:return descriptions[0]+" or "+descriptions[1];default:return descriptions.slice(0,-1).join(", ")+", or "+descriptions[descriptions.length-1]}}function describeFound(found2){return found2?'"'+literalEscape(found2)+'"':"end of input"}return"Expected "+describeExpected(expected)+" but "+describeFound(found)+" found."};function peg$parse(input,options){options=options!==void 0?options:{};var peg$FAILED={},peg$startRuleFunctions={Document:peg$parseDocument},peg$startRuleFunction=peg$parseDocument,peg$c0=function(e){return e},peg$c1="default",peg$c2=peg$literalExpectation("default",false),peg$c3="ocean",peg$c4=peg$literalExpectation("ocean",false),peg$c5="modern",peg$c6=peg$literalExpectation("modern",false),peg$c7="plain",peg$c8=peg$literalExpectation("plain",false),peg$c9="bold",peg$c10=peg$literalExpectation("bold",false),peg$c11="[",peg$c12=peg$literalExpectation("[",false),peg$c13="]",peg$c14=peg$literalExpectation("]",false),peg$c15=function(ths,th){const themes=ths.map(t=>t[0]);if(th)themes.push(th);return themes},peg$c16=function(th){return[th]},peg$c17="box3d",peg$c18=peg$literalExpectation("box3d",false),peg$c19="polygon",peg$c20=peg$literalExpectation("polygon",false),peg$c21="ellipse",peg$c22=peg$literalExpectation("ellipse",false),peg$c23="oval",peg$c24=peg$literalExpectation("oval",false),peg$c25="circle",peg$c26=peg$literalExpectation("circle",false),peg$c27="point",peg$c28=peg$literalExpectation("point",false),peg$c29="egg",peg$c30=peg$literalExpectation("egg",false),peg$c31="triangle",peg$c32=peg$literalExpectation("triangle",false),peg$c33="plaintext",peg$c34=peg$literalExpectation("plaintext",false),peg$c35="diamond",peg$c36=peg$literalExpectation("diamond",false),peg$c37="trapezium",peg$c38=peg$literalExpectation("trapezium",false),peg$c39="parallelogram",peg$c40=peg$literalExpectation("parallelogram",false),peg$c41="house",peg$c42=peg$literalExpectation("house",false),peg$c43="pentagon",peg$c44=peg$literalExpectation("pentagon",false),peg$c45="hexagon",peg$c46=peg$literalExpectation("hexagon",false),peg$c47="septagon",peg$c48=peg$literalExpectation("septagon",false),peg$c49="octagon",peg$c50=peg$literalExpectation("octagon",false),peg$c51="doublecircle",peg$c52=peg$literalExpectation("doublecircle",false),peg$c53="doubleoctagon",peg$c54=peg$literalExpectation("doubleoctagon",false),peg$c55="tripleoctagon",peg$c56=peg$literalExpectation("tripleoctagon",false),peg$c57="invtriangle",peg$c58=peg$literalExpectation("invtriangle",false),peg$c59="invtrapezium",peg$c60=peg$literalExpectation("invtrapezium",false),peg$c61="invhouse",peg$c62=peg$literalExpectation("invhouse",false),peg$c63="Mdiamond",peg$c64=peg$literalExpectation("Mdiamond",false),peg$c65="Msquare",peg$c66=peg$literalExpectation("Msquare",false),peg$c67="Mcircle",peg$c68=peg$literalExpectation("Mcircle",false),peg$c69="rectangle",peg$c70=peg$literalExpectation("rectangle",false),peg$c71="rect",peg$c72=peg$literalExpectation("rect",false),peg$c73="square",peg$c74=peg$literalExpectation("square",false),peg$c75="star",peg$c76=peg$literalExpectation("star",false),peg$c77="none",peg$c78=peg$literalExpectation("none",false),peg$c79="underline",peg$c80=peg$literalExpectation("underline",false),peg$c81="cylinder",peg$c82=peg$literalExpectation("cylinder",false),peg$c83="note",peg$c84=peg$literalExpectation("note",false),peg$c85="tab",peg$c86=peg$literalExpectation("tab",false),peg$c87="folder",peg$c88=peg$literalExpectation("folder",false),peg$c89="box",peg$c90=peg$literalExpectation("box",false),peg$c91="component",peg$c92=peg$literalExpectation("component",false),peg$c93="promoter",peg$c94=peg$literalExpectation("promoter",false),peg$c95="cds",peg$c96=peg$literalExpectation("cds",false),peg$c97="terminator",peg$c98=peg$literalExpectation("terminator",false),peg$c99="utr",peg$c100=peg$literalExpectation("utr",false),peg$c101="primersite",peg$c102=peg$literalExpectation("primersite",false),peg$c103="restrictionsite",peg$c104=peg$literalExpectation("restrictionsite",false),peg$c105="fivepoverhang",peg$c106=peg$literalExpectation("fivepoverhang",false),peg$c107="threepoverhang",peg$c108=peg$literalExpectation("threepoverhang",false),peg$c109="noverhang",peg$c110=peg$literalExpectation("noverhang",false),peg$c111="assembly",peg$c112=peg$literalExpectation("assembly",false),peg$c113="signature",peg$c114=peg$literalExpectation("signature",false),peg$c115="insulator",peg$c116=peg$literalExpectation("insulator",false),peg$c117="ribosite",peg$c118=peg$literalExpectation("ribosite",false),peg$c119="rnastab",peg$c120=peg$literalExpectation("rnastab",false),peg$c121="proteasesite",peg$c122=peg$literalExpectation("proteasesite",false),peg$c123="proteinstab",peg$c124=peg$literalExpectation("proteinstab",false),peg$c125="rpromoter",peg$c126=peg$literalExpectation("rpromoter",false),peg$c127="rarrow",peg$c128=peg$literalExpectation("rarrow",false),peg$c129="larrow",peg$c130=peg$literalExpectation("larrow",false),peg$c131="lpromoter",peg$c132=peg$literalExpectation("lpromoter",false),peg$c133="record",peg$c134=peg$literalExpectation("record",false),peg$c135=peg$otherExpectation("forward light arrow ->"),peg$c136="->",peg$c137=peg$literalExpectation("->",false),peg$c138="→",peg$c139=peg$literalExpectation("→",false),peg$c140=function(){return"->"},peg$c141=peg$otherExpectation("two way light arrow <->"),peg$c142="<->",peg$c143=peg$literalExpectation("<->",false),peg$c144="↔",peg$c145=peg$literalExpectation("↔",false),peg$c146=function(){return"<->"},peg$c147=peg$otherExpectation("back light arrow <-"),peg$c148="<-",peg$c149=peg$literalExpectation("<-",false),peg$c150="←",peg$c151=peg$literalExpectation("←",false),peg$c152=function(){return"<-"},peg$c153=peg$otherExpectation("forward fat arrow =>"),peg$c154="=>",peg$c155=peg$literalExpectation("=>",false),peg$c156="⇒",peg$c157=peg$literalExpectation("⇒",false),peg$c158=function(){return"=>"},peg$c159=peg$otherExpectation("two way fat arrow <=>"),peg$c160="<=>",peg$c161=peg$literalExpectation("<=>",false),peg$c162="⇔",peg$c163=peg$literalExpectation("⇔",false),peg$c164=function(){return"<=>"},peg$c165=peg$otherExpectation("back fat arrow <="),peg$c166="<=",peg$c167=peg$literalExpectation("<=",false),peg$c168="⇐",peg$c169=peg$literalExpectation("⇐",false),peg$c170=function(){return"<="},peg$c171=peg$otherExpectation("forward tilde arrow ~>"),peg$c172="~>",peg$c173=peg$literalExpectation("~>",false),peg$c174="↛",peg$c175=peg$literalExpectation("↛",false),peg$c176=function(){return"~>"},peg$c177=peg$otherExpectation("two way tilde arrow <~>"),peg$c178="<~>",peg$c179=peg$literalExpectation("<~>",false),peg$c180="↮",peg$c181=peg$literalExpectation("↮",false),peg$c182=function(){return"<~>"},peg$c183=peg$otherExpectation("back tilde arrow <~"),peg$c184="<~",peg$c185=peg$literalExpectation("<~",false),peg$c186="↚",peg$c187=peg$literalExpectation("↚",false),peg$c188=function(){return"<~"},peg$c189=peg$otherExpectation("light fat arrow <-=>"),peg$c190="<-=>",peg$c191=peg$literalExpectation("<-=>",false),peg$c192="←⇒",peg$c193=peg$literalExpectation("←⇒",false),peg$c194=function(){return"<-=>"},peg$c195=peg$otherExpectation("light tilde arrow <-~>"),peg$c196="<-~>",peg$c197=peg$literalExpectation("<-~>",false),peg$c198="←↛",peg$c199=peg$literalExpectation("←↛",false),peg$c200=function(){return"<-~>"},peg$c201=peg$otherExpectation("fat light arrow <=->"),peg$c202="<=->",peg$c203=peg$literalExpectation("<=->",false),peg$c204="⇐→",peg$c205=peg$literalExpectation("⇐→",false),peg$c206=function(){return"<=->"},peg$c207=peg$otherExpectation("fat tilde arrow <=~>"),peg$c208="<=~>",peg$c209=peg$literalExpectation("<=~>",false),peg$c210="⇐↛",peg$c211=peg$literalExpectation("⇐↛",false),peg$c212=function(){return"<=~>"},peg$c213=peg$otherExpectation("tilde light arrow <~->"),peg$c214="<~->",peg$c215=peg$literalExpectation("<~->",false),peg$c216="↚→",peg$c217=peg$literalExpectation("↚→",false),peg$c218=function(){return"<~->"},peg$c219=peg$otherExpectation("tilde fat arrow <~=>"),peg$c220="<~=>",peg$c221=peg$literalExpectation("<~=>",false),peg$c222="↚⇒",peg$c223=peg$literalExpectation("↚⇒",false),peg$c224=function(){return"<~=>"},peg$c225=peg$otherExpectation("light arrow"),peg$c226=peg$otherExpectation("fat arrow"),peg$c227=peg$otherExpectation("tilde arrow"),peg$c228=peg$otherExpectation("mixed arrow"),peg$c229=peg$otherExpectation("arrow"),peg$c230="true",peg$c231=peg$literalExpectation("true",false),peg$c232=function(){return true},peg$c233="false",peg$c234=peg$literalExpectation("false",false),peg$c235=function(){return false},peg$c236="regular",peg$c237=peg$literalExpectation("regular",false),peg$c238="rounded",peg$c239=peg$literalExpectation("rounded",false),peg$c240="lined",peg$c241=peg$literalExpectation("lined",false),peg$c242="solid",peg$c243=peg$literalExpectation("solid",false),peg$c244="dotted",peg$c245=peg$literalExpectation("dotted",false),peg$c246="dashed",peg$c247=peg$literalExpectation("dashed",false),peg$c276="null",peg$c277=peg$literalExpectation("null",false),peg$c278=function(){return null},peg$c279="undefined",peg$c280=peg$literalExpectation("undefined",false),peg$c281=function(){return void 0},peg$c288=peg$otherExpectation("action label"),peg$c290=/^[\n\r\u2028\u2029]/,peg$c291=peg$classExpectation(["\n","\r","\u2028","\u2029"],false,false),peg$c292=peg$otherExpectation("block comment"),peg$c293="/*",peg$c294=peg$literalExpectation("/*",false),peg$c295="*/",peg$c296=peg$literalExpectation("*/",false),peg$c297=peg$anyExpectation(),peg$c298=peg$otherExpectation("line comment"),peg$c299="//",peg$c300=peg$literalExpectation("//",false),peg$c301=peg$otherExpectation("whitespace"),peg$c304=peg$otherExpectation("string"),peg$c309=peg$otherExpectation("atom"),peg$c311=peg$otherExpectation("label"),peg$c312="0",peg$c313=peg$literalExpectation("0",false),peg$c314=/^[0-9]/,peg$c315=peg$classExpectation([["0","9"]],false,false),peg$c316=/^[1-9]/,peg$c317=peg$classExpectation([["1","9"]],false,false),peg$c318=/^[0-9a-f]/i,peg$c319=peg$classExpectation([["0","9"],["a","f"]],false,true),peg$c320=/^[0-1]/,peg$c321=peg$classExpectation([["0","1"]],false,false),peg$c322=/^[0-7]/,peg$c323=peg$classExpectation([["0","7"]],false,false),peg$c324=peg$otherExpectation("nonneg number"),peg$c325=".",peg$c326=peg$literalExpectation(".",false),peg$c327=function(){return parseFloat(text())},peg$c328=peg$otherExpectation("number"),peg$c329=function(literal){return literal},peg$c330="NaN",peg$c331=peg$literalExpectation("NaN",false),peg$c332=function(){return NaN},peg$c333="NegativeInfinity",peg$c334=peg$literalExpectation("NegativeInfinity",false),peg$c335=function(){return Number.NEGATIVE_INFINITY},peg$c336="NegativeInf",peg$c337=peg$literalExpectation("NegativeInf",false),peg$c338="NegInfinity",peg$c339=peg$literalExpectation("NegInfinity",false),peg$c340="NegInf",peg$c341=peg$literalExpectation("NegInf",false),peg$c342="NInfinity",peg$c343=peg$literalExpectation("NInfinity",false),peg$c344="NInf",peg$c345=peg$literalExpectation("NInf",false),peg$c346="-∞",peg$c347=peg$literalExpectation("-∞",false),peg$c348="PInfinity",peg$c349=peg$literalExpectation("PInfinity",false),peg$c350=function(){return Number.POSITIVE_INFINITY},peg$c351="Infinity",peg$c352=peg$literalExpectation("Infinity",false),peg$c353="PInf",peg$c354=peg$literalExpectation("PInf",false),peg$c355="Inf",peg$c356=peg$literalExpectation("Inf",false),peg$c357="∞",peg$c358=peg$literalExpectation("∞",false),peg$c359="Epsilon",peg$c360=peg$literalExpectation("Epsilon",false),peg$c361=function(){return Number.EPSILON},peg$c362="𝜀",peg$c363=peg$literalExpectation("𝜀",false),peg$c364="ε",peg$c365=peg$literalExpectation("ε",false),peg$c366="Pi",peg$c367=peg$literalExpectation("Pi",false),peg$c368=function(){return Math.PI},peg$c369="𝜋",peg$c370=peg$literalExpectation("𝜋",false),peg$c371="π",peg$c372=peg$literalExpectation("π",false),peg$c373="EulerNumber",peg$c374=peg$literalExpectation("EulerNumber",false),peg$c375=function(){return Math.E},peg$c376="E",peg$c377=peg$literalExpectation("E",false),peg$c378="e",peg$c379=peg$literalExpectation("e",false),peg$c380="Ɛ",peg$c381=peg$literalExpectation("Ɛ",false),peg$c382="ℇ",peg$c383=peg$literalExpectation("ℇ",false),peg$c384="Root2",peg$c385=peg$literalExpectation("Root2",false),peg$c386=function(){return Math.SQRT2},peg$c387="RootHalf",peg$c388=peg$literalExpectation("RootHalf",false),peg$c389=function(){return Math.SQRT1_2},peg$c390="Ln2",peg$c391=peg$literalExpectation("Ln2",false),peg$c392=function(){return Math.LN2},peg$c393="NatLog2",peg$c394=peg$literalExpectation("NatLog2",false),peg$c395="Ln10",peg$c396=peg$literalExpectation("Ln10",false),peg$c397=function(){return Math.LN10},peg$c398="NatLog10",peg$c399=peg$literalExpectation("NatLog10",false),peg$c400="Log2E",peg$c401=peg$literalExpectation("Log2E",false),peg$c402=function(){return Math.LOG2E},peg$c403="Log10E",peg$c404=peg$literalExpectation("Log10E",false),peg$c405=function(){return Math.LOG10E},peg$c406="MaxSafeInt",peg$c407=peg$literalExpectation("MaxSafeInt",false),peg$c408=function(){return Number.MAX_SAFE_INTEGER},peg$c409="MinSafeInt",peg$c410=peg$literalExpectation("MinSafeInt",false),peg$c411=function(){return Number.MIN_SAFE_INTEGER},peg$c412="MaxPosNum",peg$c413=peg$literalExpectation("MaxPosNum",false),peg$c414=function(){return Number.MAX_VALUE},peg$c415="MinPosNum",peg$c416=peg$literalExpectation("MinPosNum",false),peg$c417=function(){return Number.MIN_VALUE},peg$c418="Phi",peg$c419=peg$literalExpectation("Phi",false),peg$c420=function(){return 1.618033988749895},peg$c421="𝜑",peg$c422=peg$literalExpectation("𝜑",false),peg$c423="𝜙",peg$c424=peg$literalExpectation("𝜙",false),peg$c425="ϕ",peg$c426=peg$literalExpectation("ϕ",false),peg$c427="φ",peg$c428=peg$literalExpectation("φ",false),peg$c429="EulerConstant",peg$c430=peg$literalExpectation("EulerConstant",false),peg$c431=function(){return.5772156649015329},peg$c432="γ",peg$c433=peg$literalExpectation("γ",false),peg$c434="𝛾",peg$c435=peg$literalExpectation("𝛾",false),peg$c436=peg$literalExpectation("e",true),peg$c437=/^[+\-]/,peg$c438=peg$classExpectation(["+","-"],false,false),peg$c439="0x",peg$c440=peg$literalExpectation("0x",true),peg$c441=function(digits){return parseInt(digits,16)},peg$c442="0b",peg$c443=peg$literalExpectation("0b",true),peg$c444=function(digits){return parseInt(digits,2)},peg$c445="0o",peg$c446=peg$literalExpectation("0o",true),peg$c447=function(digits){return parseInt(digits,8)},peg$c448=function(major,minor,patch){const node={major:parseInt(major,10),minor:parseInt(minor,10),patch:parseInt(patch,10),full:text()};if(options.locations){node.loc=location()}return node},peg$c459="http://",peg$c460=peg$literalExpectation("http://",false),peg$c461="https://",peg$c462=peg$literalExpectation("https://",false),peg$c463=/^[a-zA-Z0-9!*'():;@&=+$,\/?#[\]_.~\-]/,peg$c464=peg$classExpectation([["a","z"],["A","Z"],["0","9"],"!","*","'","(",")",":",";","@","&","=","+","$",",","/","?","#","[","]","_",".","~","-"],false,false),peg$c465=function(protocol){return text()},peg$c466="aliceblue",peg$c467=peg$literalExpectation("aliceblue",false),peg$c468=function(){return"#f0f8ffff"},peg$c469="AliceBlue",peg$c470=peg$literalExpectation("AliceBlue",false),peg$c471="antiquewhite",peg$c472=peg$literalExpectation("antiquewhite",false),peg$c473=function(){return"#faebd7ff"},peg$c474="AntiqueWhite",peg$c475=peg$literalExpectation("AntiqueWhite",false),peg$c476="aquamarine",peg$c477=peg$literalExpectation("aquamarine",false),peg$c478=function(){return"#7fffd4ff"},peg$c479="Aquamarine",peg$c480=peg$literalExpectation("Aquamarine",false),peg$c481="aqua",peg$c482=peg$literalExpectation("aqua",false),peg$c483=function(){return"#00ffffff"},peg$c484="Aqua",peg$c485=peg$literalExpectation("Aqua",false),peg$c486="azure",peg$c487=peg$literalExpectation("azure",false),peg$c488=function(){return"#f0ffffff"},peg$c489="Azure",peg$c490=peg$literalExpectation("Azure",false),peg$c491="beige",peg$c492=peg$literalExpectation("beige",false),peg$c493=function(){return"#f5f5dcff"},peg$c494="Beige",peg$c495=peg$literalExpectation("Beige",false),peg$c496="bisque",peg$c497=peg$literalExpectation("bisque",false),peg$c498=function(){return"#ffe4c4ff"},peg$c499="Bisque",peg$c500=peg$literalExpectation("Bisque",false),peg$c501="black",peg$c502=peg$literalExpectation("black",false),peg$c503=function(){return"#000000ff"},peg$c504="Black",peg$c505=peg$literalExpectation("Black",false),peg$c506="blanchedalmond",peg$c507=peg$literalExpectation("blanchedalmond",false),peg$c508=function(){return"#ffebcdff"},peg$c509="BlanchedAlmond",peg$c510=peg$literalExpectation("BlanchedAlmond",false),peg$c511="blueviolet",peg$c512=peg$literalExpectation("blueviolet",false),peg$c513=function(){return"#8a2be2ff"},peg$c514="BlueViolet",peg$c515=peg$literalExpectation("BlueViolet",false),peg$c516="blue",peg$c517=peg$literalExpectation("blue",false),peg$c518=function(){return"#0000ffff"},peg$c519="Blue",peg$c520=peg$literalExpectation("Blue",false),peg$c521="brown",peg$c522=peg$literalExpectation("brown",false),peg$c523=function(){return"#a52a2aff"},peg$c524="Brown",peg$c525=peg$literalExpectation("Brown",false),peg$c526="burlywood",peg$c527=peg$literalExpectation("burlywood",false),peg$c528=function(){return"#deb887ff"},peg$c529="BurlyWood",peg$c530=peg$literalExpectation("BurlyWood",false),peg$c531="cadetblue",peg$c532=peg$literalExpectation("cadetblue",false),peg$c533=function(){return"#5f9ea0ff"},peg$c534="CadetBlue",peg$c535=peg$literalExpectation("CadetBlue",false),peg$c536="chartreuse",peg$c537=peg$literalExpectation("chartreuse",false),peg$c538=function(){return"#7fff00ff"},peg$c539="Chartreuse",peg$c540=peg$literalExpectation("Chartreuse",false),peg$c541="chocolate",peg$c542=peg$literalExpectation("chocolate",false),peg$c543=function(){return"#d2691eff"},peg$c544="Chocolate",peg$c545=peg$literalExpectation("Chocolate",false),peg$c546="coral",peg$c547=peg$literalExpectation("coral",false),peg$c548=function(){return"#ff7f50ff"},peg$c549="Coral",peg$c550=peg$literalExpectation("Coral",false),peg$c551="cornflowerblue",peg$c552=peg$literalExpectation("cornflowerblue",false),peg$c553=function(){return"#6495edff"},peg$c554="CornflowerBlue",peg$c555=peg$literalExpectation("CornflowerBlue",false),peg$c556="cornsilk",peg$c557=peg$literalExpectation("cornsilk",false),peg$c558=function(){return"#fff8dcff"},peg$c559="Cornsilk",peg$c560=peg$literalExpectation("Cornsilk",false),peg$c561="crimson",peg$c562=peg$literalExpectation("crimson",false),peg$c563=function(){return"#dc143cff"},peg$c564="Crimson",peg$c565=peg$literalExpectation("Crimson",false),peg$c566="cyan",peg$c567=peg$literalExpectation("cyan",false),peg$c568="Cyan",peg$c569=peg$literalExpectation("Cyan",false),peg$c570="darkblue",peg$c571=peg$literalExpectation("darkblue",false),peg$c572=function(){return"#00008bff"},peg$c573="DarkBlue",peg$c574=peg$literalExpectation("DarkBlue",false),peg$c575="darkcyan",peg$c576=peg$literalExpectation("darkcyan",false),peg$c577=function(){return"#008b8bff"},peg$c578="DarkCyan",peg$c579=peg$literalExpectation("DarkCyan",false),peg$c580="darkgoldenrod",peg$c581=peg$literalExpectation("darkgoldenrod",false),peg$c582=function(){return"#b8860bff"},peg$c583="DarkGoldenRod",peg$c584=peg$literalExpectation("DarkGoldenRod",false),peg$c585="darkgray",peg$c586=peg$literalExpectation("darkgray",false),peg$c587=function(){return"#a9a9a9ff"},peg$c588="DarkGray",peg$c589=peg$literalExpectation("DarkGray",false),peg$c590="darkgrey",peg$c591=peg$literalExpectation("darkgrey",false),peg$c592="DarkGrey",peg$c593=peg$literalExpectation("DarkGrey",false),peg$c594="darkgreen",peg$c595=peg$literalExpectation("darkgreen",false),peg$c596=function(){return"#006400ff"},peg$c597="DarkGreen",peg$c598=peg$literalExpectation("DarkGreen",false),peg$c599="darkkhaki",peg$c600=peg$literalExpectation("darkkhaki",false),peg$c601=function(){return"#bdb76bff"},peg$c602="DarkKhaki",peg$c603=peg$literalExpectation("DarkKhaki",false),peg$c604="darkmagenta",peg$c605=peg$literalExpectation("darkmagenta",false),peg$c606=function(){return"#8b008bff"},peg$c607="DarkMagenta",peg$c608=peg$literalExpectation("DarkMagenta",false),peg$c609="darkolivegreen",peg$c610=peg$literalExpectation("darkolivegreen",false),peg$c611=function(){return"#556b2fff"},peg$c612="DarkOliveGreen",peg$c613=peg$literalExpectation("DarkOliveGreen",false),peg$c614="darkorange",peg$c615=peg$literalExpectation("darkorange",false),peg$c616=function(){return"#ff8c00ff"},peg$c617="Darkorange",peg$c618=peg$literalExpectation("Darkorange",false),peg$c619="darkorchid",peg$c620=peg$literalExpectation("darkorchid",false),peg$c621=function(){return"#9932ccff"},peg$c622="DarkOrchid",peg$c623=peg$literalExpectation("DarkOrchid",false),peg$c624="darkred",peg$c625=peg$literalExpectation("darkred",false),peg$c626=function(){return"#8b0000ff"},peg$c627="DarkRed",peg$c628=peg$literalExpectation("DarkRed",false),peg$c629="darksalmon",peg$c630=peg$literalExpectation("darksalmon",false),peg$c631=function(){return"#e9967aff"},peg$c632="DarkSalmon",peg$c633=peg$literalExpectation("DarkSalmon",false),peg$c634="darkseagreen",peg$c635=peg$literalExpectation("darkseagreen",false),peg$c636=function(){return"#8fbc8fff"},peg$c637="DarkSeaGreen",peg$c638=peg$literalExpectation("DarkSeaGreen",false),peg$c639="darkslateblue",peg$c640=peg$literalExpectation("darkslateblue",false),peg$c641=function(){return"#483d8bff"},peg$c642="DarkSlateBlue",peg$c643=peg$literalExpectation("DarkSlateBlue",false),peg$c644="darkslategray",peg$c645=peg$literalExpectation("darkslategray",false),peg$c646=function(){return"#2f4f4fff"},peg$c647="DarkSlateGray",peg$c648=peg$literalExpectation("DarkSlateGray",false),peg$c649="darkslategrey",peg$c650=peg$literalExpectation("darkslategrey",false),peg$c651="DarkSlateGrey",peg$c652=peg$literalExpectation("DarkSlateGrey",false),peg$c653="darkturquoise",peg$c654=peg$literalExpectation("darkturquoise",false),peg$c655=function(){return"#00ced1ff"},peg$c656="DarkTurquoise",peg$c657=peg$literalExpectation("DarkTurquoise",false),peg$c658="darkviolet",peg$c659=peg$literalExpectation("darkviolet",false),peg$c660=function(){return"#9400d3ff"},peg$c661="DarkViolet",peg$c662=peg$literalExpectation("DarkViolet",false),peg$c663="deeppink",peg$c664=peg$literalExpectation("deeppink",false),peg$c665=function(){return"#ff1493ff"},peg$c666="DeepPink",peg$c667=peg$literalExpectation("DeepPink",false),peg$c668="deepskyblue",peg$c669=peg$literalExpectation("deepskyblue",false),peg$c670=function(){return"#00bfffff"},peg$c671="DeepSkyBlue",peg$c672=peg$literalExpectation("DeepSkyBlue",false),peg$c673="dimgray",peg$c674=peg$literalExpectation("dimgray",false),peg$c675=function(){return"#696969ff"},peg$c676="DimGray",peg$c677=peg$literalExpectation("DimGray",false),peg$c678="dimgrey",peg$c679=peg$literalExpectation("dimgrey",false),peg$c680="DimGrey",peg$c681=peg$literalExpectation("DimGrey",false),peg$c682="dodgerblue",peg$c683=peg$literalExpectation("dodgerblue",false),peg$c684=function(){return"#1e90ffff"},peg$c685="DodgerBlue",peg$c686=peg$literalExpectation("DodgerBlue",false),peg$c687="firebrick",peg$c688=peg$literalExpectation("firebrick",false),peg$c689=function(){return"#b22222ff"},peg$c690="FireBrick",peg$c691=peg$literalExpectation("FireBrick",false),peg$c692="floralwhite",peg$c693=peg$literalExpectation("floralwhite",false),peg$c694=function(){return"#fffaf0ff"},peg$c695="FloralWhite",peg$c696=peg$literalExpectation("FloralWhite",false),peg$c697="forestgreen",peg$c698=peg$literalExpectation("forestgreen",false),peg$c699=function(){return"#228b22ff"},peg$c700="ForestGreen",peg$c701=peg$literalExpectation("ForestGreen",false),peg$c702="fuchsia",peg$c703=peg$literalExpectation("fuchsia",false),peg$c704=function(){return"#ff00ffff"},peg$c705="Fuchsia",peg$c706=peg$literalExpectation("Fuchsia",false),peg$c707="gainsboro",peg$c708=peg$literalExpectation("gainsboro",false),peg$c709=function(){return"#dcdcdcff"},peg$c710="Gainsboro",peg$c711=peg$literalExpectation("Gainsboro",false),peg$c712="ghostwhite",peg$c713=peg$literalExpectation("ghostwhite",false),peg$c714=function(){return"#f8f8ffff"},peg$c715="GhostWhite",peg$c716=peg$literalExpectation("GhostWhite",false),peg$c717="goldenrod",peg$c718=peg$literalExpectation("goldenrod",false),peg$c719=function(){return"#daa520ff"},peg$c720="GoldenRod",peg$c721=peg$literalExpectation("GoldenRod",false),peg$c722="gold",peg$c723=peg$literalExpectation("gold",false),peg$c724=function(){return"#ffd700ff"},peg$c725="Gold",peg$c726=peg$literalExpectation("Gold",false),peg$c727="gray",peg$c728=peg$literalExpectation("gray",false),peg$c729=function(){return"#808080ff"},peg$c730="Gray",peg$c731=peg$literalExpectation("Gray",false),peg$c732="grey",peg$c733=peg$literalExpectation("grey",false),peg$c734="Grey",peg$c735=peg$literalExpectation("Grey",false),peg$c736="greenyellow",peg$c737=peg$literalExpectation("greenyellow",false),peg$c738=function(){return"#adff2fff"},peg$c739="GreenYellow",peg$c740=peg$literalExpectation("GreenYellow",false),peg$c741="green",peg$c742=peg$literalExpectation("green",false),peg$c743=function(){return"#008000ff"},peg$c744="Green",peg$c745=peg$literalExpectation("Green",false),peg$c746="honeydew",peg$c747=peg$literalExpectation("honeydew",false),peg$c748=function(){return"#f0fff0ff"},peg$c749="HoneyDew",peg$c750=peg$literalExpectation("HoneyDew",false),peg$c751="hotpink",peg$c752=peg$literalExpectation("hotpink",false),peg$c753=function(){return"#ff69b4ff"},peg$c754="HotPink",peg$c755=peg$literalExpectation("HotPink",false),peg$c756="indianred",peg$c757=peg$literalExpectation("indianred",false),peg$c758=function(){return"#cd5c5cff"},peg$c759="IndianRed",peg$c760=peg$literalExpectation("IndianRed",false),peg$c761="indigo",peg$c762=peg$literalExpectation("indigo",false),peg$c763=function(){return"#4b0082ff"},peg$c764="Indigo",peg$c765=peg$literalExpectation("Indigo",false),peg$c766="ivory",peg$c767=peg$literalExpectation("ivory",false),peg$c768=function(){return"#fffff0ff"},peg$c769="Ivory",peg$c770=peg$literalExpectation("Ivory",false),peg$c771="khaki",peg$c772=peg$literalExpectation("khaki",false),peg$c773=function(){return"#f0e68cff"},peg$c774="Khaki",peg$c775=peg$literalExpectation("Khaki",false),peg$c776="lavenderblush",peg$c777=peg$literalExpectation("lavenderblush",false),peg$c778=function(){return"#fff0f5ff"},peg$c779="LavenderBlush",peg$c780=peg$literalExpectation("LavenderBlush",false),peg$c781="lavender",peg$c782=peg$literalExpectation("lavender",false),peg$c783=function(){return"#e6e6faff"},peg$c784="Lavender",peg$c785=peg$literalExpectation("Lavender",false),peg$c786="lawngreen",peg$c787=peg$literalExpectation("lawngreen",false),peg$c788=function(){return"#7cfc00ff"},peg$c789="LawnGreen",peg$c790=peg$literalExpectation("LawnGreen",false),peg$c791="lemonchiffon",peg$c792=peg$literalExpectation("lemonchiffon",false),peg$c793=function(){return"#fffacdff"},peg$c794="LemonChiffon",peg$c795=peg$literalExpectation("LemonChiffon",false),peg$c796="lightblue",peg$c797=peg$literalExpectation("lightblue",false),peg$c798=function(){return"#add8e6ff"},peg$c799="LightBlue",peg$c800=peg$literalExpectation("LightBlue",false),peg$c801="lightcoral",peg$c802=peg$literalExpectation("lightcoral",false),peg$c803=function(){return"#f08080ff"},peg$c804="LightCoral",peg$c805=peg$literalExpectation("LightCoral",false),peg$c806="lightcyan",peg$c807=peg$literalExpectation("lightcyan",false),peg$c808=function(){return"#e0ffffff"},peg$c809="LightCyan",peg$c810=peg$literalExpectation("LightCyan",false),peg$c811="lightgoldenrodyellow",peg$c812=peg$literalExpectation("lightgoldenrodyellow",false),peg$c813=function(){return"#fafad2ff"},peg$c814="LightGoldenRodYellow",peg$c815=peg$literalExpectation("LightGoldenRodYellow",false),peg$c816="lightgray",peg$c817=peg$literalExpectation("lightgray",false),peg$c818=function(){return"#d3d3d3ff"},peg$c819="LightGray",peg$c820=peg$literalExpectation("LightGray",false),peg$c821="lightgrey",peg$c822=peg$literalExpectation("lightgrey",false),peg$c823="LightGrey",peg$c824=peg$literalExpectation("LightGrey",false),peg$c825="lightgreen",peg$c826=peg$literalExpectation("lightgreen",false),peg$c827=function(){return"#90ee90ff"},peg$c828="LightGreen",peg$c829=peg$literalExpectation("LightGreen",false),peg$c830="lightpink",peg$c831=peg$literalExpectation("lightpink",false),peg$c832=function(){return"#ffb6c1ff"},peg$c833="LightPink",peg$c834=peg$literalExpectation("LightPink",false),peg$c835="lightsalmon",peg$c836=peg$literalExpectation("lightsalmon",false),peg$c837=function(){return"#ffa07aff"},peg$c838="LightSalmon",peg$c839=peg$literalExpectation("LightSalmon",false),peg$c840="lightseagreen",peg$c841=peg$literalExpectation("lightseagreen",false),peg$c842=function(){return"#20b2aaff"},peg$c843="LightSeaGreen",peg$c844=peg$literalExpectation("LightSeaGreen",false),peg$c845="lightskyblue",peg$c846=peg$literalExpectation("lightskyblue",false),peg$c847=function(){return"#87cefaff"},peg$c848="LightSkyBlue",peg$c849=peg$literalExpectation("LightSkyBlue",false),peg$c850="lightslategray",peg$c851=peg$literalExpectation("lightslategray",false),peg$c852=function(){return"#778899ff"},peg$c853="LightSlateGray",peg$c854=peg$literalExpectation("LightSlateGray",false),peg$c855="lightslategrey",peg$c856=peg$literalExpectation("lightslategrey",false),peg$c857="LightSlateGrey",peg$c858=peg$literalExpectation("LightSlateGrey",false),peg$c859="lightsteelblue",peg$c860=peg$literalExpectation("lightsteelblue",false),peg$c861=function(){return"#b0c4deff"},peg$c862="LightSteelBlue",peg$c863=peg$literalExpectation("LightSteelBlue",false),peg$c864="lightyellow",peg$c865=peg$literalExpectation("lightyellow",false),peg$c866=function(){return"#ffffe0ff"},peg$c867="LightYellow",peg$c868=peg$literalExpectation("LightYellow",false),peg$c869="limegreen",peg$c870=peg$literalExpectation("limegreen",false),peg$c871=function(){return"#32cd32ff"},peg$c872="LimeGreen",peg$c873=peg$literalExpectation("LimeGreen",false),peg$c874="lime",peg$c875=peg$literalExpectation("lime",false),peg$c876=function(){return"#00ff00ff"},peg$c877="Lime",peg$c878=peg$literalExpectation("Lime",false),peg$c879="linen",peg$c880=peg$literalExpectation("linen",false),peg$c881=function(){return"#faf0e6ff"},peg$c882="Linen",peg$c883=peg$literalExpectation("Linen",false),peg$c884="magenta",peg$c885=peg$literalExpectation("magenta",false),peg$c886="Magenta",peg$c887=peg$literalExpectation("Magenta",false),peg$c888="maroon",peg$c889=peg$literalExpectation("maroon",false),peg$c890=function(){return"#800000ff"},peg$c891="Maroon",peg$c892=peg$literalExpectation("Maroon",false),peg$c893="mediumaquamarine",peg$c894=peg$literalExpectation("mediumaquamarine",false),peg$c895=function(){return"#66cdaaff"},peg$c896="MediumAquaMarine",peg$c897=peg$literalExpectation("MediumAquaMarine",false),peg$c898="mediumblue",peg$c899=peg$literalExpectation("mediumblue",false),peg$c900=function(){return"#0000cdff"},peg$c901="MediumBlue",peg$c902=peg$literalExpectation("MediumBlue",false),peg$c903="mediumorchid",peg$c904=peg$literalExpectation("mediumorchid",false),peg$c905=function(){return"#ba55d3ff"},peg$c906="MediumOrchid",peg$c907=peg$literalExpectation("MediumOrchid",false),peg$c908="mediumpurple",peg$c909=peg$literalExpectation("mediumpurple",false),peg$c910=function(){return"#9370d8ff"},peg$c911="MediumPurple",peg$c912=peg$literalExpectation("MediumPurple",false),peg$c913="mediumseagreen",peg$c914=peg$literalExpectation("mediumseagreen",false),peg$c915=function(){return"#3cb371ff"},peg$c916="MediumSeaGreen",peg$c917=peg$literalExpectation("MediumSeaGreen",false),peg$c918="mediumslateblue",peg$c919=peg$literalExpectation("mediumslateblue",false),peg$c920=function(){return"#7b68eeff"},peg$c921="MediumSlateBlue",peg$c922=peg$literalExpectation("MediumSlateBlue",false),peg$c923="mediumspringgreen",peg$c924=peg$literalExpectation("mediumspringgreen",false),peg$c925=function(){return"#00fa9aff"},peg$c926="MediumSpringGreen",peg$c927=peg$literalExpectation("MediumSpringGreen",false),peg$c928="mediumturquoise",peg$c929=peg$literalExpectation("mediumturquoise",false),peg$c930=function(){return"#48d1ccff"},peg$c931="MediumTurquoise",peg$c932=peg$literalExpectation("MediumTurquoise",false),peg$c933="mediumvioletred",peg$c934=peg$literalExpectation("mediumvioletred",false),peg$c935=function(){return"#c71585ff"},peg$c936="MediumVioletRed",peg$c937=peg$literalExpectation("MediumVioletRed",false),peg$c938="midnightblue",peg$c939=peg$literalExpectation("midnightblue",false),peg$c940=function(){return"#191970ff"},peg$c941="MidnightBlue",peg$c942=peg$literalExpectation("MidnightBlue",false),peg$c943="mintcream",peg$c944=peg$literalExpectation("mintcream",false),peg$c945=function(){return"#f5fffaff"},peg$c946="MintCream",peg$c947=peg$literalExpectation("MintCream",false),peg$c948="mistyrose",peg$c949=peg$literalExpectation("mistyrose",false),peg$c950=function(){return"#ffe4e1ff"},peg$c951="MistyRose",peg$c952=peg$literalExpectation("MistyRose",false),peg$c953="moccasin",peg$c954=peg$literalExpectation("moccasin",false),peg$c955=function(){return"#ffe4b5ff"},peg$c956="Moccasin",peg$c957=peg$literalExpectation("Moccasin",false),peg$c958="navajowhite",peg$c959=peg$literalExpectation("navajowhite",false),peg$c960=function(){return"#ffdeadff"},peg$c961="NavajoWhite",peg$c962=peg$literalExpectation("NavajoWhite",false),peg$c963="navy",peg$c964=peg$literalExpectation("navy",false),peg$c965=function(){return"#000080ff"},peg$c966="Navy",peg$c967=peg$literalExpectation("Navy",false),peg$c968="oldlace",peg$c969=peg$literalExpectation("oldlace",false),peg$c970=function(){return"#fdf5e6ff"},peg$c971="OldLace",peg$c972=peg$literalExpectation("OldLace",false),peg$c973="olivedrab",peg$c974=peg$literalExpectation("olivedrab",false),peg$c975=function(){return"#6b8e23ff"},peg$c976="OliveDrab",peg$c977=peg$literalExpectation("OliveDrab",false),peg$c978="olive",peg$c979=peg$literalExpectation("olive",false),peg$c980=function(){return"#808000ff"},peg$c981="Olive",peg$c982=peg$literalExpectation("Olive",false),peg$c983="orangered",peg$c984=peg$literalExpectation("orangered",false),peg$c985=function(){return"#ff4500ff"},peg$c986="OrangeRed",peg$c987=peg$literalExpectation("OrangeRed",false),peg$c988="orange",peg$c989=peg$literalExpectation("orange",false),peg$c990=function(){return"#ffa500ff"},peg$c991="Orange",peg$c992=peg$literalExpectation("Orange",false),peg$c993="orchid",peg$c994=peg$literalExpectation("orchid",false),peg$c995=function(){return"#da70d6ff"},peg$c996="Orchid",peg$c997=peg$literalExpectation("Orchid",false),peg$c998="palegoldenrod",peg$c999=peg$literalExpectation("palegoldenrod",false),peg$c1000=function(){return"#eee8aaff"},peg$c1001="PaleGoldenRod",peg$c1002=peg$literalExpectation("PaleGoldenRod",false),peg$c1003="palegreen",peg$c1004=peg$literalExpectation("palegreen",false),peg$c1005=function(){return"#98fb98ff"},peg$c1006="PaleGreen",peg$c1007=peg$literalExpectation("PaleGreen",false),peg$c1008="paleturquoise",peg$c1009=peg$literalExpectation("paleturquoise",false),peg$c1010=function(){return"#afeeeeff"},peg$c1011="PaleTurquoise",peg$c1012=peg$literalExpectation("PaleTurquoise",false),peg$c1013="palevioletred",peg$c1014=peg$literalExpectation("palevioletred",false),peg$c1015=function(){return"#d87093ff"},peg$c1016="PaleVioletRed",peg$c1017=peg$literalExpectation("PaleVioletRed",false),peg$c1018="papayawhip",peg$c1019=peg$literalExpectation("papayawhip",false),peg$c1020=function(){return"#ffefd5ff"},peg$c1021="PapayaWhip",peg$c1022=peg$literalExpectation("PapayaWhip",false),peg$c1023="peachpuff",peg$c1024=peg$literalExpectation("peachpuff",false),peg$c1025=function(){return"#ffdab9ff"},peg$c1026="PeachPuff",peg$c1027=peg$literalExpectation("PeachPuff",false),peg$c1028="peru",peg$c1029=peg$literalExpectation("peru",false),peg$c1030=function(){return"#cd853fff"},peg$c1031="Peru",peg$c1032=peg$literalExpectation("Peru",false),peg$c1033="pink",peg$c1034=peg$literalExpectation("pink",false),peg$c1035=function(){return"#ffc0cbff"},peg$c1036="Pink",peg$c1037=peg$literalExpectation("Pink",false),peg$c1038="plum",peg$c1039=peg$literalExpectation("plum",false),peg$c1040=function(){return"#dda0ddff"},peg$c1041="Plum",peg$c1042=peg$literalExpectation("Plum",false),peg$c1043="powderblue",peg$c1044=peg$literalExpectation("powderblue",false),peg$c1045=function(){return"#b0e0e6ff"},peg$c1046="PowderBlue",peg$c1047=peg$literalExpectation("PowderBlue",false),peg$c1048="purple",peg$c1049=peg$literalExpectation("purple",false),peg$c1050=function(){return"#800080ff"},peg$c1051="Purple",peg$c1052=peg$literalExpectation("Purple",false),peg$c1053="red",peg$c1054=peg$literalExpectation("red",false),peg$c1055=function(){return"#ff0000ff"},peg$c1056="Red",peg$c1057=peg$literalExpectation("Red",false),peg$c1058="rosybrown",peg$c1059=peg$literalExpectation("rosybrown",false),peg$c1060=function(){return"#bc8f8fff"},peg$c1061="RosyBrown",peg$c1062=peg$literalExpectation("RosyBrown",false),peg$c1063="royalblue",peg$c1064=peg$literalExpectation("royalblue",false),peg$c1065=function(){return"#4169e1ff"},peg$c1066="RoyalBlue",peg$c1067=peg$literalExpectation("RoyalBlue",false),peg$c1068="saddlebrown",peg$c1069=peg$literalExpectation("saddlebrown",false),peg$c1070=function(){return"#8b4513ff"},peg$c1071="SaddleBrown",peg$c1072=peg$literalExpectation("SaddleBrown",false),peg$c1073="salmon",peg$c1074=peg$literalExpectation("salmon",false),peg$c1075=function(){return"#fa8072ff"},peg$c1076="Salmon",peg$c1077=peg$literalExpectation("Salmon",false),peg$c1078="sandybrown",peg$c1079=peg$literalExpectation("sandybrown",false),peg$c1080=function(){return"#f4a460ff"},peg$c1081="SandyBrown",peg$c1082=peg$literalExpectation("SandyBrown",false),peg$c1083="seagreen",peg$c1084=peg$literalExpectation("seagreen",false),peg$c1085=function(){return"#2e8b57ff"},peg$c1086="SeaGreen",peg$c1087=peg$literalExpectation("SeaGreen",false),peg$c1088="seashell",peg$c1089=peg$literalExpectation("seashell",false),peg$c1090=function(){return"#fff5eeff"},peg$c1091="SeaShell",peg$c1092=peg$literalExpectation("SeaShell",false),peg$c1093="sienna",peg$c1094=peg$literalExpectation("sienna",false),peg$c1095=function(){return"#a0522dff"},peg$c1096="Sienna",peg$c1097=peg$literalExpectation("Sienna",false),peg$c1098="silver",peg$c1099=peg$literalExpectation("silver",false),peg$c1100=function(){return"#c0c0c0ff"},peg$c1101="Silver",peg$c1102=peg$literalExpectation("Silver",false),peg$c1103="skyblue",peg$c1104=peg$literalExpectation("skyblue",false),peg$c1105=function(){return"#87ceebff"},peg$c1106="SkyBlue",peg$c1107=peg$literalExpectation("SkyBlue",false),peg$c1108="slateblue",peg$c1109=peg$literalExpectation("slateblue",false),peg$c1110=function(){return"#6a5acdff"},peg$c1111="SlateBlue",peg$c1112=peg$literalExpectation("SlateBlue",false),peg$c1113="slategray",peg$c1114=peg$literalExpectation("slategray",false),peg$c1115=function(){return"#708090ff"},peg$c1116="SlateGray",peg$c1117=peg$literalExpectation("SlateGray",false),peg$c1118="slategrey",peg$c1119=peg$literalExpectation("slategrey",false),peg$c1120="SlateGrey",peg$c1121=peg$literalExpectation("SlateGrey",false),peg$c1122="snow",peg$c1123=peg$literalExpectation("snow",false),peg$c1124=function(){return"#fffafaff"},peg$c1125="Snow",peg$c1126=peg$literalExpectation("Snow",false),peg$c1127="springgreen",peg$c1128=peg$literalExpectation("springgreen",false),peg$c1129=function(){return"#00ff7fff"},peg$c1130="SpringGreen",peg$c1131=peg$literalExpectation("SpringGreen",false),peg$c1132="steelblue",peg$c1133=peg$literalExpectation("steelblue",false),peg$c1134=function(){return"#4682b4ff"},peg$c1135="SteelBlue",peg$c1136=peg$literalExpectation("SteelBlue",false),peg$c1137="tan",peg$c1138=peg$literalExpectation("tan",false),peg$c1139=function(){return"#d2b48cff"},peg$c1140="Tan",peg$c1141=peg$literalExpectation("Tan",false),peg$c1142="teal",peg$c1143=peg$literalExpectation("teal",false),peg$c1144=function(){return"#008080ff"},peg$c1145="Teal",peg$c1146=peg$literalExpectation("Teal",false),peg$c1147="thistle",peg$c1148=peg$literalExpectation("thistle",false),peg$c1149=function(){return"#d8bfd8ff"},peg$c1150="Thistle",peg$c1151=peg$literalExpectation("Thistle",false),peg$c1152="tomato",peg$c1153=peg$literalExpectation("tomato",false),peg$c1154=function(){return"#ff6347ff"},peg$c1155="Tomato",peg$c1156=peg$literalExpectation("Tomato",false),peg$c1157="transparent",peg$c1158=peg$literalExpectation("transparent",false),peg$c1159=function(){return"#00000000"},peg$c1160="Transparent",peg$c1161=peg$literalExpectation("Transparent",false),peg$c1162="turquoise",peg$c1163=peg$literalExpectation("turquoise",false),peg$c1164=function(){return"#40e0d0ff"},peg$c1165="Turquoise",peg$c1166=peg$literalExpectation("Turquoise",false),peg$c1167="violet",peg$c1168=peg$literalExpectation("violet",false),peg$c1169=function(){return"#ee82eeff"},peg$c1170="Violet",peg$c1171=peg$literalExpectation("Violet",false),peg$c1172="wheat",peg$c1173=peg$literalExpectation("wheat",false),peg$c1174=function(){return"#f5deb3ff"},peg$c1175="Wheat",peg$c1176=peg$literalExpectation("Wheat",false),peg$c1177="whitesmoke",peg$c1178=peg$literalExpectation("whitesmoke",false),peg$c1179=function(){return"#f5f5f5ff"},peg$c1180="WhiteSmoke",peg$c1181=peg$literalExpectation("WhiteSmoke",false),peg$c1182="white",peg$c1183=peg$literalExpectation("white",false),peg$c1184=function(){return"#ffffffff"},peg$c1185="White",peg$c1186=peg$literalExpectation("White",false),peg$c1187="yellowgreen",peg$c1188=peg$literalExpectation("yellowgreen",false),peg$c1189=function(){return"#9acd32ff"},peg$c1190="YellowGreen",peg$c1191=peg$literalExpectation("YellowGreen",false),peg$c1192="yellow",peg$c1193=peg$literalExpectation("yellow",false),peg$c1194=function(){return"#ffff00ff"},peg$c1195="Yellow",peg$c1196=peg$literalExpectation("Yellow",false),peg$c1197=function(lab){return lab},peg$c1198="#",peg$c1199=peg$literalExpectation("#",false),peg$c1200=function(r,g,b){return`#${r}${r}${g}${g}${b}${b}ff`},peg$c1201=function(r1,r2,g1,g2,b1,b2){return`#${r1}${r2}${g1}${g2}${b1}${b2}ff`},peg$c1202=function(r,g,b,a){return`#${r}${r}${g}${g}${b}${b}${a}${a}`},peg$c1203=function(r1,r2,g1,g2,b1,b2,a1,a2){return`#${r1}${r2}${g1}${g2}${b1}${b2}${a1}${a2}`},peg$c1204=peg$otherExpectation("color"),peg$c1205="arc_label",peg$c1206=peg$literalExpectation("arc_label",false),peg$c1207="head_label",peg$c1208=peg$literalExpectation("head_label",false),peg$c1209="tail_label",peg$c1210=peg$literalExpectation("tail_label",false),peg$c1211=":",peg$c1212=peg$literalExpectation(":",false),peg$c1213=";",peg$c1214=peg$literalExpectation(";",false),peg$c1215=function(key,value){const node={key:key,value:value};if(options.locations){node.loc=location()}return node},peg$c1216=peg$otherExpectation("single edge color"),peg$c1217="edge-color",peg$c1218=peg$literalExpectation("edge-color",false),peg$c1219=function(v){return options.locations?{__v:v,__loc:location()}:v},peg$c1220=function(value){const raw=options.locations?value.__v:value;const node={key:"single_edge_color",value:raw};if(options.locations){node.loc=location();node.value_loc=value.__loc}return node},peg$c1221="edge_color",peg$c1222=peg$literalExpectation("edge_color",false),peg$c1223=peg$otherExpectation("transition line style"),peg$c1224="line-style",peg$c1225=peg$literalExpectation("line-style",false),peg$c1226=function(value){const node={key:"transition_line_style",value:value};if(options.locations){node.loc=location()}return node},peg$c1227="{",peg$c1228=peg$literalExpectation("{",false),peg$c1229="}",peg$c1230=peg$literalExpectation("}",false),peg$c1231=function(items){return items},peg$c1232="%",peg$c1233=peg$literalExpectation("%",false),peg$c1234=function(value){const node={key:"arrow probability",value:value};if(options.locations){node.loc=location()}return node},peg$c1235="milliseconds",peg$c1236=peg$literalExpectation("milliseconds",false),peg$c1237=function(){return 1},peg$c1238="millisecond",peg$c1239=peg$literalExpectation("millisecond",false),peg$c1240="msecs",peg$c1241=peg$literalExpectation("msecs",false),peg$c1242="msec",peg$c1243=peg$literalExpectation("msec",false),peg$c1244="ms",peg$c1245=peg$literalExpectation("ms",false),peg$c1246="seconds",peg$c1247=peg$literalExpectation("seconds",false),peg$c1248=function(){return 1e3},peg$c1249="second",peg$c1250=peg$literalExpectation("second",false),peg$c1251="secs",peg$c1252=peg$literalExpectation("secs",false),peg$c1253="sec",peg$c1254=peg$literalExpectation("sec",false),peg$c1255="s",peg$c1256=peg$literalExpectation("s",false),peg$c1257="minutes",peg$c1258=peg$literalExpectation("minutes",false),peg$c1259=function(){return 1e3*60},peg$c1260="minute",peg$c1261=peg$literalExpectation("minute",false),peg$c1262="mins",peg$c1263=peg$literalExpectation("mins",false),peg$c1264="min",peg$c1265=peg$literalExpectation("min",false),peg$c1266="m",peg$c1267=peg$literalExpectation("m",false),peg$c1268="hours",peg$c1269=peg$literalExpectation("hours",false),peg$c1270=function(){return 1e3*60*60},peg$c1271="hour",peg$c1272=peg$literalExpectation("hour",false),peg$c1273="hrs",peg$c1274=peg$literalExpectation("hrs",false),peg$c1275="hr",peg$c1276=peg$literalExpectation("hr",false),peg$c1277="h",peg$c1278=peg$literalExpectation("h",false),peg$c1279="days",peg$c1280=peg$literalExpectation("days",false),peg$c1281=function(){return 1e3*60*60*24},peg$c1282="day",peg$c1283=peg$literalExpectation("day",false),peg$c1284="d",peg$c1285=peg$literalExpectation("d",false),peg$c1286="weeks",peg$c1287=peg$literalExpectation("weeks",false),peg$c1288=function(){return 1e3*60*60*24*7},peg$c1289="week",peg$c1290=peg$literalExpectation("week",false),peg$c1291="wks",peg$c1292=peg$literalExpectation("wks",false),peg$c1293="wk",peg$c1294=peg$literalExpectation("wk",false),peg$c1295="w",peg$c1296=peg$literalExpectation("w",false),peg$c1297="after",peg$c1298=peg$literalExpectation("after",false),peg$c1299=function(value,timescale){return value*(timescale||1e3)},peg$c1300=function(names){return names.map(i=>i[0])},peg$c1301=peg$otherExpectation("group reference"),peg$c1302="&",peg$c1303=peg$literalExpectation("&",false),peg$c1304=function(name){return{key:"group_ref",name:name}},peg$c1305="...",peg$c1306=peg$literalExpectation("...",false),peg$c1307=function(name){return{kind:"group",name:name,mode:"spread"}},peg$c1308=function(name){return{kind:"group",name:name,mode:"nest"}},peg$c1309=function(name){return{kind:"state",name:name}},peg$c1310=function(members){const items=members.map(m=>m[0]);const has_group=items.some(m=>m.kind==="group");return has_group?items:items.map(m=>m.name)},peg$c1311="+|",peg$c1312=peg$literalExpectation("+|",false),peg$c1313=function(n){const node={key:"stripe",value:parseInt(n,10)};if(options.locations){node.loc=location()}return node},peg$c1314="-|",peg$c1315=peg$literalExpectation("-|",false),peg$c1316=function(n){const node={key:"stripe",value:-1*parseInt(n,10)};if(options.locations){node.loc=location()}return node},peg$c1317="+",peg$c1318=peg$literalExpectation("+",false),peg$c1319=function(n){const node={key:"cycle",value:parseInt(n,10)};if(options.locations){node.loc=location()}return node},peg$c1320="-",peg$c1321=peg$literalExpectation("-",false),peg$c1322=function(n){const node={key:"cycle",value:-1*parseInt(n,10)};if(options.locations){node.loc=location()}return node},peg$c1323="+0",peg$c1324=peg$literalExpectation("+0",false),peg$c1325=function(){const node={key:"cycle",value:0};if(options.locations){node.loc=location()}return node},peg$c1326=function(v){return{_kind:"after",v:v}},peg$c1327=function(v){return{_kind:"action",v:v,loc:location()}},peg$c1328=function(v){return{_kind:"prob",v:v}},peg$c1329=function(v){return{_kind:"desc",v:v}},peg$c1330=function(d){return d},peg$c1331=function(pre,arrow,post,l){return options.locations?{__v:l,__loc:location()}:l},peg$c1332=function(pre,arrow,post,label,tail){const toVal=options.locations?label.__v:label;const base={kind:arrow,to:toVal};const seen={};for(const d of pre){if(seen["pre:"+d._kind]){error("duplicate "+d._kind+" decoration before arrow",location())}seen["pre:"+d._kind]=true;if(d._kind==="after"&&d.v!=null){base.r_after=d.v}if(d._kind==="action"&&d.v!=null){base.r_action=d.v;if(options.locations){base.r_action_loc=d.loc}}if(d._kind==="prob"&&d.v!=null){base.r_probability=d.v.value}if(d._kind==="desc"&&d.v!=null){base.l_desc=d.v}}for(const d of post){if(seen["post:"+d._kind]){error("duplicate "+d._kind+" decoration after arrow",location())}seen["post:"+d._kind]=true;if(d._kind==="after"&&d.v!=null){base.l_after=d.v}if(d._kind==="action"&&d.v!=null){base.l_action=d.v;if(options.locations){base.l_action_loc=d.loc}}if(d._kind==="prob"&&d.v!=null){base.l_probability=d.v.value}if(d._kind==="desc"&&d.v!=null){base.r_desc=d.v}}if(tail){base.se=tail}if(options.locations){base.loc=location();base.to_loc=label.__loc}return base},peg$c1333=function(l){return options.locations?{__v:l,__loc:location()}:l},peg$c1334=function(label,se){const fromVal=options.locations?label.__v:label;const base={key:"transition",from:fromVal};if(se){base.se=se}if(options.locations){base.loc=location();base.from_loc=label.__loc}return base},peg$c1335="dot",peg$c1336=peg$literalExpectation("dot",false),peg$c1337="circo",peg$c1338=peg$literalExpectation("circo",false),peg$c1339="fdp",peg$c1340=peg$literalExpectation("fdp",false),peg$c1341="neato",peg$c1342=peg$literalExpectation("neato",false),peg$c1343="twopi",peg$c1344=peg$literalExpectation("twopi",false),peg$c1345="state",peg$c1346=peg$literalExpectation("state",false),peg$c1347="};",peg$c1348=peg$literalExpectation("};",false),peg$c1349=function(state_items){const node={key:"default_state_config",value:state_items||[]};if(options.locations){node.loc=location()}return node},peg$c1350="start_state",peg$c1351=peg$literalExpectation("start_state",false),peg$c1352=function(state_items){const node={key:"default_start_state_config",value:state_items||[]};if(options.locations){node.loc=location()}return node},peg$c1353="end_state",peg$c1354=peg$literalExpectation("end_state",false),peg$c1355=function(state_items){const node={key:"default_end_state_config",value:state_items||[]};if(options.locations){node.loc=location()}return node},peg$c1356="active_state",peg$c1357=peg$literalExpectation("active_state",false),peg$c1358=function(state_items){const node={key:"default_active_state_config",value:state_items||[]};if(options.locations){node.loc=location()}return node},peg$c1359="terminal_state",peg$c1360=peg$literalExpectation("terminal_state",false),peg$c1361=function(state_items){const node={key:"default_terminal_state_config",value:state_items||[]};if(options.locations){node.loc=location()}return node},peg$c1362="hooked_state",peg$c1363=peg$literalExpectation("hooked_state",false),peg$c1364=function(state_items){const node={key:"default_hooked_state_config",value:state_items||[]};if(options.locations){node.loc=location()}return node},peg$c1365=peg$otherExpectation("graph default edge color"),peg$c1366=function(value){const raw=options.locations?value.__v:value;const node={key:"graph_default_edge_color",value:raw};if(options.locations){node.loc=location();node.value_loc=value.__loc}return node},peg$c1367="transition",peg$c1368=peg$literalExpectation("transition",false),peg$c1369=function(items){const node={key:"default_transition_config",value:items||[]};if(options.locations){node.loc=location()}return node},peg$c1370="graph",peg$c1371=peg$literalExpectation("graph",false),peg$c1372=function(items){const node={key:"default_graph_config",value:items||[]};if(options.locations){node.loc=location()}return node},peg$c1373="editor",peg$c1374=peg$literalExpectation("editor",false),peg$c1375=function(items){const node={key:"editor_config",value:items};if(options.locations){node.loc=location()}return node},peg$c1376="stochastic_run_count",peg$c1377=peg$literalExpectation("stochastic_run_count",false),peg$c1378=function(value){const node={key:"stochastic_run_count",value:parseInt(value,10)};if(options.locations){node.loc=location()}return node},peg$c1379="panels",peg$c1380=peg$literalExpectation("panels",false),peg$c1381=function(value){const node={key:"panels",value:value};if(options.locations){node.loc=location()}return node},peg$c1382="graph_layout",peg$c1383=peg$literalExpectation("graph_layout",false),peg$c1384=function(value){const node={key:"graph_layout",value:value};if(options.locations){node.loc=location()}return node},peg$c1385="start_states",peg$c1386=peg$literalExpectation("start_states",false),peg$c1387=function(value){const node={key:"start_states",value:value};if(options.locations){node.loc=location()}return node},peg$c1388="end_states",peg$c1389=peg$literalExpectation("end_states",false),peg$c1390=function(value){const node={key:"end_states",value:value};if(options.locations){node.loc=location()}return node},peg$c1391="failed_outputs",peg$c1392=peg$literalExpectation("failed_outputs",false),peg$c1393=function(value){const raw=options.locations?value.__v:value;const node={key:"failed_outputs",value:typeof raw==="string"?[raw]:raw};if(options.locations){node.loc=location();node.value_loc=value.__loc}return node},peg$c1394="graph_bg_color",peg$c1395=peg$literalExpectation("graph_bg_color",false),peg$c1396=function(value){const raw=options.locations?value.__v:value;const node={key:"graph_bg_color",value:raw};if(options.locations){node.loc=location();node.value_loc=value.__loc}return node},peg$c1397="allows_override",peg$c1398=peg$literalExpectation("allows_override",false),peg$c1399=function(value){const node={key:"allows_override",value:value};if(options.locations){node.loc=location()}return node},peg$c1400="allow_islands",peg$c1401=peg$literalExpectation("allow_islands",false),peg$c1402=function(value){const raw=options.locations?value.__v:value;const node={key:"allow_islands",value:raw};if(options.locations){node.loc=location();node.value_loc=value.__loc}return node},peg$c1403=function(){return true},peg$c1404=function(){return false},peg$c1405="with_start",peg$c1406=peg$literalExpectation("with_start",false),peg$c1407=function(){return"with_start"},peg$c1408=function(){return true},peg$c1409=function(){return false},peg$c1410=peg$otherExpectation("configuration"),peg$c1411="MIT",peg$c1412=peg$literalExpectation("MIT",false),peg$c1413="BSD 2-clause",peg$c1414=peg$literalExpectation("BSD 2-clause",false),peg$c1415="BSD 3-clause",peg$c1416=peg$literalExpectation("BSD 3-clause",false),peg$c1417="Apache 2.0",peg$c1418=peg$literalExpectation("Apache 2.0",false),peg$c1419="Mozilla 2.0",peg$c1420=peg$literalExpectation("Mozilla 2.0",false),peg$c1421="Public domain",peg$c1422=peg$literalExpectation("Public domain",false),peg$c1423="GPL v2",peg$c1424=peg$literalExpectation("GPL v2",false),peg$c1425="GPL v3",peg$c1426=peg$literalExpectation("GPL v3",false),peg$c1427="LGPL v2.1",peg$c1428=peg$literalExpectation("LGPL v2.1",false),peg$c1429="LGPL v3.0",peg$c1430=peg$literalExpectation("LGPL v3.0",false),peg$c1431="Unknown",peg$c1432=peg$literalExpectation("Unknown",false),peg$c1433=peg$otherExpectation("direction"),peg$c1434="up",peg$c1435=peg$literalExpectation("up",false),peg$c1436="right",peg$c1437=peg$literalExpectation("right",false),peg$c1438="down",peg$c1439=peg$literalExpectation("down",false),peg$c1440="left",peg$c1441=peg$literalExpectation("left",false),peg$c1442=peg$otherExpectation("hook definition (open/closed)"),peg$c1443="open",peg$c1444=peg$literalExpectation("open",false),peg$c1445="closed",peg$c1446=peg$literalExpectation("closed",false),peg$c1447="machine_author",peg$c1448=peg$literalExpectation("machine_author",false),peg$c1449=function(value){const raw=options.locations?value.__v:value;const node={key:"machine_author",value:raw};if(options.locations){node.loc=location();node.value_loc=value.__loc}return node},peg$c1450="machine_contributor",peg$c1451=peg$literalExpectation("machine_contributor",false),peg$c1452=function(value){const raw=options.locations?value.__v:value;const node={key:"machine_contributor",value:raw};if(options.locations){node.loc=location();node.value_loc=value.__loc}return node},peg$c1453="machine_comment",peg$c1454=peg$literalExpectation("machine_comment",false),peg$c1455=function(value){const raw=options.locations?value.__v:value;const node={key:"machine_comment",value:raw};if(options.locations){node.loc=location();node.value_loc=value.__loc}return node},peg$c1456="machine_definition",peg$c1457=peg$literalExpectation("machine_definition",false),peg$c1458=function(value){const raw=options.locations?value.__v:value;const node={key:"machine_definition",value:raw};if(options.locations){node.loc=location();node.value_loc=value.__loc}return node},peg$c1459="machine_name",peg$c1460=peg$literalExpectation("machine_name",false),peg$c1461=function(value){const raw=options.locations?value.__v:value;const node={key:"machine_name",value:raw};if(options.locations){node.loc=location();node.value_loc=value.__loc}return node},peg$c1462="npm_name",peg$c1463=peg$literalExpectation("npm_name",false),peg$c1464=function(value){const raw=options.locations?value.__v:value;const node={key:"npm_name",value:raw};if(options.locations){node.loc=location();node.value_loc=value.__loc}return node},peg$c1465="machine_reference",peg$c1466=peg$literalExpectation("machine_reference",false),peg$c1467=function(value){const raw=options.locations?value.__v:value;const node={key:"machine_reference",value:raw};if(options.locations){node.loc=location();node.value_loc=value.__loc}return node},peg$c1468="machine_version",peg$c1469=peg$literalExpectation("machine_version",false),peg$c1470=function(value){const raw=options.locations?value.__v:value;const node={key:"machine_version",value:raw};if(options.locations){node.loc=location();node.value_loc=value.__loc}return node},peg$c1471="machine_license",peg$c1472=peg$literalExpectation("machine_license",false),peg$c1473=function(value){const raw=options.locations?value.__v:value;const node={key:"machine_license",value:raw};if(options.locations){node.loc=location();node.value_loc=value.__loc}return node},peg$c1474="machine_language",peg$c1475=peg$literalExpectation("machine_language",false),peg$c1476=function(value){const raw=options.locations?value.__v:value;const node={key:"machine_language",value:raw};if(options.locations){node.loc=location();node.value_loc=value.__loc}return node},peg$c1477="fsl_version",peg$c1478=peg$literalExpectation("fsl_version",false),peg$c1479=function(value){const raw=options.locations?value.__v:value;const node={key:"fsl_version",value:raw};if(options.locations){node.loc=location();node.value_loc=value.__loc}return node},peg$c1480="theme",peg$c1481=peg$literalExpectation("theme",false),peg$c1482=function(value){const raw=options.locations?value.__v:value;const node={key:"theme",value:raw};if(options.locations){node.loc=location();node.value_loc=value.__loc}return node},peg$c1483="flow",peg$c1484=peg$literalExpectation("flow",false),peg$c1485=function(value){const raw=options.locations?value.__v:value;const node={key:"flow",value:raw};if(options.locations){node.loc=location();node.value_loc=value.__loc}return node},peg$c1486="hooks",peg$c1487=peg$literalExpectation("hooks",false),peg$c1488=function(value){const raw=options.locations?value.__v:value;const node={key:"hook_definition",value:raw};if(options.locations){node.loc=location();node.value_loc=value.__loc}return node},peg$c1489="dot_preamble",peg$c1490=peg$literalExpectation("dot_preamble",false),peg$c1491=function(value){const raw=options.locations?value.__v:value;const node={key:"dot_preamble",value:raw};if(options.locations){node.loc=location();node.value_loc=value.__loc}return node},peg$c1492="height",peg$c1493=peg$literalExpectation("height",false),peg$c1494=function(n){return{height:n}},peg$c1495=function(w,h){return{width:w,height:h}},peg$c1496=function(w){return{width:w}},peg$c1497="default_size",peg$c1498=peg$literalExpectation("default_size",false),peg$c1499=function(value){const raw=options.locations?value.__v:value;const node={key:"default_size",value:raw};if(options.locations){node.loc=location();node.value_loc=value.__loc}return node},peg$c1500=peg$otherExpectation("machine attribute"),peg$c1501="label",peg$c1502=peg$literalExpectation("label",false),peg$c1503=function(value){const node={key:"state-label",value:value};if(options.locations){node.loc=location()}return node},peg$c1504="color",peg$c1505=peg$literalExpectation("color",false),peg$c1506=function(value){const raw=options.locations?value.__v:value;const node={key:"color",value:raw};if(options.locations){node.loc=location();node.value_loc=value.__loc}return node},peg$c1507=peg$otherExpectation("text color"),peg$c1508="text-color",peg$c1509=peg$literalExpectation("text-color",false),peg$c1510=function(value){const raw=options.locations?value.__v:value;const node={key:"text-color",value:raw};if(options.locations){node.loc=location();node.value_loc=value.__loc}return node},peg$c1511=peg$otherExpectation("background color"),peg$c1512="background-color",peg$c1513=peg$literalExpectation("background-color",false),peg$c1514=function(value){const raw=options.locations?value.__v:value;const node={key:"background-color",value:raw};if(options.locations){node.loc=location();node.value_loc=value.__loc}return node},peg$c1515=peg$otherExpectation("border color"),peg$c1516="border-color",peg$c1517=peg$literalExpectation("border-color",false),peg$c1518=function(value){const raw=options.locations?value.__v:value;const node={key:"border-color",value:raw};if(options.locations){node.loc=location();node.value_loc=value.__loc}return node},peg$c1519=peg$otherExpectation("shape"),peg$c1520="shape",peg$c1521=peg$literalExpectation("shape",false),peg$c1522=function(value){const node={key:"shape",value:value};if(options.locations){node.loc=location()}return node},peg$c1523=peg$otherExpectation("corners"),peg$c1524="corners",peg$c1525=peg$literalExpectation("corners",false),peg$c1526=function(value){const node={key:"corners",value:value};if(options.locations){node.loc=location()}return node},peg$c1527=peg$otherExpectation("linestyle"),peg$c1528=function(value){const node={key:"line-style",value:value};if(options.locations){node.loc=location()}return node},peg$c1529="linestyle",peg$c1530=peg$literalExpectation("linestyle",false),peg$c1531=peg$otherExpectation("image"),peg$c1532="image",peg$c1533=peg$literalExpectation("image",false),peg$c1534=function(value){const node={key:"image",value:value};if(options.locations){node.loc=location()}return node},peg$c1535=peg$otherExpectation("url"),peg$c1536="url",peg$c1537=peg$literalExpectation("url",false),peg$c1538=function(value){const node={key:"url",value:value};if(options.locations){node.loc=location()}return node},peg$c1539=peg$otherExpectation("state property"),peg$c1540="property",peg$c1541=peg$literalExpectation("property",false),peg$c1542=function(name,value){const node={key:"state_property",name:name,value:value};if(options.locations){node.loc=location()}return node},peg$c1543="required",peg$c1544=peg$literalExpectation("required",false),peg$c1545=function(name,value){const node={key:"state_property",name:name,value:value,required:true};if(options.locations){node.loc=location()}return node},peg$c1546=function(n){return options.locations?{__v:n,__loc:location()}:n},peg$c1547=function(name,value){const raw=options.locations?name.__v:name;const node={key:"state_declaration",name:raw,value:value};if(options.locations){node.loc=location();node.name_loc=name.__loc}return node},peg$c1548=function(name,value){const node={key:"named_list",name:name,value:value};if(options.locations){node.loc=location()}return node},peg$c1549=peg$otherExpectation("hook event (enter/exit)"),peg$c1550="enter",peg$c1551=peg$literalExpectation("enter",false),peg$c1552="exit",peg$c1553=peg$literalExpectation("exit",false),peg$c1554=peg$otherExpectation("hook declaration"),peg$c1555="on",peg$c1556=peg$literalExpectation("on",false),peg$c1557="do",peg$c1558=peg$literalExpectation("do",false),peg$c1559=function(event,subject,action){const node={key:"hook_decl",event:event,subject:subject,action:action};if(options.locations){node.loc=location()}return node},peg$c1560=function(name,default_value){const node={key:"property_definition",name:name,default_value:default_value,required:true};if(options.locations){node.loc=location()}return node},peg$c1561=function(name){const node={key:"property_definition",name:name,required:true};if(options.locations){node.loc=location()}return node},peg$c1562=function(name,default_value){const node={key:"property_definition",name:name,default_value:default_value};if(options.locations){node.loc=location()}return node},peg$c1563=function(name){const node={key:"property_definition",name:name};if(options.locations){node.loc=location()}return node},peg$c1564="arrange",peg$c1565=peg$literalExpectation("arrange",false),peg$c1566=function(value){const node={key:"arrange_declaration",value:value};if(options.locations){node.loc=location()}return node},peg$c1567="arrange-start",peg$c1568=peg$literalExpectation("arrange-start",false),peg$c1569=function(value){const node={key:"arrange_start_declaration",value:value};if(options.locations){node.loc=location()}return node},peg$c1570="arrange-end",peg$c1571=peg$literalExpectation("arrange-end",false),peg$c1572=function(value){const node={key:"arrange_end_declaration",value:value};if(options.locations){node.loc=location()}return node},peg$c1573=peg$otherExpectation("oarrange declaration"),peg$c1574="oarrange",peg$c1575=peg$literalExpectation("oarrange",false),peg$c1576=function(value){const node={key:"oarrange_declaration",value:value};if(options.locations){node.loc=location()}return node},peg$c1577=peg$otherExpectation("farrange declaration"),peg$c1578="farrange",peg$c1579=peg$literalExpectation("farrange",false),peg$c1580=function(value){const node={key:"farrange_declaration",value:value};if(options.locations){node.loc=location()}return node},peg$c1581=peg$otherExpectation("arrange declaration"),peg$currPos=0,peg$savedPos=0,peg$posDetailsCache=[{line:1,column:1}],peg$maxFailPos=0,peg$maxFailExpected=[],peg$silentFails=0,peg$result;if("startRule"in options){if(!(options.startRule in peg$startRuleFunctions)){throw new Error(`Can't start parsing from rule "`+options.startRule+'".')}peg$startRuleFunction=peg$startRuleFunctions[options.startRule]}function text(){return input.substring(peg$savedPos,peg$currPos)}function location(){return peg$computeLocation(peg$savedPos,peg$currPos)}function error(message,location2){location2=location2!==void 0?location2:peg$computeLocation(peg$savedPos,peg$currPos);throw peg$buildSimpleError(message,location2)}function peg$literalExpectation(text2,ignoreCase){return{type:"literal",text:text2,ignoreCase:ignoreCase}}function peg$classExpectation(parts,inverted,ignoreCase){return{type:"class",parts:parts,inverted:inverted,ignoreCase:ignoreCase}}function peg$anyExpectation(){return{type:"any"}}function peg$endExpectation(){return{type:"end"}}function peg$otherExpectation(description){return{type:"other",description:description}}function peg$computePosDetails(pos){var details=peg$posDetailsCache[pos],p;if(details){return details}else{p=pos-1;while(!peg$posDetailsCache[p]){p--}details=peg$posDetailsCache[p];details={line:details.line,column:details.column};while(p<pos){if(input.charCodeAt(p)===10){details.line++;details.column=1}else{details.column++}p++}peg$posDetailsCache[pos]=details;return details}}function peg$computeLocation(startPos,endPos){var startPosDetails=peg$computePosDetails(startPos),endPosDetails=peg$computePosDetails(endPos);return{start:{offset:startPos,line:startPosDetails.line,column:startPosDetails.column},end:{offset:endPos,line:endPosDetails.line,column:endPosDetails.column}}}function peg$fail(expected2){if(peg$currPos<peg$maxFailPos){return}if(peg$currPos>peg$maxFailPos){peg$maxFailPos=peg$currPos;peg$maxFailExpected=[]}peg$maxFailExpected.push(expected2)}function peg$buildSimpleError(message,location2){return new peg$SyntaxError(message,null,null,location2)}function peg$buildStructuredError(expected2,found,location2){return new peg$SyntaxError(peg$SyntaxError.buildMessage(expected2,found),expected2,found,location2)}function peg$parseDocument(){var s0,s1,s2,s3;s0=peg$currPos;s1=peg$parseWS();if(s1===peg$FAILED){s1=null}if(s1!==peg$FAILED){s2=peg$parseTermList();if(s2!==peg$FAILED){s3=peg$parseWS();if(s3===peg$FAILED){s3=null}if(s3!==peg$FAILED){peg$savedPos=s0;s1=peg$c0(s2);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}return s0}function peg$parseTheme(){var s0;if(input.substr(peg$currPos,7)===peg$c1){s0=peg$c1;peg$currPos+=7}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c2)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,5)===peg$c3){s0=peg$c3;peg$currPos+=5}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c4)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,6)===peg$c5){s0=peg$c5;peg$currPos+=6}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c6)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,5)===peg$c7){s0=peg$c7;peg$currPos+=5}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c8)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,4)===peg$c9){s0=peg$c9;peg$currPos+=4}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c10)}}}}}}return s0}function peg$parseThemeOrThemeList(){var s0,s1,s2,s3,s4,s5,s6;s0=peg$currPos;if(input.charCodeAt(peg$currPos)===91){s1=peg$c11;peg$currPos++}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c12)}}if(s1!==peg$FAILED){s2=peg$parseWS();if(s2===peg$FAILED){s2=null}if(s2!==peg$FAILED){s3=[];s4=peg$currPos;s5=peg$parseTheme();if(s5!==peg$FAILED){s6=peg$parseWS();if(s6!==peg$FAILED){s5=[s5,s6];s4=s5}else{peg$currPos=s4;s4=peg$FAILED}}else{peg$currPos=s4;s4=peg$FAILED}while(s4!==peg$FAILED){s3.push(s4);s4=peg$currPos;s5=peg$parseTheme();if(s5!==peg$FAILED){s6=peg$parseWS();if(s6!==peg$FAILED){s5=[s5,s6];s4=s5}else{peg$currPos=s4;s4=peg$FAILED}}else{peg$currPos=s4;s4=peg$FAILED}}if(s3!==peg$FAILED){s4=peg$parseTheme();if(s4===peg$FAILED){s4=null}if(s4!==peg$FAILED){if(input.charCodeAt(peg$currPos)===93){s5=peg$c13;peg$currPos++}else{s5=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c14)}}if(s5!==peg$FAILED){peg$savedPos=s0;s1=peg$c15(s3,s4);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}if(s0===peg$FAILED){s0=peg$currPos;s1=peg$parseTheme();if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c16(s1)}s0=s1}return s0}function peg$parseGvizShape(){var s0;if(input.substr(peg$currPos,5)===peg$c17){s0=peg$c17;peg$currPos+=5}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c18)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,7)===peg$c19){s0=peg$c19;peg$currPos+=7}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c20)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,7)===peg$c21){s0=peg$c21;peg$currPos+=7}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c22)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,4)===peg$c23){s0=peg$c23;peg$currPos+=4}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c24)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,6)===peg$c25){s0=peg$c25;peg$currPos+=6}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c26)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,5)===peg$c27){s0=peg$c27;peg$currPos+=5}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c28)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,3)===peg$c29){s0=peg$c29;peg$currPos+=3}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c30)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,8)===peg$c31){s0=peg$c31;peg$currPos+=8}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c32)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,9)===peg$c33){s0=peg$c33;peg$currPos+=9}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c34)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,5)===peg$c7){s0=peg$c7;peg$currPos+=5}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c8)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,7)===peg$c35){s0=peg$c35;peg$currPos+=7}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c36)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,9)===peg$c37){s0=peg$c37;peg$currPos+=9}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c38)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,13)===peg$c39){s0=peg$c39;peg$currPos+=13}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c40)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,5)===peg$c41){s0=peg$c41;peg$currPos+=5}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c42)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,8)===peg$c43){s0=peg$c43;peg$currPos+=8}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c44)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,7)===peg$c45){s0=peg$c45;peg$currPos+=7}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c46)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,8)===peg$c47){s0=peg$c47;peg$currPos+=8}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c48)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,7)===peg$c49){s0=peg$c49;peg$currPos+=7}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c50)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,12)===peg$c51){s0=peg$c51;peg$currPos+=12}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c52)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,13)===peg$c53){s0=peg$c53;peg$currPos+=13}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c54)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,13)===peg$c55){s0=peg$c55;peg$currPos+=13}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c56)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,11)===peg$c57){s0=peg$c57;peg$currPos+=11}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c58)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,12)===peg$c59){s0=peg$c59;peg$currPos+=12}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c60)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,8)===peg$c61){s0=peg$c61;peg$currPos+=8}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c62)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,8)===peg$c63){s0=peg$c63;peg$currPos+=8}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c64)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,7)===peg$c65){s0=peg$c65;peg$currPos+=7}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c66)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,7)===peg$c67){s0=peg$c67;peg$currPos+=7}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c68)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,9)===peg$c69){s0=peg$c69;peg$currPos+=9}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c70)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,4)===peg$c71){s0=peg$c71;peg$currPos+=4}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c72)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,6)===peg$c73){s0=peg$c73;peg$currPos+=6}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c74)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,4)===peg$c75){s0=peg$c75;peg$currPos+=4}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c76)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,4)===peg$c77){s0=peg$c77;peg$currPos+=4}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c78)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,9)===peg$c79){s0=peg$c79;peg$currPos+=9}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c80)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,8)===peg$c81){s0=peg$c81;peg$currPos+=8}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c82)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,4)===peg$c83){s0=peg$c83;peg$currPos+=4}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c84)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,3)===peg$c85){s0=peg$c85;peg$currPos+=3}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c86)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,6)===peg$c87){s0=peg$c87;peg$currPos+=6}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c88)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,3)===peg$c89){s0=peg$c89;peg$currPos+=3}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c90)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,9)===peg$c91){s0=peg$c91;peg$currPos+=9}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c92)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,8)===peg$c93){s0=peg$c93;peg$currPos+=8}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c94)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,3)===peg$c95){s0=peg$c95;peg$currPos+=3}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c96)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,10)===peg$c97){s0=peg$c97;peg$currPos+=10}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c98)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,3)===peg$c99){s0=peg$c99;peg$currPos+=3}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c100)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,10)===peg$c101){s0=peg$c101;peg$currPos+=10}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c102)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,15)===peg$c103){s0=peg$c103;peg$currPos+=15}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c104)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,13)===peg$c105){s0=peg$c105;peg$currPos+=13}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c106)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,14)===peg$c107){s0=peg$c107;peg$currPos+=14}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c108)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,9)===peg$c109){s0=peg$c109;peg$currPos+=9}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c110)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,8)===peg$c111){s0=peg$c111;peg$currPos+=8}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c112)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,9)===peg$c113){s0=peg$c113;peg$currPos+=9}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c114)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,9)===peg$c115){s0=peg$c115;peg$currPos+=9}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c116)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,8)===peg$c117){s0=peg$c117;peg$currPos+=8}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c118)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,7)===peg$c119){s0=peg$c119;peg$currPos+=7}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c120)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,12)===peg$c121){s0=peg$c121;peg$currPos+=12}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c122)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,11)===peg$c123){s0=peg$c123;peg$currPos+=11}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c124)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,9)===peg$c125){s0=peg$c125;peg$currPos+=9}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c126)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,6)===peg$c127){s0=peg$c127;peg$currPos+=6}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c128)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,6)===peg$c129){s0=peg$c129;peg$currPos+=6}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c130)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,9)===peg$c131){s0=peg$c131;peg$currPos+=9}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c132)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,6)===peg$c133){s0=peg$c133;peg$currPos+=6}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c134)}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}return s0}function peg$parseForwardLightArrow(){var s0,s1;peg$silentFails++;if(input.substr(peg$currPos,2)===peg$c136){s0=peg$c136;peg$currPos+=2}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c137)}}if(s0===peg$FAILED){s0=peg$currPos;if(input.charCodeAt(peg$currPos)===8594){s1=peg$c138;peg$currPos++}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c139)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c140()}s0=s1}peg$silentFails--;if(s0===peg$FAILED){s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c135)}}return s0}function peg$parseTwoWayLightArrow(){var s0,s1;peg$silentFails++;if(input.substr(peg$currPos,3)===peg$c142){s0=peg$c142;peg$currPos+=3}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c143)}}if(s0===peg$FAILED){s0=peg$currPos;if(input.charCodeAt(peg$currPos)===8596){s1=peg$c144;peg$currPos++}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c145)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c146()}s0=s1}peg$silentFails--;if(s0===peg$FAILED){s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c141)}}return s0}function peg$parseBackLightArrow(){var s0,s1;peg$silentFails++;if(input.substr(peg$currPos,2)===peg$c148){s0=peg$c148;peg$currPos+=2}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c149)}}if(s0===peg$FAILED){s0=peg$currPos;if(input.charCodeAt(peg$currPos)===8592){s1=peg$c150;peg$currPos++}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c151)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c152()}s0=s1}peg$silentFails--;if(s0===peg$FAILED){s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c147)}}return s0}function peg$parseForwardFatArrow(){var s0,s1;peg$silentFails++;if(input.substr(peg$currPos,2)===peg$c154){s0=peg$c154;peg$currPos+=2}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c155)}}if(s0===peg$FAILED){s0=peg$currPos;if(input.charCodeAt(peg$currPos)===8658){s1=peg$c156;peg$currPos++}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c157)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c158()}s0=s1}peg$silentFails--;if(s0===peg$FAILED){s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c153)}}return s0}function peg$parseTwoWayFatArrow(){var s0,s1;peg$silentFails++;if(input.substr(peg$currPos,3)===peg$c160){s0=peg$c160;peg$currPos+=3}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c161)}}if(s0===peg$FAILED){s0=peg$currPos;if(input.charCodeAt(peg$currPos)===8660){s1=peg$c162;peg$currPos++}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c163)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c164()}s0=s1}peg$silentFails--;if(s0===peg$FAILED){s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c159)}}return s0}function peg$parseBackFatArrow(){var s0,s1;peg$silentFails++;if(input.substr(peg$currPos,2)===peg$c166){s0=peg$c166;peg$currPos+=2}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c167)}}if(s0===peg$FAILED){s0=peg$currPos;if(input.charCodeAt(peg$currPos)===8656){s1=peg$c168;peg$currPos++}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c169)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c170()}s0=s1}peg$silentFails--;if(s0===peg$FAILED){s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c165)}}return s0}function peg$parseForwardTildeArrow(){var s0,s1;peg$silentFails++;if(input.substr(peg$currPos,2)===peg$c172){s0=peg$c172;peg$currPos+=2}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c173)}}if(s0===peg$FAILED){s0=peg$currPos;if(input.charCodeAt(peg$currPos)===8603){s1=peg$c174;peg$currPos++}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c175)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c176()}s0=s1}peg$silentFails--;if(s0===peg$FAILED){s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c171)}}return s0}function peg$parseTwoWayTildeArrow(){var s0,s1;peg$silentFails++;if(input.substr(peg$currPos,3)===peg$c178){s0=peg$c178;peg$currPos+=3}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c179)}}if(s0===peg$FAILED){s0=peg$currPos;if(input.charCodeAt(peg$currPos)===8622){s1=peg$c180;peg$currPos++}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c181)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c182()}s0=s1}peg$silentFails--;if(s0===peg$FAILED){s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c177)}}return s0}function peg$parseBackTildeArrow(){var s0,s1;peg$silentFails++;if(input.substr(peg$currPos,2)===peg$c184){s0=peg$c184;peg$currPos+=2}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c185)}}if(s0===peg$FAILED){s0=peg$currPos;if(input.charCodeAt(peg$currPos)===8602){s1=peg$c186;peg$currPos++}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c187)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c188()}s0=s1}peg$silentFails--;if(s0===peg$FAILED){s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c183)}}return s0}function peg$parseLightFatArrow(){var s0,s1;peg$silentFails++;if(input.substr(peg$currPos,4)===peg$c190){s0=peg$c190;peg$currPos+=4}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c191)}}if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,2)===peg$c192){s1=peg$c192;peg$currPos+=2}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c193)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c194()}s0=s1}peg$silentFails--;if(s0===peg$FAILED){s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c189)}}return s0}function peg$parseLightTildeArrow(){var s0,s1;peg$silentFails++;if(input.substr(peg$currPos,4)===peg$c196){s0=peg$c196;peg$currPos+=4}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c197)}}if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,2)===peg$c198){s1=peg$c198;peg$currPos+=2}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c199)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c200()}s0=s1}peg$silentFails--;if(s0===peg$FAILED){s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c195)}}return s0}function peg$parseFatLightArrow(){var s0,s1;peg$silentFails++;if(input.substr(peg$currPos,4)===peg$c202){s0=peg$c202;peg$currPos+=4}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c203)}}if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,2)===peg$c204){s1=peg$c204;peg$currPos+=2}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c205)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c206()}s0=s1}peg$silentFails--;if(s0===peg$FAILED){s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c201)}}return s0}function peg$parseFatTildeArrow(){var s0,s1;peg$silentFails++;if(input.substr(peg$currPos,4)===peg$c208){s0=peg$c208;peg$currPos+=4}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c209)}}if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,2)===peg$c210){s1=peg$c210;peg$currPos+=2}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c211)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c212()}s0=s1}peg$silentFails--;if(s0===peg$FAILED){s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c207)}}return s0}function peg$parseTildeLightArrow(){var s0,s1;peg$silentFails++;if(input.substr(peg$currPos,4)===peg$c214){s0=peg$c214;peg$currPos+=4}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c215)}}if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,2)===peg$c216){s1=peg$c216;peg$currPos+=2}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c217)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c218()}s0=s1}peg$silentFails--;if(s0===peg$FAILED){s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c213)}}return s0}function peg$parseTildeFatArrow(){var s0,s1;peg$silentFails++;if(input.substr(peg$currPos,4)===peg$c220){s0=peg$c220;peg$currPos+=4}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c221)}}if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,2)===peg$c222){s1=peg$c222;peg$currPos+=2}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c223)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c224()}s0=s1}peg$silentFails--;if(s0===peg$FAILED){s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c219)}}return s0}function peg$parseLightArrow(){var s0;peg$silentFails++;s0=peg$parseForwardLightArrow();if(s0===peg$FAILED){s0=peg$parseTwoWayLightArrow();if(s0===peg$FAILED){s0=peg$parseBackLightArrow()}}peg$silentFails--;if(s0===peg$FAILED){if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c225)}}return s0}function peg$parseFatArrow(){var s0;peg$silentFails++;s0=peg$parseForwardFatArrow();if(s0===peg$FAILED){s0=peg$parseTwoWayFatArrow();if(s0===peg$FAILED){s0=peg$parseBackFatArrow()}}peg$silentFails--;if(s0===peg$FAILED){if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c226)}}return s0}function peg$parseTildeArrow(){var s0;peg$silentFails++;s0=peg$parseForwardTildeArrow();if(s0===peg$FAILED){s0=peg$parseTwoWayTildeArrow();if(s0===peg$FAILED){s0=peg$parseBackTildeArrow()}}peg$silentFails--;if(s0===peg$FAILED){if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c227)}}return s0}function peg$parseMixedArrow(){var s0;peg$silentFails++;s0=peg$parseLightFatArrow();if(s0===peg$FAILED){s0=peg$parseLightTildeArrow();if(s0===peg$FAILED){s0=peg$parseFatLightArrow();if(s0===peg$FAILED){s0=peg$parseFatTildeArrow();if(s0===peg$FAILED){s0=peg$parseTildeLightArrow();if(s0===peg$FAILED){s0=peg$parseTildeFatArrow()}}}}}peg$silentFails--;if(s0===peg$FAILED){if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c228)}}return s0}function peg$parseArrow(){var s0;peg$silentFails++;s0=peg$parseMixedArrow();if(s0===peg$FAILED){s0=peg$parseLightArrow();if(s0===peg$FAILED){s0=peg$parseFatArrow();if(s0===peg$FAILED){s0=peg$parseTildeArrow()}}}peg$silentFails--;if(s0===peg$FAILED){if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c229)}}return s0}function peg$parseBoolean(){var s0,s1;s0=peg$currPos;if(input.substr(peg$currPos,4)===peg$c230){s1=peg$c230;peg$currPos+=4}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c231)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c232()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,5)===peg$c233){s1=peg$c233;peg$currPos+=5}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c234)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c235()}s0=s1}return s0}function peg$parseCorners(){var s0;if(input.substr(peg$currPos,7)===peg$c236){s0=peg$c236;peg$currPos+=7}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c237)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,7)===peg$c238){s0=peg$c238;peg$currPos+=7}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c239)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,5)===peg$c240){s0=peg$c240;peg$currPos+=5}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c241)}}}}return s0}function peg$parseLineStyle(){var s0;if(input.substr(peg$currPos,5)===peg$c242){s0=peg$c242;peg$currPos+=5}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c243)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,6)===peg$c244){s0=peg$c244;peg$currPos+=6}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c245)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,6)===peg$c246){s0=peg$c246;peg$currPos+=6}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c247)}}}}return s0}function peg$parseNull(){var s0,s1;s0=peg$currPos;if(input.substr(peg$currPos,4)===peg$c276){s1=peg$c276;peg$currPos+=4}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c277)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c278()}s0=s1;return s0}function peg$parseUndefined(){var s0,s1;s0=peg$currPos;if(input.substr(peg$currPos,9)===peg$c279){s1=peg$c279;peg$currPos+=9}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c280)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c281()}s0=s1;return s0}function peg$parseActionLabel(){var c,start,chunk,out,h,hv;peg$silentFails++;if(input.charCodeAt(peg$currPos)===39){start=peg$currPos;peg$currPos++;chunk=peg$currPos;out="";for(;;){c=input.charCodeAt(peg$currPos);if(c>=32&&c!==39&&c!==92){peg$currPos++;continue}if(c===39){out=out+input.substring(chunk,peg$currPos);peg$currPos++;peg$silentFails--;return out}if(c===92){out+=input.substring(chunk,peg$currPos);peg$currPos++;c=input.charCodeAt(peg$currPos);if(c===39){out+="'";peg$currPos++}else if(c===92){out+="\\";peg$currPos++}else if(c===47){out+="/";peg$currPos++}else if(c===98){out+="\b";peg$currPos++}else if(c===102){out+="\f";peg$currPos++}else if(c===110){out+="\n";peg$currPos++}else if(c===114){out+="\r";peg$currPos++}else if(c===116){out+="\t";peg$currPos++}else if(c===118){out+="\v";peg$currPos++}else if(c===117){hv=0;for(h=1;h<=4;++h){c=input.charCodeAt(peg$currPos+h);if(c>=48&&c<=57){hv=hv*16+(c-48)}else if(c>=97&&c<=102){hv=hv*16+(c-87)}else if(c>=65&&c<=70){hv=hv*16+(c-55)}else{hv=-1;break}}if(hv<0){break}out+=String.fromCharCode(hv);peg$currPos+=5}else{break}chunk=peg$currPos;continue}break}peg$currPos=start}peg$silentFails--;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c288)}return peg$FAILED}function peg$parseLineTerminator(){var s0;if(peg$c290.test(input.charAt(peg$currPos))){s0=input.charAt(peg$currPos);peg$currPos++}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c291)}}return s0}function peg$parseBlockComment(){var s0,s1,s2,s3,s4,s5;peg$silentFails++;s0=peg$currPos;if(input.substr(peg$currPos,2)===peg$c293){s1=peg$c293;peg$currPos+=2}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c294)}}if(s1!==peg$FAILED){s2=[];s3=peg$currPos;s4=peg$currPos;peg$silentFails++;if(input.substr(peg$currPos,2)===peg$c295){s5=peg$c295;peg$currPos+=2}else{s5=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c296)}}peg$silentFails--;if(s5===peg$FAILED){s4=void 0}else{peg$currPos=s4;s4=peg$FAILED}if(s4!==peg$FAILED){if(input.length>peg$currPos){s5=input.charAt(peg$currPos);peg$currPos++}else{s5=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c297)}}if(s5!==peg$FAILED){s4=[s4,s5];s3=s4}else{peg$currPos=s3;s3=peg$FAILED}}else{peg$currPos=s3;s3=peg$FAILED}while(s3!==peg$FAILED){s2.push(s3);s3=peg$currPos;s4=peg$currPos;peg$silentFails++;if(input.substr(peg$currPos,2)===peg$c295){s5=peg$c295;peg$currPos+=2}else{s5=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c296)}}peg$silentFails--;if(s5===peg$FAILED){s4=void 0}else{peg$currPos=s4;s4=peg$FAILED}if(s4!==peg$FAILED){if(input.length>peg$currPos){s5=input.charAt(peg$currPos);peg$currPos++}else{s5=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c297)}}if(s5!==peg$FAILED){s4=[s4,s5];s3=s4}else{peg$currPos=s3;s3=peg$FAILED}}else{peg$currPos=s3;s3=peg$FAILED}}if(s2!==peg$FAILED){if(input.substr(peg$currPos,2)===peg$c295){s3=peg$c295;peg$currPos+=2}else{s3=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c296)}}if(s3!==peg$FAILED){s1=[s1,s2,s3];s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}peg$silentFails--;if(s0===peg$FAILED){s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c292)}}return s0}function peg$parseEOF(){var s0,s1;s0=peg$currPos;peg$silentFails++;if(input.length>peg$currPos){s1=input.charAt(peg$currPos);peg$currPos++}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c297)}}peg$silentFails--;if(s1===peg$FAILED){s0=void 0}else{peg$currPos=s0;s0=peg$FAILED}return s0}function peg$parseLineComment(){var s0,s1,s2,s3,s4,s5;peg$silentFails++;s0=peg$currPos;if(input.substr(peg$currPos,2)===peg$c299){s1=peg$c299;peg$currPos+=2}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c300)}}if(s1!==peg$FAILED){s2=[];s3=peg$currPos;s4=peg$currPos;peg$silentFails++;s5=peg$parseLineTerminator();peg$silentFails--;if(s5===peg$FAILED){s4=void 0}else{peg$currPos=s4;s4=peg$FAILED}if(s4!==peg$FAILED){if(input.length>peg$currPos){s5=input.charAt(peg$currPos);peg$currPos++}else{s5=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c297)}}if(s5!==peg$FAILED){s4=[s4,s5];s3=s4}else{peg$currPos=s3;s3=peg$FAILED}}else{peg$currPos=s3;s3=peg$FAILED}while(s3!==peg$FAILED){s2.push(s3);s3=peg$currPos;s4=peg$currPos;peg$silentFails++;s5=peg$parseLineTerminator();peg$silentFails--;if(s5===peg$FAILED){s4=void 0}else{peg$currPos=s4;s4=peg$FAILED}if(s4!==peg$FAILED){if(input.length>peg$currPos){s5=input.charAt(peg$currPos);peg$currPos++}else{s5=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c297)}}if(s5!==peg$FAILED){s4=[s4,s5];s3=s4}else{peg$currPos=s3;s3=peg$FAILED}}else{peg$currPos=s3;s3=peg$FAILED}}if(s2!==peg$FAILED){s3=peg$parseLineTerminator();if(s3===peg$FAILED){s3=peg$parseEOF()}if(s3!==peg$FAILED){s1=[s1,s2,s3];s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}peg$silentFails--;if(s0===peg$FAILED){s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c298)}}return s0}function peg$parseWS(){var c,r,matched;peg$silentFails++;matched=false;for(;;){c=input.charCodeAt(peg$currPos);if(c===32||c===9||c===13||c===10||c===11){peg$currPos++;matched=true;continue}if(c!==47){break}r=peg$parseBlockComment();if(r===peg$FAILED){r=peg$parseLineComment()}if(r===peg$FAILED){break}matched=true}peg$silentFails--;if(matched){return null}if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c301)}return peg$FAILED}function peg$parseString(){var c,start,chunk,out,h,hv;peg$silentFails++;if(input.charCodeAt(peg$currPos)===34){start=peg$currPos;peg$currPos++;chunk=peg$currPos;out="";for(;;){c=input.charCodeAt(peg$currPos);if(c>=0&&c!==34&&c!==92){peg$currPos++;continue}if(c===34){out=out+input.substring(chunk,peg$currPos);peg$currPos++;peg$silentFails--;return out}if(c===92){out+=input.substring(chunk,peg$currPos);peg$currPos++;c=input.charCodeAt(peg$currPos);if(c===34){out+='"';peg$currPos++}else if(c===92){out+="\\";peg$currPos++}else if(c===47){out+="/";peg$currPos++}else if(c===98){out+="\b";peg$currPos++}else if(c===102){out+="\f";peg$currPos++}else if(c===110){out+="\n";peg$currPos++}else if(c===114){out+="\r";peg$currPos++}else if(c===116){out+="\t";peg$currPos++}else if(c===118){out+="\v";peg$currPos++}else if(c===117){hv=0;for(h=1;h<=4;++h){c=input.charCodeAt(peg$currPos+h);if(c>=48&&c<=57){hv=hv*16+(c-48)}else if(c>=97&&c<=102){hv=hv*16+(c-87)}else if(c>=65&&c<=70){hv=hv*16+(c-55)}else{hv=-1;break}}if(hv<0){break}out+=String.fromCharCode(hv);peg$currPos+=5}else{break}chunk=peg$currPos;continue}break}peg$currPos=start}peg$silentFails--;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c304)}return peg$FAILED}function peg$parseAtom(){var c,start;peg$silentFails++;c=input.charCodeAt(peg$currPos);if(c>=48&&c<=57||c>=97&&c<=122||c>=65&&c<=90||c===46||c===95||c===33||c===36||c===94||c===42||c===63||c===44||c>=128){start=peg$currPos;peg$currPos++;c=input.charCodeAt(peg$currPos);while(c>=48&&c<=57||c>=97&&c<=122||c>=65&&c<=90||c===46||c===95||c===33||c===36||c===94||c===42||c===63||c===44||c===43||c===40||c===41||c===38||c===35||c===64||c>=128){peg$currPos++;c=input.charCodeAt(peg$currPos)}peg$silentFails--;return input.substring(start,peg$currPos)}peg$silentFails--;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c309)}return peg$FAILED}function peg$parseLabel(){var s0;peg$silentFails++;s0=peg$parseAtom();if(s0===peg$FAILED){s0=peg$parseString()}peg$silentFails--;if(s0===peg$FAILED){if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c311)}}return s0}function peg$parseIntegerLiteral(){var c,start;c=input.charCodeAt(peg$currPos);if(c===48){peg$currPos++;return"0"}if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c313)}if(c>=49&&c<=57){start=peg$currPos;peg$currPos++;c=input.charCodeAt(peg$currPos);while(c>=48&&c<=57){peg$currPos++;c=input.charCodeAt(peg$currPos)}if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c315)}return input.substring(start,peg$currPos)}if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c317)}return peg$FAILED}function peg$parseDecimalDigit(){var s0;if(peg$c314.test(input.charAt(peg$currPos))){s0=input.charAt(peg$currPos);peg$currPos++}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c315)}}return s0}function peg$parseNonZeroDigit(){var s0;if(peg$c316.test(input.charAt(peg$currPos))){s0=input.charAt(peg$currPos);peg$currPos++}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c317)}}return s0}function peg$parseHexDigit(){var s0;if(peg$c318.test(input.charAt(peg$currPos))){s0=input.charAt(peg$currPos);peg$currPos++}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c319)}}return s0}function peg$parseBinaryDigit(){var s0;if(peg$c320.test(input.charAt(peg$currPos))){s0=input.charAt(peg$currPos);peg$currPos++}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c321)}}return s0}function peg$parseOctalDigit(){var s0;if(peg$c322.test(input.charAt(peg$currPos))){s0=input.charAt(peg$currPos);peg$currPos++}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c323)}}return s0}function peg$parseNonNegNumber(){var s0,s1,s2,s3,s4;peg$silentFails++;s0=peg$currPos;s1=peg$parseIntegerLiteral();if(s1!==peg$FAILED){if(input.charCodeAt(peg$currPos)===46){s2=peg$c325;peg$currPos++}else{s2=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c326)}}if(s2!==peg$FAILED){s3=[];s4=peg$parseDecimalDigit();while(s4!==peg$FAILED){s3.push(s4);s4=peg$parseDecimalDigit()}if(s3!==peg$FAILED){s4=peg$parseWS();if(s4===peg$FAILED){s4=null}if(s4!==peg$FAILED){peg$savedPos=s0;s1=peg$c327();s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}if(s0===peg$FAILED){s0=peg$currPos;s1=peg$parseIntegerLiteral();if(s1!==peg$FAILED){s2=peg$parseWS();if(s2===peg$FAILED){s2=null}if(s2!==peg$FAILED){peg$savedPos=s0;s1=peg$c327();s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}peg$silentFails--;if(s0===peg$FAILED){s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c324)}}return s0}function peg$parseJsNumericLiteral(){var s0,s1;peg$silentFails++;s0=peg$currPos;s1=peg$parseJsHexIntegerLiteral();if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c329(s1)}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;s1=peg$parseJsBinaryIntegerLiteral();if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c329(s1)}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;s1=peg$parseNonJsOctalIntegerLiteral();if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c329(s1)}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;s1=peg$parseJsDecimalLiteral();if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c329(s1)}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,3)===peg$c330){s1=peg$c330;peg$currPos+=3}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c331)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c332()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,16)===peg$c333){s1=peg$c333;peg$currPos+=16}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c334)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c335()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,11)===peg$c336){s1=peg$c336;peg$currPos+=11}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c337)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c335()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,11)===peg$c338){s1=peg$c338;peg$currPos+=11}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c339)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c335()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,6)===peg$c340){s1=peg$c340;peg$currPos+=6}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c341)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c335()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,9)===peg$c342){s1=peg$c342;peg$currPos+=9}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c343)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c335()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,4)===peg$c344){s1=peg$c344;peg$currPos+=4}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c345)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c335()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,2)===peg$c346){s1=peg$c346;peg$currPos+=2}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c347)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c335()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,9)===peg$c348){s1=peg$c348;peg$currPos+=9}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c349)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c350()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,8)===peg$c351){s1=peg$c351;peg$currPos+=8}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c352)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c350()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,4)===peg$c353){s1=peg$c353;peg$currPos+=4}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c354)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c350()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,3)===peg$c355){s1=peg$c355;peg$currPos+=3}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c356)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c350()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.charCodeAt(peg$currPos)===8734){s1=peg$c357;peg$currPos++}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c358)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c350()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,7)===peg$c359){s1=peg$c359;peg$currPos+=7}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c360)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c361()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,2)===peg$c362){s1=peg$c362;peg$currPos+=2}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c363)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c361()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.charCodeAt(peg$currPos)===949){s1=peg$c364;peg$currPos++}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c365)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c361()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,2)===peg$c366){s1=peg$c366;peg$currPos+=2}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c367)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c368()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,2)===peg$c369){s1=peg$c369;peg$currPos+=2}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c370)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c368()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.charCodeAt(peg$currPos)===960){s1=peg$c371;peg$currPos++}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c372)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c368()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,11)===peg$c373){s1=peg$c373;peg$currPos+=11}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c374)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c375()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.charCodeAt(peg$currPos)===69){s1=peg$c376;peg$currPos++}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c377)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c375()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.charCodeAt(peg$currPos)===101){s1=peg$c378;peg$currPos++}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c379)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c375()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.charCodeAt(peg$currPos)===400){s1=peg$c380;peg$currPos++}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c381)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c375()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.charCodeAt(peg$currPos)===8455){s1=peg$c382;peg$currPos++}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c383)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c375()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,5)===peg$c384){s1=peg$c384;peg$currPos+=5}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c385)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c386()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,8)===peg$c387){s1=peg$c387;peg$currPos+=8}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c388)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c389()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,3)===peg$c390){s1=peg$c390;peg$currPos+=3}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c391)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c392()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,7)===peg$c393){s1=peg$c393;peg$currPos+=7}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c394)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c392()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,4)===peg$c395){s1=peg$c395;peg$currPos+=4}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c396)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c397()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,8)===peg$c398){s1=peg$c398;peg$currPos+=8}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c399)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c397()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,5)===peg$c400){s1=peg$c400;peg$currPos+=5}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c401)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c402()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,6)===peg$c403){s1=peg$c403;peg$currPos+=6}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c404)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c405()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,10)===peg$c406){s1=peg$c406;peg$currPos+=10}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c407)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c408()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,10)===peg$c409){s1=peg$c409;peg$currPos+=10}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c410)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c411()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,9)===peg$c412){s1=peg$c412;peg$currPos+=9}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c413)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c414()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,9)===peg$c415){s1=peg$c415;peg$currPos+=9}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c416)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c417()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,3)===peg$c418){s1=peg$c418;peg$currPos+=3}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c419)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c420()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,2)===peg$c421){s1=peg$c421;peg$currPos+=2}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c422)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c420()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,2)===peg$c423){s1=peg$c423;peg$currPos+=2}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c424)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c420()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.charCodeAt(peg$currPos)===981){s1=peg$c425;peg$currPos++}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c426)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c420()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.charCodeAt(peg$currPos)===966){s1=peg$c427;peg$currPos++}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c428)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c420()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,13)===peg$c429){s1=peg$c429;peg$currPos+=13}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c430)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c431()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.charCodeAt(peg$currPos)===947){s1=peg$c432;peg$currPos++}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c433)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c431()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,2)===peg$c434){s1=peg$c434;peg$currPos+=2}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c435)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c431()}s0=s1}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}peg$silentFails--;if(s0===peg$FAILED){s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c328)}}return s0}function peg$parseJsDecimalLiteral(){var s0,s1,s2,s3,s4;s0=peg$currPos;s1=peg$parseJsDecimalIntegerLiteral();if(s1!==peg$FAILED){if(input.charCodeAt(peg$currPos)===46){s2=peg$c325;peg$currPos++}else{s2=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c326)}}if(s2!==peg$FAILED){s3=[];s4=peg$parseDecimalDigit();while(s4!==peg$FAILED){s3.push(s4);s4=peg$parseDecimalDigit()}if(s3!==peg$FAILED){s4=peg$parseJsNExponentPart();if(s4===peg$FAILED){s4=null}if(s4!==peg$FAILED){peg$savedPos=s0;s1=peg$c327();s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}if(s0===peg$FAILED){s0=peg$currPos;if(input.charCodeAt(peg$currPos)===46){s1=peg$c325;peg$currPos++}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c326)}}if(s1!==peg$FAILED){s2=[];s3=peg$parseDecimalDigit();if(s3!==peg$FAILED){while(s3!==peg$FAILED){s2.push(s3);s3=peg$parseDecimalDigit()}}else{s2=peg$FAILED}if(s2!==peg$FAILED){s3=peg$parseJsNExponentPart();if(s3===peg$FAILED){s3=null}if(s3!==peg$FAILED){peg$savedPos=s0;s1=peg$c327();s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}if(s0===peg$FAILED){s0=peg$currPos;s1=peg$parseJsDecimalIntegerLiteral();if(s1!==peg$FAILED){s2=peg$parseJsNExponentPart();if(s2===peg$FAILED){s2=null}if(s2!==peg$FAILED){peg$savedPos=s0;s1=peg$c327();s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}}return s0}function peg$parseJsDecimalIntegerLiteral(){var s0,s1,s2,s3;if(input.charCodeAt(peg$currPos)===48){s0=peg$c312;peg$currPos++}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c313)}}if(s0===peg$FAILED){s0=peg$currPos;s1=peg$parseNonZeroDigit();if(s1!==peg$FAILED){s2=[];s3=peg$parseDecimalDigit();while(s3!==peg$FAILED){s2.push(s3);s3=peg$parseDecimalDigit()}if(s2!==peg$FAILED){s1=[s1,s2];s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}return s0}function peg$parseJsNExponentPart(){var s0,s1,s2;s0=peg$currPos;s1=peg$parseJsNExponentIndicator();if(s1!==peg$FAILED){s2=peg$parseJsNSignedInteger();if(s2!==peg$FAILED){s1=[s1,s2];s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}return s0}function peg$parseJsNExponentIndicator(){var s0;if(input.substr(peg$currPos,1).toLowerCase()===peg$c378){s0=input.charAt(peg$currPos);peg$currPos++}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c436)}}return s0}function peg$parseJsNSignedInteger(){var s0,s1,s2,s3;s0=peg$currPos;if(peg$c437.test(input.charAt(peg$currPos))){s1=input.charAt(peg$currPos);peg$currPos++}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c438)}}if(s1===peg$FAILED){s1=null}if(s1!==peg$FAILED){s2=[];s3=peg$parseDecimalDigit();if(s3!==peg$FAILED){while(s3!==peg$FAILED){s2.push(s3);s3=peg$parseDecimalDigit()}}else{s2=peg$FAILED}if(s2!==peg$FAILED){s1=[s1,s2];s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}return s0}function peg$parseJsHexIntegerLiteral(){var s0,s1,s2,s3,s4;s0=peg$currPos;if(input.substr(peg$currPos,2).toLowerCase()===peg$c439){s1=input.substr(peg$currPos,2);peg$currPos+=2}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c440)}}if(s1!==peg$FAILED){s2=peg$currPos;s3=[];s4=peg$parseHexDigit();if(s4!==peg$FAILED){while(s4!==peg$FAILED){s3.push(s4);s4=peg$parseHexDigit()}}else{s3=peg$FAILED}if(s3!==peg$FAILED){s2=input.substring(s2,peg$currPos)}else{s2=s3}if(s2!==peg$FAILED){peg$savedPos=s0;s1=peg$c441(s2);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}return s0}function peg$parseJsBinaryIntegerLiteral(){var s0,s1,s2,s3,s4;s0=peg$currPos;if(input.substr(peg$currPos,2).toLowerCase()===peg$c442){s1=input.substr(peg$currPos,2);peg$currPos+=2}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c443)}}if(s1!==peg$FAILED){s2=peg$currPos;s3=[];s4=peg$parseBinaryDigit();if(s4!==peg$FAILED){while(s4!==peg$FAILED){s3.push(s4);s4=peg$parseBinaryDigit()}}else{s3=peg$FAILED}if(s3!==peg$FAILED){s2=input.substring(s2,peg$currPos)}else{s2=s3}if(s2!==peg$FAILED){peg$savedPos=s0;s1=peg$c444(s2);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}return s0}function peg$parseNonJsOctalIntegerLiteral(){var s0,s1,s2,s3,s4;s0=peg$currPos;if(input.substr(peg$currPos,2).toLowerCase()===peg$c445){s1=input.substr(peg$currPos,2);peg$currPos+=2}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c446)}}if(s1!==peg$FAILED){s2=peg$currPos;s3=[];s4=peg$parseOctalDigit();if(s4!==peg$FAILED){while(s4!==peg$FAILED){s3.push(s4);s4=peg$parseOctalDigit()}}else{s3=peg$FAILED}if(s3!==peg$FAILED){s2=input.substring(s2,peg$currPos)}else{s2=s3}if(s2!==peg$FAILED){peg$savedPos=s0;s1=peg$c447(s2);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}return s0}function peg$parseSemVer(){var s0,s1,s2,s3,s4,s5;s0=peg$currPos;s1=peg$parseIntegerLiteral();if(s1!==peg$FAILED){if(input.charCodeAt(peg$currPos)===46){s2=peg$c325;peg$currPos++}else{s2=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c326)}}if(s2!==peg$FAILED){s3=peg$parseIntegerLiteral();if(s3!==peg$FAILED){if(input.charCodeAt(peg$currPos)===46){s4=peg$c325;peg$currPos++}else{s4=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c326)}}if(s4!==peg$FAILED){s5=peg$parseIntegerLiteral();if(s5!==peg$FAILED){peg$savedPos=s0;s1=peg$c448(s1,s3,s5);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}return s0}function peg$parseUrlProtocol(){var s0;if(input.substr(peg$currPos,7)===peg$c459){s0=peg$c459;peg$currPos+=7}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c460)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,8)===peg$c461){s0=peg$c461;peg$currPos+=8}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c462)}}}return s0}function peg$parseURL(){var s0,s1,s2,s3;s0=peg$currPos;s1=peg$parseUrlProtocol();if(s1!==peg$FAILED){s2=[];if(peg$c463.test(input.charAt(peg$currPos))){s3=input.charAt(peg$currPos);peg$currPos++}else{s3=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c464)}}if(s3!==peg$FAILED){while(s3!==peg$FAILED){s2.push(s3);if(peg$c463.test(input.charAt(peg$currPos))){s3=input.charAt(peg$currPos);peg$currPos++}else{s3=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c464)}}}}else{s2=peg$FAILED}if(s2!==peg$FAILED){peg$savedPos=s0;s1=peg$c465();s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}return s0}function peg$parseSvgColorLabel(){var s0,s1;s0=peg$currPos;if(input.substr(peg$currPos,9)===peg$c466){s1=peg$c466;peg$currPos+=9}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c467)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c468()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,9)===peg$c469){s1=peg$c469;peg$currPos+=9}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c470)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c468()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,12)===peg$c471){s1=peg$c471;peg$currPos+=12}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c472)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c473()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,12)===peg$c474){s1=peg$c474;peg$currPos+=12}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c475)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c473()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,10)===peg$c476){s1=peg$c476;peg$currPos+=10}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c477)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c478()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,10)===peg$c479){s1=peg$c479;peg$currPos+=10}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c480)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c478()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,4)===peg$c481){s1=peg$c481;peg$currPos+=4}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c482)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c483()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,4)===peg$c484){s1=peg$c484;peg$currPos+=4}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c485)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c483()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,5)===peg$c486){s1=peg$c486;peg$currPos+=5}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c487)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c488()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,5)===peg$c489){s1=peg$c489;peg$currPos+=5}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c490)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c488()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,5)===peg$c491){s1=peg$c491;peg$currPos+=5}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c492)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c493()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,5)===peg$c494){s1=peg$c494;peg$currPos+=5}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c495)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c493()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,6)===peg$c496){s1=peg$c496;peg$currPos+=6}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c497)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c498()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,6)===peg$c499){s1=peg$c499;peg$currPos+=6}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c500)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c498()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,5)===peg$c501){s1=peg$c501;peg$currPos+=5}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c502)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c503()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,5)===peg$c504){s1=peg$c504;peg$currPos+=5}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c505)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c503()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,14)===peg$c506){s1=peg$c506;peg$currPos+=14}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c507)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c508()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,14)===peg$c509){s1=peg$c509;peg$currPos+=14}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c510)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c508()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,10)===peg$c511){s1=peg$c511;peg$currPos+=10}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c512)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c513()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,10)===peg$c514){s1=peg$c514;peg$currPos+=10}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c515)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c513()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,4)===peg$c516){s1=peg$c516;peg$currPos+=4}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c517)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c518()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,4)===peg$c519){s1=peg$c519;peg$currPos+=4}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c520)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c518()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,5)===peg$c521){s1=peg$c521;peg$currPos+=5}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c522)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c523()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,5)===peg$c524){s1=peg$c524;peg$currPos+=5}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c525)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c523()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,9)===peg$c526){s1=peg$c526;peg$currPos+=9}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c527)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c528()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,9)===peg$c529){s1=peg$c529;peg$currPos+=9}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c530)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c528()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,9)===peg$c531){s1=peg$c531;peg$currPos+=9}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c532)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c533()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,9)===peg$c534){s1=peg$c534;peg$currPos+=9}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c535)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c533()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,10)===peg$c536){s1=peg$c536;peg$currPos+=10}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c537)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c538()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,10)===peg$c539){s1=peg$c539;peg$currPos+=10}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c540)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c538()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,9)===peg$c541){s1=peg$c541;peg$currPos+=9}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c542)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c543()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,9)===peg$c544){s1=peg$c544;peg$currPos+=9}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c545)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c543()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,5)===peg$c546){s1=peg$c546;peg$currPos+=5}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c547)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c548()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,5)===peg$c549){s1=peg$c549;peg$currPos+=5}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c550)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c548()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,14)===peg$c551){s1=peg$c551;peg$currPos+=14}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c552)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c553()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,14)===peg$c554){s1=peg$c554;peg$currPos+=14}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c555)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c553()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,8)===peg$c556){s1=peg$c556;peg$currPos+=8}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c557)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c558()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,8)===peg$c559){s1=peg$c559;peg$currPos+=8}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c560)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c558()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,7)===peg$c561){s1=peg$c561;peg$currPos+=7}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c562)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c563()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,7)===peg$c564){s1=peg$c564;peg$currPos+=7}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c565)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c563()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,4)===peg$c566){s1=peg$c566;peg$currPos+=4}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c567)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c483()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,4)===peg$c568){s1=peg$c568;peg$currPos+=4}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c569)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c483()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,8)===peg$c570){s1=peg$c570;peg$currPos+=8}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c571)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c572()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,8)===peg$c573){s1=peg$c573;peg$currPos+=8}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c574)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c572()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,8)===peg$c575){s1=peg$c575;peg$currPos+=8}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c576)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c577()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,8)===peg$c578){s1=peg$c578;peg$currPos+=8}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c579)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c577()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,13)===peg$c580){s1=peg$c580;peg$currPos+=13}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c581)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c582()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,13)===peg$c583){s1=peg$c583;peg$currPos+=13}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c584)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c582()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,8)===peg$c585){s1=peg$c585;peg$currPos+=8}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c586)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c587()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,8)===peg$c588){s1=peg$c588;peg$currPos+=8}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c589)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c587()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,8)===peg$c590){s1=peg$c590;peg$currPos+=8}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c591)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c587()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,8)===peg$c592){s1=peg$c592;peg$currPos+=8}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c593)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c587()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,9)===peg$c594){s1=peg$c594;peg$currPos+=9}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c595)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c596()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,9)===peg$c597){s1=peg$c597;peg$currPos+=9}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c598)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c596()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,9)===peg$c599){s1=peg$c599;peg$currPos+=9}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c600)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c601()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,9)===peg$c602){s1=peg$c602;peg$currPos+=9}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c603)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c601()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,11)===peg$c604){s1=peg$c604;peg$currPos+=11}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c605)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c606()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,11)===peg$c607){s1=peg$c607;peg$currPos+=11}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c608)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c606()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,14)===peg$c609){s1=peg$c609;peg$currPos+=14}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c610)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c611()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,14)===peg$c612){s1=peg$c612;peg$currPos+=14}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c613)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c611()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,10)===peg$c614){s1=peg$c614;peg$currPos+=10}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c615)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c616()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,10)===peg$c617){s1=peg$c617;peg$currPos+=10}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c618)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c616()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,10)===peg$c619){s1=peg$c619;peg$currPos+=10}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c620)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c621()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,10)===peg$c622){s1=peg$c622;peg$currPos+=10}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c623)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c621()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,7)===peg$c624){s1=peg$c624;peg$currPos+=7}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c625)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c626()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,7)===peg$c627){s1=peg$c627;peg$currPos+=7}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c628)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c626()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,10)===peg$c629){s1=peg$c629;peg$currPos+=10}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c630)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c631()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,10)===peg$c632){s1=peg$c632;peg$currPos+=10}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c633)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c631()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,12)===peg$c634){s1=peg$c634;peg$currPos+=12}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c635)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c636()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,12)===peg$c637){s1=peg$c637;peg$currPos+=12}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c638)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c636()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,13)===peg$c639){s1=peg$c639;peg$currPos+=13}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c640)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c641()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,13)===peg$c642){s1=peg$c642;peg$currPos+=13}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c643)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c641()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,13)===peg$c644){s1=peg$c644;peg$currPos+=13}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c645)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c646()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,13)===peg$c647){s1=peg$c647;peg$currPos+=13}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c648)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c646()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,13)===peg$c649){s1=peg$c649;peg$currPos+=13}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c650)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c646()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,13)===peg$c651){s1=peg$c651;peg$currPos+=13}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c652)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c646()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,13)===peg$c653){s1=peg$c653;peg$currPos+=13}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c654)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c655()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,13)===peg$c656){s1=peg$c656;peg$currPos+=13}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c657)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c655()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,10)===peg$c658){s1=peg$c658;peg$currPos+=10}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c659)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c660()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,10)===peg$c661){s1=peg$c661;peg$currPos+=10}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c662)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c660()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,8)===peg$c663){s1=peg$c663;peg$currPos+=8}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c664)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c665()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,8)===peg$c666){s1=peg$c666;peg$currPos+=8}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c667)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c665()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,11)===peg$c668){s1=peg$c668;peg$currPos+=11}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c669)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c670()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,11)===peg$c671){s1=peg$c671;peg$currPos+=11}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c672)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c670()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,7)===peg$c673){s1=peg$c673;peg$currPos+=7}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c674)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c675()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,7)===peg$c676){s1=peg$c676;peg$currPos+=7}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c677)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c675()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,7)===peg$c678){s1=peg$c678;peg$currPos+=7}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c679)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c675()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,7)===peg$c680){s1=peg$c680;peg$currPos+=7}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c681)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c675()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,10)===peg$c682){s1=peg$c682;peg$currPos+=10}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c683)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c684()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,10)===peg$c685){s1=peg$c685;peg$currPos+=10}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c686)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c684()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,9)===peg$c687){s1=peg$c687;peg$currPos+=9}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c688)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c689()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,9)===peg$c690){s1=peg$c690;peg$currPos+=9}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c691)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c689()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,11)===peg$c692){s1=peg$c692;peg$currPos+=11}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c693)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c694()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,11)===peg$c695){s1=peg$c695;peg$currPos+=11}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c696)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c694()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,11)===peg$c697){s1=peg$c697;peg$currPos+=11}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c698)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c699()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,11)===peg$c700){s1=peg$c700;peg$currPos+=11}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c701)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c699()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,7)===peg$c702){s1=peg$c702;peg$currPos+=7}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c703)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c704()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,7)===peg$c705){s1=peg$c705;peg$currPos+=7}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c706)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c704()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,9)===peg$c707){s1=peg$c707;peg$currPos+=9}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c708)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c709()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,9)===peg$c710){s1=peg$c710;peg$currPos+=9}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c711)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c709()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,10)===peg$c712){s1=peg$c712;peg$currPos+=10}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c713)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c714()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,10)===peg$c715){s1=peg$c715;peg$currPos+=10}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c716)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c714()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,9)===peg$c717){s1=peg$c717;peg$currPos+=9}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c718)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c719()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,9)===peg$c720){s1=peg$c720;peg$currPos+=9}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c721)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c719()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,4)===peg$c722){s1=peg$c722;peg$currPos+=4}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c723)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c724()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,4)===peg$c725){s1=peg$c725;peg$currPos+=4}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c726)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c724()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,4)===peg$c727){s1=peg$c727;peg$currPos+=4}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c728)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c729()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,4)===peg$c730){s1=peg$c730;peg$currPos+=4}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c731)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c729()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,4)===peg$c732){s1=peg$c732;peg$currPos+=4}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c733)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c729()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,4)===peg$c734){s1=peg$c734;peg$currPos+=4}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c735)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c729()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,11)===peg$c736){s1=peg$c736;peg$currPos+=11}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c737)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c738()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,11)===peg$c739){s1=peg$c739;peg$currPos+=11}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c740)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c738()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,5)===peg$c741){s1=peg$c741;peg$currPos+=5}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c742)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c743()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,5)===peg$c744){s1=peg$c744;peg$currPos+=5}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c745)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c743()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,8)===peg$c746){s1=peg$c746;peg$currPos+=8}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c747)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c748()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,8)===peg$c749){s1=peg$c749;peg$currPos+=8}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c750)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c748()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,7)===peg$c751){s1=peg$c751;peg$currPos+=7}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c752)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c753()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,7)===peg$c754){s1=peg$c754;peg$currPos+=7}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c755)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c753()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,9)===peg$c756){s1=peg$c756;peg$currPos+=9}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c757)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c758()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,9)===peg$c759){s1=peg$c759;peg$currPos+=9}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c760)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c758()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,6)===peg$c761){s1=peg$c761;peg$currPos+=6}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c762)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c763()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,6)===peg$c764){s1=peg$c764;peg$currPos+=6}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c765)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c763()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,5)===peg$c766){s1=peg$c766;peg$currPos+=5}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c767)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c768()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,5)===peg$c769){s1=peg$c769;peg$currPos+=5}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c770)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c768()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,5)===peg$c771){s1=peg$c771;peg$currPos+=5}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c772)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c773()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,5)===peg$c774){s1=peg$c774;peg$currPos+=5}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c775)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c773()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,13)===peg$c776){s1=peg$c776;peg$currPos+=13}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c777)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c778()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,13)===peg$c779){s1=peg$c779;peg$currPos+=13}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c780)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c778()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,8)===peg$c781){s1=peg$c781;peg$currPos+=8}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c782)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c783()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,8)===peg$c784){s1=peg$c784;peg$currPos+=8}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c785)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c783()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,9)===peg$c786){s1=peg$c786;peg$currPos+=9}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c787)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c788()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,9)===peg$c789){s1=peg$c789;peg$currPos+=9}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c790)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c788()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,12)===peg$c791){s1=peg$c791;peg$currPos+=12}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c792)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c793()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,12)===peg$c794){s1=peg$c794;peg$currPos+=12}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c795)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c793()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,9)===peg$c796){s1=peg$c796;peg$currPos+=9}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c797)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c798()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,9)===peg$c799){s1=peg$c799;peg$currPos+=9}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c800)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c798()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,10)===peg$c801){s1=peg$c801;peg$currPos+=10}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c802)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c803()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,10)===peg$c804){s1=peg$c804;peg$currPos+=10}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c805)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c803()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,9)===peg$c806){s1=peg$c806;peg$currPos+=9}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c807)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c808()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,9)===peg$c809){s1=peg$c809;peg$currPos+=9}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c810)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c808()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,20)===peg$c811){s1=peg$c811;peg$currPos+=20}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c812)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c813()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,20)===peg$c814){s1=peg$c814;peg$currPos+=20}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c815)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c813()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,9)===peg$c816){s1=peg$c816;peg$currPos+=9}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c817)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c818()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,9)===peg$c819){s1=peg$c819;peg$currPos+=9}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c820)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c818()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,9)===peg$c821){s1=peg$c821;peg$currPos+=9}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c822)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c818()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,9)===peg$c823){s1=peg$c823;peg$currPos+=9}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c824)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c818()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,10)===peg$c825){s1=peg$c825;peg$currPos+=10}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c826)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c827()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,10)===peg$c828){s1=peg$c828;peg$currPos+=10}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c829)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c827()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,9)===peg$c830){s1=peg$c830;peg$currPos+=9}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c831)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c832()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,9)===peg$c833){s1=peg$c833;peg$currPos+=9}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c834)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c832()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,11)===peg$c835){s1=peg$c835;peg$currPos+=11}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c836)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c837()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,11)===peg$c838){s1=peg$c838;peg$currPos+=11}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c839)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c837()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,13)===peg$c840){s1=peg$c840;peg$currPos+=13}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c841)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c842()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,13)===peg$c843){s1=peg$c843;peg$currPos+=13}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c844)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c842()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,12)===peg$c845){s1=peg$c845;peg$currPos+=12}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c846)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c847()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,12)===peg$c848){s1=peg$c848;peg$currPos+=12}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c849)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c847()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,14)===peg$c850){s1=peg$c850;peg$currPos+=14}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c851)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c852()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,14)===peg$c853){s1=peg$c853;peg$currPos+=14}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c854)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c852()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,14)===peg$c855){s1=peg$c855;peg$currPos+=14}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c856)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c852()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,14)===peg$c857){s1=peg$c857;peg$currPos+=14}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c858)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c852()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,14)===peg$c859){s1=peg$c859;peg$currPos+=14}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c860)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c861()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,14)===peg$c862){s1=peg$c862;peg$currPos+=14}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c863)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c861()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,11)===peg$c864){s1=peg$c864;peg$currPos+=11}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c865)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c866()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,11)===peg$c867){s1=peg$c867;peg$currPos+=11}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c868)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c866()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,9)===peg$c869){s1=peg$c869;peg$currPos+=9}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c870)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c871()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,9)===peg$c872){s1=peg$c872;peg$currPos+=9}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c873)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c871()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,4)===peg$c874){s1=peg$c874;peg$currPos+=4}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c875)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c876()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,4)===peg$c877){s1=peg$c877;peg$currPos+=4}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c878)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c876()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,5)===peg$c879){s1=peg$c879;peg$currPos+=5}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c880)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c881()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,5)===peg$c882){s1=peg$c882;peg$currPos+=5}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c883)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c881()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,7)===peg$c884){s1=peg$c884;peg$currPos+=7}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c885)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c704()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,7)===peg$c886){s1=peg$c886;peg$currPos+=7}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c887)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c704()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,6)===peg$c888){s1=peg$c888;peg$currPos+=6}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c889)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c890()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,6)===peg$c891){s1=peg$c891;peg$currPos+=6}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c892)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c890()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,16)===peg$c893){s1=peg$c893;peg$currPos+=16}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c894)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c895()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,16)===peg$c896){s1=peg$c896;peg$currPos+=16}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c897)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c895()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,10)===peg$c898){s1=peg$c898;peg$currPos+=10}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c899)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c900()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,10)===peg$c901){s1=peg$c901;peg$currPos+=10}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c902)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c900()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,12)===peg$c903){s1=peg$c903;peg$currPos+=12}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c904)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c905()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,12)===peg$c906){s1=peg$c906;peg$currPos+=12}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c907)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c905()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,12)===peg$c908){s1=peg$c908;peg$currPos+=12}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c909)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c910()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,12)===peg$c911){s1=peg$c911;peg$currPos+=12}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c912)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c910()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,14)===peg$c913){s1=peg$c913;peg$currPos+=14}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c914)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c915()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,14)===peg$c916){s1=peg$c916;peg$currPos+=14}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c917)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c915()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,15)===peg$c918){s1=peg$c918;peg$currPos+=15}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c919)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c920()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,15)===peg$c921){s1=peg$c921;peg$currPos+=15}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c922)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c920()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,17)===peg$c923){s1=peg$c923;peg$currPos+=17}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c924)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c925()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,17)===peg$c926){s1=peg$c926;peg$currPos+=17}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c927)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c925()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,15)===peg$c928){s1=peg$c928;peg$currPos+=15}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c929)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c930()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,15)===peg$c931){s1=peg$c931;peg$currPos+=15}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c932)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c930()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,15)===peg$c933){s1=peg$c933;peg$currPos+=15}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c934)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c935()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,15)===peg$c936){s1=peg$c936;peg$currPos+=15}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c937)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c935()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,12)===peg$c938){s1=peg$c938;peg$currPos+=12}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c939)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c940()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,12)===peg$c941){s1=peg$c941;peg$currPos+=12}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c942)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c940()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,9)===peg$c943){s1=peg$c943;peg$currPos+=9}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c944)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c945()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,9)===peg$c946){s1=peg$c946;peg$currPos+=9}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c947)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c945()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,9)===peg$c948){s1=peg$c948;peg$currPos+=9}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c949)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c950()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,9)===peg$c951){s1=peg$c951;peg$currPos+=9}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c952)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c950()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,8)===peg$c953){s1=peg$c953;peg$currPos+=8}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c954)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c955()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,8)===peg$c956){s1=peg$c956;peg$currPos+=8}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c957)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c955()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,11)===peg$c958){s1=peg$c958;peg$currPos+=11}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c959)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c960()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,11)===peg$c961){s1=peg$c961;peg$currPos+=11}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c962)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c960()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,4)===peg$c963){s1=peg$c963;peg$currPos+=4}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c964)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c965()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,4)===peg$c966){s1=peg$c966;peg$currPos+=4}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c967)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c965()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,7)===peg$c968){s1=peg$c968;peg$currPos+=7}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c969)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c970()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,7)===peg$c971){s1=peg$c971;peg$currPos+=7}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c972)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c970()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,9)===peg$c973){s1=peg$c973;peg$currPos+=9}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c974)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c975()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,9)===peg$c976){s1=peg$c976;peg$currPos+=9}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c977)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c975()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,5)===peg$c978){s1=peg$c978;peg$currPos+=5}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c979)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c980()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,5)===peg$c981){s1=peg$c981;peg$currPos+=5}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c982)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c980()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,9)===peg$c983){s1=peg$c983;peg$currPos+=9}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c984)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c985()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,9)===peg$c986){s1=peg$c986;peg$currPos+=9}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c987)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c985()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,6)===peg$c988){s1=peg$c988;peg$currPos+=6}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c989)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c990()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,6)===peg$c991){s1=peg$c991;peg$currPos+=6}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c992)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c990()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,6)===peg$c993){s1=peg$c993;peg$currPos+=6}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c994)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c995()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,6)===peg$c996){s1=peg$c996;peg$currPos+=6}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c997)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c995()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,13)===peg$c998){s1=peg$c998;peg$currPos+=13}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c999)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1000()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,13)===peg$c1001){s1=peg$c1001;peg$currPos+=13}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1002)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1000()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,9)===peg$c1003){s1=peg$c1003;peg$currPos+=9}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1004)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1005()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,9)===peg$c1006){s1=peg$c1006;peg$currPos+=9}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1007)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1005()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,13)===peg$c1008){s1=peg$c1008;peg$currPos+=13}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1009)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1010()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,13)===peg$c1011){s1=peg$c1011;peg$currPos+=13}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1012)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1010()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,13)===peg$c1013){s1=peg$c1013;peg$currPos+=13}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1014)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1015()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,13)===peg$c1016){s1=peg$c1016;peg$currPos+=13}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1017)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1015()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,10)===peg$c1018){s1=peg$c1018;peg$currPos+=10}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1019)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1020()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,10)===peg$c1021){s1=peg$c1021;peg$currPos+=10}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1022)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1020()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,9)===peg$c1023){s1=peg$c1023;peg$currPos+=9}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1024)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1025()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,9)===peg$c1026){s1=peg$c1026;peg$currPos+=9}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1027)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1025()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,4)===peg$c1028){s1=peg$c1028;peg$currPos+=4}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1029)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1030()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,4)===peg$c1031){s1=peg$c1031;peg$currPos+=4}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1032)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1030()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,4)===peg$c1033){s1=peg$c1033;peg$currPos+=4}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1034)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1035()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,4)===peg$c1036){s1=peg$c1036;peg$currPos+=4}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1037)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1035()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,4)===peg$c1038){s1=peg$c1038;peg$currPos+=4}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1039)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1040()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,4)===peg$c1041){s1=peg$c1041;peg$currPos+=4}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1042)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1040()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,10)===peg$c1043){s1=peg$c1043;peg$currPos+=10}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1044)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1045()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,10)===peg$c1046){s1=peg$c1046;peg$currPos+=10}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1047)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1045()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,6)===peg$c1048){s1=peg$c1048;peg$currPos+=6}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1049)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1050()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,6)===peg$c1051){s1=peg$c1051;peg$currPos+=6}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1052)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1050()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,3)===peg$c1053){s1=peg$c1053;peg$currPos+=3}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1054)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1055()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,3)===peg$c1056){s1=peg$c1056;peg$currPos+=3}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1057)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1055()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,9)===peg$c1058){s1=peg$c1058;peg$currPos+=9}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1059)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1060()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,9)===peg$c1061){s1=peg$c1061;peg$currPos+=9}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1062)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1060()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,9)===peg$c1063){s1=peg$c1063;peg$currPos+=9}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1064)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1065()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,9)===peg$c1066){s1=peg$c1066;peg$currPos+=9}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1067)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1065()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,11)===peg$c1068){s1=peg$c1068;peg$currPos+=11}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1069)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1070()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,11)===peg$c1071){s1=peg$c1071;peg$currPos+=11}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1072)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1070()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,6)===peg$c1073){s1=peg$c1073;peg$currPos+=6}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1074)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1075()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,6)===peg$c1076){s1=peg$c1076;peg$currPos+=6}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1077)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1075()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,10)===peg$c1078){s1=peg$c1078;peg$currPos+=10}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1079)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1080()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,10)===peg$c1081){s1=peg$c1081;peg$currPos+=10}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1082)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1080()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,8)===peg$c1083){s1=peg$c1083;peg$currPos+=8}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1084)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1085()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,8)===peg$c1086){s1=peg$c1086;peg$currPos+=8}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1087)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1085()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,8)===peg$c1088){s1=peg$c1088;peg$currPos+=8}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1089)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1090()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,8)===peg$c1091){s1=peg$c1091;peg$currPos+=8}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1092)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1090()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,6)===peg$c1093){s1=peg$c1093;peg$currPos+=6}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1094)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1095()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,6)===peg$c1096){s1=peg$c1096;peg$currPos+=6}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1097)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1095()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,6)===peg$c1098){s1=peg$c1098;peg$currPos+=6}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1099)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1100()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,6)===peg$c1101){s1=peg$c1101;peg$currPos+=6}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1102)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1100()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,7)===peg$c1103){s1=peg$c1103;peg$currPos+=7}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1104)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1105()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,7)===peg$c1106){s1=peg$c1106;peg$currPos+=7}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1107)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1105()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,9)===peg$c1108){s1=peg$c1108;peg$currPos+=9}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1109)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1110()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,9)===peg$c1111){s1=peg$c1111;peg$currPos+=9}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1112)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1110()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,9)===peg$c1113){s1=peg$c1113;peg$currPos+=9}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1114)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1115()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,9)===peg$c1116){s1=peg$c1116;peg$currPos+=9}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1117)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1115()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,9)===peg$c1118){s1=peg$c1118;peg$currPos+=9}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1119)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1115()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,9)===peg$c1120){s1=peg$c1120;peg$currPos+=9}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1121)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1115()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,4)===peg$c1122){s1=peg$c1122;peg$currPos+=4}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1123)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1124()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,4)===peg$c1125){s1=peg$c1125;peg$currPos+=4}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1126)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1124()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,11)===peg$c1127){s1=peg$c1127;peg$currPos+=11}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1128)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1129()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,11)===peg$c1130){s1=peg$c1130;peg$currPos+=11}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1131)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1129()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,9)===peg$c1132){s1=peg$c1132;peg$currPos+=9}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1133)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1134()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,9)===peg$c1135){s1=peg$c1135;peg$currPos+=9}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1136)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1134()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,3)===peg$c1137){s1=peg$c1137;peg$currPos+=3}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1138)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1139()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,3)===peg$c1140){s1=peg$c1140;peg$currPos+=3}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1141)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1139()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,4)===peg$c1142){s1=peg$c1142;peg$currPos+=4}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1143)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1144()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,4)===peg$c1145){s1=peg$c1145;peg$currPos+=4}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1146)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1144()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,7)===peg$c1147){s1=peg$c1147;peg$currPos+=7}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1148)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1149()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,7)===peg$c1150){s1=peg$c1150;peg$currPos+=7}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1151)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1149()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,6)===peg$c1152){s1=peg$c1152;peg$currPos+=6}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1153)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1154()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,6)===peg$c1155){s1=peg$c1155;peg$currPos+=6}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1156)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1154()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,11)===peg$c1157){s1=peg$c1157;peg$currPos+=11}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1158)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1159()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,11)===peg$c1160){s1=peg$c1160;peg$currPos+=11}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1161)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1159()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,9)===peg$c1162){s1=peg$c1162;peg$currPos+=9}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1163)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1164()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,9)===peg$c1165){s1=peg$c1165;peg$currPos+=9}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1166)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1164()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,6)===peg$c1167){s1=peg$c1167;peg$currPos+=6}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1168)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1169()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,6)===peg$c1170){s1=peg$c1170;peg$currPos+=6}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1171)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1169()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,5)===peg$c1172){s1=peg$c1172;peg$currPos+=5}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1173)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1174()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,5)===peg$c1175){s1=peg$c1175;peg$currPos+=5}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1176)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1174()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,10)===peg$c1177){s1=peg$c1177;peg$currPos+=10}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1178)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1179()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,10)===peg$c1180){s1=peg$c1180;peg$currPos+=10}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1181)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1179()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,5)===peg$c1182){s1=peg$c1182;peg$currPos+=5}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1183)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1184()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,5)===peg$c1185){s1=peg$c1185;peg$currPos+=5}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1186)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1184()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,11)===peg$c1187){s1=peg$c1187;peg$currPos+=11}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1188)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1189()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,11)===peg$c1190){s1=peg$c1190;peg$currPos+=11}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1191)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1189()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,6)===peg$c1192){s1=peg$c1192;peg$currPos+=6}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1193)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1194()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,6)===peg$c1195){s1=peg$c1195;peg$currPos+=6}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1196)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1194()}s0=s1}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}return s0}function peg$parseSvgColor(){var s0,s1,s2;s0=peg$currPos;s1=peg$parseSvgColorLabel();if(s1!==peg$FAILED){s2=peg$parseWS();if(s2===peg$FAILED){s2=null}if(s2!==peg$FAILED){peg$savedPos=s0;s1=peg$c1197(s1);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}return s0}function peg$parseRgb3(){var s0,s1,s2,s3,s4,s5;s0=peg$currPos;if(input.charCodeAt(peg$currPos)===35){s1=peg$c1198;peg$currPos++}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1199)}}if(s1!==peg$FAILED){s2=peg$parseHexDigit();if(s2!==peg$FAILED){s3=peg$parseHexDigit();if(s3!==peg$FAILED){s4=peg$parseHexDigit();if(s4!==peg$FAILED){s5=peg$parseWS();if(s5===peg$FAILED){s5=null}if(s5!==peg$FAILED){peg$savedPos=s0;s1=peg$c1200(s2,s3,s4);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}return s0}function peg$parseRgb6(){var s0,s1,s2,s3,s4,s5,s6,s7,s8;s0=peg$currPos;if(input.charCodeAt(peg$currPos)===35){s1=peg$c1198;peg$currPos++}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1199)}}if(s1!==peg$FAILED){s2=peg$parseHexDigit();if(s2!==peg$FAILED){s3=peg$parseHexDigit();if(s3!==peg$FAILED){s4=peg$parseHexDigit();if(s4!==peg$FAILED){s5=peg$parseHexDigit();if(s5!==peg$FAILED){s6=peg$parseHexDigit();if(s6!==peg$FAILED){s7=peg$parseHexDigit();if(s7!==peg$FAILED){s8=peg$parseWS();if(s8===peg$FAILED){s8=null}if(s8!==peg$FAILED){peg$savedPos=s0;s1=peg$c1201(s2,s3,s4,s5,s6,s7);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}return s0}function peg$parseRgba4(){var s0,s1,s2,s3,s4,s5,s6;s0=peg$currPos;if(input.charCodeAt(peg$currPos)===35){s1=peg$c1198;peg$currPos++}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1199)}}if(s1!==peg$FAILED){s2=peg$parseHexDigit();if(s2!==peg$FAILED){s3=peg$parseHexDigit();if(s3!==peg$FAILED){s4=peg$parseHexDigit();if(s4!==peg$FAILED){s5=peg$parseHexDigit();if(s5!==peg$FAILED){s6=peg$parseWS();if(s6===peg$FAILED){s6=null}if(s6!==peg$FAILED){peg$savedPos=s0;s1=peg$c1202(s2,s3,s4,s5);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}return s0}function peg$parseRgba8(){var s0,s1,s2,s3,s4,s5,s6,s7,s8,s9,s10;s0=peg$currPos;if(input.charCodeAt(peg$currPos)===35){s1=peg$c1198;peg$currPos++}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1199)}}if(s1!==peg$FAILED){s2=peg$parseHexDigit();if(s2!==peg$FAILED){s3=peg$parseHexDigit();if(s3!==peg$FAILED){s4=peg$parseHexDigit();if(s4!==peg$FAILED){s5=peg$parseHexDigit();if(s5!==peg$FAILED){s6=peg$parseHexDigit();if(s6!==peg$FAILED){s7=peg$parseHexDigit();if(s7!==peg$FAILED){s8=peg$parseHexDigit();if(s8!==peg$FAILED){s9=peg$parseHexDigit();if(s9!==peg$FAILED){s10=peg$parseWS();if(s10===peg$FAILED){s10=null}if(s10!==peg$FAILED){peg$savedPos=s0;s1=peg$c1203(s2,s3,s4,s5,s6,s7,s8,s9);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}return s0}function peg$parseColor(){var s0;peg$silentFails++;s0=peg$parseSvgColor();if(s0===peg$FAILED){s0=peg$parseRgba8();if(s0===peg$FAILED){s0=peg$parseRgb6();if(s0===peg$FAILED){s0=peg$parseRgba4();if(s0===peg$FAILED){s0=peg$parseRgb3()}}}}peg$silentFails--;if(s0===peg$FAILED){if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1204)}}return s0}function peg$parseArrowItemKey(){var s0;if(input.substr(peg$currPos,9)===peg$c1205){s0=peg$c1205;peg$currPos+=9}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1206)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,10)===peg$c1207){s0=peg$c1207;peg$currPos+=10}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1208)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,10)===peg$c1209){s0=peg$c1209;peg$currPos+=10}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1210)}}}}return s0}function peg$parseArrowItem(){var s0,s1,s2,s3,s4,s5,s6,s7,s8,s9;s0=peg$currPos;s1=peg$parseWS();if(s1===peg$FAILED){s1=null}if(s1!==peg$FAILED){s2=peg$parseArrowItemKey();if(s2!==peg$FAILED){s3=peg$parseWS();if(s3===peg$FAILED){s3=null}if(s3!==peg$FAILED){if(input.charCodeAt(peg$currPos)===58){s4=peg$c1211;peg$currPos++}else{s4=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1212)}}if(s4!==peg$FAILED){s5=peg$parseWS();if(s5===peg$FAILED){s5=null}if(s5!==peg$FAILED){s6=peg$parseLabel();if(s6!==peg$FAILED){s7=peg$parseWS();if(s7===peg$FAILED){s7=null}if(s7!==peg$FAILED){if(input.charCodeAt(peg$currPos)===59){s8=peg$c1213;peg$currPos++}else{s8=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1214)}}if(s8!==peg$FAILED){s9=peg$parseWS();if(s9===peg$FAILED){s9=null}if(s9!==peg$FAILED){peg$savedPos=s0;s1=peg$c1215(s2,s6);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}return s0}function peg$parseSingleEdgeColor(){var s0,s1,s2,s3,s4,s5,s6,s7,s8,s9;peg$silentFails++;s0=peg$currPos;s1=peg$parseWS();if(s1===peg$FAILED){s1=null}if(s1!==peg$FAILED){if(input.substr(peg$currPos,10)===peg$c1217){s2=peg$c1217;peg$currPos+=10}else{s2=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1218)}}if(s2!==peg$FAILED){s3=peg$parseWS();if(s3===peg$FAILED){s3=null}if(s3!==peg$FAILED){if(input.charCodeAt(peg$currPos)===58){s4=peg$c1211;peg$currPos++}else{s4=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1212)}}if(s4!==peg$FAILED){s5=peg$parseWS();if(s5===peg$FAILED){s5=null}if(s5!==peg$FAILED){s6=peg$currPos;s7=peg$parseColor();if(s7!==peg$FAILED){peg$savedPos=s6;s7=peg$c1219(s7)}s6=s7;if(s6!==peg$FAILED){s7=peg$parseWS();if(s7===peg$FAILED){s7=null}if(s7!==peg$FAILED){if(input.charCodeAt(peg$currPos)===59){s8=peg$c1213;peg$currPos++}else{s8=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1214)}}if(s8!==peg$FAILED){s9=peg$parseWS();if(s9===peg$FAILED){s9=null}if(s9!==peg$FAILED){peg$savedPos=s0;s1=peg$c1220(s6);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}if(s0===peg$FAILED){s0=peg$currPos;s1=peg$parseWS();if(s1===peg$FAILED){s1=null}if(s1!==peg$FAILED){if(input.substr(peg$currPos,10)===peg$c1221){s2=peg$c1221;peg$currPos+=10}else{s2=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1222)}}if(s2!==peg$FAILED){s3=peg$parseWS();if(s3===peg$FAILED){s3=null}if(s3!==peg$FAILED){if(input.charCodeAt(peg$currPos)===58){s4=peg$c1211;peg$currPos++}else{s4=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1212)}}if(s4!==peg$FAILED){s5=peg$parseWS();if(s5===peg$FAILED){s5=null}if(s5!==peg$FAILED){s6=peg$currPos;s7=peg$parseColor();if(s7!==peg$FAILED){peg$savedPos=s6;s7=peg$c1219(s7)}s6=s7;if(s6!==peg$FAILED){s7=peg$parseWS();if(s7===peg$FAILED){s7=null}if(s7!==peg$FAILED){if(input.charCodeAt(peg$currPos)===59){s8=peg$c1213;peg$currPos++}else{s8=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1214)}}if(s8!==peg$FAILED){s9=peg$parseWS();if(s9===peg$FAILED){s9=null}if(s9!==peg$FAILED){peg$savedPos=s0;s1=peg$c1220(s6);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}peg$silentFails--;if(s0===peg$FAILED){s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1216)}}return s0}function peg$parseTransitionLineStyle(){var s0,s1,s2,s3,s4,s5,s6,s7,s8,s9;peg$silentFails++;s0=peg$currPos;s1=peg$parseWS();if(s1===peg$FAILED){s1=null}if(s1!==peg$FAILED){if(input.substr(peg$currPos,10)===peg$c1224){s2=peg$c1224;peg$currPos+=10}else{s2=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1225)}}if(s2!==peg$FAILED){s3=peg$parseWS();if(s3===peg$FAILED){s3=null}if(s3!==peg$FAILED){if(input.charCodeAt(peg$currPos)===58){s4=peg$c1211;peg$currPos++}else{s4=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1212)}}if(s4!==peg$FAILED){s5=peg$parseWS();if(s5===peg$FAILED){s5=null}if(s5!==peg$FAILED){s6=peg$parseLineStyle();if(s6!==peg$FAILED){s7=peg$parseWS();if(s7===peg$FAILED){s7=null}if(s7!==peg$FAILED){if(input.charCodeAt(peg$currPos)===59){s8=peg$c1213;peg$currPos++}else{s8=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1214)}}if(s8!==peg$FAILED){s9=peg$parseWS();if(s9===peg$FAILED){s9=null}if(s9!==peg$FAILED){peg$savedPos=s0;s1=peg$c1226(s6);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}peg$silentFails--;if(s0===peg$FAILED){s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1223)}}return s0}function peg$parseArrowItems(){var s0,s1;s0=peg$parseSingleEdgeColor();if(s0===peg$FAILED){s0=peg$parseTransitionLineStyle();if(s0===peg$FAILED){s0=[];s1=peg$parseArrowItem();if(s1!==peg$FAILED){while(s1!==peg$FAILED){s0.push(s1);s1=peg$parseArrowItem()}}else{s0=peg$FAILED}}}return s0}function peg$parseArrowDesc(){var s0,s1,s2,s3,s4,s5;s0=peg$currPos;if(input.charCodeAt(peg$currPos)===123){s1=peg$c1227;peg$currPos++}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1228)}}if(s1!==peg$FAILED){s2=peg$parseWS();if(s2===peg$FAILED){s2=null}if(s2!==peg$FAILED){s3=peg$parseArrowItems();if(s3===peg$FAILED){s3=null}if(s3!==peg$FAILED){s4=peg$parseWS();if(s4===peg$FAILED){s4=null}if(s4!==peg$FAILED){if(input.charCodeAt(peg$currPos)===125){s5=peg$c1229;peg$currPos++}else{s5=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1230)}}if(s5!==peg$FAILED){peg$savedPos=s0;s1=peg$c1231(s3);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}return s0}function peg$parseArrowProbability(){var s0,s1,s2;s0=peg$currPos;s1=peg$parseNonNegNumber();if(s1!==peg$FAILED){if(input.charCodeAt(peg$currPos)===37){s2=peg$c1232;peg$currPos++}else{s2=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1233)}}if(s2!==peg$FAILED){peg$savedPos=s0;s1=peg$c1234(s1);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}return s0}var peg$timetype_alts=[[12,peg$c1235,peg$c1236,peg$c1237,109],[11,peg$c1238,peg$c1239,peg$c1237,109],[5,peg$c1240,peg$c1241,peg$c1237,109],[4,peg$c1242,peg$c1243,peg$c1237,109],[2,peg$c1244,peg$c1245,peg$c1237,109],[7,peg$c1246,peg$c1247,peg$c1248,115],[6,peg$c1249,peg$c1250,peg$c1248,115],[4,peg$c1251,peg$c1252,peg$c1248,115],[3,peg$c1253,peg$c1254,peg$c1248,115],[1,peg$c1255,peg$c1256,peg$c1248,115],[7,peg$c1257,peg$c1258,peg$c1259,109],[6,peg$c1260,peg$c1261,peg$c1259,109],[4,peg$c1262,peg$c1263,peg$c1259,109],[3,peg$c1264,peg$c1265,peg$c1259,109],[1,peg$c1266,peg$c1267,peg$c1259,109],[5,peg$c1268,peg$c1269,peg$c1270,104],[4,peg$c1271,peg$c1272,peg$c1270,104],[3,peg$c1273,peg$c1274,peg$c1270,104],[2,peg$c1275,peg$c1276,peg$c1270,104],[1,peg$c1277,peg$c1278,peg$c1270,104],[4,peg$c1279,peg$c1280,peg$c1281,100],[3,peg$c1282,peg$c1283,peg$c1281,100],[1,peg$c1284,peg$c1285,peg$c1281,100],[5,peg$c1286,peg$c1287,peg$c1288,119],[4,peg$c1289,peg$c1290,peg$c1288,119],[3,peg$c1291,peg$c1292,peg$c1288,119],[2,peg$c1293,peg$c1294,peg$c1288,119],[1,peg$c1295,peg$c1296,peg$c1288,119]];function peg$parseTimeType(){var i,j,alt,start;var c=input.charCodeAt(peg$currPos);for(i=0;i<28;i++){alt=peg$timetype_alts[i];if(alt[4]!==c){continue}if(alt[0]!==1&&input.substr(peg$currPos,alt[0])!==alt[1]){continue}if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){for(j=0;j<i;j++){peg$fail(peg$timetype_alts[j][2])}}start=peg$currPos;peg$currPos+=alt[0];peg$savedPos=start;return alt[3]()}if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){for(j=0;j<28;j++){peg$fail(peg$timetype_alts[j][2])}}return peg$FAILED}function peg$parseArrowAfter(){var s0,s1,s2,s3,s4,s5;s0=peg$currPos;if(input.substr(peg$currPos,5)===peg$c1297){s1=peg$c1297;peg$currPos+=5}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1298)}}if(s1!==peg$FAILED){s2=peg$parseWS();if(s2!==peg$FAILED){s3=peg$parseNonNegNumber();if(s3!==peg$FAILED){s4=peg$parseWS();if(s4===peg$FAILED){s4=null}if(s4!==peg$FAILED){s5=peg$parseTimeType();if(s5===peg$FAILED){s5=null}if(s5!==peg$FAILED){peg$savedPos=s0;s1=peg$c1299(s3,s5);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}return s0}function peg$parseLabelList(){var s0,s1,s2,s3,s4,s5,s6;s0=peg$currPos;if(input.charCodeAt(peg$currPos)===91){s1=peg$c11;peg$currPos++}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c12)}}if(s1!==peg$FAILED){s2=peg$parseWS();if(s2===peg$FAILED){s2=null}if(s2!==peg$FAILED){s3=[];s4=peg$currPos;s5=peg$parseLabel();if(s5!==peg$FAILED){s6=peg$parseWS();if(s6===peg$FAILED){s6=null}if(s6!==peg$FAILED){s5=[s5,s6];s4=s5}else{peg$currPos=s4;s4=peg$FAILED}}else{peg$currPos=s4;s4=peg$FAILED}while(s4!==peg$FAILED){s3.push(s4);s4=peg$currPos;s5=peg$parseLabel();if(s5!==peg$FAILED){s6=peg$parseWS();if(s6===peg$FAILED){s6=null}if(s6!==peg$FAILED){s5=[s5,s6];s4=s5}else{peg$currPos=s4;s4=peg$FAILED}}else{peg$currPos=s4;s4=peg$FAILED}}if(s3!==peg$FAILED){if(input.charCodeAt(peg$currPos)===93){s4=peg$c13;peg$currPos++}else{s4=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c14)}}if(s4!==peg$FAILED){peg$savedPos=s0;s1=peg$c1300(s3);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}return s0}function peg$parseLabelOrLabelList(){var s0;s0=peg$parseLabelList();if(s0===peg$FAILED){s0=peg$parseLabel()}return s0}function peg$parseGroupRef(){var s0,s1,s2,s3;peg$silentFails++;s0=peg$currPos;if(input.charCodeAt(peg$currPos)===38){s1=peg$c1302;peg$currPos++}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1303)}}if(s1!==peg$FAILED){s2=peg$parseWS();if(s2===peg$FAILED){s2=null}if(s2!==peg$FAILED){s3=peg$parseLabel();if(s3!==peg$FAILED){peg$savedPos=s0;s1=peg$c1304(s3);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}peg$silentFails--;if(s0===peg$FAILED){s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1301)}}return s0}function peg$parseGroupMember(){var s0,s1,s2,s3,s4,s5;s0=peg$currPos;if(input.substr(peg$currPos,3)===peg$c1305){s1=peg$c1305;peg$currPos+=3}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1306)}}if(s1!==peg$FAILED){s2=peg$parseWS();if(s2===peg$FAILED){s2=null}if(s2!==peg$FAILED){if(input.charCodeAt(peg$currPos)===38){s3=peg$c1302;peg$currPos++}else{s3=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1303)}}if(s3!==peg$FAILED){s4=peg$parseWS();if(s4===peg$FAILED){s4=null}if(s4!==peg$FAILED){s5=peg$parseLabel();if(s5!==peg$FAILED){peg$savedPos=s0;s1=peg$c1307(s5);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}if(s0===peg$FAILED){s0=peg$currPos;if(input.charCodeAt(peg$currPos)===38){s1=peg$c1302;peg$currPos++}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1303)}}if(s1!==peg$FAILED){s2=peg$parseWS();if(s2===peg$FAILED){s2=null}if(s2!==peg$FAILED){s3=peg$parseLabel();if(s3!==peg$FAILED){peg$savedPos=s0;s1=peg$c1308(s3);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}if(s0===peg$FAILED){s0=peg$currPos;s1=peg$parseLabel();if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1309(s1)}s0=s1}}return s0}function peg$parseGroupMemberList(){var s0,s1,s2,s3,s4,s5,s6;s0=peg$currPos;if(input.charCodeAt(peg$currPos)===91){s1=peg$c11;peg$currPos++}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c12)}}if(s1!==peg$FAILED){s2=peg$parseWS();if(s2===peg$FAILED){s2=null}if(s2!==peg$FAILED){s3=[];s4=peg$currPos;s5=peg$parseGroupMember();if(s5!==peg$FAILED){s6=peg$parseWS();if(s6===peg$FAILED){s6=null}if(s6!==peg$FAILED){s5=[s5,s6];s4=s5}else{peg$currPos=s4;s4=peg$FAILED}}else{peg$currPos=s4;s4=peg$FAILED}while(s4!==peg$FAILED){s3.push(s4);s4=peg$currPos;s5=peg$parseGroupMember();if(s5!==peg$FAILED){s6=peg$parseWS();if(s6===peg$FAILED){s6=null}if(s6!==peg$FAILED){s5=[s5,s6];s4=s5}else{peg$currPos=s4;s4=peg$FAILED}}else{peg$currPos=s4;s4=peg$FAILED}}if(s3!==peg$FAILED){if(input.charCodeAt(peg$currPos)===93){s4=peg$c13;peg$currPos++}else{s4=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c14)}}if(s4!==peg$FAILED){peg$savedPos=s0;s1=peg$c1310(s3);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}return s0}function peg$parseStripe(){var s0,s1,s2,s3,s4,s5,s6;var cg=input.charCodeAt(peg$currPos);if(cg!==43&&cg!==45){if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1312);peg$fail(peg$c1315)}return peg$FAILED}s0=peg$currPos;if(input.substr(peg$currPos,2)===peg$c1311){s1=peg$c1311;peg$currPos+=2}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1312)}}if(s1!==peg$FAILED){s2=peg$currPos;s3=peg$currPos;s4=peg$parseNonZeroDigit();if(s4!==peg$FAILED){s5=[];s6=peg$parseDecimalDigit();while(s6!==peg$FAILED){s5.push(s6);s6=peg$parseDecimalDigit()}if(s5!==peg$FAILED){s4=[s4,s5];s3=s4}else{peg$currPos=s3;s3=peg$FAILED}}else{peg$currPos=s3;s3=peg$FAILED}if(s3!==peg$FAILED){s2=input.substring(s2,peg$currPos)}else{s2=s3}if(s2!==peg$FAILED){peg$savedPos=s0;s1=peg$c1313(s2);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,2)===peg$c1314){s1=peg$c1314;peg$currPos+=2}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1315)}}if(s1!==peg$FAILED){s2=peg$currPos;s3=peg$currPos;s4=peg$parseNonZeroDigit();if(s4!==peg$FAILED){s5=[];s6=peg$parseDecimalDigit();while(s6!==peg$FAILED){s5.push(s6);s6=peg$parseDecimalDigit()}if(s5!==peg$FAILED){s4=[s4,s5];s3=s4}else{peg$currPos=s3;s3=peg$FAILED}}else{peg$currPos=s3;s3=peg$FAILED}if(s3!==peg$FAILED){s2=input.substring(s2,peg$currPos)}else{s2=s3}if(s2!==peg$FAILED){peg$savedPos=s0;s1=peg$c1316(s2);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}return s0}function peg$parseCycle(){var s0,s1,s2,s3,s4,s5,s6;var cg=input.charCodeAt(peg$currPos);if(cg!==43&&cg!==45){if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1318);peg$fail(peg$c1321);peg$fail(peg$c1324)}return peg$FAILED}s0=peg$currPos;if(input.charCodeAt(peg$currPos)===43){s1=peg$c1317;peg$currPos++}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1318)}}if(s1!==peg$FAILED){s2=peg$currPos;s3=peg$currPos;s4=peg$parseNonZeroDigit();if(s4!==peg$FAILED){s5=[];s6=peg$parseDecimalDigit();while(s6!==peg$FAILED){s5.push(s6);s6=peg$parseDecimalDigit()}if(s5!==peg$FAILED){s4=[s4,s5];s3=s4}else{peg$currPos=s3;s3=peg$FAILED}}else{peg$currPos=s3;s3=peg$FAILED}if(s3!==peg$FAILED){s2=input.substring(s2,peg$currPos)}else{s2=s3}if(s2!==peg$FAILED){peg$savedPos=s0;s1=peg$c1319(s2);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}if(s0===peg$FAILED){s0=peg$currPos;if(input.charCodeAt(peg$currPos)===45){s1=peg$c1320;peg$currPos++}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1321)}}if(s1!==peg$FAILED){s2=peg$currPos;s3=peg$currPos;s4=peg$parseNonZeroDigit();if(s4!==peg$FAILED){s5=[];s6=peg$parseDecimalDigit();while(s6!==peg$FAILED){s5.push(s6);s6=peg$parseDecimalDigit()}if(s5!==peg$FAILED){s4=[s4,s5];s3=s4}else{peg$currPos=s3;s3=peg$FAILED}}else{peg$currPos=s3;s3=peg$FAILED}if(s3!==peg$FAILED){s2=input.substring(s2,peg$currPos)}else{s2=s3}if(s2!==peg$FAILED){peg$savedPos=s0;s1=peg$c1322(s2);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,2)===peg$c1323){s1=peg$c1323;peg$currPos+=2}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1324)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1325()}s0=s1}}return s0}function peg$parseArrowTarget(){var s0;s0=peg$parseStripe();if(s0===peg$FAILED){s0=peg$parseCycle();if(s0===peg$FAILED){s0=peg$parseLabelList();if(s0===peg$FAILED){s0=peg$parseGroupRef();if(s0===peg$FAILED){s0=peg$parseLabel()}}}}return s0}function peg$parseArrowDecoration(){var s0,s1;s0=peg$currPos;s1=peg$parseArrowAfter();if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1326(s1)}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;s1=peg$parseActionLabel();if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1327(s1)}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;s1=peg$parseArrowProbability();if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1328(s1)}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;s1=peg$parseArrowDesc();if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1329(s1)}s0=s1}}}return s0}function peg$parseArrowDecorations(){var s0,s1,s2,s3;s0=[];s1=peg$currPos;s2=peg$parseArrowDecoration();if(s2!==peg$FAILED){s3=peg$parseWS();if(s3===peg$FAILED){s3=null}if(s3!==peg$FAILED){peg$savedPos=s1;s2=peg$c1330(s2);s1=s2}else{peg$currPos=s1;s1=peg$FAILED}}else{peg$currPos=s1;s1=peg$FAILED}while(s1!==peg$FAILED){s0.push(s1);s1=peg$currPos;s2=peg$parseArrowDecoration();if(s2!==peg$FAILED){s3=peg$parseWS();if(s3===peg$FAILED){s3=null}if(s3!==peg$FAILED){peg$savedPos=s1;s2=peg$c1330(s2);s1=s2}else{peg$currPos=s1;s1=peg$FAILED}}else{peg$currPos=s1;s1=peg$FAILED}}return s0}function peg$parseSubexp(){var s0,s1,s2,s3,s4,s5,s6,s7,s8,s9,s10;s0=peg$currPos;s1=peg$parseWS();if(s1===peg$FAILED){s1=null}if(s1!==peg$FAILED){s2=peg$parseArrowDecorations();if(s2!==peg$FAILED){s3=peg$parseWS();if(s3===peg$FAILED){s3=null}if(s3!==peg$FAILED){s4=peg$parseArrow();if(s4!==peg$FAILED){s5=peg$parseWS();if(s5===peg$FAILED){s5=null}if(s5!==peg$FAILED){s6=peg$parseArrowDecorations();if(s6!==peg$FAILED){s7=peg$parseWS();if(s7===peg$FAILED){s7=null}if(s7!==peg$FAILED){s8=peg$currPos;s9=peg$parseArrowTarget();if(s9!==peg$FAILED){peg$savedPos=s8;s9=peg$c1331(s2,s4,s6,s9)}s8=s9;if(s8!==peg$FAILED){s9=peg$parseWS();if(s9===peg$FAILED){s9=null}if(s9!==peg$FAILED){s10=peg$parseSubexp();if(s10===peg$FAILED){s10=null}if(s10!==peg$FAILED){peg$savedPos=s0;s1=peg$c1332(s2,s4,s6,s8,s10);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}return s0}function peg$parseExp(){var s0,s1,s2,s3,s4,s5;s0=peg$currPos;s1=peg$currPos;s2=peg$parseArrowTarget();if(s2!==peg$FAILED){peg$savedPos=s1;s2=peg$c1333(s2)}s1=s2;if(s1!==peg$FAILED){s2=peg$parseSubexp();if(s2!==peg$FAILED){s3=peg$parseWS();if(s3===peg$FAILED){s3=null}if(s3!==peg$FAILED){if(input.charCodeAt(peg$currPos)===59){s4=peg$c1213;peg$currPos++}else{s4=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1214)}}if(s4!==peg$FAILED){s5=peg$parseWS();if(s5===peg$FAILED){s5=null}if(s5!==peg$FAILED){peg$savedPos=s0;s1=peg$c1334(s1,s2);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}return s0}function peg$parseGvizLayout(){var s0;if(input.substr(peg$currPos,3)===peg$c1335){s0=peg$c1335;peg$currPos+=3}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1336)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,5)===peg$c1337){s0=peg$c1337;peg$currPos+=5}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1338)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,3)===peg$c1339){s0=peg$c1339;peg$currPos+=3}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1340)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,5)===peg$c1341){s0=peg$c1341;peg$currPos+=5}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1342)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,5)===peg$c1343){s0=peg$c1343;peg$currPos+=5}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1344)}}}}}}return s0}function peg$parseStateItems(){var s0,s1;s0=[];s1=peg$parseStateDeclarationItem();if(s1!==peg$FAILED){while(s1!==peg$FAILED){s0.push(s1);s1=peg$parseStateDeclarationItem()}}else{s0=peg$FAILED}return s0}function peg$parseConfigState(){var s0,s1,s2,s3,s4,s5,s6,s7,s8,s9,s10,s11;s0=peg$currPos;s1=peg$parseWS();if(s1===peg$FAILED){s1=null}if(s1!==peg$FAILED){if(input.substr(peg$currPos,5)===peg$c1345){s2=peg$c1345;peg$currPos+=5}else{s2=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1346)}}if(s2!==peg$FAILED){s3=peg$parseWS();if(s3===peg$FAILED){s3=null}if(s3!==peg$FAILED){if(input.charCodeAt(peg$currPos)===58){s4=peg$c1211;peg$currPos++}else{s4=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1212)}}if(s4!==peg$FAILED){s5=peg$parseWS();if(s5===peg$FAILED){s5=null}if(s5!==peg$FAILED){if(input.charCodeAt(peg$currPos)===123){s6=peg$c1227;peg$currPos++}else{s6=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1228)}}if(s6!==peg$FAILED){s7=peg$parseWS();if(s7===peg$FAILED){s7=null}if(s7!==peg$FAILED){s8=peg$parseStateItems();if(s8===peg$FAILED){s8=null}if(s8!==peg$FAILED){s9=peg$parseWS();if(s9===peg$FAILED){s9=null}if(s9!==peg$FAILED){if(input.substr(peg$currPos,2)===peg$c1347){s10=peg$c1347;peg$currPos+=2}else{s10=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1348)}}if(s10!==peg$FAILED){s11=peg$parseWS();if(s11===peg$FAILED){s11=null}if(s11!==peg$FAILED){peg$savedPos=s0;s1=peg$c1349(s8);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}return s0}function peg$parseConfigStartState(){var s0,s1,s2,s3,s4,s5,s6,s7,s8,s9,s10,s11;s0=peg$currPos;s1=peg$parseWS();if(s1===peg$FAILED){s1=null}if(s1!==peg$FAILED){if(input.substr(peg$currPos,11)===peg$c1350){s2=peg$c1350;peg$currPos+=11}else{s2=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1351)}}if(s2!==peg$FAILED){s3=peg$parseWS();if(s3===peg$FAILED){s3=null}if(s3!==peg$FAILED){if(input.charCodeAt(peg$currPos)===58){s4=peg$c1211;peg$currPos++}else{s4=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1212)}}if(s4!==peg$FAILED){s5=peg$parseWS();if(s5===peg$FAILED){s5=null}if(s5!==peg$FAILED){if(input.charCodeAt(peg$currPos)===123){s6=peg$c1227;peg$currPos++}else{s6=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1228)}}if(s6!==peg$FAILED){s7=peg$parseWS();if(s7===peg$FAILED){s7=null}if(s7!==peg$FAILED){s8=peg$parseStateItems();if(s8===peg$FAILED){s8=null}if(s8!==peg$FAILED){s9=peg$parseWS();if(s9===peg$FAILED){s9=null}if(s9!==peg$FAILED){if(input.substr(peg$currPos,2)===peg$c1347){s10=peg$c1347;peg$currPos+=2}else{s10=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1348)}}if(s10!==peg$FAILED){s11=peg$parseWS();if(s11===peg$FAILED){s11=null}if(s11!==peg$FAILED){peg$savedPos=s0;s1=peg$c1352(s8);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}return s0}function peg$parseConfigEndState(){var s0,s1,s2,s3,s4,s5,s6,s7,s8,s9,s10,s11;s0=peg$currPos;s1=peg$parseWS();if(s1===peg$FAILED){s1=null}if(s1!==peg$FAILED){if(input.substr(peg$currPos,9)===peg$c1353){s2=peg$c1353;peg$currPos+=9}else{s2=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1354)}}if(s2!==peg$FAILED){s3=peg$parseWS();if(s3===peg$FAILED){s3=null}if(s3!==peg$FAILED){if(input.charCodeAt(peg$currPos)===58){s4=peg$c1211;peg$currPos++}else{s4=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1212)}}if(s4!==peg$FAILED){s5=peg$parseWS();if(s5===peg$FAILED){s5=null}if(s5!==peg$FAILED){if(input.charCodeAt(peg$currPos)===123){s6=peg$c1227;peg$currPos++}else{s6=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1228)}}if(s6!==peg$FAILED){s7=peg$parseWS();if(s7===peg$FAILED){s7=null}if(s7!==peg$FAILED){s8=peg$parseStateItems();if(s8===peg$FAILED){s8=null}if(s8!==peg$FAILED){s9=peg$parseWS();if(s9===peg$FAILED){s9=null}if(s9!==peg$FAILED){if(input.substr(peg$currPos,2)===peg$c1347){s10=peg$c1347;peg$currPos+=2}else{s10=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1348)}}if(s10!==peg$FAILED){s11=peg$parseWS();if(s11===peg$FAILED){s11=null}if(s11!==peg$FAILED){peg$savedPos=s0;s1=peg$c1355(s8);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}return s0}function peg$parseConfigActiveState(){var s0,s1,s2,s3,s4,s5,s6,s7,s8,s9,s10,s11;s0=peg$currPos;s1=peg$parseWS();if(s1===peg$FAILED){s1=null}if(s1!==peg$FAILED){if(input.substr(peg$currPos,12)===peg$c1356){s2=peg$c1356;peg$currPos+=12}else{s2=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1357)}}if(s2!==peg$FAILED){s3=peg$parseWS();if(s3===peg$FAILED){s3=null}if(s3!==peg$FAILED){if(input.charCodeAt(peg$currPos)===58){s4=peg$c1211;peg$currPos++}else{s4=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1212)}}if(s4!==peg$FAILED){s5=peg$parseWS();if(s5===peg$FAILED){s5=null}if(s5!==peg$FAILED){if(input.charCodeAt(peg$currPos)===123){s6=peg$c1227;peg$currPos++}else{s6=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1228)}}if(s6!==peg$FAILED){s7=peg$parseWS();if(s7===peg$FAILED){s7=null}if(s7!==peg$FAILED){s8=peg$parseStateItems();if(s8===peg$FAILED){s8=null}if(s8!==peg$FAILED){s9=peg$parseWS();if(s9===peg$FAILED){s9=null}if(s9!==peg$FAILED){if(input.substr(peg$currPos,2)===peg$c1347){s10=peg$c1347;peg$currPos+=2}else{s10=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1348)}}if(s10!==peg$FAILED){s11=peg$parseWS();if(s11===peg$FAILED){s11=null}if(s11!==peg$FAILED){peg$savedPos=s0;s1=peg$c1358(s8);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}return s0}function peg$parseConfigTerminalState(){var s0,s1,s2,s3,s4,s5,s6,s7,s8,s9,s10,s11;s0=peg$currPos;s1=peg$parseWS();if(s1===peg$FAILED){s1=null}if(s1!==peg$FAILED){if(input.substr(peg$currPos,14)===peg$c1359){s2=peg$c1359;peg$currPos+=14}else{s2=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1360)}}if(s2!==peg$FAILED){s3=peg$parseWS();if(s3===peg$FAILED){s3=null}if(s3!==peg$FAILED){if(input.charCodeAt(peg$currPos)===58){s4=peg$c1211;peg$currPos++}else{s4=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1212)}}if(s4!==peg$FAILED){s5=peg$parseWS();if(s5===peg$FAILED){s5=null}if(s5!==peg$FAILED){if(input.charCodeAt(peg$currPos)===123){s6=peg$c1227;peg$currPos++}else{s6=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1228)}}if(s6!==peg$FAILED){s7=peg$parseWS();if(s7===peg$FAILED){s7=null}if(s7!==peg$FAILED){s8=peg$parseStateItems();if(s8===peg$FAILED){s8=null}if(s8!==peg$FAILED){s9=peg$parseWS();if(s9===peg$FAILED){s9=null}if(s9!==peg$FAILED){if(input.substr(peg$currPos,2)===peg$c1347){s10=peg$c1347;peg$currPos+=2}else{s10=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1348)}}if(s10!==peg$FAILED){s11=peg$parseWS();if(s11===peg$FAILED){s11=null}if(s11!==peg$FAILED){peg$savedPos=s0;s1=peg$c1361(s8);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}return s0}function peg$parseConfigHookedState(){var s0,s1,s2,s3,s4,s5,s6,s7,s8,s9,s10,s11;s0=peg$currPos;s1=peg$parseWS();if(s1===peg$FAILED){s1=null}if(s1!==peg$FAILED){if(input.substr(peg$currPos,12)===peg$c1362){s2=peg$c1362;peg$currPos+=12}else{s2=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1363)}}if(s2!==peg$FAILED){s3=peg$parseWS();if(s3===peg$FAILED){s3=null}if(s3!==peg$FAILED){if(input.charCodeAt(peg$currPos)===58){s4=peg$c1211;peg$currPos++}else{s4=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1212)}}if(s4!==peg$FAILED){s5=peg$parseWS();if(s5===peg$FAILED){s5=null}if(s5!==peg$FAILED){if(input.charCodeAt(peg$currPos)===123){s6=peg$c1227;peg$currPos++}else{s6=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1228)}}if(s6!==peg$FAILED){s7=peg$parseWS();if(s7===peg$FAILED){s7=null}if(s7!==peg$FAILED){s8=peg$parseStateItems();if(s8===peg$FAILED){s8=null}if(s8!==peg$FAILED){s9=peg$parseWS();if(s9===peg$FAILED){s9=null}if(s9!==peg$FAILED){if(input.substr(peg$currPos,2)===peg$c1347){s10=peg$c1347;peg$currPos+=2}else{s10=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1348)}}if(s10!==peg$FAILED){s11=peg$parseWS();if(s11===peg$FAILED){s11=null}if(s11!==peg$FAILED){peg$savedPos=s0;s1=peg$c1364(s8);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}return s0}function peg$parseConfigAnyState(){var s0;s0=peg$parseConfigState();if(s0===peg$FAILED){s0=peg$parseConfigStartState();if(s0===peg$FAILED){s0=peg$parseConfigEndState();if(s0===peg$FAILED){s0=peg$parseConfigActiveState();if(s0===peg$FAILED){s0=peg$parseConfigTerminalState();if(s0===peg$FAILED){s0=peg$parseConfigHookedState()}}}}}return s0}function peg$parseGraphDefaultEdgeColor(){var s0,s1,s2,s3,s4,s5,s6,s7,s8,s9;peg$silentFails++;s0=peg$currPos;s1=peg$parseWS();if(s1===peg$FAILED){s1=null}if(s1!==peg$FAILED){if(input.substr(peg$currPos,10)===peg$c1217){s2=peg$c1217;peg$currPos+=10}else{s2=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1218)}}if(s2!==peg$FAILED){s3=peg$parseWS();if(s3===peg$FAILED){s3=null}if(s3!==peg$FAILED){if(input.charCodeAt(peg$currPos)===58){s4=peg$c1211;peg$currPos++}else{s4=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1212)}}if(s4!==peg$FAILED){s5=peg$parseWS();if(s5===peg$FAILED){s5=null}if(s5!==peg$FAILED){s6=peg$currPos;s7=peg$parseColor();if(s7!==peg$FAILED){peg$savedPos=s6;s7=peg$c1219(s7)}s6=s7;if(s6!==peg$FAILED){s7=peg$parseWS();if(s7===peg$FAILED){s7=null}if(s7!==peg$FAILED){if(input.charCodeAt(peg$currPos)===59){s8=peg$c1213;peg$currPos++}else{s8=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1214)}}if(s8!==peg$FAILED){s9=peg$parseWS();if(s9===peg$FAILED){s9=null}if(s9!==peg$FAILED){peg$savedPos=s0;s1=peg$c1366(s6);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}if(s0===peg$FAILED){s0=peg$currPos;s1=peg$parseWS();if(s1===peg$FAILED){s1=null}if(s1!==peg$FAILED){if(input.substr(peg$currPos,10)===peg$c1221){s2=peg$c1221;peg$currPos+=10}else{s2=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1222)}}if(s2!==peg$FAILED){s3=peg$parseWS();if(s3===peg$FAILED){s3=null}if(s3!==peg$FAILED){if(input.charCodeAt(peg$currPos)===58){s4=peg$c1211;peg$currPos++}else{s4=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1212)}}if(s4!==peg$FAILED){s5=peg$parseWS();if(s5===peg$FAILED){s5=null}if(s5!==peg$FAILED){s6=peg$currPos;s7=peg$parseColor();if(s7!==peg$FAILED){peg$savedPos=s6;s7=peg$c1219(s7)}s6=s7;if(s6!==peg$FAILED){s7=peg$parseWS();if(s7===peg$FAILED){s7=null}if(s7!==peg$FAILED){if(input.charCodeAt(peg$currPos)===59){s8=peg$c1213;peg$currPos++}else{s8=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1214)}}if(s8!==peg$FAILED){s9=peg$parseWS();if(s9===peg$FAILED){s9=null}if(s9!==peg$FAILED){peg$savedPos=s0;s1=peg$c1366(s6);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}peg$silentFails--;if(s0===peg$FAILED){s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1365)}}return s0}function peg$parseConfigStyleItems(){var s0,s1,s2;s0=peg$parseGraphDefaultEdgeColor();if(s0===peg$FAILED){s0=peg$currPos;s1=[];s2=peg$parseStateDeclarationItem();if(s2!==peg$FAILED){while(s2!==peg$FAILED){s1.push(s2);s2=peg$parseStateDeclarationItem()}}else{s1=peg$FAILED}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1231(s1)}s0=s1}return s0}function peg$parseConfigTransition(){var s0,s1,s2,s3,s4,s5,s6,s7,s8,s9,s10,s11;s0=peg$currPos;s1=peg$parseWS();if(s1===peg$FAILED){s1=null}if(s1!==peg$FAILED){if(input.substr(peg$currPos,10)===peg$c1367){s2=peg$c1367;peg$currPos+=10}else{s2=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1368)}}if(s2!==peg$FAILED){s3=peg$parseWS();if(s3===peg$FAILED){s3=null}if(s3!==peg$FAILED){if(input.charCodeAt(peg$currPos)===58){s4=peg$c1211;peg$currPos++}else{s4=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1212)}}if(s4!==peg$FAILED){s5=peg$parseWS();if(s5===peg$FAILED){s5=null}if(s5!==peg$FAILED){if(input.charCodeAt(peg$currPos)===123){s6=peg$c1227;peg$currPos++}else{s6=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1228)}}if(s6!==peg$FAILED){s7=peg$parseWS();if(s7===peg$FAILED){s7=null}if(s7!==peg$FAILED){s8=peg$parseConfigStyleItems();if(s8===peg$FAILED){s8=null}if(s8!==peg$FAILED){s9=peg$parseWS();if(s9===peg$FAILED){s9=null}if(s9!==peg$FAILED){if(input.substr(peg$currPos,2)===peg$c1347){s10=peg$c1347;peg$currPos+=2}else{s10=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1348)}}if(s10!==peg$FAILED){s11=peg$parseWS();if(s11===peg$FAILED){s11=null}if(s11!==peg$FAILED){peg$savedPos=s0;s1=peg$c1369(s8);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}return s0}function peg$parseConfigGraph(){var s0,s1,s2,s3,s4,s5,s6,s7,s8,s9,s10,s11;s0=peg$currPos;s1=peg$parseWS();if(s1===peg$FAILED){s1=null}if(s1!==peg$FAILED){if(input.substr(peg$currPos,5)===peg$c1370){s2=peg$c1370;peg$currPos+=5}else{s2=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1371)}}if(s2!==peg$FAILED){s3=peg$parseWS();if(s3===peg$FAILED){s3=null}if(s3!==peg$FAILED){if(input.charCodeAt(peg$currPos)===58){s4=peg$c1211;peg$currPos++}else{s4=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1212)}}if(s4!==peg$FAILED){s5=peg$parseWS();if(s5===peg$FAILED){s5=null}if(s5!==peg$FAILED){if(input.charCodeAt(peg$currPos)===123){s6=peg$c1227;peg$currPos++}else{s6=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1228)}}if(s6!==peg$FAILED){s7=peg$parseWS();if(s7===peg$FAILED){s7=null}if(s7!==peg$FAILED){s8=peg$parseConfigStyleItems();if(s8===peg$FAILED){s8=null}if(s8!==peg$FAILED){s9=peg$parseWS();if(s9===peg$FAILED){s9=null}if(s9!==peg$FAILED){if(input.substr(peg$currPos,2)===peg$c1347){s10=peg$c1347;peg$currPos+=2}else{s10=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1348)}}if(s10!==peg$FAILED){s11=peg$parseWS();if(s11===peg$FAILED){s11=null}if(s11!==peg$FAILED){peg$savedPos=s0;s1=peg$c1372(s8);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}return s0}function peg$parseConfigEditor(){var s0,s1,s2,s3,s4,s5,s6,s7,s8,s9,s10,s11;s0=peg$currPos;s1=peg$parseWS();if(s1===peg$FAILED){s1=null}if(s1!==peg$FAILED){if(input.substr(peg$currPos,6)===peg$c1373){s2=peg$c1373;peg$currPos+=6}else{s2=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1374)}}if(s2!==peg$FAILED){s3=peg$parseWS();if(s3===peg$FAILED){s3=null}if(s3!==peg$FAILED){if(input.charCodeAt(peg$currPos)===58){s4=peg$c1211;peg$currPos++}else{s4=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1212)}}if(s4!==peg$FAILED){s5=peg$parseWS();if(s5===peg$FAILED){s5=null}if(s5!==peg$FAILED){if(input.charCodeAt(peg$currPos)===123){s6=peg$c1227;peg$currPos++}else{s6=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1228)}}if(s6!==peg$FAILED){s7=peg$parseWS();if(s7===peg$FAILED){s7=null}if(s7!==peg$FAILED){s8=[];s9=peg$parseEditorConfigItem();while(s9!==peg$FAILED){s8.push(s9);s9=peg$parseEditorConfigItem()}if(s8!==peg$FAILED){s9=peg$parseWS();if(s9===peg$FAILED){s9=null}if(s9!==peg$FAILED){if(input.substr(peg$currPos,2)===peg$c1347){s10=peg$c1347;peg$currPos+=2}else{s10=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1348)}}if(s10!==peg$FAILED){s11=peg$parseWS();if(s11===peg$FAILED){s11=null}if(s11!==peg$FAILED){peg$savedPos=s0;s1=peg$c1375(s8);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}return s0}function peg$parseEditorConfigItem(){var s0;s0=peg$parseEditorStochasticRunCount();if(s0===peg$FAILED){s0=peg$parseEditorPanels()}return s0}function peg$parseEditorStochasticRunCount(){var s0,s1,s2,s3,s4,s5,s6,s7,s8,s9;s0=peg$currPos;s1=peg$parseWS();if(s1===peg$FAILED){s1=null}if(s1!==peg$FAILED){if(input.substr(peg$currPos,20)===peg$c1376){s2=peg$c1376;peg$currPos+=20}else{s2=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1377)}}if(s2!==peg$FAILED){s3=peg$parseWS();if(s3===peg$FAILED){s3=null}if(s3!==peg$FAILED){if(input.charCodeAt(peg$currPos)===58){s4=peg$c1211;peg$currPos++}else{s4=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1212)}}if(s4!==peg$FAILED){s5=peg$parseWS();if(s5===peg$FAILED){s5=null}if(s5!==peg$FAILED){s6=peg$parseIntegerLiteral();if(s6!==peg$FAILED){s7=peg$parseWS();if(s7===peg$FAILED){s7=null}if(s7!==peg$FAILED){if(input.charCodeAt(peg$currPos)===59){s8=peg$c1213;peg$currPos++}else{s8=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1214)}}if(s8!==peg$FAILED){s9=peg$parseWS();if(s9===peg$FAILED){s9=null}if(s9!==peg$FAILED){peg$savedPos=s0;s1=peg$c1378(s6);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}return s0}function peg$parseEditorPanels(){var s0,s1,s2,s3,s4,s5,s6,s7,s8,s9;s0=peg$currPos;s1=peg$parseWS();if(s1===peg$FAILED){s1=null}if(s1!==peg$FAILED){if(input.substr(peg$currPos,6)===peg$c1379){s2=peg$c1379;peg$currPos+=6}else{s2=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1380)}}if(s2!==peg$FAILED){s3=peg$parseWS();if(s3===peg$FAILED){s3=null}if(s3!==peg$FAILED){if(input.charCodeAt(peg$currPos)===58){s4=peg$c1211;peg$currPos++}else{s4=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1212)}}if(s4!==peg$FAILED){s5=peg$parseWS();if(s5===peg$FAILED){s5=null}if(s5!==peg$FAILED){s6=peg$parseLabelList();if(s6!==peg$FAILED){s7=peg$parseWS();if(s7===peg$FAILED){s7=null}if(s7!==peg$FAILED){if(input.charCodeAt(peg$currPos)===59){s8=peg$c1213;peg$currPos++}else{s8=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1214)}}if(s8!==peg$FAILED){s9=peg$parseWS();if(s9===peg$FAILED){s9=null}if(s9!==peg$FAILED){peg$savedPos=s0;s1=peg$c1381(s6);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}return s0}function peg$parseConfigGraphLayout(){var s0,s1,s2,s3,s4,s5,s6,s7,s8,s9;s0=peg$currPos;s1=peg$parseWS();if(s1===peg$FAILED){s1=null}if(s1!==peg$FAILED){if(input.substr(peg$currPos,12)===peg$c1382){s2=peg$c1382;peg$currPos+=12}else{s2=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1383)}}if(s2!==peg$FAILED){s3=peg$parseWS();if(s3===peg$FAILED){s3=null}if(s3!==peg$FAILED){if(input.charCodeAt(peg$currPos)===58){s4=peg$c1211;peg$currPos++}else{s4=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1212)}}if(s4!==peg$FAILED){s5=peg$parseWS();if(s5===peg$FAILED){s5=null}if(s5!==peg$FAILED){s6=peg$parseGvizLayout();if(s6!==peg$FAILED){s7=peg$parseWS();if(s7===peg$FAILED){s7=null}if(s7!==peg$FAILED){if(input.charCodeAt(peg$currPos)===59){s8=peg$c1213;peg$currPos++}else{s8=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1214)}}if(s8!==peg$FAILED){s9=peg$parseWS();if(s9===peg$FAILED){s9=null}if(s9!==peg$FAILED){peg$savedPos=s0;s1=peg$c1384(s6);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}return s0}function peg$parseConfigStartNodes(){var s0,s1,s2,s3,s4,s5,s6,s7,s8,s9;s0=peg$currPos;s1=peg$parseWS();if(s1===peg$FAILED){s1=null}if(s1!==peg$FAILED){if(input.substr(peg$currPos,12)===peg$c1385){s2=peg$c1385;peg$currPos+=12}else{s2=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1386)}}if(s2!==peg$FAILED){s3=peg$parseWS();if(s3===peg$FAILED){s3=null}if(s3!==peg$FAILED){if(input.charCodeAt(peg$currPos)===58){s4=peg$c1211;peg$currPos++}else{s4=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1212)}}if(s4!==peg$FAILED){s5=peg$parseWS();if(s5===peg$FAILED){s5=null}if(s5!==peg$FAILED){s6=peg$parseLabelList();if(s6!==peg$FAILED){s7=peg$parseWS();if(s7===peg$FAILED){s7=null}if(s7!==peg$FAILED){if(input.charCodeAt(peg$currPos)===59){s8=peg$c1213;peg$currPos++}else{s8=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1214)}}if(s8!==peg$FAILED){s9=peg$parseWS();if(s9===peg$FAILED){s9=null}if(s9!==peg$FAILED){peg$savedPos=s0;s1=peg$c1387(s6);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}return s0}function peg$parseConfigEndNodes(){var s0,s1,s2,s3,s4,s5,s6,s7,s8,s9;s0=peg$currPos;s1=peg$parseWS();if(s1===peg$FAILED){s1=null}if(s1!==peg$FAILED){if(input.substr(peg$currPos,10)===peg$c1388){s2=peg$c1388;peg$currPos+=10}else{s2=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1389)}}if(s2!==peg$FAILED){s3=peg$parseWS();if(s3===peg$FAILED){s3=null}if(s3!==peg$FAILED){if(input.charCodeAt(peg$currPos)===58){s4=peg$c1211;peg$currPos++}else{s4=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1212)}}if(s4!==peg$FAILED){s5=peg$parseWS();if(s5===peg$FAILED){s5=null}if(s5!==peg$FAILED){s6=peg$parseLabelList();if(s6!==peg$FAILED){s7=peg$parseWS();if(s7===peg$FAILED){s7=null}if(s7!==peg$FAILED){if(input.charCodeAt(peg$currPos)===59){s8=peg$c1213;peg$currPos++}else{s8=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1214)}}if(s8!==peg$FAILED){s9=peg$parseWS();if(s9===peg$FAILED){s9=null}if(s9!==peg$FAILED){peg$savedPos=s0;s1=peg$c1390(s6);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}return s0}function peg$parseConfigFailedOutputs(){var s0,s1,s2,s3,s4,s5,s6,s7,s8,s9;s0=peg$currPos;s1=peg$parseWS();if(s1===peg$FAILED){s1=null}if(s1!==peg$FAILED){if(input.substr(peg$currPos,14)===peg$c1391){s2=peg$c1391;peg$currPos+=14}else{s2=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1392)}}if(s2!==peg$FAILED){s3=peg$parseWS();if(s3===peg$FAILED){s3=null}if(s3!==peg$FAILED){if(input.charCodeAt(peg$currPos)===58){s4=peg$c1211;peg$currPos++}else{s4=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1212)}}if(s4!==peg$FAILED){s5=peg$parseWS();if(s5===peg$FAILED){s5=null}if(s5!==peg$FAILED){s6=peg$currPos;s7=peg$parseLabelOrLabelList();if(s7!==peg$FAILED){peg$savedPos=s6;s7=peg$c1219(s7)}s6=s7;if(s6!==peg$FAILED){s7=peg$parseWS();if(s7===peg$FAILED){s7=null}if(s7!==peg$FAILED){if(input.charCodeAt(peg$currPos)===59){s8=peg$c1213;peg$currPos++}else{s8=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1214)}}if(s8!==peg$FAILED){s9=peg$parseWS();if(s9===peg$FAILED){s9=null}if(s9!==peg$FAILED){peg$savedPos=s0;s1=peg$c1393(s6);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}return s0}function peg$parseConfigGraphBgColor(){var s0,s1,s2,s3,s4,s5,s6,s7,s8,s9;s0=peg$currPos;s1=peg$parseWS();if(s1===peg$FAILED){s1=null}if(s1!==peg$FAILED){if(input.substr(peg$currPos,14)===peg$c1394){s2=peg$c1394;peg$currPos+=14}else{s2=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1395)}}if(s2!==peg$FAILED){s3=peg$parseWS();if(s3===peg$FAILED){s3=null}if(s3!==peg$FAILED){if(input.charCodeAt(peg$currPos)===58){s4=peg$c1211;peg$currPos++}else{s4=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1212)}}if(s4!==peg$FAILED){s5=peg$parseWS();if(s5===peg$FAILED){s5=null}if(s5!==peg$FAILED){s6=peg$currPos;s7=peg$parseColor();if(s7!==peg$FAILED){peg$savedPos=s6;s7=peg$c1219(s7)}s6=s7;if(s6!==peg$FAILED){s7=peg$parseWS();if(s7===peg$FAILED){s7=null}if(s7!==peg$FAILED){if(input.charCodeAt(peg$currPos)===59){s8=peg$c1213;peg$currPos++}else{s8=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1214)}}if(s8!==peg$FAILED){s9=peg$parseWS();if(s9===peg$FAILED){s9=null}if(s9!==peg$FAILED){peg$savedPos=s0;s1=peg$c1396(s6);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}return s0}function peg$parseConfigAllowsOverride(){var s0,s1,s2,s3,s4,s5,s6,s7,s8,s9;s0=peg$currPos;s1=peg$parseWS();if(s1===peg$FAILED){s1=null}if(s1!==peg$FAILED){if(input.substr(peg$currPos,15)===peg$c1397){s2=peg$c1397;peg$currPos+=15}else{s2=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1398)}}if(s2!==peg$FAILED){s3=peg$parseWS();if(s3===peg$FAILED){s3=null}if(s3!==peg$FAILED){if(input.charCodeAt(peg$currPos)===58){s4=peg$c1211;peg$currPos++}else{s4=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1212)}}if(s4!==peg$FAILED){s5=peg$parseWS();if(s5===peg$FAILED){s5=null}if(s5!==peg$FAILED){s6=peg$parseOverrideT();if(s6!==peg$FAILED){s7=peg$parseWS();if(s7===peg$FAILED){s7=null}if(s7!==peg$FAILED){if(input.charCodeAt(peg$currPos)===59){s8=peg$c1213;peg$currPos++}else{s8=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1214)}}if(s8!==peg$FAILED){s9=peg$parseWS();if(s9===peg$FAILED){s9=null}if(s9!==peg$FAILED){peg$savedPos=s0;s1=peg$c1399(s6);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}return s0}function peg$parseConfigAllowIslands(){var s0,s1,s2,s3,s4,s5,s6,s7,s8,s9;s0=peg$currPos;s1=peg$parseWS();if(s1===peg$FAILED){s1=null}if(s1!==peg$FAILED){if(input.substr(peg$currPos,13)===peg$c1400){s2=peg$c1400;peg$currPos+=13}else{s2=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1401)}}if(s2!==peg$FAILED){s3=peg$parseWS();if(s3===peg$FAILED){s3=null}if(s3!==peg$FAILED){if(input.charCodeAt(peg$currPos)===58){s4=peg$c1211;peg$currPos++}else{s4=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1212)}}if(s4!==peg$FAILED){s5=peg$parseWS();if(s5===peg$FAILED){s5=null}if(s5!==peg$FAILED){s6=peg$currPos;s7=peg$parseIslandsT();if(s7!==peg$FAILED){peg$savedPos=s6;s7=peg$c1219(s7)}s6=s7;if(s6!==peg$FAILED){s7=peg$parseWS();if(s7===peg$FAILED){s7=null}if(s7!==peg$FAILED){if(input.charCodeAt(peg$currPos)===59){s8=peg$c1213;peg$currPos++}else{s8=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1214)}}if(s8!==peg$FAILED){s9=peg$parseWS();if(s9===peg$FAILED){s9=null}if(s9!==peg$FAILED){peg$savedPos=s0;s1=peg$c1402(s6);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}return s0}function peg$parseOverrideT(){var s0,s1;s0=peg$currPos;if(input.substr(peg$currPos,4)===peg$c230){s1=peg$c230;peg$currPos+=4}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c231)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1403()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,5)===peg$c233){s1=peg$c233;peg$currPos+=5}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c234)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1404()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,9)===peg$c279){s1=peg$c279;peg$currPos+=9}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c280)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c281()}s0=s1}}return s0}function peg$parseIslandsT(){var s0,s1;s0=peg$currPos;if(input.substr(peg$currPos,10)===peg$c1405){s1=peg$c1405;peg$currPos+=10}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1406)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1407()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,4)===peg$c230){s1=peg$c230;peg$currPos+=4}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c231)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1408()}s0=s1;if(s0===peg$FAILED){s0=peg$currPos;if(input.substr(peg$currPos,5)===peg$c233){s1=peg$c233;peg$currPos+=5}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c234)}}if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1409()}s0=s1}}return s0}function peg$parseConfig(){var s0;peg$silentFails++;s0=peg$parseConfigGraphLayout();if(s0===peg$FAILED){s0=peg$parseConfigStartNodes();if(s0===peg$FAILED){s0=peg$parseConfigEndNodes();if(s0===peg$FAILED){s0=peg$parseConfigFailedOutputs();if(s0===peg$FAILED){s0=peg$parseConfigTransition();if(s0===peg$FAILED){s0=peg$parseConfigGraph();if(s0===peg$FAILED){s0=peg$parseConfigEditor();if(s0===peg$FAILED){s0=peg$parseConfigAnyState();if(s0===peg$FAILED){s0=peg$parseConfigGraphBgColor();if(s0===peg$FAILED){s0=peg$parseConfigAllowsOverride();if(s0===peg$FAILED){s0=peg$parseConfigAllowIslands()}}}}}}}}}}peg$silentFails--;if(s0===peg$FAILED){if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1410)}}return s0}function peg$parseLicenseOrLabelOrList(){var s0;if(input.substr(peg$currPos,3)===peg$c1411){s0=peg$c1411;peg$currPos+=3}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1412)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,12)===peg$c1413){s0=peg$c1413;peg$currPos+=12}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1414)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,12)===peg$c1415){s0=peg$c1415;peg$currPos+=12}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1416)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,10)===peg$c1417){s0=peg$c1417;peg$currPos+=10}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1418)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,11)===peg$c1419){s0=peg$c1419;peg$currPos+=11}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1420)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,13)===peg$c1421){s0=peg$c1421;peg$currPos+=13}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1422)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,6)===peg$c1423){s0=peg$c1423;peg$currPos+=6}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1424)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,6)===peg$c1425){s0=peg$c1425;peg$currPos+=6}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1426)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,9)===peg$c1427){s0=peg$c1427;peg$currPos+=9}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1428)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,9)===peg$c1429){s0=peg$c1429;peg$currPos+=9}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1430)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,7)===peg$c1431){s0=peg$c1431;peg$currPos+=7}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1432)}}if(s0===peg$FAILED){s0=peg$parseLabel();if(s0===peg$FAILED){s0=peg$parseLabelList()}}}}}}}}}}}}return s0}function peg$parseDirection(){var s0;peg$silentFails++;if(input.substr(peg$currPos,2)===peg$c1434){s0=peg$c1434;peg$currPos+=2}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1435)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,5)===peg$c1436){s0=peg$c1436;peg$currPos+=5}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1437)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,4)===peg$c1438){s0=peg$c1438;peg$currPos+=4}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1439)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,4)===peg$c1440){s0=peg$c1440;peg$currPos+=4}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1441)}}}}}peg$silentFails--;if(s0===peg$FAILED){if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1433)}}return s0}function peg$parseHookDefinition(){var s0;peg$silentFails++;if(input.substr(peg$currPos,4)===peg$c1443){s0=peg$c1443;peg$currPos+=4}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1444)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,6)===peg$c1445){s0=peg$c1445;peg$currPos+=6}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1446)}}}peg$silentFails--;if(s0===peg$FAILED){if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1442)}}return s0}function peg$parseMachineAuthor(){var s0,s1,s2,s3,s4,s5,s6,s7,s8,s9;s0=peg$currPos;s1=peg$parseWS();if(s1===peg$FAILED){s1=null}if(s1!==peg$FAILED){if(input.substr(peg$currPos,14)===peg$c1447){s2=peg$c1447;peg$currPos+=14}else{s2=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1448)}}if(s2!==peg$FAILED){s3=peg$parseWS();if(s3===peg$FAILED){s3=null}if(s3!==peg$FAILED){if(input.charCodeAt(peg$currPos)===58){s4=peg$c1211;peg$currPos++}else{s4=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1212)}}if(s4!==peg$FAILED){s5=peg$parseWS();if(s5===peg$FAILED){s5=null}if(s5!==peg$FAILED){s6=peg$currPos;s7=peg$parseLabelOrLabelList();if(s7!==peg$FAILED){peg$savedPos=s6;s7=peg$c1219(s7)}s6=s7;if(s6!==peg$FAILED){s7=peg$parseWS();if(s7===peg$FAILED){s7=null}if(s7!==peg$FAILED){if(input.charCodeAt(peg$currPos)===59){s8=peg$c1213;peg$currPos++}else{s8=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1214)}}if(s8!==peg$FAILED){s9=peg$parseWS();if(s9===peg$FAILED){s9=null}if(s9!==peg$FAILED){peg$savedPos=s0;s1=peg$c1449(s6);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}return s0}function peg$parseMachineContributor(){var s0,s1,s2,s3,s4,s5,s6,s7,s8,s9;s0=peg$currPos;s1=peg$parseWS();if(s1===peg$FAILED){s1=null}if(s1!==peg$FAILED){if(input.substr(peg$currPos,19)===peg$c1450){s2=peg$c1450;peg$currPos+=19}else{s2=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1451)}}if(s2!==peg$FAILED){s3=peg$parseWS();if(s3===peg$FAILED){s3=null}if(s3!==peg$FAILED){if(input.charCodeAt(peg$currPos)===58){s4=peg$c1211;peg$currPos++}else{s4=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1212)}}if(s4!==peg$FAILED){s5=peg$parseWS();if(s5===peg$FAILED){s5=null}if(s5!==peg$FAILED){s6=peg$currPos;s7=peg$parseLabelOrLabelList();if(s7!==peg$FAILED){peg$savedPos=s6;s7=peg$c1219(s7)}s6=s7;if(s6!==peg$FAILED){s7=peg$parseWS();if(s7===peg$FAILED){s7=null}if(s7!==peg$FAILED){if(input.charCodeAt(peg$currPos)===59){s8=peg$c1213;peg$currPos++}else{s8=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1214)}}if(s8!==peg$FAILED){s9=peg$parseWS();if(s9===peg$FAILED){s9=null}if(s9!==peg$FAILED){peg$savedPos=s0;s1=peg$c1452(s6);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}return s0}function peg$parseMachineComment(){var s0,s1,s2,s3,s4,s5,s6,s7,s8,s9;s0=peg$currPos;s1=peg$parseWS();if(s1===peg$FAILED){s1=null}if(s1!==peg$FAILED){if(input.substr(peg$currPos,15)===peg$c1453){s2=peg$c1453;peg$currPos+=15}else{s2=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1454)}}if(s2!==peg$FAILED){s3=peg$parseWS();if(s3===peg$FAILED){s3=null}if(s3!==peg$FAILED){if(input.charCodeAt(peg$currPos)===58){s4=peg$c1211;peg$currPos++}else{s4=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1212)}}if(s4!==peg$FAILED){s5=peg$parseWS();if(s5===peg$FAILED){s5=null}if(s5!==peg$FAILED){s6=peg$currPos;s7=peg$parseLabelOrLabelList();if(s7!==peg$FAILED){peg$savedPos=s6;s7=peg$c1219(s7)}s6=s7;if(s6!==peg$FAILED){s7=peg$parseWS();if(s7===peg$FAILED){s7=null}if(s7!==peg$FAILED){if(input.charCodeAt(peg$currPos)===59){s8=peg$c1213;peg$currPos++}else{s8=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1214)}}if(s8!==peg$FAILED){s9=peg$parseWS();if(s9===peg$FAILED){s9=null}if(s9!==peg$FAILED){peg$savedPos=s0;s1=peg$c1455(s6);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}return s0}function peg$parseMachineDefinition(){var s0,s1,s2,s3,s4,s5,s6,s7,s8,s9;s0=peg$currPos;s1=peg$parseWS();if(s1===peg$FAILED){s1=null}if(s1!==peg$FAILED){if(input.substr(peg$currPos,18)===peg$c1456){s2=peg$c1456;peg$currPos+=18}else{s2=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1457)}}if(s2!==peg$FAILED){s3=peg$parseWS();if(s3===peg$FAILED){s3=null}if(s3!==peg$FAILED){if(input.charCodeAt(peg$currPos)===58){s4=peg$c1211;peg$currPos++}else{s4=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1212)}}if(s4!==peg$FAILED){s5=peg$parseWS();if(s5===peg$FAILED){s5=null}if(s5!==peg$FAILED){s6=peg$currPos;s7=peg$parseURL();if(s7!==peg$FAILED){peg$savedPos=s6;s7=peg$c1219(s7)}s6=s7;if(s6!==peg$FAILED){s7=peg$parseWS();if(s7===peg$FAILED){s7=null}if(s7!==peg$FAILED){if(input.charCodeAt(peg$currPos)===59){s8=peg$c1213;peg$currPos++}else{s8=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1214)}}if(s8!==peg$FAILED){s9=peg$parseWS();if(s9===peg$FAILED){s9=null}if(s9!==peg$FAILED){peg$savedPos=s0;s1=peg$c1458(s6);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}return s0}function peg$parseMachineName(){var s0,s1,s2,s3,s4,s5,s6,s7,s8,s9;s0=peg$currPos;s1=peg$parseWS();if(s1===peg$FAILED){s1=null}if(s1!==peg$FAILED){if(input.substr(peg$currPos,12)===peg$c1459){s2=peg$c1459;peg$currPos+=12}else{s2=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1460)}}if(s2!==peg$FAILED){s3=peg$parseWS();if(s3===peg$FAILED){s3=null}if(s3!==peg$FAILED){if(input.charCodeAt(peg$currPos)===58){s4=peg$c1211;peg$currPos++}else{s4=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1212)}}if(s4!==peg$FAILED){s5=peg$parseWS();if(s5===peg$FAILED){s5=null}if(s5!==peg$FAILED){s6=peg$currPos;s7=peg$parseLabel();if(s7!==peg$FAILED){peg$savedPos=s6;s7=peg$c1219(s7)}s6=s7;if(s6!==peg$FAILED){s7=peg$parseWS();if(s7===peg$FAILED){s7=null}if(s7!==peg$FAILED){if(input.charCodeAt(peg$currPos)===59){s8=peg$c1213;peg$currPos++}else{s8=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1214)}}if(s8!==peg$FAILED){s9=peg$parseWS();if(s9===peg$FAILED){s9=null}if(s9!==peg$FAILED){peg$savedPos=s0;s1=peg$c1461(s6);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}return s0}function peg$parseNpmName(){var s0,s1,s2,s3,s4,s5,s6,s7,s8,s9;s0=peg$currPos;s1=peg$parseWS();if(s1===peg$FAILED){s1=null}if(s1!==peg$FAILED){if(input.substr(peg$currPos,8)===peg$c1462){s2=peg$c1462;peg$currPos+=8}else{s2=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1463)}}if(s2!==peg$FAILED){s3=peg$parseWS();if(s3===peg$FAILED){s3=null}if(s3!==peg$FAILED){if(input.charCodeAt(peg$currPos)===58){s4=peg$c1211;peg$currPos++}else{s4=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1212)}}if(s4!==peg$FAILED){s5=peg$parseWS();if(s5===peg$FAILED){s5=null}if(s5!==peg$FAILED){s6=peg$currPos;s7=peg$parseLabel();if(s7!==peg$FAILED){peg$savedPos=s6;s7=peg$c1219(s7)}s6=s7;if(s6!==peg$FAILED){s7=peg$parseWS();if(s7===peg$FAILED){s7=null}if(s7!==peg$FAILED){if(input.charCodeAt(peg$currPos)===59){s8=peg$c1213;peg$currPos++}else{s8=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1214)}}if(s8!==peg$FAILED){s9=peg$parseWS();if(s9===peg$FAILED){s9=null}if(s9!==peg$FAILED){peg$savedPos=s0;s1=peg$c1464(s6);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}return s0}function peg$parseMachineReference(){var s0,s1,s2,s3,s4,s5,s6,s7,s8,s9;s0=peg$currPos;s1=peg$parseWS();if(s1===peg$FAILED){s1=null}if(s1!==peg$FAILED){if(input.substr(peg$currPos,17)===peg$c1465){s2=peg$c1465;peg$currPos+=17}else{s2=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1466)}}if(s2!==peg$FAILED){s3=peg$parseWS();if(s3===peg$FAILED){s3=null}if(s3!==peg$FAILED){if(input.charCodeAt(peg$currPos)===58){s4=peg$c1211;peg$currPos++}else{s4=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1212)}}if(s4!==peg$FAILED){s5=peg$parseWS();if(s5===peg$FAILED){s5=null}if(s5!==peg$FAILED){s6=peg$currPos;s7=peg$parseLabelOrLabelList();if(s7!==peg$FAILED){peg$savedPos=s6;s7=peg$c1219(s7)}s6=s7;if(s6!==peg$FAILED){s7=peg$parseWS();if(s7===peg$FAILED){s7=null}if(s7!==peg$FAILED){if(input.charCodeAt(peg$currPos)===59){s8=peg$c1213;peg$currPos++}else{s8=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1214)}}if(s8!==peg$FAILED){s9=peg$parseWS();if(s9===peg$FAILED){s9=null}if(s9!==peg$FAILED){peg$savedPos=s0;s1=peg$c1467(s6);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}return s0}function peg$parseMachineVersion(){var s0,s1,s2,s3,s4,s5,s6,s7,s8,s9;s0=peg$currPos;s1=peg$parseWS();if(s1===peg$FAILED){s1=null}if(s1!==peg$FAILED){if(input.substr(peg$currPos,15)===peg$c1468){s2=peg$c1468;peg$currPos+=15}else{s2=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1469)}}if(s2!==peg$FAILED){s3=peg$parseWS();if(s3===peg$FAILED){s3=null}if(s3!==peg$FAILED){if(input.charCodeAt(peg$currPos)===58){s4=peg$c1211;peg$currPos++}else{s4=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1212)}}if(s4!==peg$FAILED){s5=peg$parseWS();if(s5===peg$FAILED){s5=null}if(s5!==peg$FAILED){s6=peg$currPos;s7=peg$parseSemVer();if(s7!==peg$FAILED){peg$savedPos=s6;s7=peg$c1219(s7)}s6=s7;if(s6!==peg$FAILED){s7=peg$parseWS();if(s7===peg$FAILED){s7=null}if(s7!==peg$FAILED){if(input.charCodeAt(peg$currPos)===59){s8=peg$c1213;peg$currPos++}else{s8=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1214)}}if(s8!==peg$FAILED){s9=peg$parseWS();if(s9===peg$FAILED){s9=null}if(s9!==peg$FAILED){peg$savedPos=s0;s1=peg$c1470(s6);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}return s0}function peg$parseMachineLicense(){var s0,s1,s2,s3,s4,s5,s6,s7,s8,s9;s0=peg$currPos;s1=peg$parseWS();if(s1===peg$FAILED){s1=null}if(s1!==peg$FAILED){if(input.substr(peg$currPos,15)===peg$c1471){s2=peg$c1471;peg$currPos+=15}else{s2=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1472)}}if(s2!==peg$FAILED){s3=peg$parseWS();if(s3===peg$FAILED){s3=null}if(s3!==peg$FAILED){if(input.charCodeAt(peg$currPos)===58){s4=peg$c1211;peg$currPos++}else{s4=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1212)}}if(s4!==peg$FAILED){s5=peg$parseWS();if(s5===peg$FAILED){s5=null}if(s5!==peg$FAILED){s6=peg$currPos;s7=peg$parseLicenseOrLabelOrList();if(s7!==peg$FAILED){peg$savedPos=s6;s7=peg$c1219(s7)}s6=s7;if(s6!==peg$FAILED){s7=peg$parseWS();if(s7===peg$FAILED){s7=null}if(s7!==peg$FAILED){if(input.charCodeAt(peg$currPos)===59){s8=peg$c1213;peg$currPos++}else{s8=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1214)}}if(s8!==peg$FAILED){s9=peg$parseWS();if(s9===peg$FAILED){s9=null}if(s9!==peg$FAILED){peg$savedPos=s0;s1=peg$c1473(s6);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}return s0}function peg$parseMachineLanguage(){var s0,s1,s2,s3,s4,s5,s6,s7,s8,s9;s0=peg$currPos;s1=peg$parseWS();if(s1===peg$FAILED){s1=null}if(s1!==peg$FAILED){if(input.substr(peg$currPos,16)===peg$c1474){s2=peg$c1474;peg$currPos+=16}else{s2=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1475)}}if(s2!==peg$FAILED){s3=peg$parseWS();if(s3===peg$FAILED){s3=null}if(s3!==peg$FAILED){if(input.charCodeAt(peg$currPos)===58){s4=peg$c1211;peg$currPos++}else{s4=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1212)}}if(s4!==peg$FAILED){s5=peg$parseWS();if(s5===peg$FAILED){s5=null}if(s5!==peg$FAILED){s6=peg$currPos;s7=peg$parseLabel();if(s7!==peg$FAILED){peg$savedPos=s6;s7=peg$c1219(s7)}s6=s7;if(s6!==peg$FAILED){s7=peg$parseWS();if(s7===peg$FAILED){s7=null}if(s7!==peg$FAILED){if(input.charCodeAt(peg$currPos)===59){s8=peg$c1213;peg$currPos++}else{s8=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1214)}}if(s8!==peg$FAILED){s9=peg$parseWS();if(s9===peg$FAILED){s9=null}if(s9!==peg$FAILED){peg$savedPos=s0;s1=peg$c1476(s6);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}return s0}function peg$parseFslVersion(){var s0,s1,s2,s3,s4,s5,s6,s7,s8,s9;s0=peg$currPos;s1=peg$parseWS();if(s1===peg$FAILED){s1=null}if(s1!==peg$FAILED){if(input.substr(peg$currPos,11)===peg$c1477){s2=peg$c1477;peg$currPos+=11}else{s2=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1478)}}if(s2!==peg$FAILED){s3=peg$parseWS();if(s3===peg$FAILED){s3=null}if(s3!==peg$FAILED){if(input.charCodeAt(peg$currPos)===58){s4=peg$c1211;peg$currPos++}else{s4=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1212)}}if(s4!==peg$FAILED){s5=peg$parseWS();if(s5===peg$FAILED){s5=null}if(s5!==peg$FAILED){s6=peg$currPos;s7=peg$parseSemVer();if(s7!==peg$FAILED){peg$savedPos=s6;s7=peg$c1219(s7)}s6=s7;if(s6!==peg$FAILED){s7=peg$parseWS();if(s7===peg$FAILED){s7=null}if(s7!==peg$FAILED){if(input.charCodeAt(peg$currPos)===59){s8=peg$c1213;peg$currPos++}else{s8=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1214)}}if(s8!==peg$FAILED){s9=peg$parseWS();if(s9===peg$FAILED){s9=null}if(s9!==peg$FAILED){peg$savedPos=s0;s1=peg$c1479(s6);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}return s0}function peg$parseMachineTheme(){var s0,s1,s2,s3,s4,s5,s6,s7,s8,s9;s0=peg$currPos;s1=peg$parseWS();if(s1===peg$FAILED){s1=null}if(s1!==peg$FAILED){if(input.substr(peg$currPos,5)===peg$c1480){s2=peg$c1480;peg$currPos+=5}else{s2=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1481)}}if(s2!==peg$FAILED){s3=peg$parseWS();if(s3===peg$FAILED){s3=null}if(s3!==peg$FAILED){if(input.charCodeAt(peg$currPos)===58){s4=peg$c1211;peg$currPos++}else{s4=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1212)}}if(s4!==peg$FAILED){s5=peg$parseWS();if(s5===peg$FAILED){s5=null}if(s5!==peg$FAILED){s6=peg$currPos;s7=peg$parseThemeOrThemeList();if(s7!==peg$FAILED){peg$savedPos=s6;s7=peg$c1219(s7)}s6=s7;if(s6!==peg$FAILED){s7=peg$parseWS();if(s7===peg$FAILED){s7=null}if(s7!==peg$FAILED){if(input.charCodeAt(peg$currPos)===59){s8=peg$c1213;peg$currPos++}else{s8=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1214)}}if(s8!==peg$FAILED){s9=peg$parseWS();if(s9===peg$FAILED){s9=null}if(s9!==peg$FAILED){peg$savedPos=s0;s1=peg$c1482(s6);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}return s0}function peg$parseMachineFlow(){var s0,s1,s2,s3,s4,s5,s6,s7,s8,s9;s0=peg$currPos;s1=peg$parseWS();if(s1===peg$FAILED){s1=null}if(s1!==peg$FAILED){if(input.substr(peg$currPos,4)===peg$c1483){s2=peg$c1483;peg$currPos+=4}else{s2=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1484)}}if(s2!==peg$FAILED){s3=peg$parseWS();if(s3===peg$FAILED){s3=null}if(s3!==peg$FAILED){if(input.charCodeAt(peg$currPos)===58){s4=peg$c1211;peg$currPos++}else{s4=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1212)}}if(s4!==peg$FAILED){s5=peg$parseWS();if(s5===peg$FAILED){s5=null}if(s5!==peg$FAILED){s6=peg$currPos;s7=peg$parseDirection();if(s7!==peg$FAILED){peg$savedPos=s6;s7=peg$c1219(s7)}s6=s7;if(s6!==peg$FAILED){s7=peg$parseWS();if(s7===peg$FAILED){s7=null}if(s7!==peg$FAILED){if(input.charCodeAt(peg$currPos)===59){s8=peg$c1213;peg$currPos++}else{s8=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1214)}}if(s8!==peg$FAILED){s9=peg$parseWS();if(s9===peg$FAILED){s9=null}if(s9!==peg$FAILED){peg$savedPos=s0;s1=peg$c1485(s6);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}return s0}function peg$parseMachineHookDefinition(){var s0,s1,s2,s3,s4,s5,s6,s7,s8,s9;s0=peg$currPos;s1=peg$parseWS();if(s1===peg$FAILED){s1=null}if(s1!==peg$FAILED){if(input.substr(peg$currPos,5)===peg$c1486){s2=peg$c1486;peg$currPos+=5}else{s2=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1487)}}if(s2!==peg$FAILED){s3=peg$parseWS();if(s3===peg$FAILED){s3=null}if(s3!==peg$FAILED){if(input.charCodeAt(peg$currPos)===58){s4=peg$c1211;peg$currPos++}else{s4=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1212)}}if(s4!==peg$FAILED){s5=peg$parseWS();if(s5===peg$FAILED){s5=null}if(s5!==peg$FAILED){s6=peg$currPos;s7=peg$parseHookDefinition();if(s7!==peg$FAILED){peg$savedPos=s6;s7=peg$c1219(s7)}s6=s7;if(s6!==peg$FAILED){s7=peg$parseWS();if(s7===peg$FAILED){s7=null}if(s7!==peg$FAILED){if(input.charCodeAt(peg$currPos)===59){s8=peg$c1213;peg$currPos++}else{s8=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1214)}}if(s8!==peg$FAILED){s9=peg$parseWS();if(s9===peg$FAILED){s9=null}if(s9!==peg$FAILED){peg$savedPos=s0;s1=peg$c1488(s6);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}return s0}function peg$parseDotPreamble(){var s0,s1,s2,s3,s4,s5,s6,s7,s8,s9;s0=peg$currPos;s1=peg$parseWS();if(s1===peg$FAILED){s1=null}if(s1!==peg$FAILED){if(input.substr(peg$currPos,12)===peg$c1489){s2=peg$c1489;peg$currPos+=12}else{s2=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1490)}}if(s2!==peg$FAILED){s3=peg$parseWS();if(s3===peg$FAILED){s3=null}if(s3!==peg$FAILED){if(input.charCodeAt(peg$currPos)===58){s4=peg$c1211;peg$currPos++}else{s4=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1212)}}if(s4!==peg$FAILED){s5=peg$parseWS();if(s5===peg$FAILED){s5=null}if(s5!==peg$FAILED){s6=peg$currPos;s7=peg$parseString();if(s7!==peg$FAILED){peg$savedPos=s6;s7=peg$c1219(s7)}s6=s7;if(s6!==peg$FAILED){s7=peg$parseWS();if(s7===peg$FAILED){s7=null}if(s7!==peg$FAILED){if(input.charCodeAt(peg$currPos)===59){s8=peg$c1213;peg$currPos++}else{s8=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1214)}}if(s8!==peg$FAILED){s9=peg$parseWS();if(s9===peg$FAILED){s9=null}if(s9!==peg$FAILED){peg$savedPos=s0;s1=peg$c1491(s6);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}return s0}function peg$parseDefaultSizeVal(){var s0,s1,s2,s3;s0=peg$currPos;if(input.substr(peg$currPos,6)===peg$c1492){s1=peg$c1492;peg$currPos+=6}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1493)}}if(s1!==peg$FAILED){s2=peg$parseWS();if(s2!==peg$FAILED){s3=peg$parseNonNegNumber();if(s3!==peg$FAILED){peg$savedPos=s0;s1=peg$c1494(s3);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}if(s0===peg$FAILED){s0=peg$currPos;s1=peg$parseNonNegNumber();if(s1!==peg$FAILED){s2=peg$parseNonNegNumber();if(s2!==peg$FAILED){peg$savedPos=s0;s1=peg$c1495(s1,s2);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}if(s0===peg$FAILED){s0=peg$currPos;s1=peg$parseNonNegNumber();if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c1496(s1)}s0=s1}}return s0}function peg$parseDefaultSize(){var s0,s1,s2,s3,s4,s5,s6,s7,s8,s9;s0=peg$currPos;s1=peg$parseWS();if(s1===peg$FAILED){s1=null}if(s1!==peg$FAILED){if(input.substr(peg$currPos,12)===peg$c1497){s2=peg$c1497;peg$currPos+=12}else{s2=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1498)}}if(s2!==peg$FAILED){s3=peg$parseWS();if(s3===peg$FAILED){s3=null}if(s3!==peg$FAILED){if(input.charCodeAt(peg$currPos)===58){s4=peg$c1211;peg$currPos++}else{s4=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1212)}}if(s4!==peg$FAILED){s5=peg$parseWS();if(s5===peg$FAILED){s5=null}if(s5!==peg$FAILED){s6=peg$currPos;s7=peg$parseDefaultSizeVal();if(s7!==peg$FAILED){peg$savedPos=s6;s7=peg$c1219(s7)}s6=s7;if(s6!==peg$FAILED){s7=peg$parseWS();if(s7===peg$FAILED){s7=null}if(s7!==peg$FAILED){if(input.charCodeAt(peg$currPos)===59){s8=peg$c1213;peg$currPos++}else{s8=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1214)}}if(s8!==peg$FAILED){s9=peg$parseWS();if(s9===peg$FAILED){s9=null}if(s9!==peg$FAILED){peg$savedPos=s0;s1=peg$c1499(s6);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}return s0}function peg$parseMachineAttribute(){var s0;peg$silentFails++;s0=peg$parseFslVersion();if(s0===peg$FAILED){s0=peg$parseMachineName();if(s0===peg$FAILED){s0=peg$parseNpmName();if(s0===peg$FAILED){s0=peg$parseMachineAuthor();if(s0===peg$FAILED){s0=peg$parseMachineContributor();if(s0===peg$FAILED){s0=peg$parseMachineComment();if(s0===peg$FAILED){s0=peg$parseMachineDefinition();if(s0===peg$FAILED){s0=peg$parseMachineReference();if(s0===peg$FAILED){s0=peg$parseMachineVersion();if(s0===peg$FAILED){s0=peg$parseMachineLicense();if(s0===peg$FAILED){s0=peg$parseMachineLanguage();if(s0===peg$FAILED){s0=peg$parseMachineTheme();if(s0===peg$FAILED){s0=peg$parseDotPreamble();if(s0===peg$FAILED){s0=peg$parseMachineFlow();if(s0===peg$FAILED){s0=peg$parseMachineHookDefinition();if(s0===peg$FAILED){s0=peg$parseDefaultSize()}}}}}}}}}}}}}}}peg$silentFails--;if(s0===peg$FAILED){if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1500)}}return s0}function peg$parsePropertyVal(){var s0;s0=peg$parseString();if(s0===peg$FAILED){s0=peg$parseBoolean();if(s0===peg$FAILED){s0=peg$parseJsNumericLiteral();if(s0===peg$FAILED){s0=peg$parseNull();if(s0===peg$FAILED){s0=peg$parseUndefined()}}}}return s0}function peg$parseSdStateLabel(){var s0,s1,s2,s3,s4,s5,s6,s7,s8,s9;peg$silentFails++;s0=peg$currPos;s1=peg$parseWS();if(s1===peg$FAILED){s1=null}if(s1!==peg$FAILED){if(input.substr(peg$currPos,5)===peg$c1501){s2=peg$c1501;peg$currPos+=5}else{s2=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1502)}}if(s2!==peg$FAILED){s3=peg$parseWS();if(s3===peg$FAILED){s3=null}if(s3!==peg$FAILED){if(input.charCodeAt(peg$currPos)===58){s4=peg$c1211;peg$currPos++}else{s4=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1212)}}if(s4!==peg$FAILED){s5=peg$parseWS();if(s5===peg$FAILED){s5=null}if(s5!==peg$FAILED){s6=peg$parseLabel();if(s6!==peg$FAILED){s7=peg$parseWS();if(s7===peg$FAILED){s7=null}if(s7!==peg$FAILED){if(input.charCodeAt(peg$currPos)===59){s8=peg$c1213;peg$currPos++}else{s8=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1214)}}if(s8!==peg$FAILED){s9=peg$parseWS();if(s9===peg$FAILED){s9=null}if(s9!==peg$FAILED){peg$savedPos=s0;s1=peg$c1503(s6);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}peg$silentFails--;if(s0===peg$FAILED){s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c311)}}return s0}function peg$parseSdStateColor(){var s0,s1,s2,s3,s4,s5,s6,s7,s8,s9;peg$silentFails++;s0=peg$currPos;s1=peg$parseWS();if(s1===peg$FAILED){s1=null}if(s1!==peg$FAILED){if(input.substr(peg$currPos,5)===peg$c1504){s2=peg$c1504;peg$currPos+=5}else{s2=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1505)}}if(s2!==peg$FAILED){s3=peg$parseWS();if(s3===peg$FAILED){s3=null}if(s3!==peg$FAILED){if(input.charCodeAt(peg$currPos)===58){s4=peg$c1211;peg$currPos++}else{s4=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1212)}}if(s4!==peg$FAILED){s5=peg$parseWS();if(s5===peg$FAILED){s5=null}if(s5!==peg$FAILED){s6=peg$currPos;s7=peg$parseColor();if(s7!==peg$FAILED){peg$savedPos=s6;s7=peg$c1219(s7)}s6=s7;if(s6!==peg$FAILED){s7=peg$parseWS();if(s7===peg$FAILED){s7=null}if(s7!==peg$FAILED){if(input.charCodeAt(peg$currPos)===59){s8=peg$c1213;peg$currPos++}else{s8=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1214)}}if(s8!==peg$FAILED){s9=peg$parseWS();if(s9===peg$FAILED){s9=null}if(s9!==peg$FAILED){peg$savedPos=s0;s1=peg$c1506(s6);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}peg$silentFails--;if(s0===peg$FAILED){s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1204)}}return s0}function peg$parseSdStateTextColor(){var s0,s1,s2,s3,s4,s5,s6,s7,s8,s9;peg$silentFails++;s0=peg$currPos;s1=peg$parseWS();if(s1===peg$FAILED){s1=null}if(s1!==peg$FAILED){if(input.substr(peg$currPos,10)===peg$c1508){s2=peg$c1508;peg$currPos+=10}else{s2=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1509)}}if(s2!==peg$FAILED){s3=peg$parseWS();if(s3===peg$FAILED){s3=null}if(s3!==peg$FAILED){if(input.charCodeAt(peg$currPos)===58){s4=peg$c1211;peg$currPos++}else{s4=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1212)}}if(s4!==peg$FAILED){s5=peg$parseWS();if(s5===peg$FAILED){s5=null}if(s5!==peg$FAILED){s6=peg$currPos;s7=peg$parseColor();if(s7!==peg$FAILED){peg$savedPos=s6;s7=peg$c1219(s7)}s6=s7;if(s6!==peg$FAILED){s7=peg$parseWS();if(s7===peg$FAILED){s7=null}if(s7!==peg$FAILED){if(input.charCodeAt(peg$currPos)===59){s8=peg$c1213;peg$currPos++}else{s8=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1214)}}if(s8!==peg$FAILED){s9=peg$parseWS();if(s9===peg$FAILED){s9=null}if(s9!==peg$FAILED){peg$savedPos=s0;s1=peg$c1510(s6);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}peg$silentFails--;if(s0===peg$FAILED){s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1507)}}return s0}function peg$parseSdStateBackgroundColor(){var s0,s1,s2,s3,s4,s5,s6,s7,s8,s9;peg$silentFails++;s0=peg$currPos;s1=peg$parseWS();if(s1===peg$FAILED){s1=null}if(s1!==peg$FAILED){if(input.substr(peg$currPos,16)===peg$c1512){s2=peg$c1512;peg$currPos+=16}else{s2=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1513)}}if(s2!==peg$FAILED){s3=peg$parseWS();if(s3===peg$FAILED){s3=null}if(s3!==peg$FAILED){if(input.charCodeAt(peg$currPos)===58){s4=peg$c1211;peg$currPos++}else{s4=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1212)}}if(s4!==peg$FAILED){s5=peg$parseWS();if(s5===peg$FAILED){s5=null}if(s5!==peg$FAILED){s6=peg$currPos;s7=peg$parseColor();if(s7!==peg$FAILED){peg$savedPos=s6;s7=peg$c1219(s7)}s6=s7;if(s6!==peg$FAILED){s7=peg$parseWS();if(s7===peg$FAILED){s7=null}if(s7!==peg$FAILED){if(input.charCodeAt(peg$currPos)===59){s8=peg$c1213;peg$currPos++}else{s8=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1214)}}if(s8!==peg$FAILED){s9=peg$parseWS();if(s9===peg$FAILED){s9=null}if(s9!==peg$FAILED){peg$savedPos=s0;s1=peg$c1514(s6);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}peg$silentFails--;if(s0===peg$FAILED){s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1511)}}return s0}function peg$parseSdStateBorderColor(){var s0,s1,s2,s3,s4,s5,s6,s7,s8,s9;peg$silentFails++;s0=peg$currPos;s1=peg$parseWS();if(s1===peg$FAILED){s1=null}if(s1!==peg$FAILED){if(input.substr(peg$currPos,12)===peg$c1516){s2=peg$c1516;peg$currPos+=12}else{s2=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1517)}}if(s2!==peg$FAILED){s3=peg$parseWS();if(s3===peg$FAILED){s3=null}if(s3!==peg$FAILED){if(input.charCodeAt(peg$currPos)===58){s4=peg$c1211;peg$currPos++}else{s4=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1212)}}if(s4!==peg$FAILED){s5=peg$parseWS();if(s5===peg$FAILED){s5=null}if(s5!==peg$FAILED){s6=peg$currPos;s7=peg$parseColor();if(s7!==peg$FAILED){peg$savedPos=s6;s7=peg$c1219(s7)}s6=s7;if(s6!==peg$FAILED){s7=peg$parseWS();if(s7===peg$FAILED){s7=null}if(s7!==peg$FAILED){if(input.charCodeAt(peg$currPos)===59){s8=peg$c1213;peg$currPos++}else{s8=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1214)}}if(s8!==peg$FAILED){s9=peg$parseWS();if(s9===peg$FAILED){s9=null}if(s9!==peg$FAILED){peg$savedPos=s0;s1=peg$c1518(s6);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}peg$silentFails--;if(s0===peg$FAILED){s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1515)}}return s0}function peg$parseSdStateShape(){var s0,s1,s2,s3,s4,s5,s6,s7,s8,s9;peg$silentFails++;s0=peg$currPos;s1=peg$parseWS();if(s1===peg$FAILED){s1=null}if(s1!==peg$FAILED){if(input.substr(peg$currPos,5)===peg$c1520){s2=peg$c1520;peg$currPos+=5}else{s2=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1521)}}if(s2!==peg$FAILED){s3=peg$parseWS();if(s3===peg$FAILED){s3=null}if(s3!==peg$FAILED){if(input.charCodeAt(peg$currPos)===58){s4=peg$c1211;peg$currPos++}else{s4=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1212)}}if(s4!==peg$FAILED){s5=peg$parseWS();if(s5===peg$FAILED){s5=null}if(s5!==peg$FAILED){s6=peg$parseGvizShape();if(s6!==peg$FAILED){s7=peg$parseWS();if(s7===peg$FAILED){s7=null}if(s7!==peg$FAILED){if(input.charCodeAt(peg$currPos)===59){s8=peg$c1213;peg$currPos++}else{s8=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1214)}}if(s8!==peg$FAILED){s9=peg$parseWS();if(s9===peg$FAILED){s9=null}if(s9!==peg$FAILED){peg$savedPos=s0;s1=peg$c1522(s6);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}peg$silentFails--;if(s0===peg$FAILED){s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1519)}}return s0}function peg$parseSdStateCorners(){var s0,s1,s2,s3,s4,s5,s6,s7,s8,s9;peg$silentFails++;s0=peg$currPos;s1=peg$parseWS();if(s1===peg$FAILED){s1=null}if(s1!==peg$FAILED){if(input.substr(peg$currPos,7)===peg$c1524){s2=peg$c1524;peg$currPos+=7}else{s2=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1525)}}if(s2!==peg$FAILED){s3=peg$parseWS();if(s3===peg$FAILED){s3=null}if(s3!==peg$FAILED){if(input.charCodeAt(peg$currPos)===58){s4=peg$c1211;peg$currPos++}else{s4=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1212)}}if(s4!==peg$FAILED){s5=peg$parseWS();if(s5===peg$FAILED){s5=null}if(s5!==peg$FAILED){s6=peg$parseCorners();if(s6!==peg$FAILED){s7=peg$parseWS();if(s7===peg$FAILED){s7=null}if(s7!==peg$FAILED){if(input.charCodeAt(peg$currPos)===59){s8=peg$c1213;peg$currPos++}else{s8=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1214)}}if(s8!==peg$FAILED){s9=peg$parseWS();if(s9===peg$FAILED){s9=null}if(s9!==peg$FAILED){peg$savedPos=s0;s1=peg$c1526(s6);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}peg$silentFails--;if(s0===peg$FAILED){s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1523)}}return s0}function peg$parseSdStateLineStyle(){var s0,s1,s2,s3,s4,s5,s6,s7,s8,s9;peg$silentFails++;s0=peg$currPos;s1=peg$parseWS();if(s1===peg$FAILED){s1=null}if(s1!==peg$FAILED){if(input.substr(peg$currPos,10)===peg$c1224){s2=peg$c1224;peg$currPos+=10}else{s2=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1225)}}if(s2!==peg$FAILED){s3=peg$parseWS();if(s3===peg$FAILED){s3=null}if(s3!==peg$FAILED){if(input.charCodeAt(peg$currPos)===58){s4=peg$c1211;peg$currPos++}else{s4=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1212)}}if(s4!==peg$FAILED){s5=peg$parseWS();if(s5===peg$FAILED){s5=null}if(s5!==peg$FAILED){s6=peg$parseLineStyle();if(s6!==peg$FAILED){s7=peg$parseWS();if(s7===peg$FAILED){s7=null}if(s7!==peg$FAILED){if(input.charCodeAt(peg$currPos)===59){s8=peg$c1213;peg$currPos++}else{s8=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1214)}}if(s8!==peg$FAILED){s9=peg$parseWS();if(s9===peg$FAILED){s9=null}if(s9!==peg$FAILED){peg$savedPos=s0;s1=peg$c1528(s6);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}if(s0===peg$FAILED){s0=peg$currPos;s1=peg$parseWS();if(s1===peg$FAILED){s1=null}if(s1!==peg$FAILED){if(input.substr(peg$currPos,9)===peg$c1529){s2=peg$c1529;peg$currPos+=9}else{s2=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1530)}}if(s2!==peg$FAILED){s3=peg$parseWS();if(s3===peg$FAILED){s3=null}if(s3!==peg$FAILED){if(input.charCodeAt(peg$currPos)===58){s4=peg$c1211;peg$currPos++}else{s4=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1212)}}if(s4!==peg$FAILED){s5=peg$parseWS();if(s5===peg$FAILED){s5=null}if(s5!==peg$FAILED){s6=peg$parseLineStyle();if(s6!==peg$FAILED){s7=peg$parseWS();if(s7===peg$FAILED){s7=null}if(s7!==peg$FAILED){if(input.charCodeAt(peg$currPos)===59){s8=peg$c1213;peg$currPos++}else{s8=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1214)}}if(s8!==peg$FAILED){s9=peg$parseWS();if(s9===peg$FAILED){s9=null}if(s9!==peg$FAILED){peg$savedPos=s0;s1=peg$c1528(s6);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}peg$silentFails--;if(s0===peg$FAILED){s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1527)}}return s0}function peg$parseSdStateImage(){var s0,s1,s2,s3,s4,s5,s6,s7,s8,s9;peg$silentFails++;s0=peg$currPos;s1=peg$parseWS();if(s1===peg$FAILED){s1=null}if(s1!==peg$FAILED){if(input.substr(peg$currPos,5)===peg$c1532){s2=peg$c1532;peg$currPos+=5}else{s2=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1533)}}if(s2!==peg$FAILED){s3=peg$parseWS();if(s3===peg$FAILED){s3=null}if(s3!==peg$FAILED){if(input.charCodeAt(peg$currPos)===58){s4=peg$c1211;peg$currPos++}else{s4=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1212)}}if(s4!==peg$FAILED){s5=peg$parseWS();if(s5===peg$FAILED){s5=null}if(s5!==peg$FAILED){s6=peg$parseString();if(s6!==peg$FAILED){s7=peg$parseWS();if(s7===peg$FAILED){s7=null}if(s7!==peg$FAILED){if(input.charCodeAt(peg$currPos)===59){s8=peg$c1213;peg$currPos++}else{s8=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1214)}}if(s8!==peg$FAILED){s9=peg$parseWS();if(s9===peg$FAILED){s9=null}if(s9!==peg$FAILED){peg$savedPos=s0;s1=peg$c1534(s6);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}peg$silentFails--;if(s0===peg$FAILED){s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1531)}}return s0}function peg$parseSdStateUrl(){var s0,s1,s2,s3,s4,s5,s6,s7,s8,s9;peg$silentFails++;s0=peg$currPos;s1=peg$parseWS();if(s1===peg$FAILED){s1=null}if(s1!==peg$FAILED){if(input.substr(peg$currPos,3)===peg$c1536){s2=peg$c1536;peg$currPos+=3}else{s2=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1537)}}if(s2!==peg$FAILED){s3=peg$parseWS();if(s3===peg$FAILED){s3=null}if(s3!==peg$FAILED){if(input.charCodeAt(peg$currPos)===58){s4=peg$c1211;peg$currPos++}else{s4=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1212)}}if(s4!==peg$FAILED){s5=peg$parseWS();if(s5===peg$FAILED){s5=null}if(s5!==peg$FAILED){s6=peg$parseString();if(s6!==peg$FAILED){s7=peg$parseWS();if(s7===peg$FAILED){s7=null}if(s7!==peg$FAILED){if(input.charCodeAt(peg$currPos)===59){s8=peg$c1213;peg$currPos++}else{s8=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1214)}}if(s8!==peg$FAILED){s9=peg$parseWS();if(s9===peg$FAILED){s9=null}if(s9!==peg$FAILED){peg$savedPos=s0;s1=peg$c1538(s6);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}peg$silentFails--;if(s0===peg$FAILED){s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1535)}}return s0}function peg$parseSdStateProperty(){var s0,s1,s2,s3,s4,s5,s6,s7,s8,s9,s10,s11,s12,s13;peg$silentFails++;s0=peg$currPos;s1=peg$parseWS();if(s1===peg$FAILED){s1=null}if(s1!==peg$FAILED){if(input.substr(peg$currPos,8)===peg$c1540){s2=peg$c1540;peg$currPos+=8}else{s2=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1541)}}if(s2!==peg$FAILED){s3=peg$parseWS();if(s3===peg$FAILED){s3=null}if(s3!==peg$FAILED){if(input.charCodeAt(peg$currPos)===58){s4=peg$c1211;peg$currPos++}else{s4=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1212)}}if(s4!==peg$FAILED){s5=peg$parseWS();if(s5===peg$FAILED){s5=null}if(s5!==peg$FAILED){s6=peg$parseAtom();if(s6!==peg$FAILED){s7=peg$parseWS();if(s7!==peg$FAILED){s8=peg$parsePropertyVal();if(s8!==peg$FAILED){s9=peg$parseWS();if(s9===peg$FAILED){s9=null}if(s9!==peg$FAILED){if(input.charCodeAt(peg$currPos)===59){s10=peg$c1213;peg$currPos++}else{s10=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1214)}}if(s10!==peg$FAILED){s11=peg$parseWS();if(s11===peg$FAILED){s11=null}if(s11!==peg$FAILED){peg$savedPos=s0;s1=peg$c1542(s6,s8);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}if(s0===peg$FAILED){s0=peg$currPos;s1=peg$parseWS();if(s1===peg$FAILED){s1=null}if(s1!==peg$FAILED){if(input.substr(peg$currPos,8)===peg$c1540){s2=peg$c1540;peg$currPos+=8}else{s2=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1541)}}if(s2!==peg$FAILED){s3=peg$parseWS();if(s3===peg$FAILED){s3=null}if(s3!==peg$FAILED){if(input.charCodeAt(peg$currPos)===58){s4=peg$c1211;peg$currPos++}else{s4=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1212)}}if(s4!==peg$FAILED){s5=peg$parseWS();if(s5===peg$FAILED){s5=null}if(s5!==peg$FAILED){s6=peg$parseAtom();if(s6!==peg$FAILED){s7=peg$parseWS();if(s7!==peg$FAILED){s8=peg$parsePropertyVal();if(s8!==peg$FAILED){s9=peg$parseWS();if(s9!==peg$FAILED){if(input.substr(peg$currPos,8)===peg$c1543){s10=peg$c1543;peg$currPos+=8}else{s10=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1544)}}if(s10!==peg$FAILED){s11=peg$parseWS();if(s11===peg$FAILED){s11=null}if(s11!==peg$FAILED){if(input.charCodeAt(peg$currPos)===59){s12=peg$c1213;peg$currPos++}else{s12=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1214)}}if(s12!==peg$FAILED){s13=peg$parseWS();if(s13===peg$FAILED){s13=null}if(s13!==peg$FAILED){peg$savedPos=s0;s1=peg$c1545(s6,s8);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}peg$silentFails--;if(s0===peg$FAILED){s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1539)}}return s0}function peg$parseStateDeclarationItem(){var s0;s0=peg$parseSdStateLabel();if(s0===peg$FAILED){s0=peg$parseSdStateColor();if(s0===peg$FAILED){s0=peg$parseSdStateTextColor();if(s0===peg$FAILED){s0=peg$parseSdStateBackgroundColor();if(s0===peg$FAILED){s0=peg$parseSdStateBorderColor();if(s0===peg$FAILED){s0=peg$parseSdStateShape();if(s0===peg$FAILED){s0=peg$parseSdStateCorners();if(s0===peg$FAILED){s0=peg$parseSdStateLineStyle();if(s0===peg$FAILED){s0=peg$parseSdStateImage();if(s0===peg$FAILED){s0=peg$parseSdStateUrl();if(s0===peg$FAILED){s0=peg$parseSdStateProperty()}}}}}}}}}}return s0}function peg$parseStateDeclarationDesc(){var s0,s1,s2,s3,s4,s5;s0=peg$currPos;if(input.charCodeAt(peg$currPos)===123){s1=peg$c1227;peg$currPos++}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1228)}}if(s1!==peg$FAILED){s2=peg$parseWS();if(s2===peg$FAILED){s2=null}if(s2!==peg$FAILED){s3=[];s4=peg$parseStateDeclarationItem();while(s4!==peg$FAILED){s3.push(s4);s4=peg$parseStateDeclarationItem()}if(s3!==peg$FAILED){s4=peg$parseWS();if(s4===peg$FAILED){s4=null}if(s4!==peg$FAILED){if(input.charCodeAt(peg$currPos)===125){s5=peg$c1229;peg$currPos++}else{s5=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1230)}}if(s5!==peg$FAILED){peg$savedPos=s0;s1=peg$c1231(s3);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}return s0}function peg$parseStateDeclaration(){var s0,s1,s2,s3,s4,s5,s6,s7,s8,s9,s10,s11;s0=peg$currPos;s1=peg$parseWS();if(s1===peg$FAILED){s1=null}if(s1!==peg$FAILED){if(input.substr(peg$currPos,5)===peg$c1345){s2=peg$c1345;peg$currPos+=5}else{s2=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1346)}}if(s2!==peg$FAILED){s3=peg$parseWS();if(s3!==peg$FAILED){s4=peg$currPos;s5=peg$parseGroupRef();if(s5!==peg$FAILED){peg$savedPos=s4;s5=peg$c1546(s5)}s4=s5;if(s4!==peg$FAILED){s5=peg$parseWS();if(s5===peg$FAILED){s5=null}if(s5!==peg$FAILED){if(input.charCodeAt(peg$currPos)===58){s6=peg$c1211;peg$currPos++}else{s6=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1212)}}if(s6!==peg$FAILED){s7=peg$parseWS();if(s7===peg$FAILED){s7=null}if(s7!==peg$FAILED){s8=peg$parseStateDeclarationDesc();if(s8!==peg$FAILED){s9=peg$parseWS();if(s9===peg$FAILED){s9=null}if(s9!==peg$FAILED){if(input.charCodeAt(peg$currPos)===59){s10=peg$c1213;peg$currPos++}else{s10=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1214)}}if(s10!==peg$FAILED){s11=peg$parseWS();if(s11===peg$FAILED){s11=null}if(s11!==peg$FAILED){peg$savedPos=s0;s1=peg$c1547(s4,s8);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}if(s0===peg$FAILED){s0=peg$currPos;s1=peg$parseWS();if(s1===peg$FAILED){s1=null}if(s1!==peg$FAILED){if(input.substr(peg$currPos,5)===peg$c1345){s2=peg$c1345;peg$currPos+=5}else{s2=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1346)}}if(s2!==peg$FAILED){s3=peg$parseWS();if(s3!==peg$FAILED){s4=peg$currPos;s5=peg$parseLabel();if(s5!==peg$FAILED){peg$savedPos=s4;s5=peg$c1546(s5)}s4=s5;if(s4!==peg$FAILED){s5=peg$parseWS();if(s5===peg$FAILED){s5=null}if(s5!==peg$FAILED){if(input.charCodeAt(peg$currPos)===58){s6=peg$c1211;peg$currPos++}else{s6=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1212)}}if(s6!==peg$FAILED){s7=peg$parseWS();if(s7===peg$FAILED){s7=null}if(s7!==peg$FAILED){s8=peg$parseStateDeclarationDesc();if(s8!==peg$FAILED){s9=peg$parseWS();if(s9===peg$FAILED){s9=null}if(s9!==peg$FAILED){if(input.charCodeAt(peg$currPos)===59){s10=peg$c1213;peg$currPos++}else{s10=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1214)}}if(s10!==peg$FAILED){s11=peg$parseWS();if(s11===peg$FAILED){s11=null}if(s11!==peg$FAILED){peg$savedPos=s0;s1=peg$c1547(s4,s8);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}return s0}function peg$parseNamedList(){var s0,s1,s2,s3,s4,s5,s6,s7,s8,s9,s10,s11;s0=peg$currPos;s1=peg$parseWS();if(s1===peg$FAILED){s1=null}if(s1!==peg$FAILED){if(input.charCodeAt(peg$currPos)===38){s2=peg$c1302;peg$currPos++}else{s2=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1303)}}if(s2!==peg$FAILED){s3=peg$parseWS();if(s3===peg$FAILED){s3=null}if(s3!==peg$FAILED){s4=peg$parseLabel();if(s4!==peg$FAILED){s5=peg$parseWS();if(s5===peg$FAILED){s5=null}if(s5!==peg$FAILED){if(input.charCodeAt(peg$currPos)===58){s6=peg$c1211;peg$currPos++}else{s6=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1212)}}if(s6!==peg$FAILED){s7=peg$parseWS();if(s7===peg$FAILED){s7=null}if(s7!==peg$FAILED){s8=peg$parseGroupMemberList();if(s8!==peg$FAILED){s9=peg$parseWS();if(s9===peg$FAILED){s9=null}if(s9!==peg$FAILED){if(input.charCodeAt(peg$currPos)===59){s10=peg$c1213;peg$currPos++}else{s10=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1214)}}if(s10!==peg$FAILED){s11=peg$parseWS();if(s11===peg$FAILED){s11=null}if(s11!==peg$FAILED){peg$savedPos=s0;s1=peg$c1548(s4,s8);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}if(s0===peg$FAILED){s0=peg$currPos;s1=peg$parseWS();if(s1===peg$FAILED){s1=null}if(s1!==peg$FAILED){if(input.charCodeAt(peg$currPos)===38){s2=peg$c1302;peg$currPos++}else{s2=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1303)}}if(s2!==peg$FAILED){s3=peg$parseWS();if(s3===peg$FAILED){s3=null}if(s3!==peg$FAILED){s4=peg$parseLabel();if(s4!==peg$FAILED){s5=peg$parseWS();if(s5===peg$FAILED){s5=null}if(s5!==peg$FAILED){if(input.charCodeAt(peg$currPos)===58){s6=peg$c1211;peg$currPos++}else{s6=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1212)}}if(s6!==peg$FAILED){s7=peg$parseWS();if(s7===peg$FAILED){s7=null}if(s7!==peg$FAILED){s8=peg$parseLabel();if(s8!==peg$FAILED){s9=peg$parseWS();if(s9===peg$FAILED){s9=null}if(s9!==peg$FAILED){if(input.charCodeAt(peg$currPos)===59){s10=peg$c1213;peg$currPos++}else{s10=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1214)}}if(s10!==peg$FAILED){s11=peg$parseWS();if(s11===peg$FAILED){s11=null}if(s11!==peg$FAILED){peg$savedPos=s0;s1=peg$c1548(s4,s8);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}return s0}function peg$parseHookEvent(){var s0;peg$silentFails++;if(input.substr(peg$currPos,5)===peg$c1550){s0=peg$c1550;peg$currPos+=5}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1551)}}if(s0===peg$FAILED){if(input.substr(peg$currPos,4)===peg$c1552){s0=peg$c1552;peg$currPos+=4}else{s0=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1553)}}}peg$silentFails--;if(s0===peg$FAILED){if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1549)}}return s0}function peg$parseHookDeclaration(){var s0,s1,s2,s3,s4,s5,s6,s7,s8,s9,s10,s11,s12,s13;peg$silentFails++;s0=peg$currPos;s1=peg$parseWS();if(s1===peg$FAILED){s1=null}if(s1!==peg$FAILED){if(input.substr(peg$currPos,2)===peg$c1555){s2=peg$c1555;peg$currPos+=2}else{s2=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1556)}}if(s2!==peg$FAILED){s3=peg$parseWS();if(s3!==peg$FAILED){s4=peg$parseHookEvent();if(s4!==peg$FAILED){s5=peg$parseWS();if(s5!==peg$FAILED){s6=peg$parseGroupRef();if(s6===peg$FAILED){s6=peg$parseLabel()}if(s6!==peg$FAILED){s7=peg$parseWS();if(s7!==peg$FAILED){if(input.substr(peg$currPos,2)===peg$c1557){s8=peg$c1557;peg$currPos+=2}else{s8=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1558)}}if(s8!==peg$FAILED){s9=peg$parseWS();if(s9!==peg$FAILED){s10=peg$parseActionLabel();if(s10!==peg$FAILED){s11=peg$parseWS();if(s11===peg$FAILED){s11=null}if(s11!==peg$FAILED){if(input.charCodeAt(peg$currPos)===59){s12=peg$c1213;peg$currPos++}else{s12=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1214)}}if(s12!==peg$FAILED){s13=peg$parseWS();if(s13===peg$FAILED){s13=null}if(s13!==peg$FAILED){peg$savedPos=s0;s1=peg$c1559(s4,s6,s10);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}peg$silentFails--;if(s0===peg$FAILED){s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1554)}}return s0}function peg$parseMachineProperty(){var s0,s1,s2,s3,s4,s5,s6,s7,s8,s9,s10,s11,s12,s13;s0=peg$currPos;s1=peg$parseWS();if(s1===peg$FAILED){s1=null}if(s1!==peg$FAILED){if(input.substr(peg$currPos,8)===peg$c1540){s2=peg$c1540;peg$currPos+=8}else{s2=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1541)}}if(s2!==peg$FAILED){s3=peg$parseWS();if(s3!==peg$FAILED){s4=peg$parseLabel();if(s4!==peg$FAILED){s5=peg$parseWS();if(s5!==peg$FAILED){if(input.substr(peg$currPos,7)===peg$c1){s6=peg$c1;peg$currPos+=7}else{s6=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c2)}}if(s6!==peg$FAILED){s7=peg$parseWS();if(s7!==peg$FAILED){s8=peg$parsePropertyVal();if(s8!==peg$FAILED){s9=peg$parseWS();if(s9!==peg$FAILED){if(input.substr(peg$currPos,8)===peg$c1543){s10=peg$c1543;peg$currPos+=8}else{s10=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1544)}}if(s10!==peg$FAILED){s11=peg$parseWS();if(s11===peg$FAILED){s11=null}if(s11!==peg$FAILED){if(input.charCodeAt(peg$currPos)===59){s12=peg$c1213;peg$currPos++}else{s12=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1214)}}if(s12!==peg$FAILED){s13=peg$parseWS();if(s13===peg$FAILED){s13=null}if(s13!==peg$FAILED){peg$savedPos=s0;s1=peg$c1560(s4,s8);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}if(s0===peg$FAILED){s0=peg$currPos;s1=peg$parseWS();if(s1===peg$FAILED){s1=null}if(s1!==peg$FAILED){if(input.substr(peg$currPos,8)===peg$c1540){s2=peg$c1540;peg$currPos+=8}else{s2=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1541)}}if(s2!==peg$FAILED){s3=peg$parseWS();if(s3!==peg$FAILED){s4=peg$parseLabel();if(s4!==peg$FAILED){s5=peg$parseWS();if(s5!==peg$FAILED){if(input.substr(peg$currPos,8)===peg$c1543){s6=peg$c1543;peg$currPos+=8}else{s6=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1544)}}if(s6!==peg$FAILED){s7=peg$parseWS();if(s7===peg$FAILED){s7=null}if(s7!==peg$FAILED){if(input.charCodeAt(peg$currPos)===59){s8=peg$c1213;peg$currPos++}else{s8=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1214)}}if(s8!==peg$FAILED){s9=peg$parseWS();if(s9===peg$FAILED){s9=null}if(s9!==peg$FAILED){peg$savedPos=s0;s1=peg$c1561(s4);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}if(s0===peg$FAILED){s0=peg$currPos;s1=peg$parseWS();if(s1===peg$FAILED){s1=null}if(s1!==peg$FAILED){if(input.substr(peg$currPos,8)===peg$c1540){s2=peg$c1540;peg$currPos+=8}else{s2=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1541)}}if(s2!==peg$FAILED){s3=peg$parseWS();if(s3!==peg$FAILED){s4=peg$parseLabel();if(s4!==peg$FAILED){s5=peg$parseWS();if(s5!==peg$FAILED){if(input.substr(peg$currPos,7)===peg$c1){s6=peg$c1;peg$currPos+=7}else{s6=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c2)}}if(s6!==peg$FAILED){s7=peg$parseWS();if(s7!==peg$FAILED){s8=peg$parsePropertyVal();if(s8!==peg$FAILED){s9=peg$parseWS();if(s9===peg$FAILED){s9=null}if(s9!==peg$FAILED){if(input.charCodeAt(peg$currPos)===59){s10=peg$c1213;peg$currPos++}else{s10=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1214)}}if(s10!==peg$FAILED){s11=peg$parseWS();if(s11===peg$FAILED){s11=null}if(s11!==peg$FAILED){peg$savedPos=s0;s1=peg$c1562(s4,s8);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}if(s0===peg$FAILED){s0=peg$currPos;s1=peg$parseWS();if(s1===peg$FAILED){s1=null}if(s1!==peg$FAILED){if(input.substr(peg$currPos,8)===peg$c1540){s2=peg$c1540;peg$currPos+=8}else{s2=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1541)}}if(s2!==peg$FAILED){s3=peg$parseWS();if(s3!==peg$FAILED){s4=peg$parseLabel();if(s4!==peg$FAILED){s5=peg$parseWS();if(s5===peg$FAILED){s5=null}if(s5!==peg$FAILED){if(input.charCodeAt(peg$currPos)===59){s6=peg$c1213;peg$currPos++}else{s6=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1214)}}if(s6!==peg$FAILED){s7=peg$parseWS();if(s7===peg$FAILED){s7=null}if(s7!==peg$FAILED){peg$savedPos=s0;s1=peg$c1563(s4);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}}}return s0}function peg$parseRegularArrangeDeclaration(){var s0,s1,s2,s3,s4,s5,s6;s0=peg$currPos;if(input.substr(peg$currPos,7)===peg$c1564){s1=peg$c1564;peg$currPos+=7}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1565)}}if(s1!==peg$FAILED){s2=peg$parseWS();if(s2===peg$FAILED){s2=null}if(s2!==peg$FAILED){s3=peg$parseLabelOrLabelList();if(s3!==peg$FAILED){s4=peg$parseWS();if(s4===peg$FAILED){s4=null}if(s4!==peg$FAILED){if(input.charCodeAt(peg$currPos)===59){s5=peg$c1213;peg$currPos++}else{s5=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1214)}}if(s5!==peg$FAILED){s6=peg$parseWS();if(s6===peg$FAILED){s6=null}if(s6!==peg$FAILED){peg$savedPos=s0;s1=peg$c1566(s3);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}return s0}function peg$parseArrangeStartDeclaration(){var s0,s1,s2,s3,s4,s5,s6;s0=peg$currPos;if(input.substr(peg$currPos,13)===peg$c1567){s1=peg$c1567;peg$currPos+=13}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1568)}}if(s1!==peg$FAILED){s2=peg$parseWS();if(s2===peg$FAILED){s2=null}if(s2!==peg$FAILED){s3=peg$parseLabelOrLabelList();if(s3!==peg$FAILED){s4=peg$parseWS();if(s4===peg$FAILED){s4=null}if(s4!==peg$FAILED){if(input.charCodeAt(peg$currPos)===59){s5=peg$c1213;peg$currPos++}else{s5=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1214)}}if(s5!==peg$FAILED){s6=peg$parseWS();if(s6===peg$FAILED){s6=null}if(s6!==peg$FAILED){peg$savedPos=s0;s1=peg$c1569(s3);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}return s0}function peg$parseArrangeEndDeclaration(){var s0,s1,s2,s3,s4,s5,s6;s0=peg$currPos;if(input.substr(peg$currPos,11)===peg$c1570){s1=peg$c1570;peg$currPos+=11}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1571)}}if(s1!==peg$FAILED){s2=peg$parseWS();if(s2===peg$FAILED){s2=null}if(s2!==peg$FAILED){s3=peg$parseLabelOrLabelList();if(s3!==peg$FAILED){s4=peg$parseWS();if(s4===peg$FAILED){s4=null}if(s4!==peg$FAILED){if(input.charCodeAt(peg$currPos)===59){s5=peg$c1213;peg$currPos++}else{s5=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1214)}}if(s5!==peg$FAILED){s6=peg$parseWS();if(s6===peg$FAILED){s6=null}if(s6!==peg$FAILED){peg$savedPos=s0;s1=peg$c1572(s3);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}return s0}function peg$parseOArrangeDeclaration(){var s0,s1,s2,s3,s4,s5,s6;peg$silentFails++;s0=peg$currPos;if(input.substr(peg$currPos,8)===peg$c1574){s1=peg$c1574;peg$currPos+=8}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1575)}}if(s1!==peg$FAILED){s2=peg$parseWS();if(s2===peg$FAILED){s2=null}if(s2!==peg$FAILED){s3=peg$parseLabelOrLabelList();if(s3!==peg$FAILED){s4=peg$parseWS();if(s4===peg$FAILED){s4=null}if(s4!==peg$FAILED){if(input.charCodeAt(peg$currPos)===59){s5=peg$c1213;peg$currPos++}else{s5=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1214)}}if(s5!==peg$FAILED){s6=peg$parseWS();if(s6===peg$FAILED){s6=null}if(s6!==peg$FAILED){peg$savedPos=s0;s1=peg$c1576(s3);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}peg$silentFails--;if(s0===peg$FAILED){s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1573)}}return s0}function peg$parseFArrangeDeclaration(){var s0,s1,s2,s3,s4,s5,s6;peg$silentFails++;s0=peg$currPos;if(input.substr(peg$currPos,8)===peg$c1578){s1=peg$c1578;peg$currPos+=8}else{s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1579)}}if(s1!==peg$FAILED){s2=peg$parseWS();if(s2===peg$FAILED){s2=null}if(s2!==peg$FAILED){s3=peg$parseLabelOrLabelList();if(s3!==peg$FAILED){s4=peg$parseWS();if(s4===peg$FAILED){s4=null}if(s4!==peg$FAILED){if(input.charCodeAt(peg$currPos)===59){s5=peg$c1213;peg$currPos++}else{s5=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1214)}}if(s5!==peg$FAILED){s6=peg$parseWS();if(s6===peg$FAILED){s6=null}if(s6!==peg$FAILED){peg$savedPos=s0;s1=peg$c1580(s3);s0=s1}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}}else{peg$currPos=s0;s0=peg$FAILED}peg$silentFails--;if(s0===peg$FAILED){s1=peg$FAILED;if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1577)}}return s0}function peg$parseArrangeDeclaration(){var s0;peg$silentFails++;s0=peg$parseArrangeStartDeclaration();if(s0===peg$FAILED){s0=peg$parseArrangeEndDeclaration();if(s0===peg$FAILED){s0=peg$parseOArrangeDeclaration();if(s0===peg$FAILED){s0=peg$parseFArrangeDeclaration();if(s0===peg$FAILED){s0=peg$parseRegularArrangeDeclaration()}}}}peg$silentFails--;if(s0===peg$FAILED){if(peg$silentFails===0&&peg$currPos>=peg$maxFailPos){peg$fail(peg$c1581)}}return s0}function peg$parseTerm(){var s0;s0=peg$parseHookDeclaration();if(s0===peg$FAILED){s0=peg$parseExp();if(s0===peg$FAILED){s0=peg$parseStateDeclaration();if(s0===peg$FAILED){s0=peg$parseArrangeDeclaration();if(s0===peg$FAILED){s0=peg$parseNamedList();if(s0===peg$FAILED){s0=peg$parseMachineAttribute();if(s0===peg$FAILED){s0=peg$parseMachineProperty();if(s0===peg$FAILED){s0=peg$parseConfig()}}}}}}}return s0}function peg$parseTermList(){var s0,s1;s0=[];s1=peg$parseTerm();while(s1!==peg$FAILED){s0.push(s1);s1=peg$parseTerm()}return s0}peg$result=peg$startRuleFunction();if(peg$result!==peg$FAILED&&peg$currPos===input.length){return peg$result}else{if(peg$result!==peg$FAILED&&peg$currPos<input.length){peg$fail(peg$endExpectation())}throw peg$buildStructuredError(peg$maxFailExpected,peg$maxFailPos<input.length?input.charAt(peg$maxFailPos):null,peg$maxFailPos<input.length?peg$computeLocation(peg$maxFailPos,peg$maxFailPos+1):peg$computeLocation(peg$maxFailPos,peg$maxFailPos))}}const array_box_if_string=n=>typeof n==="string"?[n]:n;const weighted_rand_select=(options,probability_property="probability",rng)=>{if(!Array.isArray(options)){throw new TypeError("options must be a non-empty array of objects")}if(options.length===0){throw new TypeError("options must be a non-empty array of objects")}if(!(typeof options[0]==="object")){throw new TypeError("options must be a non-empty array of objects")}const named=probability_property==="probability";let prob_sum=0;for(const opt of options){const p=named?opt.probability:opt[probability_property];prob_sum+=p===void 0?1:p}const rnd=(rng?rng():Math.random())*prob_sum;let cursor=0,cursor_sum=0;while(cursor<options.length){const p=named?options[cursor].probability:options[cursor][probability_property];cursor_sum+=p===void 0?1:p;++cursor;if(cursor_sum>rnd){break}}return options[cursor-1]};function seq(n){if(!Number.isInteger(n)){throw new TypeError("seq/1 takes a non-negative integer n as an argument")}if(n<0){throw new TypeError("seq/1 takes a non-negative integer n as an argument")}return Array.from({length:n},(_,i)=>i)}const histograph=ar=>{const counts=new Map;for(const v of ar){const c=counts.get(v);counts.set(v,c===void 0?1:c+1)}const out=new Map;for(const k of[...counts.keys()].sort()){out.set(k,counts.get(k))}return out};function name_bind_prop_and_state(prop,state){if(typeof prop!=="string"){throw new JssmError(void 0,`Name of property must be a string; got ${prop}`)}if(typeof state!=="string"){throw new JssmError(void 0,`Name of state must be a string; got ${state}`)}return JSON.stringify([prop,state])}function gen_splitmix32(a){if(a===void 0){a=(new Date).getTime()}return function(){a|=0;a=a+2654435769|0;let t=a^a>>>16;t=Math.imul(t,569420461);t=t^t>>>15;t=Math.imul(t,1935289751);return((t=t^t>>>15)>>>0)/4294967296}}const unique=arr=>{const seen=new Set;return arr.filter(v=>{if(v!==v){return false}if(seen.has(v)){return false}seen.add(v);return true})};function find_repeated(arr){const uniqued=unique(arr);if(uniqued.length!==arr.length){const residue_keys=new Map;arr.forEach(k=>residue_keys.set(k,residue_keys.has(k)?residue_keys.get(k)+1:1));uniqued.forEach(k=>residue_keys.set(k,residue_keys.get(k)-1));return[...residue_keys.entries()].filter(e=>e[1]>0&&!Number.isNaN(e[0])).map(e=>[e[0],e[1]+1])}else{return[]}}var reductions={abkhazian:"ab","аҧсуа бызшәа, аҧсшәа":"ab",ab:"ab",abk:"ab","аҧсуа бызшәа":"ab","аҧсшәа":"ab",afar:"aa",afaraf:"aa",aa:"aa",aar:"aa",afrikaans:"af",af:"af",afr:"af",akan:"ak",ak:"ak",aka:"ak","aka + 2":"ak",albanian:"sq",shqip:"sq",sq:"sq",sqi:"sq",alb:"sq","sqi + 4":"sq",amharic:"am","አማርኛ":"am",am:"am",amh:"am",arabic:"ar","العربية":"ar",ar:"ar",ara:"ar","ara + 30":"ar",aragonese:"an","aragonés":"an",an:"an",arg:"an",armenian:"hy","հայերեն":"hy",hy:"hy",hye:"hy",arm:"hy",assamese:"as","অসমীয়া":"as",as:"as",asm:"as",avaric:"av","авар мацӏ, магӏарул мацӏ":"av",av:"av",ava:"av","авар мацӏ":"av","магӏарул мацӏ":"av",avestan:"ae",avesta:"ae",ae:"ae",ave:"ae",aymara:"ay","aymar aru":"ay",ay:"ay",aym:"ay","aym + 2":"ay",azerbaijani:"az","azərbaycan dili":"az",az:"az",aze:"az","aze + 2":"az",bambara:"bm",bamanankan:"bm",bm:"bm",bam:"bm",bashkir:"ba","башҡорт теле":"ba",ba:"ba",bak:"ba",basque:"eu","euskara, euskera":"eu",eu:"eu",eus:"eu",baq:"eu",euskara:"eu",euskera:"eu",belarusian:"be","беларуская мова":"be",be:"be",bel:"be",bengali:"bn","বাংলা":"bn",bn:"bn",ben:"bn","bihari languages":"bh","भोजपुरी":"bh",bh:"bh",bih:"bh",bislama:"bi",bi:"bi",bis:"bi",bosnian:"bs","bosanski jezik":"bs",bs:"bs",bos:"bs",breton:"br",brezhoneg:"br",br:"br",bre:"br",bulgarian:"bg","български език":"bg",bg:"bg",bul:"bg",burmese:"my","ဗမာစာ":"my",my:"my",mya:"my",bur:"my","catalan, valencian":"ca","català, valencià":"ca",ca:"ca",cat:"ca","català":"ca","valencià":"ca",chamorro:"ch",chamoru:"ch",ch:"ch",cha:"ch",chechen:"ce","нохчийн мотт":"ce",ce:"ce",che:"ce","chichewa, chewa, nyanja":"ny","chicheŵa, chinyanja":"ny",ny:"ny",nya:"ny","chicheŵa":"ny",chinyanja:"ny",chinese:"zh","中文 (zhōngwén), 汉语, 漢語":"zh",zh:"zh",zho:"zh",chi:"zh","zho + 13":"zh","中文 (zhōngwén)":"zh","汉语":"zh","漢語":"zh",chuvash:"cv","чӑваш чӗлхи":"cv",cv:"cv",chv:"cv",cornish:"kw",kernewek:"kw",kw:"kw",cor:"kw",corsican:"co","corsu, lingua corsa":"co",co:"co",cos:"co",corsu:"co","lingua corsa":"co",cree:"cr","ᓀᐦᐃᔭᐍᐏᐣ":"cr",cr:"cr",cre:"cr","cre + 6":"cr",croatian:"hr","hrvatski jezik":"hr",hr:"hr",hrv:"hr",czech:"cs","čeština, český jazyk":"cs",cs:"cs",ces:"cs",cze:"cs","čeština":"cs","český jazyk":"cs",danish:"da",dansk:"da",da:"da",dan:"da","divehi, dhivehi, maldivian":"dv","ދިވެހި":"dv",dv:"dv",div:"dv","dutch, flemish":"nl","nederlands, vlaams":"nl",nl:"nl",nld:"nl",dut:"nl",nederlands:"nl",vlaams:"nl",dzongkha:"dz","རྫོང་ཁ":"dz",dz:"dz",dzo:"dz",english:"en",en:"en",eng:"en",esperanto:"eo",eo:"eo",epo:"eo",estonian:"et","eesti, eesti keel":"et",et:"et",est:"et","est + 2":"et",eesti:"et","eesti keel":"et",ewe:"ee","eʋegbe":"ee",ee:"ee",faroese:"fo","føroyskt":"fo",fo:"fo",fao:"fo",fijian:"fj","vosa vakaviti":"fj",fj:"fj",fij:"fj",finnish:"fi","suomi, suomen kieli":"fi",fi:"fi",fin:"fi",suomi:"fi","suomen kieli":"fi",french:"fr","français, langue française":"fr",fr:"fr",fra:"fr",fre:"fr","français":"fr","langue française":"fr",fulah:"ff","fulfulde, pulaar, pular":"ff",ff:"ff",ful:"ff","ful + 9":"ff",fulfulde:"ff",pulaar:"ff",pular:"ff",galician:"gl",galego:"gl",gl:"gl",glg:"gl",georgian:"ka","ქართული":"ka",ka:"ka",kat:"ka",geo:"ka",german:"de",deutsch:"de",de:"de",deu:"de",ger:"de","greek (modern)":"el","ελληνικά":"el",el:"el",ell:"el",gre:"el","guaraní":"gn","avañe'ẽ":"gn",gn:"gn",grn:"gn","grn + 5":"gn",gujarati:"gu","ગુજરાતી":"gu",gu:"gu",guj:"gu","haitian, haitian creole":"ht","kreyòl ayisyen":"ht",ht:"ht",hat:"ht",hausa:"ha","(hausa) هَوُسَ":"ha",ha:"ha",hau:"ha","hebrew (modern)":"he","עברית":"he",he:"he",heb:"he",herero:"hz",otjiherero:"hz",hz:"hz",her:"hz",hindi:"hi","हिन्दी, हिंदी":"hi",hi:"hi",hin:"hi","हिन्दी":"hi","हिंदी":"hi","hiri motu":"ho",ho:"ho",hmo:"ho",hungarian:"hu",magyar:"hu",hu:"hu",hun:"hu",interlingua:"ia",ia:"ia",ina:"ia",indonesian:"id","bahasa indonesia":"id",id:"id",ind:"id",interlingue:"ie","originally called occidental; then interlingue after wwii":"ie",ie:"ie",ile:"ie",irish:"ga",gaeilge:"ga",ga:"ga",gle:"ga",igbo:"ig","asụsụ igbo":"ig",ig:"ig",ibo:"ig",inupiaq:"ik","iñupiaq, iñupiatun":"ik",ik:"ik",ipk:"ik","ipk + 2":"ik","iñupiaq":"ik","iñupiatun":"ik",ido:"io",io:"io",icelandic:"is","íslenska":"is",is:"is",isl:"is",ice:"is",italian:"it",italiano:"it",it:"it",ita:"it",inuktitut:"iu","ᐃᓄᒃᑎᑐᑦ":"iu",iu:"iu",iku:"iu","iku + 2":"iu",japanese:"ja","日本語 (にほんご)":"ja",ja:"ja",jpn:"ja",javanese:"jv","ꦧꦱꦗꦮ, basa jawa":"jv",jv:"jv",jav:"jv","ꦧꦱꦗꦮ":"jv","basa jawa":"jv","kalaallisut, greenlandic":"kl","kalaallisut, kalaallit oqaasii":"kl",kl:"kl",kal:"kl",kalaallisut:"kl","kalaallit oqaasii":"kl",kannada:"kn","ಕನ್ನಡ":"kn",kn:"kn",kan:"kn",kanuri:"kr",kr:"kr",kau:"kr","kau + 3":"kr",kashmiri:"ks","कश्मीरी, كشميري‎":"ks",ks:"ks",kas:"ks","कश्मीरी":"ks","كشميري‎":"ks",kazakh:"kk","қазақ тілі":"kk",kk:"kk",kaz:"kk","central khmer":"km","ខ្មែរ, ខេមរភាសា, ភាសាខ្មែរ":"km",km:"km",khm:"km","ខ្មែរ":"km","ខេមរភាសា":"km","ភាសាខ្មែរ":"km","kikuyu, gikuyu":"ki","gĩkũyũ":"ki",ki:"ki",kik:"ki",kinyarwanda:"rw",ikinyarwanda:"rw",rw:"rw",kin:"rw","kirghiz, kyrgyz":"ky","кыргызча, кыргыз тили":"ky",ky:"ky",kir:"ky","кыргызча":"ky","кыргыз тили":"ky",komi:"kv","коми кыв":"kv",kv:"kv",kom:"kv","kom + 2":"kv",kongo:"kg",kikongo:"kg",kg:"kg",kon:"kg","kon + 3":"kg",korean:"ko","한국어":"ko",ko:"ko",kor:"ko",kurdish:"ku","kurdî, كوردی‎":"ku",ku:"ku",kur:"ku","kur + 3":"ku","kurdî":"ku","كوردی‎":"ku","kuanyama, kwanyama":"kj",kuanyama:"kj",kj:"kj",kua:"kj",latin:"la","latine, lingua latina":"la",la:"la",lat:"la",latine:"la","lingua latina":"la","luxembourgish, letzeburgesch":"lb","lëtzebuergesch":"lb",lb:"lb",ltz:"lb",ganda:"lg",luganda:"lg",lg:"lg",lug:"lg","limburgan, limburger, limburgish":"li",limburgs:"li",li:"li",lim:"li",lingala:"ln","lingála":"ln",ln:"ln",lin:"ln",lao:"lo","ພາສາລາວ":"lo",lo:"lo",lithuanian:"lt","lietuvių kalba":"lt",lt:"lt",lit:"lt","luba-katanga":"lu",kiluba:"lu",lu:"lu",lub:"lu",latvian:"lv","latviešu valoda":"lv",lv:"lv",lav:"lv","lav + 2":"lv",manx:"gv","gaelg, gailck":"gv",gv:"gv",glv:"gv",gaelg:"gv",gailck:"gv",macedonian:"mk","македонски јазик":"mk",mk:"mk",mkd:"mk",mac:"mk",malagasy:"mg","fiteny malagasy":"mg",mg:"mg",mlg:"mg","mlg + 10":"mg",malay:"ms","bahasa melayu, بهاس ملايو‎":"ms",ms:"ms",msa:"ms",may:"ms","msa + 13":"ms","bahasa melayu":"ms","بهاس ملايو‎":"ms",malayalam:"ml","മലയാളം":"ml",ml:"ml",mal:"ml",maltese:"mt",malti:"mt",mt:"mt",mlt:"mt",maori:"mi","te reo māori":"mi",mi:"mi",mri:"mi",mao:"mi",marathi:"mr","मराठी":"mr",mr:"mr",mar:"mr",marshallese:"mh","kajin m̧ajeļ":"mh",mh:"mh",mah:"mh",mongolian:"mn","монгол хэл":"mn",mn:"mn",mon:"mn","mon + 2":"mn",nauru:"na","dorerin naoero":"na",na:"na",nau:"na","navajo, navaho":"nv","diné bizaad":"nv",nv:"nv",nav:"nv","north ndebele":"nd",isindebele:"nr",nd:"nd",nde:"nd",nepali:"ne","नेपाली":"ne",ne:"ne",nep:"ne",ndonga:"ng",owambo:"ng",ng:"ng",ndo:"ng","norwegian bokmål":"nb","norsk bokmål":"nb",nb:"nb",nob:"nb","norwegian nynorsk":"nn","norsk nynorsk":"nn",nn:"nn",nno:"nn",norwegian:"no",norsk:"no",no:"no",nor:"no","nor + 2":"no","sichuan yi, nuosu":"ii","ꆈꌠ꒿ nuosuhxop":"ii",ii:"ii",iii:"ii","south ndebele":"nr",nr:"nr",nbl:"nr",occitan:"oc","occitan, lenga d'òc":"oc",oc:"oc",oci:"oc","lenga d'òc":"oc",ojibwa:"oj","ᐊᓂᔑᓈᐯᒧᐎᓐ":"oj",oj:"oj",oji:"oj","oji + 7":"oj","church slavic, church slavonic, old church slavonic, old slavonic, old bulgarian":"cu","ѩзыкъ словѣньскъ":"cu",cu:"cu",chu:"cu",oromo:"om","afaan oromoo":"om",om:"om",orm:"om","orm + 4":"om",oriya:"or","ଓଡ଼ିଆ":"or",or:"or",ori:"or","ossetian, ossetic":"os","ирон æвзаг":"os",os:"os",oss:"os","panjabi, punjabi":"pa","ਪੰਜਾਬੀ":"pa",pa:"pa",pan:"pa",pali:"pi","पाऴि":"pi",pi:"pi",pli:"pi",persian:"fa","فارسی":"fa",fa:"fa",fas:"fa",per:"fa","fas + 2":"fa",polish:"pl","język polski, polszczyzna":"pl",pl:"pl",pol:"pl","język polski":"pl",polszczyzna:"pl","pashto, pushto":"ps","پښتو":"ps",ps:"ps",pus:"ps","pus + 3":"ps",portuguese:"pt","português":"pt",pt:"pt",por:"pt",quechua:"qu","runa simi, kichwa":"qu",qu:"qu",que:"qu","que + 44":"qu","runa simi":"qu",kichwa:"qu",romansh:"rm","rumantsch grischun":"rm",rm:"rm",roh:"rm",rundi:"rn",ikirundi:"rn",rn:"rn",run:"rn","romanian, moldavian, moldovan":"ro","română":"ro",ro:"ro",ron:"ro",rum:"ro",russian:"ru","русский":"ru",ru:"ru",rus:"ru",sanskrit:"sa","संस्कृतम्":"sa",sa:"sa",san:"sa",sardinian:"sc",sardu:"sc",sc:"sc",srd:"sc","srd + 4":"sc",sindhi:"sd","सिन्धी, سنڌي، سندھی‎":"sd",sd:"sd",snd:"sd","सिन्धी":"sd","سنڌي، سندھی‎":"sd","northern sami":"se","davvisámegiella":"se",se:"se",sme:"se",samoan:"sm","gagana fa'a samoa":"sm",sm:"sm",smo:"sm",sango:"sg","yângâ tî sängö":"sg",sg:"sg",sag:"sg",serbian:"sr","српски језик":"sr",sr:"sr",srp:"sr","gaelic, scottish gaelic":"gd","gàidhlig":"gd",gd:"gd",gla:"gd",shona:"sn",chishona:"sn",sn:"sn",sna:"sn","sinhala, sinhalese":"si","සිංහල":"si",si:"si",sin:"si",slovak:"sk","slovenčina, slovenský jazyk":"sk",sk:"sk",slk:"sk",slo:"sk","slovenčina":"sk","slovenský jazyk":"sk",slovenian:"sl","slovenski jezik, slovenščina":"sl",sl:"sl",slv:"sl","slovenski jezik":"sl","slovenščina":"sl",somali:"so","soomaaliga, af soomaali":"so",so:"so",som:"so",soomaaliga:"so","af soomaali":"so","southern sotho":"st",sesotho:"st",st:"st",sot:"st","spanish, castilian":"es","español":"es",es:"es",spa:"es",sundanese:"su","basa sunda":"su",su:"su",sun:"su",swahili:"sw",kiswahili:"sw",sw:"sw",swa:"sw","swa + 2":"sw",swati:"ss",siswati:"ss",ss:"ss",ssw:"ss",swedish:"sv",svenska:"sv",sv:"sv",swe:"sv",tamil:"ta","தமிழ்":"ta",ta:"ta",tam:"ta",telugu:"te","తెలుగు":"te",te:"te",tel:"te",tajik:"tg","тоҷикӣ, toçikī, تاجیکی‎":"tg",tg:"tg",tgk:"tg","тоҷикӣ":"tg","toçikī":"tg","تاجیکی‎":"tg",thai:"th","ไทย":"th",th:"th",tha:"th",tigrinya:"ti","ትግርኛ":"ti",ti:"ti",tir:"ti",tibetan:"bo","བོད་ཡིག":"bo",bo:"bo",bod:"bo",tib:"bo",turkmen:"tk","türkmen, түркмен":"tk",tk:"tk",tuk:"tk","türkmen":"tk","түркмен":"tk",tagalog:"tl","wikang tagalog":"tl",tl:"tl",tgl:"tl",tswana:"tn",setswana:"tn",tn:"tn",tsn:"tn","tonga (tonga islands)":"to","faka tonga":"to",to:"to",ton:"to",turkish:"tr","türkçe":"tr",tr:"tr",tur:"tr",tsonga:"ts",xitsonga:"ts",ts:"ts",tso:"ts",tatar:"tt","татар теле, tatar tele":"tt",tt:"tt",tat:"tt","татар теле":"tt","tatar tele":"tt",twi:"tw",tw:"tw",tahitian:"ty","reo tahiti":"ty",ty:"ty",tah:"ty","uighur, uyghur":"ug","ئۇيغۇرچە‎, uyghurche":"ug",ug:"ug",uig:"ug","ئۇيغۇرچە‎":"ug",uyghurche:"ug",ukrainian:"uk","українська":"uk",uk:"uk",ukr:"uk",urdu:"ur","اردو":"ur",ur:"ur",urd:"ur",uzbek:"uz","oʻzbek, ўзбек, أۇزبېك‎":"uz",uz:"uz",uzb:"uz","uzb + 2":"uz","oʻzbek":"uz","ўзбек":"uz","أۇزبېك‎":"uz",venda:"ve","tshivenḓa":"ve",ve:"ve",ven:"ve",vietnamese:"vi","tiếng việt":"vi",vi:"vi",vie:"vi","volapük":"vo",vo:"vo",vol:"vo",walloon:"wa",walon:"wa",wa:"wa",wln:"wa",welsh:"cy",cymraeg:"cy",cy:"cy",cym:"cy",wel:"cy",wolof:"wo",wollof:"wo",wo:"wo",wol:"wo","western frisian":"fy",frysk:"fy",fy:"fy",fry:"fy",xhosa:"xh",isixhosa:"xh",xh:"xh",xho:"xh",yiddish:"yi","ייִדיש":"yi",yi:"yi",yid:"yi","yid + 2":"yi",yoruba:"yo","yorùbá":"yo",yo:"yo",yor:"yo","zhuang, chuang":"za","saɯ cueŋƅ, saw cuengh":"za",za:"za",zha:"za","zha + 16":"za","saɯ cueŋƅ":"za","saw cuengh":"za",zulu:"zu",isizulu:"zu",zu:"zu",zul:"zu"};function reduce(from){return reductions[from.toLowerCase()]}function nth_matching_loc(tree,predicate,n){let count=0;for(const node of tree){if(predicate(node)){count++;if(count===n){return node.loc}}}return void 0}function makeTransition(this_se,from,to,isRight,_wasList,_wasIndex){const kind=isRight?arrow_right_kind(this_se.kind):arrow_left_kind(this_se.kind),edge={from:from,to:to,kind:kind,after_time:isRight?this_se.r_after:this_se.l_after,forced_only:kind==="forced",main_path:kind==="main",action:void 0,probability:void 0};const action=isRight?"r_action":"l_action",probability=isRight?"r_probability":"l_probability";if(this_se[action]!=null){edge.action=this_se[action]}if(this_se[probability]!=null){edge.probability=this_se[probability]}return edge}function wrap_parse(input,options){return peg$parse(input,{})}function normalize_group_members(value){return value.map(member=>typeof member==="string"?{kind:"state",name:member}:member)}function build_group_registry(tree){const registry=new Map;tree.forEach(node=>{if(node.key==="named_list"){if(registry.has(node.name)){throw new JssmError(void 0,`Cannot redeclare group: &${node.name}`)}registry.set(node.name,normalize_group_members(node.value))}});return registry}function group_registry_cycle_check(registry){const visiting=new Set;const visited=new Set;const walk=(group,path)=>{if(visiting.has(group)){const cycle=[...path,group].map(g=>`&${g}`).join(" -> ");throw new JssmError(void 0,`Group membership cycle detected: ${cycle}`)}if(visited.has(group)){return}visiting.add(group);(registry.get(group)??[]).forEach(member=>{if(member.kind==="group"){walk(member.name,[...path,group])}});visiting.delete(group);visited.add(group)};registry.forEach((_members,group)=>walk(group,[]))}function transitive_members(registry,group,memo){const cached=memo.get(group);if(cached!==void 0){return cached}const out=[];(registry.get(group)??[]).forEach(member=>{if(member.kind==="state"){out.push(member.name)}else{transitive_members(registry,member.name,memo).forEach(s=>out.push(s))}});memo.set(group,out);return out}function validate_group_members(registry){registry.forEach(members=>{members.forEach(member=>{if(member.kind==="group"&&!registry.has(member.name)){throw new JssmError(void 0,`Unresolved group reference: &${member.name}`)}})})}function membership_distance(registry,state,group){const visited=new Set([group]);let frontier=[{group:group,hops:0}];while(frontier.length){const next=[];for(const{group:g,hops:hops}of frontier){const members=registry.get(g)??[];for(const member of members){if(member.kind==="state"){if(member.name===state){return hops+1}}else if(!visited.has(member.name)){visited.add(member.name);next.push({group:member.name,hops:hops+1})}}}frontier=next}return Infinity}const edge_decl_meta=new WeakMap;function resolve_transition_conflicts(edges,has_group_sources=true){if(!has_group_sources){return edges}const buckets=new Map;edges.forEach((edge,index)=>{if(edge.action==null){return}const key=JSON.stringify([String(edge.from),String(edge.action)]);let by_decl=buckets.get(key);if(by_decl===void 0){by_decl=new Map;buckets.set(key,by_decl)}const meta=edge_decl_meta.get(edge);const decl_id=meta===void 0?void 0:meta.decl_id;const entry=by_decl.get(decl_id);if(entry===void 0){by_decl.set(decl_id,{decl_id:decl_id,indices:[index],source_group:meta===void 0?void 0:meta.source_group,specificity:(meta===void 0?void 0:meta.specificity)??Infinity})}else{entry.indices.push(index)}});const dropped=new Set;buckets.forEach(by_decl=>{const decls=[...by_decl.values()];if(decls.length<2){return}const state_decls=decls.filter(d=>d.source_group===void 0);const group_decls=decls.filter(d=>d.source_group!==void 0);if(state_decls.length){group_decls.forEach(d=>d.indices.forEach(i=>dropped.add(i)));return}let winner=group_decls[0];group_decls.forEach(d=>{const nearer=d.specificity<winner.specificity;const tie_later=d.specificity===winner.specificity&&d.decl_id>winner.decl_id;if(nearer||tie_later){winner=d}});group_decls.forEach(d=>{if(d.decl_id!==winner.decl_id){d.indices.forEach(i=>dropped.add(i));console.warn(`jssm: group &${d.source_group} transition for state '${String(edges[d.indices[0]].from)}' on action '${String(edges[d.indices[0]].action)}' is overridden by nearer group &${winner.source_group}`)}})});const out=[];edges.forEach((edge,index)=>{if(dropped.has(index)){return}out.push(edge)});return out}function is_group_ref(endpoint){return typeof endpoint==="object"&&endpoint.key==="group_ref"}function resolve_group_refs(tree,registry){const memo=new Map;const require_resolvable=name=>{if(!registry.has(name)){throw new JssmError(void 0,`Unresolved group reference: &${name}`)}};const resolved=[];let decl_id=0;tree.forEach(node=>{if(node.key==="hook_decl"&&is_group_ref(node.subject)){require_resolvable(node.subject.name)}if(node.key!=="transition"){resolved.push(node);return}const this_decl=decl_id++;for(let link=node.se;link;link=link.se){if(is_group_ref(link.to)){require_resolvable(link.to.name);link.to=transitive_members(registry,link.to.name,memo)}}if(is_group_ref(node.from)){const group_name=node.from.name;require_resolvable(group_name);transitive_members(registry,group_name,memo).forEach(member=>{resolved.push({...node,from:member,__decl_id:this_decl,__source_group:group_name,__specificity:membership_distance(registry,member,group_name)})})}else if(registry.size===0){resolved.push(node)}else{resolved.push({...node,__decl_id:this_decl})}});return resolved}function compile_rule_transition_step(acc,from,to,this_se,next_se){const uFrom=Array.isArray(from)?from:[from],uTo=Array.isArray(to)?to:[to];for(const f of uFrom){for(const t of uTo){const right=makeTransition(this_se,f,t,true);if(right.kind!=="none"){acc.push(right)}const left=makeTransition(this_se,t,f,false);if(left.kind!=="none"){acc.push(left)}}}if(next_se){return compile_rule_transition_step(acc,to,next_se.to,next_se,next_se.se)}else{return acc}}function compile_rule_handle_transition(rule){return compile_rule_transition_step([],rule.from,rule.se.to,rule.se,rule.se.se)}function compile_rule_handler(rule){if(rule.key==="transition"){const edges=compile_rule_handle_transition(rule);const decl_id=rule.__decl_id;const source_group=rule.__source_group;const specificity=rule.__specificity;if(decl_id!==void 0){edges.forEach(edge=>{if(edge.from===rule.from){edge_decl_meta.set(edge,{decl_id:decl_id,source_group:source_group,specificity:specificity})}})}return{agg_as:"transition",val:edges}}if(rule.key==="machine_language"){const primary_subtag=String(rule.value).split(/[-_]/)[0];return{agg_as:"machine_language",val:reduce(primary_subtag)}}if(rule.key==="property_definition"){const ret={agg_as:"property_definition",val:{name:rule.name}};if(rule.hasOwnProperty("default_value")){ret.val.default_value=rule.default_value}if(rule.hasOwnProperty("required")){ret.val.required=rule.required}return ret}if(rule.key==="named_list"){return{agg_as:"named_list",val:[]}}if(rule.key==="hook_decl"){return{agg_as:"hook_decl",val:[rule]}}if(rule.key==="state_declaration"){if(!rule.name){throw new JssmError(void 0,"State declarations must have a name",{source_location:rule.loc})}if(is_group_ref(rule.name)){return{agg_as:"group_metadata",val:[{group:rule.name.name,declarations:rule.value}]}}return{agg_as:"state_declaration",val:{state:rule.name,declarations:rule.value}}}if(["arrange_declaration","arrange_start_declaration","arrange_end_declaration","oarrange_declaration","farrange_declaration"].includes(rule.key)){return{agg_as:rule.key,val:[rule.value]}}const tautologies=["graph_layout","graph_bg_color","start_states","end_states","failed_outputs","machine_name","machine_version","machine_comment","machine_author","machine_contributor","machine_definition","machine_reference","machine_license","fsl_version","state_config","theme","flow","dot_preamble","allows_override","allow_islands","default_state_config","default_transition_config","default_graph_config","default_start_state_config","default_end_state_config","default_hooked_state_config","default_active_state_config","default_terminal_state_config","npm_name","default_size","editor_config"];if(tautologies.includes(rule.key)){return{agg_as:rule.key,val:rule.value}}throw new JssmError(void 0,`compile_rule_handler: Unknown rule: ${JSON.stringify(rule)}`)}function canonical_graph_alias_key(alias_key){if(alias_key==="graph_bg_color"){return"background-color"}return alias_key}const WARN_DEPRECATED_GRAPH_ALIASES=new Set(["graph_bg_color"]);function fold_graph_config(aliases,explicit_block){const folded=[];Object.keys(aliases).forEach(alias_key=>{aliases[alias_key].forEach(value=>{if(WARN_DEPRECATED_GRAPH_ALIASES.has(alias_key)){console.warn(`jssm: top-level \`${alias_key}\` is deprecated; prefer a \`graph: {}\` config block`)}folded.push({key:canonical_graph_alias_key(alias_key),value:value})})});explicit_block.forEach(item=>folded.push(item));const seen_at=new Map;const result=[];folded.forEach(item=>{const existing_index=seen_at.get(item.key);if(existing_index===void 0){seen_at.set(item.key,result.length);result.push(item)}else{result[existing_index]=item}});return result}function compile(tree){const results={graph_layout:[],graph_bg_color:[],transition:[],start_states:[],end_states:[],failed_outputs:[],state_config:[],state_declaration:[],fsl_version:[],machine_author:[],machine_comment:[],machine_contributor:[],machine_definition:[],machine_language:[],machine_license:[],machine_name:[],machine_reference:[],npm_name:[],default_size:[],property_definition:[],state_property:{},theme:[],flow:[],dot_preamble:[],arrange_declaration:[],arrange_start_declaration:[],arrange_end_declaration:[],oarrange_declaration:[],farrange_declaration:[],machine_version:[],default_state_config:[],default_active_state_config:[],default_hooked_state_config:[],default_terminal_state_config:[],default_start_state_config:[],default_end_state_config:[],default_transition_config:[],default_graph_config:[],named_list:[],group_metadata:[],hook_decl:[],allows_override:[],allow_islands:[],editor_config:[]};const group_registry=build_group_registry(tree);group_registry_cycle_check(group_registry);validate_group_members(group_registry);const resolved_tree=resolve_group_refs(tree,group_registry);for(const tr of resolved_tree){const rule=compile_rule_handler(tr),val=rule.val,bucket=results[rule.agg_as];if(Array.isArray(val)){for(const v of val){bucket.push(v)}}else{bucket.push(val)}}const property_keys=results["property_definition"].map(pd=>pd.name),repeat_props=find_repeated(property_keys);if(repeat_props.length){const dup=repeat_props[0][0];throw new JssmError(void 0,`Cannot repeat property definitions. Saw ${JSON.stringify(repeat_props)}`,{source_location:nth_matching_loc(tree,n=>n.key==="property_definition"&&n.name===dup,2)})}const assembled_transitions=resolve_transition_conflicts(results["transition"],group_registry.size!==0);if(assembled_transitions.length===0){throw new JssmError(void 0,"This machine has no transitions, only declarations; a machine requires at least one transition (like `a -> b;`)")}const result_cfg={start_states:results.start_states.length?results.start_states:[assembled_transitions[0].from],end_states:results.end_states,failed_outputs:results.failed_outputs,transitions:assembled_transitions,state_property:[]};if(group_registry.size){result_cfg.group_registry=group_registry}if(results.group_metadata.length){const group_metadata=new Map;results.group_metadata.forEach(gm=>{group_metadata.set(gm.group,{declarations:gm.declarations})});result_cfg.group_metadata=group_metadata}if(results.hook_decl.length){const group_hooks=new Map;const state_hooks=new Map;const merge_hook=(table,subject,event,action)=>{const existing=table.get(subject)??{};if(event==="enter"){existing.onEnter=action}else{existing.onExit=action}table.set(subject,existing)};results.hook_decl.forEach(decl=>{if(is_group_ref(decl.subject)){merge_hook(group_hooks,decl.subject.name,decl.event,decl.action)}else{merge_hook(state_hooks,decl.subject,decl.event,decl.action)}});if(group_hooks.size){result_cfg.group_hooks=group_hooks}if(state_hooks.size){result_cfg.state_hooks=state_hooks}}const oneOnlyKeys=["graph_layout","graph_bg_color","machine_name","machine_version","machine_comment","fsl_version","machine_license","machine_definition","machine_language","flow","dot_preamble","allows_override","allow_islands","npm_name","default_size"];oneOnlyKeys.map(oneOnlyKey=>{if(results[oneOnlyKey].length>1){throw new JssmError(void 0,`May only have one ${oneOnlyKey} statement maximum: ${JSON.stringify(results[oneOnlyKey])}`,{source_location:nth_matching_loc(tree,n=>n.key===oneOnlyKey,2)})}else{if(results[oneOnlyKey].length){result_cfg[oneOnlyKey]=results[oneOnlyKey][0]}}});["arrange_declaration","arrange_start_declaration","arrange_end_declaration","oarrange_declaration","farrange_declaration","machine_author","machine_contributor","machine_reference","theme","state_declaration","property_definition","default_state_config","default_start_state_config","default_end_state_config","default_hooked_state_config","default_terminal_state_config","default_active_state_config","default_transition_config"].map(multiKey=>{if(results[multiKey].length){result_cfg[multiKey]=results[multiKey]}});result_cfg.default_graph_config=fold_graph_config({graph_layout:results.graph_layout,graph_bg_color:results.graph_bg_color,dot_preamble:results.dot_preamble,theme:results.theme,flow:results.flow},results.default_graph_config);if(!result_cfg.default_graph_config.length){delete result_cfg.default_graph_config}if(results.editor_config.length){const ec={};for(const item of results.editor_config){if(item.key==="stochastic_run_count"){ec.stochastic_run_count=item.value}else{ec.panels=item.value}}result_cfg.editor_config=ec}results.state_declaration.forEach(sd=>{sd.declarations.forEach(decl=>{if(decl.key==="state_property"){const label=name_bind_prop_and_state(decl.name,sd.state);if(result_cfg.state_property.findIndex(c=>c.name===label)!==-1){throw new JssmError(void 0,`A state may only bind a property once (${sd.state} re-binds ${decl.name})`,{source_location:nth_matching_loc(tree,n=>n.key==="state_declaration"&&n.name===sd.state,1)})}else{result_cfg.state_property.push({name:label,default_value:decl.value,property:decl.name,state:sd.state})}}})});return result_cfg}function make(plan){return compile(wrap_parse(plan))}const base_state_style$5={shape:"rectangle",backgroundColor:"white",textColor:"black",borderColor:"black"};const base_active_state_style$5={textColor:"white",backgroundColor:"dodgerblue4"};const base_hooked_state_style$5={shape:"component"};const base_terminal_state_style$5={textColor:"white",backgroundColor:"crimson"};const base_start_state_style$5={backgroundColor:"yellow"};const base_end_state_style$5={textColor:"white",backgroundColor:"darkolivegreen"};const base_theme={state:base_state_style$5,start:base_start_state_style$5,end:base_end_state_style$5,terminal:base_terminal_state_style$5,hooked:base_hooked_state_style$5,active:base_active_state_style$5};const base_state_style$4={shape:"rectangle",backgroundColor:"white",textColor:"black",borderColor:"black"};const base_active_state_style$4={textColor:"white",backgroundColor:"dodgerblue4"};const base_hooked_state_style$4={shape:"component"};const base_terminal_state_style$4={textColor:"white",backgroundColor:"crimson"};const base_active_terminal_state_style$4={textColor:"white",backgroundColor:"indigo"};const base_start_state_style$4={backgroundColor:"yellow"};const base_active_start_state_style$4={backgroundColor:"yellowgreen"};const base_active_hooked_state_style$4={backgroundColor:"yellowgreen"};const base_end_state_style$4={textColor:"white",backgroundColor:"darkolivegreen"};const base_active_end_state_style$4={textColor:"white",backgroundColor:"darkgreen"};const default_theme={name:"default",state:base_state_style$4,start:base_start_state_style$4,end:base_end_state_style$4,terminal:base_terminal_state_style$4,hooked:base_hooked_state_style$4,active:base_active_state_style$4,active_start:base_active_start_state_style$4,active_end:base_active_end_state_style$4,active_terminal:base_active_terminal_state_style$4,active_hooked:base_active_hooked_state_style$4,legal:void 0,main:void 0,forced:void 0,action:void 0,graph:void 0,title:void 0};const base_state_style$3={shape:"rectangle",backgroundColor:"khaki",textColor:"black",borderColor:"black"};const base_active_state_style$3={textColor:"white",backgroundColor:"dodgerblue4"};const base_hooked_state_style$3={shape:"component"};const base_terminal_state_style$3={textColor:"white",backgroundColor:"crimson"};const base_active_terminal_state_style$3={textColor:"white",backgroundColor:"indigo"};const base_start_state_style$3={backgroundColor:"yellow"};const base_active_start_state_style$3={backgroundColor:"yellowgreen"};const base_active_hooked_state_style$3={backgroundColor:"yellowgreen"};const base_end_state_style$3={textColor:"white",backgroundColor:"darkolivegreen"};const base_active_end_state_style$3={textColor:"white",backgroundColor:"darkgreen"};const modern_theme={name:"modern",state:base_state_style$3,start:base_start_state_style$3,end:base_end_state_style$3,terminal:base_terminal_state_style$3,hooked:base_hooked_state_style$3,active:base_active_state_style$3,active_start:base_active_start_state_style$3,active_end:base_active_end_state_style$3,active_terminal:base_active_terminal_state_style$3,active_hooked:base_active_hooked_state_style$3,legal:void 0,main:void 0,forced:void 0,action:void 0,graph:void 0,title:void 0};const base_state_style$2={backgroundColor:"cadetblue1"};const base_active_state_style$2={textColor:"white",backgroundColor:"deepskyblue"};const base_hooked_state_style$2={shape:"component",backgroundColor:"mediumaquamarine"};const base_terminal_state_style$2={textColor:"white",backgroundColor:"darkviolet"};const base_active_terminal_state_style$2={textColor:"white",backgroundColor:"deeppink"};const base_start_state_style$2={backgroundColor:"darkseagreen1"};const base_active_start_state_style$2={backgroundColor:"aquamarine"};const base_active_hooked_state_style$2={backgroundColor:"aquamarine"};const base_end_state_style$2={textColor:"white",backgroundColor:"chartreuse1"};const base_active_end_state_style$2={textColor:"white",backgroundColor:"darkgreen"};const ocean_theme={name:"ocean",state:base_state_style$2,start:base_start_state_style$2,end:base_end_state_style$2,terminal:base_terminal_state_style$2,hooked:base_hooked_state_style$2,active:base_active_state_style$2,active_start:base_active_start_state_style$2,active_end:base_active_end_state_style$2,active_terminal:base_active_terminal_state_style$2,active_hooked:base_active_hooked_state_style$2,legal:void 0,main:void 0,forced:void 0,action:void 0,graph:void 0,title:void 0};const base_state_style$1={textColor:"black",backgroundColor:"transparent",shape:"plaintext"};const base_active_state_style$1={textColor:"black",backgroundColor:"transparent",shape:"plaintext"};const base_hooked_state_style$1={textColor:"black",backgroundColor:"transparent",shape:"plaintext"};const base_terminal_state_style$1={textColor:"black",backgroundColor:"transparent",shape:"plaintext"};const base_active_terminal_state_style$1={textColor:"black",backgroundColor:"transparent",shape:"plaintext"};const base_start_state_style$1={textColor:"black",backgroundColor:"transparent",shape:"plaintext"};const base_active_start_state_style$1={textColor:"black",backgroundColor:"transparent",shape:"plaintext"};const base_active_hooked_state_style$1={textColor:"black",backgroundColor:"transparent",shape:"plaintext"};const base_end_state_style$1={textColor:"black",backgroundColor:"transparent",shape:"plaintext"};const base_active_end_state_style$1={textColor:"black",backgroundColor:"transparent",shape:"plaintext"};const plain_theme={name:"plain",state:base_state_style$1,start:base_start_state_style$1,end:base_end_state_style$1,terminal:base_terminal_state_style$1,hooked:base_hooked_state_style$1,active:base_active_state_style$1,active_start:base_active_start_state_style$1,active_end:base_active_end_state_style$1,active_terminal:base_active_terminal_state_style$1,active_hooked:base_active_hooked_state_style$1,legal:void 0,main:void 0,forced:void 0,action:void 0,graph:void 0,title:void 0};const base_state_style={shape:"rectangle",backgroundColor:"khaki",textColor:"black",borderColor:"black"};const base_active_state_style={textColor:"white",backgroundColor:"dodgerblue4"};const base_hooked_state_style={shape:"component"};const base_terminal_state_style={textColor:"white",backgroundColor:"crimson"};const base_active_terminal_state_style={textColor:"white",backgroundColor:"indigo"};const base_start_state_style={backgroundColor:"yellow"};const base_active_start_state_style={backgroundColor:"yellowgreen"};const base_active_hooked_state_style={backgroundColor:"yellowgreen"};const base_end_state_style={textColor:"white",backgroundColor:"darkolivegreen"};const base_active_end_state_style={textColor:"white",backgroundColor:"darkgreen"};const bold_theme={name:"bold",state:base_state_style,start:base_start_state_style,end:base_end_state_style,terminal:base_terminal_state_style,hooked:base_hooked_state_style,active:base_active_state_style,active_start:base_active_start_state_style,active_end:base_active_end_state_style,active_terminal:base_active_terminal_state_style,active_hooked:base_active_hooked_state_style,legal:void 0,main:void 0,forced:void 0,action:void 0,graph:void 0,title:void 0};const theme_mapping=new Map;theme_mapping.set("default",default_theme);theme_mapping.set("modern",modern_theme);theme_mapping.set("ocean",ocean_theme);theme_mapping.set("plain",plain_theme);theme_mapping.set("bold",bold_theme);class Interner{constructor(){this.ids=new Map;this.names=[]}intern(name){const existing=this.ids.get(name);if(existing!==void 0){return existing}const id=this.names.length;this.ids.set(name,id);this.names.push(name);return id}id_of(name){return this.ids.get(name)}name_of(id){return this.names[id]}get size(){return this.names.length}}function pair_key(a,b){return a>=b?a*a+a+b:b*b+a}function un_pair_key(z){const s=Math.floor(Math.sqrt(z));const l=z-s*s;return l<s?[l,s]:[s,l-s]}const state_name_chars$1=Object.freeze([{from:"0",to:"9"},{from:"a",to:"z"},{from:"A",to:"Z"},{from:".",to:"."},{from:"+",to:"+"},{from:"_",to:"_"},{from:"^",to:"^"},{from:"(",to:"("},{from:")",to:")"},{from:"*",to:"*"},{from:"&",to:"&"},{from:"$",to:"$"},{from:"#",to:"#"},{from:"@",to:"@"},{from:"!",to:"!"},{from:"?",to:"?"},{from:",",to:","},{from:"€",to:"￿"}]);const state_name_first_chars$1=Object.freeze([{from:"0",to:"9"},{from:"a",to:"z"},{from:"A",to:"Z"},{from:".",to:"."},{from:"_",to:"_"},{from:"!",to:"!"},{from:"$",to:"$"},{from:"^",to:"^"},{from:"*",to:"*"},{from:"?",to:"?"},{from:",",to:","},{from:"€",to:"￿"}]);const action_label_chars$1=Object.freeze([{from:" ",to:"&"},{from:"(",to:"["},{from:"]",to:"￿"}]);var constants=Object.freeze({__proto__:null,action_label_chars:action_label_chars$1,state_name_chars:state_name_chars$1,state_name_first_chars:state_name_first_chars$1});const version="5.158.1";const{state_name_chars:state_name_chars,state_name_first_chars:state_name_first_chars,action_label_chars:action_label_chars}=constants;const empty_string_set=new Set;const hook_required_fields={hook:["from","to"],named:["from","to","action"],"global action":["action"],"any action":[],"standard transition":[],"main transition":[],"forced transition":[],"any transition":[],entry:["to"],exit:["from"],after:["from"],"post hook":["from","to"],"post named":["from","to","action"],"post global action":["action"],"post any action":[],"post standard transition":[],"post main transition":[],"post forced transition":[],"post any transition":[],"post entry":["to"],"post exit":["from"],"pre everything":[],everything:[],"pre post everything":[],"post everything":[]};const hook_spatial_fields=["from","to","action"];function transfer_state_properties(state_decl){state_decl.declarations.map(d=>{switch(d.key){case"shape":state_decl.shape=d.value;break;case"color":state_decl.color=d.value;break;case"corners":state_decl.corners=d.value;break;case"line-style":state_decl.lineStyle=d.value;break;case"text-color":state_decl.textColor=d.value;break;case"background-color":state_decl.backgroundColor=d.value;break;case"state-label":state_decl.stateLabel=d.value;break;case"border-color":state_decl.borderColor=d.value;break;case"image":state_decl.image=d.value;break;case"url":state_decl.url=d.value;break;case"state_property":state_decl.property={name:d.name,value:d.value};break;default:throw new JssmError(void 0,`Unknown state property: '${JSON.stringify(d)}'`)}});return state_decl}function state_style_condense(jssk,machine){const state_style={};if(Array.isArray(jssk)){jssk.forEach((key,i)=>{if(typeof key!=="object"){throw new JssmError(machine,`invalid state item ${i} in state_style_condense list: ${JSON.stringify(key)}`)}switch(key.key){case"shape":if(state_style.shape!==void 0){throw new JssmError(machine,`cannot redefine 'shape' in state_style_condense, already defined`)}state_style.shape=key.value;break;case"color":if(state_style.color!==void 0){throw new JssmError(machine,`cannot redefine 'color' in state_style_condense, already defined`)}state_style.color=key.value;break;case"text-color":if(state_style.textColor!==void 0){throw new JssmError(machine,`cannot redefine 'text-color' in state_style_condense, already defined`)}state_style.textColor=key.value;break;case"corners":if(state_style.corners!==void 0){throw new JssmError(machine,`cannot redefine 'corners' in state_style_condense, already defined`)}state_style.corners=key.value;break;case"line-style":if(state_style.lineStyle!==void 0){throw new JssmError(machine,`cannot redefine 'line-style' in state_style_condense, already defined`)}state_style.lineStyle=key.value;break;case"background-color":if(state_style.backgroundColor!==void 0){throw new JssmError(machine,`cannot redefine 'background-color' in state_style_condense, already defined`)}state_style.backgroundColor=key.value;break;case"state-label":if(state_style.stateLabel!==void 0){throw new JssmError(machine,`cannot redefine 'state-label' in state_style_condense, already defined`)}state_style.stateLabel=key.value;break;case"border-color":if(state_style.borderColor!==void 0){throw new JssmError(machine,`cannot redefine 'border-color' in state_style_condense, already defined`)}state_style.borderColor=key.value;break;case"url":if(state_style.url!==void 0){throw new JssmError(machine,`cannot redefine 'url' in state_style_condense, already defined`)}state_style.url=key.value;break;default:throw new JssmError(machine,`unknown state style key in condense: ${key.key}`)}})}else if(jssk===void 0);else{throw new JssmError(machine,"state_style_condense received a non-array")}return state_style}function merge_state_config(base,over){const merged={...base};Object.keys(over).forEach(key=>{if(over[key]!==void 0){merged[key]=over[key]}});return merged}function find_connected_components(states,edges){const adj=new Map;for(const name of states.keys()){adj.set(name,new Set)}for(const edge of edges){adj.get(edge.from).add(edge.to);adj.get(edge.to).add(edge.from)}const visited=new Set;const result=[];for(const start of states.keys()){if(visited.has(start)){continue}const component=[];const queue=[start];visited.add(start);let head=0;while(head<queue.length){const node=queue[head++];component.push(node);for(const neighbor of adj.get(node)){if(!visited.has(neighbor)){visited.add(neighbor);queue.push(neighbor)}}}result.push(component)}return result}const STOCHASTIC_DEFAULT_RUNS=1e3;const STOCHASTIC_DEFAULT_MAX_STEPS=1e3;const DEFAULT_TIME_SOURCE=()=>(new Date).getTime();const DEFAULT_TIMEOUT_SOURCE=(f,a)=>setTimeout(f,a);const DEFAULT_CLEAR_TIMEOUT_SOURCE=h=>clearTimeout(h);class Machine{constructor({start_states:start_states,end_states:end_states=[],failed_outputs:failed_outputs=[],initial_state:initial_state,start_states_no_enforce:start_states_no_enforce,complete:complete=[],transitions:transitions,machine_author:machine_author,machine_comment:machine_comment,machine_contributor:machine_contributor,machine_definition:machine_definition,machine_language:machine_language,machine_license:machine_license,machine_name:machine_name,machine_version:machine_version,npm_name:npm_name,default_size:default_size,state_declaration:state_declaration,property_definition:property_definition,state_property:state_property,fsl_version:fsl_version,dot_preamble:dot_preamble=void 0,arrange_declaration:arrange_declaration=[],arrange_start_declaration:arrange_start_declaration=[],arrange_end_declaration:arrange_end_declaration=[],oarrange_declaration:oarrange_declaration=[],farrange_declaration:farrange_declaration=[],theme:theme=["default"],flow:flow="down",graph_layout:graph_layout="dot",instance_name:instance_name,history:history,boundary_depth_limit:boundary_depth_limit,data:data,default_state_config:default_state_config,default_active_state_config:default_active_state_config,default_hooked_state_config:default_hooked_state_config,default_terminal_state_config:default_terminal_state_config,default_start_state_config:default_start_state_config,default_end_state_config:default_end_state_config,default_transition_config:default_transition_config,default_graph_config:default_graph_config,group_registry:group_registry,group_metadata:group_metadata,group_hooks:group_hooks,state_hooks:state_hooks,allows_override:allows_override,config_allows_override:config_allows_override,allow_islands:allow_islands,editor_config:editor_config,rng_seed:rng_seed,time_source:time_source,timeout_source:timeout_source,clear_timeout_source:clear_timeout_source}){this._time_source=time_source??DEFAULT_TIME_SOURCE;this._create_started=this._time_source();this._instance_name=instance_name;this._states=new Map;this._state_declarations=new Map;this._edges=[];this._edge_map=new Map;this._outbound_edge_ids=new Map;this._named_transitions=new Map;this._actions=new Map;this._reverse_actions=new Map;this._reverse_action_targets=new Map;this._state_interner=new Interner;this._action_interner=new Interner;this._state_id=NaN;this._edge_id_by_pair=new Map;this._edge_id_by_action_pair=new Map;this._edge_to_ids=[];this._start_states=new Set(start_states);this._end_states=new Set(end_states);this._failed_outputs=new Set(failed_outputs);this._machine_author=array_box_if_string(machine_author);this._machine_comment=machine_comment;this._machine_contributor=array_box_if_string(machine_contributor);this._machine_definition=machine_definition;this._machine_language=machine_language;this._machine_license=machine_license;this._machine_name=machine_name;this._machine_version=machine_version;this._npm_name=npm_name;this._default_size=default_size;this._raw_state_declaration=state_declaration||[];this._fsl_version=fsl_version;this._arrange_declaration=arrange_declaration;this._arrange_start_declaration=arrange_start_declaration;this._arrange_end_declaration=arrange_end_declaration;this._oarrange_declaration=oarrange_declaration;this._farrange_declaration=farrange_declaration;this._dot_preamble=dot_preamble;this._themes=theme;this._flow=flow;this._graph_layout=graph_layout;this._has_hooks=false;this._has_basic_hooks=false;this._has_named_hooks=false;this._has_entry_hooks=false;this._has_exit_hooks=false;this._has_after_hooks=false;this._has_global_action_hooks=false;this._has_transition_hooks=false;this._has_forced_transitions=false;this._hooks=new Map;this._named_hooks=new Map;this._entry_hooks=new Map;this._exit_hooks=new Map;this._after_hooks=new Map;this._global_action_hooks=new Map;this._any_action_hook=void 0;this._standard_transition_hook=void 0;this._main_transition_hook=void 0;this._forced_transition_hook=void 0;this._any_transition_hook=void 0;this._has_post_hooks=false;this._has_post_basic_hooks=false;this._has_post_named_hooks=false;this._has_post_entry_hooks=false;this._has_post_exit_hooks=false;this._has_post_global_action_hooks=false;this._has_post_transition_hooks=false;this._code_allows_override=allows_override;this._config_allows_override=config_allows_override;this._allow_islands=allow_islands??true;this._editor_config=editor_config;if(allows_override===false&&config_allows_override===true){throw new JssmError(void 0,"Code specifies no override, but config tries to permit; config may not be less strict than code")}this._post_hooks=new Map;this._post_named_hooks=new Map;this._post_entry_hooks=new Map;this._post_exit_hooks=new Map;this._post_global_action_hooks=new Map;this._post_any_action_hook=void 0;this._post_standard_transition_hook=void 0;this._post_main_transition_hook=void 0;this._post_forced_transition_hook=void 0;this._post_any_transition_hook=void 0;this._pre_everything_hook=void 0;this._everything_hook=void 0;this._pre_post_everything_hook=void 0;this._post_everything_hook=void 0;this._data=data;this._property_keys=new Set;this._default_properties=new Map;this._state_properties=new Map;this._required_properties=new Set;this._state_property_first_state=new Map;this._state_style=state_style_condense(default_state_config,this);this._active_state_style=state_style_condense(default_active_state_config,this);this._hooked_state_style=state_style_condense(default_hooked_state_config,this);this._terminal_state_style=state_style_condense(default_terminal_state_config,this);this._start_state_style=state_style_condense(default_start_state_config,this);this._end_state_style=state_style_condense(default_end_state_config,this);this._default_transition_config=default_transition_config;this._default_graph_config=default_graph_config;this._group_registry=group_registry??new Map;this._group_hooks=group_hooks??new Map;this._state_hooks=state_hooks??new Map;this._group_metadata=new Map;if(group_metadata){group_metadata.forEach((raw,group_name)=>this._group_metadata.set(group_name,state_style_condense(raw.declarations,this)))}this._group_order=[...this._group_registry.keys()];this._state_to_groups=new Map;{const memo=new Map;this._group_order.forEach(group_name=>{transitive_members(this._group_registry,group_name,memo).forEach(member=>{let bucket=this._state_to_groups.get(member);if(bucket===void 0){bucket=new Set;this._state_to_groups.set(member,bucket)}bucket.add(group_name)})})}this._static_state_config_cache=new Map;this._history_length=history||0;this._history=new circular_buffer(this._history_length);this._state_labels=new Map;this._rng_seed=rng_seed??(new Date).getTime();this._rng=gen_splitmix32(this._rng_seed);this._timeout_source=timeout_source??DEFAULT_TIMEOUT_SOURCE;this._clear_timeout_source=clear_timeout_source??DEFAULT_CLEAR_TIMEOUT_SOURCE;this._timeout_handle=void 0;this._timeout_target=void 0;this._timeout_target_time=void 0;this._after_mapping=new Map;this._event_handlers=new Map;this._event_listener_count=0;this._firing_error=false;this._boundary_depth=0;this._boundary_depth_limit=boundary_depth_limit??100;if(state_declaration){state_declaration.map(state_decl=>{if(this._state_declarations.has(state_decl.state)){throw new JssmError(this,`Added the same state declaration twice: ${JSON.stringify(state_decl.state)}`)}this._state_declarations.set(state_decl.state,transfer_state_properties(state_decl))})}[...this._state_declarations].map(sd=>{const[key,decl]=sd,labelled=decl.declarations.filter(d=>d.key==="state-label");if(labelled.length>1){throw new JssmError(this,`state ${key} may only have one state-label; has ${labelled.length}`)}if(labelled.length===1){this._state_labels.set(key,labelled[0].value)}});const seen_edges=new Map;const complete_set=new Set(complete);for(const tr of transitions){if(tr.from===void 0){throw new JssmError(this,`transition must define 'from': ${JSON.stringify(tr)}`)}if(tr.to===void 0){throw new JssmError(this,`transition must define 'to': ${JSON.stringify(tr)}`)}let cursor_from=this._states.get(tr.from);if(cursor_from===void 0){cursor_from={name:tr.from,from:[],to:[],complete:complete_set.has(tr.from)};this._new_state(cursor_from)}let cursor_to=this._states.get(tr.to);if(cursor_to===void 0){cursor_to={name:tr.to,from:[],to:[],complete:complete_set.has(tr.to)};this._new_state(cursor_to)}let to_slots=seen_edges.get(tr.from);if(to_slots===void 0){to_slots=new Map;seen_edges.set(tr.from,to_slots)}let slots=to_slots.get(tr.to);if(slots===void 0){slots=new Set;to_slots.set(tr.to,slots);cursor_from.to.push(tr.to);cursor_to.from.push(tr.from)}const edge_exempt=!tr.action&&tr.probability!==void 0;if(!edge_exempt){const slot=tr.action?tr.action:"";if(slots.has(slot)){throw new JssmError(this,`already has ${JSON.stringify(tr.from)} to ${JSON.stringify(tr.to)}`+(tr.action?` on action ${JSON.stringify(tr.action)}`:""))}slots.add(slot)}this._edges.push(tr);const thisEdgeId=this._edges.length-1;if(tr.forced_only){this._has_forced_transitions=true}if(tr.name){if(this._named_transitions.has(tr.name)){throw new JssmError(this,`named transition "${JSON.stringify(tr.name)}" already created`)}else{this._named_transitions.set(tr.name,thisEdgeId)}}if(tr.after_time){this._after_mapping.set(tr.from,[tr.to,tr.after_time])}let from_mapping=this._edge_map.get(tr.from);if(from_mapping===void 0){from_mapping=new Map;this._edge_map.set(tr.from,from_mapping)}if(!from_mapping.has(tr.to)){from_mapping.set(tr.to,thisEdgeId)}const from_id=this._state_interner.intern(tr.from);const to_id=this._state_interner.intern(tr.to);const pair=pair_key(from_id,to_id);if(!this._edge_id_by_pair.has(pair)){this._edge_id_by_pair.set(pair,thisEdgeId)}this._edge_to_ids[thisEdgeId]=to_id;let outbound=this._outbound_edge_ids.get(tr.from);if(!outbound){outbound=[];this._outbound_edge_ids.set(tr.from,outbound)}outbound.push(thisEdgeId);if(tr.action){let actionMap=this._actions.get(tr.action);if(!actionMap){actionMap=new Map;this._actions.set(tr.action,actionMap)}if(actionMap.has(tr.from)){throw new JssmError(this,`action ${JSON.stringify(tr.action)} already attached to origin ${JSON.stringify(tr.from)}`)}else{actionMap.set(tr.from,thisEdgeId)}let rActionMap=this._reverse_actions.get(tr.from);if(!rActionMap){rActionMap=new Map;this._reverse_actions.set(tr.from,rActionMap)}rActionMap.set(tr.action,thisEdgeId);const action_id=this._action_interner.intern(tr.action);this._edge_id_by_action_pair.set(pair_key(action_id,from_id),thisEdgeId);if(!this._reverse_action_targets.has(tr.to)){this._reverse_action_targets.set(tr.to,new Map)}}}if(Array.isArray(property_definition)){property_definition.forEach(pr=>{this._property_keys.add(pr.name);if(pr.hasOwnProperty("default_value")){this._default_properties.set(pr.name,pr.default_value)}if(pr.hasOwnProperty("required")&&pr.required===true){this._required_properties.add(pr.name)}})}if(Array.isArray(state_property)){state_property.forEach(sp=>{this._state_properties.set(sp.name,sp.default_value);let j_property=sp.property,j_state=sp.state;if(j_property===void 0||j_state===void 0){const inside=JSON.parse(sp.name);j_property=inside[0];j_state=inside[1]}if(!this._state_property_first_state.has(j_property)){this._state_property_first_state.set(j_property,j_state)}})}if(initial_state){if(!this._states.has(initial_state)){throw new JssmError(this,`requested start state ${initial_state} does not exist`)}if(!start_states_no_enforce&&!start_states.includes(initial_state)){throw new JssmError(this,`requested start state ${initial_state} is not in start state list; add {start_states_no_enforce:true} to constructor options if desired`)}this._state=initial_state;this._state_id=this._state_interner.intern(this._state)}else{this._state=start_states[0];this._state_id=this._state_interner.intern(this._state)}this._state_property_first_state.forEach((j_state,j_property)=>{if(!this.known_prop(j_property)){throw new JssmError(this,`State "${j_state}" has property "${j_property}" which is not globally declared`)}});const all_states_for_props=this.states();this._required_properties.forEach(dp_key=>{if(this._default_properties.has(dp_key)){throw new JssmError(this,`The property "${dp_key}" is required, but also has a default; these conflict`)}all_states_for_props.forEach(s=>{const bound_name=name_bind_prop_and_state(dp_key,s);if(!this._state_properties.has(bound_name)){throw new JssmError(this,`State "${s}" is missing required property "${dp_key}"`)}})});if(!this.has_state(this.state())){throw new JssmError(this,`Current start state "${this.state()}" does not exist`)}start_states.forEach((ss,ssi)=>{if(!this.has_state(ss)){throw new JssmError(this,`Start state ${ssi} "${ss}" does not exist`)}});if(!(start_states.length===this._start_states.size)){throw new JssmError(this,`Start states cannot be repeated`)}if(this._allow_islands!==true){const components=find_connected_components(this._states,this._edges);if(this._allow_islands===false){if(components.length>1){throw new JssmError(this,`allow_islands is false but the state graph has ${components.length} disconnected components`)}}else{for(const component of components){const has_start=component.some(s=>this._start_states.has(s));if(!has_start){throw new JssmError(this,`allow_islands is 'with_start' but a connected component has no start state: [${[...component].join(", ")}]`)}}}}this._created=this._time_source();this.auto_set_state_timeout();[this._arrange_declaration,this._oarrange_declaration,this._farrange_declaration].forEach(declaration=>declaration.forEach(arrange_pair=>arrange_pair.forEach(possibleState=>{if(!this._states.has(possibleState)){throw new JssmError(this,`Cannot arrange state that does not exist "${possibleState}"`)}})))}_new_state(state_config){if(this._states.has(state_config.name)){throw new JssmError(this,`state ${JSON.stringify(state_config.name)} already exists`)}this._states.set(state_config.name,state_config);this._state_interner.intern(state_config.name);return state_config.name}state(){return this._state}label_for(state){return this._state_labels.get(state)}display_text(state){return this._state_labels.get(state)??state}data(){return structuredClone(this._data)}_data_ref(){return this._data}prop(name){const bound_name=name_bind_prop_and_state(name,this.state());if(this._state_properties.has(bound_name)){return this._state_properties.get(bound_name)}else if(this._default_properties.has(name)){return this._default_properties.get(name)}else{return void 0}}strict_prop(name){const bound_name=name_bind_prop_and_state(name,this.state());if(this._state_properties.has(bound_name)){return this._state_properties.get(bound_name)}else if(this._default_properties.has(name)){return this._default_properties.get(name)}else{throw new JssmError(this,`Strictly requested a prop '${name}' which doesn't exist on current state '${this.state()}' and has no default`)}}props(){const ret={};this.known_props().forEach(p=>ret[p]=this.prop(p));return ret}known_prop(prop_name){return this._property_keys.has(prop_name)}known_props(){return[...this._property_keys]}is_start_state(whichState){return this._start_states.has(whichState)}is_end_state(whichState){return this._end_states.has(whichState)}failed_outputs(){return[...this._failed_outputs]}is_failed_output(whichState){return this._failed_outputs.has(whichState)}is_failed(){return this._failed_outputs.has(this._state)}state_is_final(whichState){return this.state_is_terminal(whichState)||this.state_is_complete(whichState)}is_final(){return this.state_is_final(this.state())}serialize(comment){return{comment:comment,state:this._state,data:this._data,jssm_version:version,history:this._history.toArray(),history_capacity:this._history.capacity,timestamp:this._time_source()}}graph_layout(){return this._graph_layout}dot_preamble(){return this._dot_preamble}default_transition_config(){return this._default_transition_config}default_graph_config(){return this._default_graph_config}machine_author(){return this._machine_author}machine_comment(){return this._machine_comment}machine_contributor(){return this._machine_contributor}machine_definition(){return this._machine_definition}machine_language(){return this._machine_language}machine_license(){return this._machine_license}machine_name(){return this._machine_name}editor_config(){return this._editor_config}npm_name(){return this._npm_name}default_size(){return this._default_size}machine_version(){return this._machine_version}raw_state_declarations(){return this._raw_state_declaration}state_declaration(which){return this._state_declarations.get(which)}state_declarations(){return this._state_declarations}fsl_version(){return this._fsl_version}machine_state(){return{internal_state_impl_version:1,actions:this._actions,edge_map:this._edge_map,edges:this._edges,named_transitions:this._named_transitions,reverse_actions:this._reverse_actions,state:this._state,states:this._states}}states(){return Array.from(this._states.keys())}state_for(whichState){const state=this._states.get(whichState);if(state){return state}else{throw new JssmError(this,"No such state",{requested_state:whichState})}}has_state(whichState){return this._states.get(whichState)!==void 0}list_edges(){return this._edges}list_named_transitions(){return this._named_transitions}list_actions(){return Array.from(this._actions.keys())}get uses_actions(){return this._actions.size>0}get uses_forced_transitions(){return this._has_forced_transitions}get code_allows_override(){return this._code_allows_override}get config_allows_override(){return this._config_allows_override}get allows_override(){if(this._code_allows_override===false){if(this._config_allows_override===true){throw new JssmError(this,"Code specifies no override, but config tries to permit; config may not be less strict than code; should be unreachable")}else{return false}}if(this._code_allows_override===true){if(this._config_allows_override===false){return false}else{return true}}if(this._config_allows_override===true){return true}else{return false}}get allow_islands(){return this._allow_islands}all_themes(){return[...theme_mapping.keys()]}all_state_name_chars(){return state_name_chars}all_state_name_first_chars(){return state_name_first_chars}all_action_label_chars(){return action_label_chars}get themes(){return this._themes}set themes(to){if(typeof to==="string"){this._themes=[to]}else{this._themes=to}}flow(){return this._flow}get_transition_by_state_names(from2,to){const emg=this._edge_map.get(from2);if(emg){return emg.get(to)}else{return void 0}}lookup_transition_for(from2,to){const id=this.get_transition_by_state_names(from2,to);return id===void 0||id===null?void 0:this._edges[id]}list_transitions(whichState=this.state()){return{entrances:this.list_entrances(whichState),exits:this.list_exits(whichState)}}list_entrances(whichState=this.state()){const guaranteed=this._states.get(whichState)??{from:void 0};return guaranteed.from??[]}list_exits(whichState=this.state()){const guaranteed=this._states.get(whichState)??{to:void 0};return guaranteed.to??[]}probable_exits_for(whichState){const wstate=this._states.get(whichState);if(!wstate){throw new JssmError(this,`No such state ${JSON.stringify(whichState)} in probable_exits_for`)}const legal_exits=[],probability_bearing=[];const emg=this._edge_map.get(whichState);for(const ws of wstate.to){const edge=this._edges[emg.get(ws)];if(!edge){continue}if(edge.forced_only){continue}legal_exits.push(edge);if(edge.probability!==void 0){probability_bearing.push(edge)}}return probability_bearing.length>0?probability_bearing:legal_exits}probabilistic_transition(){const selected=weighted_rand_select(this.probable_exits_for(this.state()),void 0,this._rng);return this.transition(selected.to)}probabilistic_walk(n){return seq(n).map(()=>{const state_was=this.state();this.probabilistic_transition();return state_was}).concat([this.state()])}probabilistic_histo_walk(n){return histograph(this.probabilistic_walk(n))}_stochastic_one_walk(start,max_steps,exit_memo){const states=[start];const edges=[];let cur=start;let terminated=false;for(let step=0;step<max_steps;step++){let exits=exit_memo.get(cur);if(exits===void 0){exits=this.probable_exits_for(cur);exit_memo.set(cur,exits)}if(exits.length===0){terminated=true;break}const selected=weighted_rand_select(exits,void 0,this._rng);edges.push(`${cur}→${selected.to}`);cur=selected.to;states.push(cur)}return{states:states,edges:edges,length:states.length-1,terminated:terminated}}*stochastic_runs(opts={}){if(opts.seed!==void 0){this.rng_seed=opts.seed}const mode=opts.mode??"montecarlo";const max_steps=opts.max_steps??STOCHASTIC_DEFAULT_MAX_STEPS;const runs=mode==="steady_state"?1:opts.runs??this.editor_config()?.stochastic_run_count??STOCHASTIC_DEFAULT_RUNS;const start=this.state();const exit_memo=new Map;for(let i=0;i<runs;i++){yield this._stochastic_one_walk(start,max_steps,exit_memo)}}stochastic_summary(opts={}){const mode=opts.mode??"montecarlo";const saved_seed=this._rng_seed;if(opts.seed!==void 0){this.rng_seed=opts.seed}const effective_seed=this._rng_seed;const state_visits=new Map;const edge_traversals=new Map;const path_lengths=[];let terminal_reached=0,capped=0,runs=0;try{for(const run of this.stochastic_runs({...opts,mode:mode})){runs+=1;for(const s of run.states){state_visits.set(s,(state_visits.get(s)??0)+1)}for(const e of run.edges){edge_traversals.set(e,(edge_traversals.get(e)??0)+1)}if(mode==="montecarlo"){if(run.terminated){terminal_reached+=1;path_lengths.push(run.length)}else{capped+=1}}}}finally{this.rng_seed=saved_seed}const total_visits=[...state_visits.values()].reduce((a,b)=>a+b,0);const state_visit_fraction=new Map;for(const[s,c]of state_visits){state_visit_fraction.set(s,c/total_visits)}const summary={mode:mode,runs:runs,seed:effective_seed,state_visits:state_visits,state_visit_fraction:state_visit_fraction,edge_traversals:edge_traversals};if(mode==="montecarlo"){summary.path_lengths=path_lengths;summary.terminal_reached=terminal_reached;summary.capped=capped}return summary}actions(whichState=this.state()){const wstate=this._reverse_actions.get(whichState);if(wstate){return Array.from(wstate.keys())}else{if(this.has_state(whichState)){return[]}else{throw new JssmError(this,`No such state ${JSON.stringify(whichState)}`)}}}list_states_having_action(whichState){const wstate=this._actions.get(whichState);if(wstate){return Array.from(wstate.keys())}else{throw new JssmError(this,`No such state ${JSON.stringify(whichState)}`)}}list_exit_actions(whichState=this.state()){const ra_base=this._reverse_actions.get(whichState);if(!ra_base){if(this.has_state(whichState)){return[]}throw new JssmError(this,`No such state ${JSON.stringify(whichState)}`)}return Array.from(ra_base.keys())}probable_action_exits(whichState=this.state()){const ra_base=this._reverse_actions.get(whichState);if(!ra_base){if(this.has_state(whichState)){return[]}throw new JssmError(this,`No such state ${JSON.stringify(whichState)}`)}const exits=[];ra_base.forEach((edgeId,action)=>{exits.push({action:action,probability:this._edges[edgeId].probability})});return exits}is_unenterable(whichState){if(!this.has_state(whichState)){throw new JssmError(this,`No such state ${whichState}`)}return this.list_entrances(whichState).length===0}has_unenterables(){return this.states().some(x=>this.is_unenterable(x))}is_terminal(){return this.state_is_terminal(this.state())}state_is_terminal(whichState){if(!this.has_state(whichState)){throw new JssmError(this,`No such state ${whichState}`)}return this.list_exits(whichState).length===0}has_terminals(){return this.states().some(x=>this.state_is_terminal(x))}isIn(groupName){return this.groupsOf(this.state()).has(groupName)}groupsOf(state){return new Set(this._state_to_groups.get(state)??[])}groups(){return[...this._group_order]}statesIn(groupName){if(!this._group_registry.has(groupName)){throw new JssmError(this,`No such group ${JSON.stringify(groupName)}`)}return transitive_members(this._group_registry,groupName,new Map)}is_complete(){return this.state_is_complete(this.state())}state_is_complete(whichState){const wstate=this._states.get(whichState);if(wstate){return wstate.complete}else{throw new JssmError(this,`No such state ${JSON.stringify(whichState)}`)}}has_completes(){return this.states().some(x=>this.state_is_complete(x))}on(name,filterOrFn,maybeFn){return this._subscribe(name,filterOrFn,maybeFn,false)}once(name,filterOrFn,maybeFn){return this._subscribe(name,filterOrFn,maybeFn,true)}off(name,handler){const set=this._event_handlers.get(name);if(set===void 0){return false}for(const entry of set){if(entry.handler===handler){this._unsubscribe_entry(set,entry);return true}}return false}_unsubscribe_entry(set,entry){if(set.delete(entry)){this._event_listener_count--}}_subscribe(name,filterOrFn,maybeFn,once){let filter;let handler;if(typeof filterOrFn==="function"){filter=void 0;handler=filterOrFn}else{filter=filterOrFn;handler=maybeFn}if(typeof handler!=="function"){throw new JssmError(this,`event handler for "${name}" must be a function`)}let set=this._event_handlers.get(name);if(set===void 0){set=new Set;this._event_handlers.set(name,set)}const entry={handler:handler,filter:filter,once:once};set.add(entry);this._event_listener_count++;return()=>{this._unsubscribe_entry(set,entry)}}_fire_one(entry,set,name,detail){if(entry.filter!==void 0){for(const k of Object.keys(entry.filter)){if(entry.filter[k]!==detail[k]){return}}}if(entry.once){this._unsubscribe_entry(set,entry)}try{entry.handler(detail)}catch(err){if(name==="error"||this._firing_error){console.error(err)}else{this._firing_error=true;try{this._fire("error",{error:err,source_event:name,source_detail:detail,handler:entry.handler})}finally{this._firing_error=false}}}}_has_subscribers(name){const set=this._event_handlers.get(name);return set!==void 0&&set.size!==0}_fire(name,detail){const set=this._event_handlers.get(name);if(set===void 0||set.size===0){return}if(set.size===1){const only=set.values().next().value;this._fire_one(only,set,name,detail);return}const entries=Array.from(set);for(const entry of entries){this._fire_one(entry,set,name,detail)}}_validate_hook_description(HookDesc){const required=hook_required_fields[HookDesc.kind];if(required===void 0){throw new JssmError(this,`unknown hook kind ${JSON.stringify(HookDesc.kind)}`)}if(typeof HookDesc.handler!=="function"){throw new JssmError(this,`${HookDesc.kind} hook requires a handler function`)}for(const field of hook_spatial_fields){const needed=required.includes(field);const present=HookDesc[field]!==void 0;if(needed&&!present){throw new JssmError(this,`${HookDesc.kind} hook requires '${field}'`)}if(!needed&&present){throw new JssmError(this,`${HookDesc.kind} hook does not take '${field}'`)}}}set_hook(HookDesc){this._validate_hook_description(HookDesc);switch(HookDesc.kind){case"hook":{this._hooks.set(pair_key(this._state_interner.intern(HookDesc.from),this._state_interner.intern(HookDesc.to)),HookDesc.handler);this._has_hooks=true;this._has_basic_hooks=true;break}case"named":{const pk=pair_key(this._state_interner.intern(HookDesc.from),this._state_interner.intern(HookDesc.to));let inner=this._named_hooks.get(pk);if(inner===void 0){inner=new Map;this._named_hooks.set(pk,inner)}inner.set(this._action_interner.intern(HookDesc.action),HookDesc.handler);this._has_hooks=true;this._has_named_hooks=true;break}case"global action":this._global_action_hooks.set(this._action_interner.intern(HookDesc.action),HookDesc.handler);this._has_hooks=true;this._has_global_action_hooks=true;break;case"any action":this._any_action_hook=HookDesc.handler;this._has_hooks=true;break;case"standard transition":this._standard_transition_hook=HookDesc.handler;this._has_transition_hooks=true;this._has_hooks=true;break;case"main transition":this._main_transition_hook=HookDesc.handler;this._has_transition_hooks=true;this._has_hooks=true;break;case"forced transition":this._forced_transition_hook=HookDesc.handler;this._has_transition_hooks=true;this._has_hooks=true;break;case"any transition":this._any_transition_hook=HookDesc.handler;this._has_hooks=true;break;case"entry":this._entry_hooks.set(this._state_interner.intern(HookDesc.to),HookDesc.handler);this._has_hooks=true;this._has_entry_hooks=true;break;case"exit":this._exit_hooks.set(this._state_interner.intern(HookDesc.from),HookDesc.handler);this._has_hooks=true;this._has_exit_hooks=true;break;case"after":this._after_hooks.set(HookDesc.from,HookDesc.handler);this._has_hooks=true;this._has_after_hooks=true;break;case"post hook":{this._post_hooks.set(pair_key(this._state_interner.intern(HookDesc.from),this._state_interner.intern(HookDesc.to)),HookDesc.handler);this._has_post_hooks=true;this._has_post_basic_hooks=true;break}case"post named":{const pk=pair_key(this._state_interner.intern(HookDesc.from),this._state_interner.intern(HookDesc.to));let inner=this._post_named_hooks.get(pk);if(inner===void 0){inner=new Map;this._post_named_hooks.set(pk,inner)}inner.set(this._action_interner.intern(HookDesc.action),HookDesc.handler);this._has_post_hooks=true;this._has_post_named_hooks=true;break}case"post global action":this._post_global_action_hooks.set(this._action_interner.intern(HookDesc.action),HookDesc.handler);this._has_post_hooks=true;this._has_post_global_action_hooks=true;break;case"post any action":this._post_any_action_hook=HookDesc.handler;this._has_post_hooks=true;break;case"post standard transition":this._post_standard_transition_hook=HookDesc.handler;this._has_post_transition_hooks=true;this._has_post_hooks=true;break;case"post main transition":this._post_main_transition_hook=HookDesc.handler;this._has_post_transition_hooks=true;this._has_post_hooks=true;break;case"post forced transition":this._post_forced_transition_hook=HookDesc.handler;this._has_post_transition_hooks=true;this._has_post_hooks=true;break;case"post any transition":this._post_any_transition_hook=HookDesc.handler;this._has_post_hooks=true;break;case"post entry":this._post_entry_hooks.set(this._state_interner.intern(HookDesc.to),HookDesc.handler);this._has_post_entry_hooks=true;this._has_post_hooks=true;break;case"post exit":this._post_exit_hooks.set(this._state_interner.intern(HookDesc.from),HookDesc.handler);this._has_post_exit_hooks=true;this._has_post_hooks=true;break;case"pre everything":this._pre_everything_hook=HookDesc.handler;this._has_hooks=true;break;case"everything":this._everything_hook=HookDesc.handler;this._has_hooks=true;break;case"pre post everything":this._pre_post_everything_hook=HookDesc.handler;this._has_post_hooks=true;break;case"post everything":this._post_everything_hook=HookDesc.handler;this._has_post_hooks=true;break}this._static_state_config_cache.clear();this._fire("hook-registration",{description:HookDesc})}remove_hook(HookDesc){let removed=false;switch(HookDesc.kind){case"hook":{const fid=this._state_interner.id_of(HookDesc.from),tid=this._state_interner.id_of(HookDesc.to);removed=fid!==void 0&&tid!==void 0&&this._hooks.delete(pair_key(fid,tid));break}case"named":{const fid=this._state_interner.id_of(HookDesc.from),tid=this._state_interner.id_of(HookDesc.to),aid=this._action_interner.id_of(HookDesc.action);const inner=fid===void 0||tid===void 0?void 0:this._named_hooks.get(pair_key(fid,tid));removed=inner!==void 0&&aid!==void 0&&inner.delete(aid);break}case"global action":{const aid=this._action_interner.id_of(HookDesc.action);removed=aid!==void 0&&this._global_action_hooks.delete(aid);break}case"any action":if(this._any_action_hook!==void 0){this._any_action_hook=void 0;removed=true}break;case"standard transition":if(this._standard_transition_hook!==void 0){this._standard_transition_hook=void 0;removed=true}break;case"main transition":if(this._main_transition_hook!==void 0){this._main_transition_hook=void 0;removed=true}break;case"forced transition":if(this._forced_transition_hook!==void 0){this._forced_transition_hook=void 0;removed=true}break;case"any transition":if(this._any_transition_hook!==void 0){this._any_transition_hook=void 0;removed=true}break;case"entry":{const tid=this._state_interner.id_of(HookDesc.to);removed=tid!==void 0&&this._entry_hooks.delete(tid);break}case"exit":{const fid=this._state_interner.id_of(HookDesc.from);removed=fid!==void 0&&this._exit_hooks.delete(fid);break}case"after":removed=this._after_hooks.delete(HookDesc.from);break;case"post hook":{const fid=this._state_interner.id_of(HookDesc.from),tid=this._state_interner.id_of(HookDesc.to);removed=fid!==void 0&&tid!==void 0&&this._post_hooks.delete(pair_key(fid,tid));break}case"post named":{const fid=this._state_interner.id_of(HookDesc.from),tid=this._state_interner.id_of(HookDesc.to),aid=this._action_interner.id_of(HookDesc.action);const inner=fid===void 0||tid===void 0?void 0:this._post_named_hooks.get(pair_key(fid,tid));removed=inner!==void 0&&aid!==void 0&&inner.delete(aid);break}case"post global action":{const aid=this._action_interner.id_of(HookDesc.action);removed=aid!==void 0&&this._post_global_action_hooks.delete(aid);break}case"post any action":if(this._post_any_action_hook!==void 0){this._post_any_action_hook=void 0;removed=true}break;case"post standard transition":if(this._post_standard_transition_hook!==void 0){this._post_standard_transition_hook=void 0;removed=true}break;case"post main transition":if(this._post_main_transition_hook!==void 0){this._post_main_transition_hook=void 0;removed=true}break;case"post forced transition":if(this._post_forced_transition_hook!==void 0){this._post_forced_transition_hook=void 0;removed=true}break;case"post any transition":if(this._post_any_transition_hook!==void 0){this._post_any_transition_hook=void 0;removed=true}break;case"post entry":{const tid=this._state_interner.id_of(HookDesc.to);removed=tid!==void 0&&this._post_entry_hooks.delete(tid);break}case"post exit":{const fid=this._state_interner.id_of(HookDesc.from);removed=fid!==void 0&&this._post_exit_hooks.delete(fid);break}case"pre everything":if(this._pre_everything_hook!==void 0){this._pre_everything_hook=void 0;removed=true}break;case"everything":if(this._everything_hook!==void 0){this._everything_hook=void 0;removed=true}break;case"pre post everything":if(this._pre_post_everything_hook!==void 0){this._pre_post_everything_hook=void 0;removed=true}break;case"post everything":if(this._post_everything_hook!==void 0){this._post_everything_hook=void 0;removed=true}break;default:throw new JssmError(this,`Unknown hook type ${HookDesc.kind}, should be impossible`)}if(removed){this._static_state_config_cache.clear();this._fire("hook-removal",{description:HookDesc})}return removed}hook(from2,to,handler){this.set_hook({kind:"hook",from:from2,to:to,handler:handler});return this}hook_action(from2,to,action,handler){this.set_hook({kind:"named",from:from2,to:to,action:action,handler:handler});return this}hook_global_action(action,handler){this.set_hook({kind:"global action",action:action,handler:handler});return this}hook_any_action(handler){this.set_hook({kind:"any action",handler:handler});return this}hook_standard_transition(handler){this.set_hook({kind:"standard transition",handler:handler});return this}hook_main_transition(handler){this.set_hook({kind:"main transition",handler:handler});return this}hook_forced_transition(handler){this.set_hook({kind:"forced transition",handler:handler});return this}hook_any_transition(handler){this.set_hook({kind:"any transition",handler:handler});return this}hook_entry(to,handler){this.set_hook({kind:"entry",to:to,handler:handler});return this}hook_exit(from2,handler){this.set_hook({kind:"exit",from:from2,handler:handler});return this}hook_after(from2,handler){this.set_hook({kind:"after",from:from2,handler:handler});return this}post_hook(from2,to,handler){this.set_hook({kind:"post hook",from:from2,to:to,handler:handler});return this}post_hook_action(from2,to,action,handler){this.set_hook({kind:"post named",from:from2,to:to,action:action,handler:handler});return this}post_hook_global_action(action,handler){this.set_hook({kind:"post global action",action:action,handler:handler});return this}post_hook_any_action(handler){this.set_hook({kind:"post any action",handler:handler});return this}post_hook_standard_transition(handler){this.set_hook({kind:"post standard transition",handler:handler});return this}post_hook_main_transition(handler){this.set_hook({kind:"post main transition",handler:handler});return this}post_hook_forced_transition(handler){this.set_hook({kind:"post forced transition",handler:handler});return this}post_hook_any_transition(handler){this.set_hook({kind:"post any transition",handler:handler});return this}post_hook_entry(to,handler){this.set_hook({kind:"post entry",to:to,handler:handler});return this}post_hook_exit(from2,handler){this.set_hook({kind:"post exit",from:from2,handler:handler});return this}hook_pre_everything(handler){this.set_hook({kind:"pre everything",handler:handler});return this}hook_everything(handler){this.set_hook({kind:"everything",handler:handler});return this}hook_post_everything(handler){this.set_hook({kind:"post everything",handler:handler});return this}hook_pre_post_everything(handler){this.set_hook({kind:"pre post everything",handler:handler});return this}get rng_seed(){return this._rng_seed}set rng_seed(to){if(typeof to==="undefined"){this._rng_seed=(new Date).getTime()}else{this._rng_seed=to}this._rng=gen_splitmix32(this._rng_seed)}edges_between(from2,to){const to_id=this._state_interner.id_of(to);if(to_id===void 0){return[]}const outbound=this._outbound_edge_ids.get(from2)??[];const result=[];for(const edgeId of outbound){if(this._edge_to_ids[edgeId]===to_id){result.push(this._edges[edgeId])}}return result}override(newState,newData){if(this.allows_override){if(this._states.has(newState)){const fromState=this._state;const oldData=this._data;this._state=newState;this._state_id=this._state_interner.intern(newState);this._data=newData;this._fire("override",{from:fromState,to:newState,old_data:oldData,new_data:newData});if(oldData!==newData){this._fire("data-change",{from:fromState,to:newState,old_data:oldData,new_data:newData,cause:"override"})}this._fire_boundary_actions(fromState,newState)}else{throw new JssmError(this,`Cannot override state to "${newState}", a state that does not exist`)}}else{throw new JssmError(this,"Code specifies no override, but config tries to permit; config may not be less strict than code")}}_fire_hook_rejection(hook_name,fromState,newState,fromAction,oldData,newData,wasForced){this._fire("rejection",{from:fromState,to:newState,action:fromAction,data:oldData,next_data:newData,reason:"hook",hook_name:hook_name,forced:wasForced})}_fire_boundary_actions(prev_state,next_state){if(prev_state===next_state){return}if(this._group_hooks.size===0&&this._state_hooks.size===0){return}if(this._boundary_depth>=this._boundary_depth_limit){throw new JssmError(this,`boundary-hook action cascade exceeded depth limit (${this._boundary_depth_limit}) crossing from ${JSON.stringify(prev_state)} to ${JSON.stringify(next_state)} (possible infinite loop)`)}const prev_groups=this._state_to_groups.get(prev_state)??empty_string_set;const next_groups=this._state_to_groups.get(next_state)??empty_string_set;const labels=[];for(const group of prev_groups){if(!next_groups.has(group)){const label=this._group_hooks.get(group)?.onExit;if(label!==void 0){labels.push(label)}}}const prev_state_exit=this._state_hooks.get(prev_state)?.onExit;if(prev_state_exit!==void 0){labels.push(prev_state_exit)}for(const group of next_groups){if(!prev_groups.has(group)){const label=this._group_hooks.get(group)?.onEnter;if(label!==void 0){labels.push(label)}}}const next_state_enter=this._state_hooks.get(next_state)?.onEnter;if(next_state_enter!==void 0){labels.push(next_state_enter)}if(labels.length===0){return}this._boundary_depth+=1;try{for(const label of labels){this.action(label)}}finally{this._boundary_depth-=1}}transition_impl(newStateOrAction,newData,wasForced,wasAction){let valid=false,trans_type,newState,newStateId=NaN,actionId=NaN,fromAction=void 0;if(wasForced){const to_id=this._state_interner.id_of(newStateOrAction);const edgeId=to_id===void 0?void 0:this._edge_id_by_pair.get(pair_key(this._state_id,to_id));if(edgeId!==void 0){valid=true;trans_type="forced";newState=newStateOrAction;newStateId=to_id}}else if(wasAction){const aid=this._action_interner.id_of(newStateOrAction);const edgeId=aid===void 0?void 0:this._edge_id_by_action_pair.get(pair_key(aid,this._state_id));if(edgeId!==void 0){const edge=this._edges[edgeId];valid=true;trans_type=edge.kind;newState=edge.to;newStateId=this._edge_to_ids[edgeId];fromAction=newStateOrAction;actionId=aid}}else{const to_id=this._state_interner.id_of(newStateOrAction);const edgeId=to_id===void 0?void 0:this._edge_id_by_pair.get(pair_key(this._state_id,to_id));if(edgeId!==void 0&&!this._edges[edgeId].forced_only){if(this._has_transition_hooks||this._has_post_transition_hooks){trans_type=this._edges[edgeId].kind}valid=true;newState=newStateOrAction;newStateId=to_id}}const hook_args_obj=this._has_hooks||this._has_post_hooks?{data:this._data,action:fromAction,from:this._state,to:newState,next_data:newData,forced:wasForced,trans_type:trans_type}:void 0;const hook_args=hook_args_obj;if(wasAction){if(this._event_listener_count!==0){this._fire("action",{action:newStateOrAction,from:this._state,to:newState,data:this._data,next_data:newData})}}const fromState=this._state;const fromStateId=this._state_id;const oldData=this._data;if(valid){this.clear_state_timeout();if(this._has_hooks){let data_changed=false;if(this._pre_everything_hook!==void 0){const outcome=abstract_everything_hook_step(this._pre_everything_hook,{...hook_args,hook_name:"pre everything"});if(outcome.pass===false){this._fire_hook_rejection("pre everything",fromState,newState,fromAction,oldData,newData,wasForced);return false}if(_update_hook_fields(hook_args,outcome)){data_changed=true}}if(wasAction){const outcome=abstract_hook_step(this._any_action_hook,hook_args);if(outcome.pass===false){this._fire_hook_rejection("any action",fromState,newState,fromAction,oldData,newData,wasForced);return false}if(_update_hook_fields(hook_args,outcome)){data_changed=true}const outcome2=abstract_hook_step(this._global_action_hooks.get(actionId),hook_args);if(outcome2.pass===false){this._fire_hook_rejection("global action",fromState,newState,fromAction,oldData,newData,wasForced);return false}if(_update_hook_fields(hook_args,outcome2)){data_changed=true}}if(this._any_transition_hook!==void 0){const outcome=abstract_hook_step(this._any_transition_hook,hook_args);if(outcome.pass===false){this._fire_hook_rejection("any transition",fromState,newState,fromAction,oldData,newData,wasForced);return false}if(_update_hook_fields(hook_args,outcome)){data_changed=true}}if(this._has_exit_hooks){const outcome=abstract_hook_step(this._exit_hooks.get(this._state_id),hook_args);if(outcome.pass===false){this._fire_hook_rejection("exit",fromState,newState,fromAction,oldData,newData,wasForced);return false}if(_update_hook_fields(hook_args,outcome)){data_changed=true}}const pre_pair_id=pair_key(this._state_id,newStateId);if(this._has_named_hooks){if(wasAction){const byPair=this._named_hooks.get(pre_pair_id);const nh=byPair===void 0?void 0:byPair.get(actionId);const outcome=abstract_hook_step(nh,hook_args);if(outcome.pass===false){this._fire_hook_rejection("named",fromState,newState,fromAction,oldData,newData,wasForced);return false}if(_update_hook_fields(hook_args,outcome)){data_changed=true}}}if(this._has_basic_hooks){const h=this._hooks.get(pre_pair_id);const outcome=abstract_hook_step(h,hook_args);if(outcome.pass===false){this._fire_hook_rejection("hook",fromState,newState,fromAction,oldData,newData,wasForced);return false}if(_update_hook_fields(hook_args,outcome)){data_changed=true}}if(trans_type==="legal"){const outcome=abstract_hook_step(this._standard_transition_hook,hook_args);if(outcome.pass===false){this._fire_hook_rejection("standard transition",fromState,newState,fromAction,oldData,newData,wasForced);return false}if(_update_hook_fields(hook_args,outcome)){data_changed=true}}if(trans_type==="main"){const outcome=abstract_hook_step(this._main_transition_hook,hook_args);if(outcome.pass===false){this._fire_hook_rejection("main transition",fromState,newState,fromAction,oldData,newData,wasForced);return false}if(_update_hook_fields(hook_args,outcome)){data_changed=true}}if(trans_type==="forced"){const outcome=abstract_hook_step(this._forced_transition_hook,hook_args);if(outcome.pass===false){this._fire_hook_rejection("forced transition",fromState,newState,fromAction,oldData,newData,wasForced);return false}if(_update_hook_fields(hook_args,outcome)){data_changed=true}}if(this._has_entry_hooks){const outcome=abstract_hook_step(this._entry_hooks.get(newStateId),hook_args);if(outcome.pass===false){this._fire_hook_rejection("entry",fromState,newState,fromAction,oldData,newData,wasForced);return false}if(_update_hook_fields(hook_args,outcome)){data_changed=true}}if(this._everything_hook!==void 0){const outcome=abstract_everything_hook_step(this._everything_hook,{...hook_args,hook_name:"everything"});if(outcome.pass===false){this._fire_hook_rejection("everything",fromState,newState,fromAction,oldData,newData,wasForced);return false}if(_update_hook_fields(hook_args,outcome)){data_changed=true}}if(this._history_length){this._history.shove([this._state,this._data])}this._state=newState;this._state_id=newStateId;if(data_changed){this._data=hook_args.data}else if(newData!==void 0){this._data=newData}}else{if(this._history_length){this._history.shove([this._state,this._data])}this._state=newState;this._state_id=newStateId;if(newData!==void 0){this._data=newData}}}else{if(this._event_listener_count!==0){this._fire("rejection",{from:fromState,to:newStateOrAction,action:fromAction,data:oldData,next_data:newData,reason:"invalid",forced:wasForced})}return false}if(this._has_post_hooks){if(this._pre_post_everything_hook!==void 0){this._pre_post_everything_hook({...hook_args,hook_name:"pre post everything"})}if(wasAction){if(this._post_any_action_hook!==void 0){this._post_any_action_hook(hook_args)}const pgah=this._post_global_action_hooks.get(actionId);if(pgah!==void 0){pgah(hook_args)}}if(this._post_any_transition_hook!==void 0){this._post_any_transition_hook(hook_args)}if(this._has_post_exit_hooks){const peh=this._post_exit_hooks.get(fromStateId);if(peh!==void 0){peh(hook_args)}}const post_pair_id=pair_key(fromStateId,newStateId);if(this._has_post_named_hooks){if(wasAction){const byPair=this._post_named_hooks.get(post_pair_id);const pnh=byPair===void 0?void 0:byPair.get(actionId);if(pnh!==void 0){pnh(hook_args)}}}if(this._has_post_basic_hooks){const hook=this._post_hooks.get(post_pair_id);if(hook!==void 0){hook(hook_args)}}if(trans_type==="legal"){if(this._post_standard_transition_hook!==void 0){this._post_standard_transition_hook(hook_args)}}if(trans_type==="main"){if(this._post_main_transition_hook!==void 0){this._post_main_transition_hook(hook_args)}}if(trans_type==="forced"){if(this._post_forced_transition_hook!==void 0){this._post_forced_transition_hook(hook_args)}}if(this._has_post_entry_hooks){const hook=this._post_entry_hooks.get(newStateId);if(hook!==void 0){hook(hook_args)}}if(this._post_everything_hook!==void 0){this._post_everything_hook({...hook_args,hook_name:"post everything"})}}if(this._event_listener_count!==0){const newData_after=this._data;if(this._has_subscribers("exit")){this._fire("exit",{state:fromState,to:newState,action:fromAction,data:newData_after})}if(this._has_subscribers("transition")){this._fire("transition",{from:fromState,to:newState,action:fromAction,data:newData_after,next_data:newData,trans_type:trans_type,forced:wasForced})}if(this._has_subscribers("entry")){this._fire("entry",{state:newState,from:fromState,action:fromAction,data:newData_after})}if(oldData!==newData_after&&this._has_subscribers("data-change")){this._fire("data-change",{from:fromState,to:newState,action:fromAction,old_data:oldData,new_data:newData_after,cause:"transition"})}const new_state_rec=this._states.get(newState);if(new_state_rec.to.length===0&&this._has_subscribers("terminal")){this._fire("terminal",{state:newState,data:newData_after})}if(new_state_rec.complete&&this._has_subscribers("complete")){this._fire("complete",{state:newState,data:newData_after})}}this._fire_boundary_actions(fromState,newState);this.auto_set_state_timeout();return true}auto_set_state_timeout(){if(this._after_mapping.size===0){return}const after_res=this._after_mapping.get(this._state);if(after_res!==void 0){const[next_state,after_time]=after_res;this.set_state_timeout(next_state,after_time)}}get history(){return this._history.toArray()}get history_inclusive(){const ret=this._history.toArray();ret.push([this.state(),this.data()]);return ret}get history_length(){return this._history_length}set history_length(to){this._history_length=to;this._history.resize(to,true)}action(actionName,newData){return this.transition_impl(actionName,newData,false,true)}get standard_state_style(){return this._state_style}get hooked_state_style(){return this._hooked_state_style}get start_state_style(){return this._start_state_style}get end_state_style(){return this._end_state_style}get terminal_state_style(){return this._terminal_state_style}get active_state_style(){return this._active_state_style}hook_registry(){const entries=[];const state_name=id=>this._state_interner.name_of(id);const action_name=id=>this._action_interner.name_of(id);const push_edges=(table,kind,phase)=>{table.forEach((_handler,pk)=>{const[fid,tid]=un_pair_key(pk);entries.push({kind:kind,phase:phase,target:{scope:"edge",from:state_name(fid),to:state_name(tid)}})})};const push_named=(table,kind,phase)=>{table.forEach((byAction,pk)=>{const[fid,tid]=un_pair_key(pk);const from2=state_name(fid),to=state_name(tid);byAction.forEach((_handler,aid)=>{entries.push({kind:kind,phase:phase,target:{scope:"edge",from:from2,to:to,action:action_name(aid)}})})})};const push_states=(table,kind,phase)=>{table.forEach((_handler,sid)=>{entries.push({kind:kind,phase:phase,target:{scope:"state",state:state_name(sid)}})})};const push_states_by_name=(table,kind,phase)=>{table.forEach((_handler,state)=>{entries.push({kind:kind,phase:phase,target:{scope:"state",state:state}})})};const push_actions=(table,kind,phase)=>{table.forEach((_handler,aid)=>{entries.push({kind:kind,phase:phase,target:{scope:"action",action:action_name(aid)}})})};const push_global=(handler,kind,phase)=>{if(handler!==void 0){entries.push({kind:kind,phase:phase,target:{scope:"global"}})}};const push_boundary=(table,enterKind,exitKind,target_of)=>{table.forEach((bh,subject)=>{if(bh.onEnter!==void 0){entries.push({kind:enterKind,phase:"post",target:target_of(subject)})}if(bh.onExit!==void 0){entries.push({kind:exitKind,phase:"post",target:target_of(subject)})}})};push_edges(this._hooks,"hook","pre");push_named(this._named_hooks,"named","pre");push_states(this._entry_hooks,"entry","pre");push_states(this._exit_hooks,"exit","pre");push_states_by_name(this._after_hooks,"after","pre");push_actions(this._global_action_hooks,"global action","pre");push_global(this._any_action_hook,"any action","pre");push_global(this._standard_transition_hook,"standard transition","pre");push_global(this._main_transition_hook,"main transition","pre");push_global(this._forced_transition_hook,"forced transition","pre");push_global(this._any_transition_hook,"any transition","pre");push_global(this._pre_everything_hook,"pre everything","pre");push_global(this._everything_hook,"everything","pre");push_edges(this._post_hooks,"post hook","post");push_named(this._post_named_hooks,"post named","post");push_states(this._post_entry_hooks,"post entry","post");push_states(this._post_exit_hooks,"post exit","post");push_actions(this._post_global_action_hooks,"post global action","post");push_global(this._post_any_action_hook,"post any action","post");push_global(this._post_standard_transition_hook,"post standard transition","post");push_global(this._post_main_transition_hook,"post main transition","post");push_global(this._post_forced_transition_hook,"post forced transition","post");push_global(this._post_any_transition_hook,"post any transition","post");push_global(this._pre_post_everything_hook,"pre post everything","post");push_global(this._post_everything_hook,"post everything","post");push_boundary(this._group_hooks,"group enter","group exit",group=>({scope:"group",group:group}));push_boundary(this._state_hooks,"state enter","state exit",state=>({scope:"state",state:state}));return entries}static _entry_touches_state(entry,state){const t=entry.target;if(t.scope==="state"){return t.state===state}if(t.scope==="edge"){return t.from===state||t.to===state}return false}static _entry_matches_edge(entry,from2,to,action){const t=entry.target;if(t.scope!=="edge"){return false}if(t.from!==from2||t.to!==to){return false}if(action!==void 0){return t.action===action}return true}static _entry_matches_action(entry,action){const t=entry.target;if(t.scope==="action"){return t.action===action}if(t.scope==="edge"){return t.action===action}return false}static _entry_matches_group(entry,group){const t=entry.target;if(t.scope==="group"){return t.group===group}return false}hooks_on(query){const registry=this.hook_registry();if(typeof query==="string"){return registry.filter(e=>Machine._entry_touches_state(e,query))}if("from"in query){return registry.filter(e=>Machine._entry_matches_edge(e,query.from,query.to,query.action))}if("group"in query){return registry.filter(e=>Machine._entry_matches_group(e,query.group))}return registry.filter(e=>Machine._entry_matches_action(e,query.action))}has_hook(query,phase){const matches=this.hooks_on(query);if(phase===void 0){return matches.length>0}return matches.some(e=>e.phase===phase)}state_has_hooks(state){if(!this._has_hooks&&!this._has_post_hooks&&this._state_hooks.size===0&&this._group_hooks.size===0){return false}return this.hook_registry().some(e=>Machine._entry_touches_state(e,state))}_resolved_themes(){const themes=[];this._themes.forEach(th=>{const theme_impl=theme_mapping.get(th);if(theme_impl!==void 0){themes.push(theme_impl)}});return themes.reverse()}_individual_state_config(state){const decl=this._state_declarations.get(state);return{color:decl?.color,textColor:decl?.textColor,borderColor:decl?.borderColor,backgroundColor:decl?.backgroundColor,lineStyle:decl?.lineStyle,corners:decl?.corners,shape:decl?.shape,image:decl?.image,url:decl?.url}}_groups_by_depth(state){const containing=[...this.groupsOf(state)];if(containing.length<2){return containing}return containing.sort((ga,gb)=>{const da=membership_distance(this._group_registry,state,ga),db=membership_distance(this._group_registry,state,gb);if(da!==db){return db-da}return this._group_order.indexOf(ga)-this._group_order.indexOf(gb)})}_compose_state_config(state,active){const themes=this._resolved_themes();let acc={};acc=merge_state_config(acc,base_theme.state);themes.forEach(theme=>{if(theme.state){acc=merge_state_config(acc,theme.state)}});acc=merge_state_config(acc,this._state_style);if(this.state_has_hooks(state)){acc=merge_state_config(acc,base_theme.hooked);themes.forEach(theme=>{if(theme.hooked){acc=merge_state_config(acc,theme.hooked)}});acc=merge_state_config(acc,this._hooked_state_style)}if(this.state_is_terminal(state)){acc=merge_state_config(acc,base_theme.terminal);themes.forEach(theme=>{if(theme.terminal){acc=merge_state_config(acc,theme.terminal)}});acc=merge_state_config(acc,this._terminal_state_style)}if(this.is_start_state(state)){acc=merge_state_config(acc,base_theme.start);themes.forEach(theme=>{if(theme.start){acc=merge_state_config(acc,theme.start)}});acc=merge_state_config(acc,this._start_state_style)}if(this.is_end_state(state)){acc=merge_state_config(acc,base_theme.end);themes.forEach(theme=>{if(theme.end){acc=merge_state_config(acc,theme.end)}});acc=merge_state_config(acc,this._end_state_style)}if(active){acc=merge_state_config(acc,base_theme.active);themes.forEach(theme=>{if(theme.active){acc=merge_state_config(acc,theme.active)}})}this._groups_by_depth(state).forEach(group_name=>{const group_cfg=this._group_metadata.get(group_name);if(group_cfg!==void 0){acc=merge_state_config(acc,group_cfg)}});acc=merge_state_config(acc,this._individual_state_config(state));return acc}resolve_state_config(state){if(this.state()===state){const acc=this._compose_state_config(state,true);return merge_state_config(acc,this._active_state_style)}const cached=this._static_state_config_cache.get(state);if(cached!==void 0){return cached}const resolved=this._compose_state_config(state,false);this._static_state_config_cache.set(state,resolved);return resolved}style_for(state){return this.resolve_state_config(state)}do(actionName,newData){return this.transition_impl(actionName,newData,false,true)}transition(newState,newData){return this.transition_impl(newState,newData,false,false)}go(newState,newData){return this.transition_impl(newState,newData,false,false)}force_transition(newState,newData){return this.transition_impl(newState,newData,true,false)}current_action_for(action){const action_id=this._action_interner.id_of(action);return action_id===void 0?void 0:this._edge_id_by_action_pair.get(pair_key(action_id,this._state_id))}current_action_edge_for(action){const idx=this.current_action_for(action);if(idx===void 0||idx===null){throw new JssmError(this,`No such action ${JSON.stringify(action)}`)}return this._edges[idx]}valid_action(action,_newData){return this.current_action_for(action)!==void 0}valid_transition(newState,_newData){const transition_for=this.lookup_transition_for(this.state(),newState);if(!transition_for){return false}if(transition_for.forced_only){return false}return true}valid_force_transition(newState,_newData){return this.lookup_transition_for(this.state(),newState)!==void 0}instance_name(){return this._instance_name}get creation_date(){return new Date(Math.floor(this.creation_timestamp))}get creation_timestamp(){return this._created}get create_start_time(){return this._create_started}set_state_timeout(next_state,after_time){if(this._timeout_handle!==void 0){throw new JssmError(this,`Asked to set a state timeout to ${next_state}:${after_time}, but already timing out to ${this._timeout_target}:${this._timeout_target_time}`)}this._timeout_handle=this._timeout_source(()=>{const from_state=this.state();this.clear_state_timeout();if(this._has_after_hooks){const ah=this._after_hooks.get(from_state);if(ah!==void 0){ah({data:this._data,next_data:this._data})}}this._fire("timeout",{from:from_state,to:next_state,after_time:after_time});this.go(next_state)},after_time);this._timeout_target=next_state;this._timeout_target_time=after_time}clear_state_timeout(){if(this._timeout_handle===void 0){return}this._clear_timeout_source(this._timeout_handle);this._timeout_handle=void 0;this._timeout_target=void 0;this._timeout_target_time=void 0}state_timeout_for(which_state){return this._after_mapping.get(which_state)}current_state_timeout(){return this._timeout_target!==void 0?[this._timeout_target,this._timeout_target_time]:void 0}sm(template_strings,...remainder){return sm(template_strings,...remainder)}}function sm(template_strings,...remainder){return new Machine(make(template_strings.reduce((acc,val,idx)=>`${acc}${remainder[idx-1]}${val}`)))}function is_hook_complex_result(hr){if(hr!==null&&typeof hr==="object"){if(typeof hr.pass==="boolean"){return true}}return false}function _update_hook_fields(hook_args,res){if(res===HOOK_PASSED){return false}if(Object.prototype.hasOwnProperty.call(res,"data")){hook_args.data=res.data;hook_args.next_data=res.next_data;return true}return false}const HOOK_PASSED=Object.freeze({pass:true});const HOOK_REJECTED=Object.freeze({pass:false});function abstract_hook_step(maybe_hook,hook_args){if(maybe_hook!==void 0){const result=maybe_hook(hook_args);if(result===void 0){return HOOK_PASSED}if(result===true){return HOOK_PASSED}if(result===false){return HOOK_REJECTED}if(result===null){return HOOK_REJECTED}if(is_hook_complex_result(result)){return result}throw new TypeError(`Unknown hook result type ${result}`)}else{return HOOK_PASSED}}function abstract_everything_hook_step(maybe_hook,hook_args){if(maybe_hook!==void 0){const result=maybe_hook(hook_args);if(result===void 0){return HOOK_PASSED}if(result===true){return HOOK_PASSED}if(result===false){return HOOK_REJECTED}if(result===null){return HOOK_REJECTED}if(is_hook_complex_result(result)){return result}throw new TypeError(`Unknown hook result type ${result}`)}else{return HOOK_PASSED}}const default_viz_colors={graph_bg_color:"#eeeeee",fill_final:"#ddddff",fill_terminal:"#ffdddd",fill_complete:"#ddffdd",legal_1:"#888888",legal_2:"#777777",legal_solo:"#777777",legal_final_1:"#7777aa",legal_final_2:"#666699",legal_final_solo:"#666699",legal_terminal_1:"#aa7777",legal_terminal_2:"#996666",legal_terminal_solo:"#996666",legal_complete_1:"#77aa77",legal_complete_2:"#669966",legal_complete_solo:"#669966",main_1:"#444444",main_2:"#333333",main_solo:"#333333",main_final_1:"#333366",main_final_2:"#222255",main_final_solo:"#222255",main_terminal_1:"#663333",main_terminal_2:"#552222",main_terminal_solo:"#552222",main_complete_1:"#336633",main_complete_2:"#225522",main_complete_solo:"#225522",forced_1:"#cccccc",forced_2:"#bbbbbb",forced_solo:"#bbbbbb",forced_final_1:"#bbbbee",forced_final_2:"#aaaadd",forced_final_solo:"#aaaadd",forced_terminal_1:"#eebbbb",forced_terminal_2:"#ddaaaa",forced_terminal_solo:"#ddaaaa",forced_complete_1:"#bbeebb",forced_complete_2:"#aaddaa",forced_complete_solo:"#aaddaa",text_final_1:"#000088",text_final_2:"#000088",text_final_solo:"#000088",text_terminal_1:"#880000",text_terminal_2:"#880000",text_terminal_solo:"#880000",text_complete_1:"#007700",text_complete_2:"#007700",text_complete_solo:"#007700"};let viz_instance=null;async function get_viz(){if(viz_instance===null){const mod=await import("@viz-js/viz");viz_instance=await mod.instance()}return viz_instance}function vc(col){return default_viz_colors[col]??""}function doublequote(txt){return txt.replace(/"/g,'\\"')}function slug_for(state){return state.toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"")}function slug_states(states){const used=new Set;const out=new Map;states.forEach((s,i)=>{const base=slug_for(s)||`node-${i+1}`;let candidate=base;let n=2;while(used.has(candidate)){candidate=`${base}-${n}`;n+=1}used.add(candidate);out.set(s,candidate)});return out}function node_of(state,state_index){if(Array.isArray(state_index)){return`n${state_index.indexOf(state)}`}const v=state_index.get(state);if(typeof v==="string"){return`"${v}"`}return`n${v}`}function compose_style_string(style){if(style.corners===void 0&&style.lineStyle===void 0){return""}const corners_map={rounded:"rounded",lined:"diagonals",regular:"regular"};const lines_map={dashed:"dashed",dotted:"dotted",solid:"solid"};const corners=corners_map[style.corners??"regular"];const lines=lines_map[style.lineStyle??"solid"];return`${corners},${lines},filled`}function flow_direction_to_rankdir(flow_direction){switch(flow_direction){case"up":return"rankdir=BT;";case"right":return"rankdir=LR;";case"down":return"rankdir=TB;";case"left":return"rankdir=RL;";default:throw new JssmError(void 0,`unknown flow direction '${flow_direction}'`)}}function edge_attr_for(key,value){switch(key){case"color":case"graph_default_edge_color":return`color="${doublequote(value)}"`;case"text-color":return`fontcolor="${doublequote(value)}"`;case"line-style":return`style="${doublequote(value)}"`;default:return void 0}}function edge_defaults_body(config){if(!config){return""}return config.map(item=>edge_attr_for(item.key,item.value)).filter(a=>a!==void 0).join(" ")}function graph_attr_for(key,value){switch(key){case"color":return`color="${doublequote(value)}"`;case"text-color":return`fontcolor="${doublequote(value)}"`;default:return void 0}}function graph_bg_color_from_config(config,fallback){if(!config){return fallback}const item=config.find(i=>i.key==="background-color");return item?item.value:fallback}function graph_attrs_body(config){if(!config){return""}return config.map(item=>graph_attr_for(item.key,item.value)).filter(a=>a!==void 0).map(a=>`${a};`).join("\n")}function dot_template(rank_dir,graph_bg_color,nodes,edges,arranges,preamble="",footer="",edge_defaults="",extra_graph_attrs=""){return`digraph G {\n${preamble}\n\n${rank_dir}\nfontname="Open Sans";\nstyle=filled;\nbgcolor="${graph_bg_color}";\n${extra_graph_attrs}\nnode [fontsize=14; shape=box; style=filled; fillcolor=white; fontname="Times New Roman"];\nedge [fontsize=6; fontname="Open Sans"; fontcolor="#0066bb"];\n${edge_defaults?`edge [ ${edge_defaults} ];\n`:""}\n${nodes}\n\n${edges}\n\n${arranges}\n\n${footer}\n}`}function classify_states(u_jssm,l_states){const kinds=new Map;for(const s of l_states){const is_complete=u_jssm.state_is_complete(s);const is_terminal=u_jssm.state_is_terminal(s);if(is_complete&&is_terminal){kinds.set(s,"final")}else if(is_complete){kinds.set(s,"complete")}else if(is_terminal){kinds.set(s,"terminal")}else{kinds.set(s,"base")}}return kinds}function default_fillcolor_for(kind){switch(kind){case"final":return vc("fill_final");case"complete":return vc("fill_complete");case"terminal":return vc("fill_terminal");default:return""}}function state_node_line(u_jssm,s,state_index,state_kinds,hide_state_labels,chips){const style=u_jssm.style_for(s);const fillcolor=style.backgroundColor||default_fillcolor_for(state_kinds.get(s)??"base");const label=hide_state_labels?"":label_with_chips(doublequote(u_jssm.display_text(s)),chips);const features=[["label",label],["shape",style.shape||""],["color",style.borderColor||""],["style",compose_style_string(style)],["fontcolor",style.textColor||""],["image",style.image||""],["URL",style.url||""],["fillcolor",fillcolor]].filter(r=>r[1]).map(r=>`${r[0]}="${r[1]}"`).join(" ");return`${node_of(s,state_index)} [${features}];`}function states_to_nodes_string(u_jssm,l_states,state_index,state_kinds,hide_state_labels=false,chips=new Map){return l_states.map(s=>state_node_line(u_jssm,s,state_index,state_kinds,hide_state_labels,chips.get(s)??[])).join(" ")}function transition_label(tr){if(!tr){return void 0}const parts=[`${tr.action||""}`,`${tr.probability||""}`].filter(x=>x!=="");return parts.length?parts.join("\n"):void 0}function arrow_for(tr){if(!tr){return""}if(tr.forced_only){return"ediamond"}if(tr.main_path){return"normal;weight=5"}return"empty"}function line_color(kind,lkind,suffix){switch(kind){case"final":return vc(`${lkind}_final${suffix}`);case"complete":return vc(`${lkind}_complete${suffix}`);case"terminal":return vc(`${lkind}_terminal${suffix}`);default:return vc(`${lkind}${suffix}`)}}function text_color(kind,suffix){switch(kind){case"final":return vc(`text_final${suffix}`);case"complete":return vc(`text_complete${suffix}`);case"terminal":return vc(`text_terminal${suffix}`);default:return""}}function colored_label(tr,which,color){if(!tr){return""}const text=[tr.name,tr.probability,tr.action].filter(q=>q).join("<br/>");if(!text){return""}const body=color?`<<font color="${color}">${text}</font>>`:`"${text}"`;return`${which}=${body};`}function states_to_edges_string(u_jssm,l_states,state_index,state_kinds){const strike=new Set;const kind_of=s=>state_kinds.get(s)??"base";const farrange_members=new Set((u_jssm._farrange_declaration||[]).flat().map(String));const cf=(s,ex)=>farrange_members.has(String(s))||farrange_members.has(String(ex))?"constraint=false;":"";const solo_edge=(s,ex,tr)=>{const ex_kind=kind_of(ex);const tailColor=text_color(ex_kind,"_solo");const labelInline=colored_label(tr,"taillabel",tailColor);const label=transition_label(tr);const maybeLabel=label?`taillabel="${doublequote(label)}";`:"";const arrowHead=arrow_for(tr);const edgeInline=`${maybeLabel}arrowhead=${arrowHead};color="${line_color(ex_kind,tr.kind,"_solo")}"`;return`${node_of(s,state_index)}->${node_of(ex,state_index)} [${cf(s,ex)}${labelInline}${edgeInline}];`};return l_states.map(s=>u_jssm.list_exits(s).map(ex=>{if(strike.has(`${s}|${ex}`)){return""}const forward=u_jssm.edges_between(s,ex);if(forward.length===0){return""}const reverse=s!==ex?u_jssm.edges_between(ex,s):[];if(forward.length===1&&reverse.length===1){const edge_tr=forward[0];const pair_tr=reverse[0];const s_kind=kind_of(s);const ex_kind=kind_of(ex);const headColor=text_color(s_kind,"_1");const tailColor=text_color(ex_kind,"_2");const labelInline=colored_label(pair_tr,"headlabel",headColor)+colored_label(edge_tr,"taillabel",tailColor);const label=transition_label(edge_tr);const rlabel=transition_label(pair_tr);const maybeLabel=label?`taillabel="${doublequote(label)}";`:"";const maybeRLabel=rlabel?`headlabel="${doublequote(rlabel)}";`:"";const arrowHead=arrow_for(edge_tr);const arrowTail=arrow_for(pair_tr);const edgeInline=`${maybeLabel}${maybeRLabel}arrowhead=${arrowHead};arrowtail=${arrowTail};dir=both;color="${line_color(ex_kind,edge_tr.kind,"_1")}:${line_color(s_kind,pair_tr.kind,"_2")}"`;strike.add(`${ex}|${s}`);return`${node_of(s,state_index)}->${node_of(ex,state_index)} [${cf(s,ex)}${labelInline}${edgeInline}];`}return forward.map(tr=>solo_edge(s,ex,tr)).join(" ")}).join(" ")).join(" ")}function arranges_for(u_jssm,state_index){const group=(decls,rank)=>decls?decls.map(d=>`{rank=${rank}; ${d.map(di=>node_of(di,state_index)).join("; ")};};`).join("\n"):"";const order_chain=decls=>decls?decls.map(d=>d.slice(1).map((di,i)=>`${node_of(d[i],state_index)}->${node_of(di,state_index)} [style=invis];`).join(" ")).join("\n"):"";return group(u_jssm._arrange_declaration,"same")+group(u_jssm._arrange_start_declaration,"min")+group(u_jssm._arrange_end_declaration,"max")+group(u_jssm._oarrange_declaration,"same")+order_chain(u_jssm._oarrange_declaration)+group(u_jssm._farrange_declaration,"same")+order_chain(u_jssm._farrange_declaration)}function cluster_id_for(group,index){const body=group.toLowerCase().replace(/[^a-z0-9]+/g,"_").replace(/^_+|_+$/g,"");return body?`cluster_${body}_${index}`:`cluster_g${index}`}function label_with_chips(label,chips){if(chips.length===0){return label}return`${label} ${chips.map(c=>`[${doublequote(c)}]`).join(" ")}`}function group_parent_map(registry,order){const parent=new Map;for(const parent_name of order){for(const member of registry.get(parent_name)??[]){if(member.kind==="group"&&!parent.has(member.name)){parent.set(member.name,parent_name)}}}return parent}function group_ancestry(group,parents){const chain=new Set;let cursor=group;while(cursor!==void 0&&!chain.has(cursor)){chain.add(cursor);cursor=parents.get(cursor)}return chain}function primary_group_for(u_jssm,state,order){const containing=[...u_jssm.groupsOf(state)];if(containing.length===0){return void 0}return containing.reduce((best,g)=>{const d_best=membership_distance(u_jssm._group_registry,state,best);const d_g=membership_distance(u_jssm._group_registry,state,g);if(d_g!==d_best){return d_g<d_best?g:best}return order.indexOf(g)>order.indexOf(best)?g:best})}function plan_cluster_groups(u_jssm,l_states,order,parents){const placement=new Map;const chips=new Map;for(const s of l_states){const primary=primary_group_for(u_jssm,s,order);if(primary===void 0){continue}placement.set(s,primary);const represented=group_ancestry(primary,parents);const overflow=order.filter(g=>u_jssm.groupsOf(s).has(g)&&!represented.has(g));if(overflow.length){chips.set(s,overflow)}}return{placement:placement,chips:chips}}function groups_to_subgraph_string(u_jssm,l_states,state_index,state_kinds,hide_state_labels){const order=u_jssm.groups();const parents=group_parent_map(u_jssm._group_registry,order);const{placement:placement,chips:chips}=plan_cluster_groups(u_jssm,l_states,order,parents);const spread_children_of=new Map;const is_spread_child=new Set;for(const p of order){for(const member of u_jssm._group_registry.get(p)??[]){if(member.kind==="group"&&member.mode==="spread"&&parents.get(member.name)===p){const bucket=spread_children_of.get(p)??[];bucket.push(member.name);spread_children_of.set(p,bucket);is_spread_child.add(member.name)}}}const children=new Map;for(const g of order){const p=parents.get(g);if(p!==void 0&&!is_spread_child.has(g)){const bucket=children.get(p)??[];bucket.push(g);children.set(p,bucket)}}const members=new Map;for(const s of l_states){const g=placement.get(s);if(g!==void 0){const bucket=members.get(g)??[];bucket.push(s);members.set(g,bucket)}}const node_line=s=>state_node_line(u_jssm,s,state_index,state_kinds,hide_state_labels,chips.get(s)??[]);const render_cluster=(g,index)=>{const direct_nodes=(members.get(g)??[]).map(node_line).join(" ");const spread_nodes=(spread_children_of.get(g)??[]).flatMap(c=>members.get(c)??[]).map(node_line).join(" ");const inner_nodes=[direct_nodes,spread_nodes].filter(Boolean).join(" ");const sub=(children.get(g)??[]).map(c=>render_cluster(c,order.indexOf(c))).join(" ");const body=[inner_nodes,sub].filter(Boolean).join(" ");if(!body){return""}return`subgraph ${cluster_id_for(g,index)} { label="${doublequote(g)}"; ${body} };`};const roots=order.filter(g=>parents.get(g)===void 0&&!is_spread_child.has(g));const clusters=roots.map(g=>render_cluster(g,order.indexOf(g))).filter(Boolean).join(" ");const ungrouped_nodes=l_states.filter(s=>!placement.has(s)).map(node_line).join(" ");return{clusters:clusters,ungrouped_nodes:ungrouped_nodes}}function chips_for_all_groups(u_jssm,l_states){const order=u_jssm.groups();const chips=new Map;for(const s of l_states){const groups=u_jssm.groupsOf(s);const mine=order.filter(g=>groups.has(g));if(mine.length){chips.set(s,mine)}}return chips}function node_block_for(u_jssm,l_states,state_index,state_kinds,hide_labels,mode){if(mode==="off"||u_jssm.groups().length===0){return states_to_nodes_string(u_jssm,l_states,state_index,state_kinds,hide_labels)}if(mode==="chips"){const chips=chips_for_all_groups(u_jssm,l_states);return states_to_nodes_string(u_jssm,l_states,state_index,state_kinds,hide_labels,chips)}const{clusters:clusters,ungrouped_nodes:ungrouped_nodes}=groups_to_subgraph_string(u_jssm,l_states,state_index,state_kinds,hide_labels);return`${clusters}${clusters&&ungrouped_nodes?" ":""}${ungrouped_nodes}`}function machine_to_dot(u_jssm,opts={}){const l_states=u_jssm.states();const state_index=slug_states(l_states);const state_kinds=classify_states(u_jssm,l_states);const hide_labels=opts.hide_state_labels===true;const mode=opts.render_groups??"cluster";const nodes=node_block_for(u_jssm,l_states,state_index,state_kinds,hide_labels,mode);const edges=states_to_edges_string(u_jssm,l_states,state_index,state_kinds);const arranges=arranges_for(u_jssm,state_index);const rank_dir=flow_direction_to_rankdir(u_jssm.flow()||"down");const preamble=u_jssm.dot_preamble()||"";const footer=opts?.footer??"";const transition_config=u_jssm.default_transition_config();const graph_config=u_jssm.default_graph_config();const edge_defaults=edge_defaults_body(transition_config);const extra_graph_attrs=graph_attrs_body(graph_config);const bg_color=graph_bg_color_from_config(graph_config,vc("graph_bg_color"));return dot_template(rank_dir,bg_color,nodes,edges,arranges,preamble,footer,edge_defaults,extra_graph_attrs)}function fsl_to_dot(fsl,opts={}){return machine_to_dot(sm`${fsl}`,opts)}async function dot_to_svg(dot2,options){const viz=await get_viz();return viz.renderString(dot2,{format:"svg",...options??{}})}async function fsl_to_svg_string(fsl,opts={}){return dot_to_svg(fsl_to_dot(fsl,opts),opts)}async function svgTarget(fsl){try{return await fsl_to_svg_string(fsl)}catch(e){throw new RenderError(`SVG render failed: ${e.message}`)}}async function dotTarget(fsl){try{return fsl_to_dot(fsl)}catch(e){throw new RenderError(`DOT render failed: ${e.message}`)}}const escapeHtml=s=>s.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#39;");async function htmlTarget(fsl,opts={}){const title=escapeHtml(opts.title??"FSL Machine");let svg;try{svg=await svgTarget(fsl)}catch(e){throw e instanceof RenderError?e:new RenderError(`HTML render failed: ${String(e)}`)}return`<!DOCTYPE html>\n<html lang="en">\n<head>\n<meta charset="utf-8">\n<title>${title}</title>\n<style>\nbody { font-family: system-ui, -apple-system, "Segoe UI", Roboto, sans-serif; margin: 2rem auto; max-width: 80rem; padding: 0 1rem; color: #222; }\nh1 { font-size: 1.4rem; margin-bottom: 1.5rem; }\n.diagram { display: flex; justify-content: center; }\n.diagram svg { max-width: 100%; height: auto; }\n</style>\n</head>\n<body>\n<h1>${title}</h1>\n<div class="diagram">\n${svg}\n</div>\n</body>\n</html>\n`}const BUNDLED_FONT_BASE64=["AAEAAAASAQAABAAgR0RFRhgSGFIAAANEAAAApkdQT1NEdEx1AAABPAAAAB5HU1VC9vYgIQAAFNQAAAn2T1MvMnMmA9oAAAJYAAAAYFNUQVRe/0M5AAAB","+AAAAF5jbWFwbPZpegAAArgAAACMY3Z0ID0/LMgAAAPsAAAA/GZwZ23iGZ5aAAAezAAAD5RnYXNwABUAIwAAASwAAAAQZ2x5ZhGmxv4AAC5gAACA/Ghl","YWQfoeqVAAABwAAAADZoaGVhDcgGWwAAAZwAAAAkaG10eJDssVgAAA10AAAHYGxvY2HUKbTuAAAJwAAAA7JtYXhwBV8QpQAAAVwAAAAgbmFtZTCeW1EA","AAToAAACOHBvc3T/nwAyAAABfAAAACBwcmVwhf176QAAByAAAAKfAAEAAwAIAAoADQAH//8ADwABAAAACgAcABwAAURGTFQACAAEAAAAAP//AAAAAAAA","AAEAAAHYAJEAFgBfAAUAAgAQAC8AmgAAAr4PgwADAAEAAwAAAAAAAP+cADIAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAIjf2oAAAJpvuc/TQJnAABAAAA","AAAAAAAAAAAAAAAB2AABAAAAAwDFtwl03l8PPPUACwgAAAAAANnMwvcAAAAA4Xvbqfuc/dMJnAhiAAAABgACAAAAAAAAAAEAAQAIAAMAAAAUAAMAAAAs","AAJ3ZHRoAQEAAHdnaHQBAAABaXRhbAEcAAIAJgAWAAYAAwACAAIBHQAAAAAAAQAAAAMAAQACAQQBkAAAArwAAAABAAAAAgEaAGQAAAAAAAQEkAGQAAUA","AAUzBM0AAACaBTMEzQAAAs0AMgKSAAAAAAAAAAAAAAAAgAAABwAAAAIAAAAAAAAAAEdPT0cBwAAgIKwIjf2oAAAI/gKLAAABnwAAAAAESAW2AAAAIAAE","AAAAAgAAAAMAAAAUAAMAAQAAABQABAB4AAAAGgAQAAMACgB+ATABMQFhAWMBfyAUIBkgHSAiICYgrP//AAAAIACgATEBMgFiAWQgEyAYIBwgIiAmIKz/","///h/8AAS/+///n/v+E34TThMuEu4SvgqAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAwAAAAAAAAAAgAZACIAOwABAEIAWwABAGoAagAB","AHoAegABAIAAiwABAJAAlgABAJgAtgABALgA3AABAN4A3gABAOAA4AABAOIA4gABAOQA5wABAOkA6QABAOsA6wABAO0A7QABAO8A7wABAPIBQAABAVsB","XAABAWABYgABAWMBZwACAWoBawABAW0BegABAXwBfgABAYEBiAABAdcB1wABAAAGFAALBbYAFgW2ABYESAAUAAD/6gAA/+wAAP/q/hb//gW2ABUAAP/r","AAAAqACqAJYAlgCmAIIAggCrAJYAcQCfAI8AqQCmAMgAbQCKAJoAawCOAJsAegCkAI0BOgCEAJoAogCKAO4AhQB4AUgAhQB6AJoAngCqALMAlgBxAIUA","kACZAJ8ApACpALAAmwCmAKwAyABtAHoAggCKAJoAawCCAIoAkgCbAKAApgB6AKMAqwCvAIMAjACYAToAcQCAAIcAjwCbAKUAfQCGAIsAlQCbAKUArgDu","AHgAfgCIAJMBSAB5AIAAhgCLAJQAmgCnBsIDegUKABT/OAKeA6cAAAANAKIAAwABBAkAAACsAOoAAwABBAkAAQASANgAAwABBAkAAgAOAMoAAwABBAkA","AwA2AJQAAwABBAkABAAiAHIAAwABBAkABQAaAFgAAwABBAkABgAgADgAAwABBAkBAAAMACwAAwABBAkBAQAKACIAAwABBAkBBAAOAMoAAwABBAkBGgAM","ABYAAwABBAkBHAAMAAoAAwABBAkBHQAKAAAAUgBvAG0AYQBuAEkAdABhAGwAaQBjAE4AbwByAG0AYQBsAFcAaQBkAHQAaABXAGUAaQBnAGgAdABPAHAA","ZQBuAFMAYQBuAHMALQBSAGUAZwB1AGwAYQByAFYAZQByAHMAaQBvAG4AIAAzAC4AMAAwADMATwBwAGUAbgAgAFMAYQBuAHMAIABSAGUAZwB1AGwAYQBy","ADMALgAwADAAMwA7AEcATwBPAEcAOwBPAHAAZQBuAFMAYQBuAHMALQBSAGUAZwB1AGwAYQByAFIAZQBnAHUAbABhAHIATwBwAGUAbgAgAFMAYQBuAHMA","QwBvAHAAeQByAGkAZwBoAHQAIAAyADAAMgAwACAAVABoAGUAIABPAHAAZQBuACAAUwBhAG4AcwAgAFAAcgBvAGoAZQBjAHQAIABBAHUAdABoAG8AcgBz","ACAAKABoAHQAdABwAHMAOgAvAC8AZwBpAHQAaAB1AGIALgBjAG8AbQAvAGcAbwBvAGcAbABlAGYAbwBuAHQAcwAvAG8AcABlAG4AcwBhAG4AcwApQP96","PHlVeVl2OE8fdTj/H3Q4qx9zNs0fcjb/H3E2qx9wN/8fbzX/H24zXh9tM/8fbDSrH2s0/x9qMv8faTBnH2gw/x9nMHIfZjBFH2Ux/x9kMc0fYzFPH2Iv","Xh9hL/8fYC5PH18uqx9eLv8fXS42H1wt/x9bLF4fWiz/H1ksZx9YK14fVyuTH1Yr/x9VKv8fVCleH1Mpqx9SKf8fUSiAH1Ao/x9PKIAfTif/H00m/x9M","Jf8fSyWAH0olQB9JJP8fSCP/H0ciqx9GIv8fRSJeH0Qhkx9DIf8fQh/NH0Ef/x9AH6sfPyD/Hz4gZx89Hv8fPB3/Hzscch86HP8fORxPHzdAwjZeHzQz","Tx8xMCsfKShPHygVGxlcJxstHyYlQB8lDhoZXCQaMR8jGR8fIhn/HyEfZx8gH0AfHxwYFlweGBwfHRf/HxwW/x8bMhkfWxg4FjdbGjIZH1sXOBY3WxUZ","Phb/WhMxElURMRBVElkQWQ0yDFUFMgRVDFkEWQ8EfwTvBAMP/w5VCzIKVQcyBlUBXwBVDlkKWQZZzwbvBgIAWW8AfwCvAO8ABBAAAQkyCFUDMgJVCFkC","WQ8CfwLvAgMQAANAQAUBuAGQsFQrS7gH/1JLsAlQW7ABiLAlU7ABiLBAUVqwBoiwAFVaW1ixAQGOWYWNjQAdQkuwkFNYsgMAAB1CWbECAkNRWLEEA45Z","QnMAKwArKytzcwArcwArACsAKysrKytzACsAKysrACsAKysrASsBKwErASsBKwErACsrASsrKwErKwArACsrKwErKwErACsrASsrKwArKysrKysrKysB","KysrKwArKysrKysrKysrKysBKysrKwArKysrKysrKysrASsrKysrKysrACsrKysrKysrKysrKwArKxgAAAAAAAAAACkARwCfAQUBZQHYAewCEwI9Am4C","jQKqArsC1gLrAysDUQONA+AEGQRgBLgE1AU8BZUFwgXyBhAGKgZIBpUHIQdWB6EH3QgOCDMIUwiYCLwIzgjzCR8JNQltCZsJ3QoQCl8KmgrvCwoLNQtf","C7ML3gwBDCQMPwxUDG4MigycDL4NDw1bDZIN3Q4dDlMO1Q8NDzMPag+gD7IQARAyEG0QvhELETwRiRG/EfMSGxJuEpsS2hL9E0UTVhOdE9YT1hP9FD4U","hxT8FTsVVBXGFfQWZRayFuoXARcJF3sXjRfBF+wYIRhrGI0YzBj2GP8ZLRlTGYMZtxoVGnIa9BtAG1IbZBt2G4gbmxunG+Mb7xwBHBMcJRw4HEocXBxu","HIEcxBzWHOgc+h0MHR4dMR1kHdQd5h34HgoeHR4vHmgexx7ZHuse/R8OHyAfNB+3H8Mf1R/nH/kgCyAcIC0gPyBSILUgxyDZIOsg/SEPISEhWCHAIdIh","5CH2IggiGiJrIn0ijyKhIrMixSLRIt0i7yMBIxMjJSM3I0kjWyNtI38jkiOaI/AkAiQUJCYkOCRKJFwkaCTOJOAk8iUEJRYlKCU7JU0lYCVsJX0ljyWi","JdomHyYyJkQmVyZoJnsmjCaXJqImtSbBJs0m3ybxJv0nCCc7J00nXydqJ3YniSebJ6cnsyfdKAIoFCgmKDIoPihQKGIobiixKPkpCykdKS8pQSlUKWcp","wCowKkIqVCpgKmwqfiqPKqEqsyrFKtYq4iruKwArESscKycrOStFK3MrtCvGK9gr6iv8LA4sICw0LEgsWyxuLL8syyzdLO8tAS0SLSUtNy1JLVstbS1/","LZAtti3BLcwt+S4oLjsuYi5+Lqsu1S8ML0UvVi9nL4UvpC/WMAkwKTA5ME4wfTDhMQExIDFTMZMxrjIHMhMyHzJMMpsy6TMxMzkzhTORM50zqTO5M8kz","3DPvM/s0BzQZNCU0UTR3NIk0mzStNMA00jTkNPY1AjUNNR81KzU9NU81dDWFNZc1qzYiNi42OTaQNu43ADcSNyQ3VjeGN5c34zgSOFk4ozjXOOA46Tjy","OPs5BDkNORY5HzkoOTE5cTmYOdM6JDpbOqE6+DsSO3k70DvZO+I76zv0O/08BjwPPBg8ITwqPF88hDy/PRA9Rz2NPec+Aj5rPsE/Dz8XPx8/Jz8vPzc/","Pz9HP08/Vz9fP2g/cT96P4M/jD+VP54/pz+wP7k/2T/iQANADEAqQENATEBVQHNAfgAABM0AwQIUAAACHQCWAzAAhwUrADQEkwB/Bp0AZgXUAG8BwQCH","AlwAUgJcAD4EaABZBJMAZwISAFMCkwBSAhoAlgLvABUEkwBnBJMAuQSTAGUEkwBcBJMALASTAIQEkwB0BJMAXQSTAGcEkwBnAhoAlgIaAEEEkwBnBJMA","cwSTAGcDdAAfBywAdgUPAAAFKwDIBQoAfQXOAMgEcgDIBCEAyAXRAH0F5gDIAjwAyAIm/1wE5gDIBC0AyAcyAMgGBgDIBjkAfQTQAMgGOQB9BPAAyARj","AGkEaAASBdUAuQTFAAAHYwAeBJ8ABgR5AAAElABOAp4ApgLvABUCngAzBJMAUAOB//wCOABSBHIAXgTlAK8D1QByBOUAcgR+AHICsQAeBFgAHwToAK8C","BQCgAgX/kAQ0AK8CBQCvB2gArwToAK8E0AByBOUArwTlAHEDRQCvA9AAZwLaACAE6ACjA/8AAAYzABgEMAAnBAIAAgPAAFADAAA5BGUB7AMAAEMEkwBn","AhQAAAIdAJYEkwC5BJMARASTAHkEkwAfBGUB7AQcAHoEowE2BqgAZALTAEQD9wBPBJMAZwKTAFIGqABkBAD/+gNtAHUEkwBnAsgAMgLIACUCOABSBPIA","rwU9AHoCGgCWAcYAHALIAEwC/QBDA/cATQXsAEIGJQAsBjoAIQN0ADUFDwAABQ8AAAUPAAAFDwAABQ8AAAUPAAAG8v/+BQoAfQRyAMgEcgDIBHIAyARy","AMgCPP/0AjwAtAI8/84CPAAGBc4AOgYGAMgGOQB9BjkAfQY5AH0GOQB9BjkAfQSTAIUGOQB9BdUAuQXVALkF1QC5BdUAuQR5AAAE0ADIBPsArwRyAF4E","cgBeBHIAXgRyAF4EcgBeBHIAXgbmAF4D1QByBH4AcgR+AHIEfgByBH4AcgIF//gCBQCPAgX/tQIF/+cEzABxBOgArwTQAHIE0AByBNAAcgTQAHIE0ABy","BJMAZwTQAHIE6ACjBOgAowToAKME6ACjBAIAAgTlAK8EAgACBQ8AAARyAF4FDwAABHIAXgUPAAAEcgBeBQoAfQPVAHIFCgB9A9UAcgUKAH0D1QByBQoA","fQPVAHIFzgDIBOUAcgXOADoE6AByBHIAyAR+AHIEcgDIBH4AcgRyAMgEfgByBHIAyAR+AHIEcgDIBH4AcgXRAH0EWAAfBdEAfQRYAB8F0QB9BFgAHwXR","AH0EWAAfBeYAyATo/7cF5gAABOgAFAI8/60CBf+JAjz/8wIF/9YCPP/nAgX/0wI8AFgCBQAxAjwAvQRiAMgECgCgAib/XAIF/5AE5gDIBDQArwQ0AK8E","LQCnAgUAjwQtAMgCBQCDBC0AyAIFAK8ELQDIAhcArwQtABoCBf/yBgYAyAToAK8GBgDIBOgArwYGAMgE6ACvBWkAAgYGAMgE6ACvBjkAfQTQAHIGOQB9","BNAAcgY5AH0E0AByB2YAfQeWAHAE8ADIA0UArwTwAMgDRQB9BPAAyANFAJUEYwBpA9AAZwRjAGkD0ABnBGMAaQPQAGcEYwBpA9AAZwRoABIC2gAgBGgA","EgLaACAEaAASAtoAIAXVALkE6ACjBdUAuQToAKMF1QC5BOgAowXVALkE6ACjBdUAuQToAKMF1QC5BOgAowdjAB4GMwAYBHkAAAQCAAIEeQAABJQATgPA","AFAElABOA8AAUASUAE4DwABQApUArwRjAGkD0ABnA0UAUgNFAFIC+wBSAxIAUgFsAFICYgBSAe8AUgOKAFIDdgBSBAAAUggAAFIBWwAbAVsAGgLKABsC","ygAaAwIAqwY5AJYBBv6EAzAAcgSTADQEAAGJBAABgQLIABUCyAA+AsgAOgLIADQEaAASAtoAIALIACkCyAApAsgAIwW8AMcGBgDIBakAugViAB4EtgAe","BLYAHgdmAB4HZgAeBC0AyAYGAMgFDwAABHIAyAI8AFgF1QC5AqoAVwNHADgCqgBMAqoAVwKqAAkCqgA6Aqr/3AKqACkCqgAmAqoAVwKqAFcCqgBXBM8A","VwNHADgCBQCvAgX/kATlAHICBQBBBOgArwRyAF4EfgByAgUAMQToAKME5QByBOUAcgTlAHIE5QByAzAAcgK7AHIBUQByBNEAcgMwAHIDLgByAnoAQwHb","ABUCyAApAsgATALIADICyAAlAsgAFQLIAD4CyAApAsgAOgLIADQCyAAjBKoAcwN2ADMEagBPBIgAVwSaADAEiAB+BJAAcwQSABEEtAB6BJAAZgLIACkC","yABMAsgAMgLIACUCyAAVAsgAPgLIACkCyAA6AsgANALIACMErABwAyQAKgRQAFUEQwA7BIsALgR7AHkEmQB2BDgAIQSTAGcEmQBiBJMAZwRcAEgEXACX","BFwAXwRcAEsEXAAHBFwAYARcAFQEXABCBFwATARcAEYCyAApAsgATALIADICyAAlAsgAFQLIAD4CyAApAsgAOgLIADQCyAAjAcsAUAHLAFABywA9AcsA","PQKtAEgCrQBIAq0ASAKtAEgEAAF0AgUAMwABAAAACgFKAlYABURGTFQBFGN5cmwBFGdyZWsBFGhlYnIBFGxhdG4AIAD4AAVDQVQgAMpNQUggAKBNT0wg","AHZOQVYgAExST00gACIAAP//ABIAAAABAAIAAwAEAAkACgALAAwADQAOAA8AEAARABIAEwAUABUAAP//ABIAAAABAAIAAwAEAAgACgALAAwADQAOAA8A","EAARABIAEwAUABUAAP//ABIAAAABAAIAAwAEAAcACgALAAwADQAOAA8AEAARABIAEwAUABUAAP//ABIAAAABAAIAAwAEAAYACgALAAwADQAOAA8AEAAR","ABIAEwAUABUAAP//ABIAAAABAAIAAwAEAAUACgALAAwADQAOAA8AEAARABIAEwAUABUABAAAAAD//wARAAAAAQACAAMABAAKAAsADAANAA4ADwAQABEA","EgATABQAFQAWYWFsdAEEZG5vbQD+ZnJhYwD0bGlnYQDubG51bQDobG9jbADibG9jbADcbG9jbADWbG9jbADQbG9jbADKbnVtcgDEb251bQC+b3JkbgC4","cG51bQCyc2FsdACqc3MwMQCqc3MwMgCkc3MwMwCec3VicwCYc3VwcwCSdG51bQCMemVybwCGAAAAAQAZAAAAAQAWAAAAAQAKAAAAAQAJAAAAAQAbAAAA","AQAaAAAAAgAaABsAAAABABUAAAABABIAAAABABcAAAABAAsAAAABAAQAAAABAAIAAAABAAMAAAABAAUAAAABAAYAAAABABQAAAABABgAAAADAA0ADgAP","AAAAAQAMAAAAAgAAAAEAHAauBIwEWgQ4BDgEFgPUA7QDlAMqAtwCxAK2AqICxAJaAkwCTAIOAewB1AGOAUgBAgC+AKoAhAA6AAEAAAABAAgAAgAiAA4B","bgFvAXABcQFyAXMBdAF1AXYBdwF5AXoBewF4AAEADgAqACsAjACNAI4AjwDoAOoA7ADuAPAA8QDzAWwAAQAAAAEACAACABAABQGFAYYBhwGIAX4AAQAF","AEgA3QDfAOEA4wABAAAAAQAIAAEABgGoAAEAAQARAAQAAAABAAgAAQA2AAEACAAFACYAHgAYABIADAFlAAIATQFkAAIASgFjAAIARwFnAAMARwBNAWYA","AwBHAEoAAQABAEcAAQAAAAEACAACAC4AFAG6AbsBvAG9Ab4BvwHAAcEBwgHDAa8BsAGxAbIBswG0AbUBtgG3AbgAAgACABEAGgAAAZsBpAAKAAEAAAAB","AAgAAgAuABQAEQASABMAFAAVABYAFwAYABkAGgG6AbsBvAG9Ab4BvwHAAcEBwgHDAAIAAgGbAaQAAAGvAbgACgABAAAAAQAIAAIALgAUAZsBnAGdAZ4B","nwGgAaEBogGjAaQBrwGwAbEBsgGzAbQBtQG2AbcBuAACAAIAEQAaAAABugHDAAoAAQAAAAEACAABAAb/7AACAAEBrwG4AAAAAQAAAAEACAACAA4ABABq","AHoAagB6AAEABAAiADAAQgBQAAYAAAACACQACgADAAEAugABABIAAAABAAAAEwABAAIAMABQAAMAAQCgAAEAEgAAAAEAAAATAAEAAgAiAEIAAQAAAAEA","CAABAD7/7AAGAAAAAgAmAAoAAwABABIAAQAuAAAAAQAAABEAAgABAZEBmgAAAAMAAQAcAAEAEgAAAAEAAAAQAAIAAQGlAa4AAAABAAEBUgABAAAAAQAI","AAEABgFCAAEAAQAQAAEAAAABAAgAAQAUAYAAAQAAAAEACAABAAYBlAACAAEAEQAaAAAAAQAAAAEACAACACQADwHOAdAB0gFdAHkAcgBzAVcBWAFeAVkB","WgFfAdMBUwABAA8ACQAKAAwAEQASABMAFAAVABYAFwAYABkAGgAeAE8AAQAAAAEACAACADIAFgHPAdEB1AHEAcUBxgHHAcgByQHKAcsBzAHNAdUBiQGK","AYsBjAGNAY4BjwGQAAEAFgAJAAoADAARABIAEwAUABUAFgAXABgAGQAaAB4ASQBMAE0ATgBPAFEAVABVAAQAAAABAAgAAQASAAEACAABAAQA/gACAHcA","AQABAC0ABAAAAAEACAABABIAAQAIAAEABAD/AAIAdwABAAEATQAGAAAAAQAIAAEACgACACYAEgABAAIALQBNAAEABAAAAAIAdwABAE0AAQAAAAcAAQAE","AAAAAgB3AAEALQABAAAACAABAAAAAQAIAAIADgAEAWgBfwFpAYAAAQAEAPoA+wEEAQUAAQAAAAEACAACAA4ABAE/AUABIQEiAAEABAEdAR4BWwFcAAEA","AAABAAgAAgAWAAgBagGBAWsBggFsAYMBbQGEAAEACADEAMUA2ADZAO4A7wExATIAAwAAAAEACAABAGYAMAIUAg4CCAH4AeoB3AHOAcABsgGkAZYBiAF6","AXQBbgFoAWIBWgFUAU4BSAFCATwBNgEwASoBJAEeARgBEgEMAQYBAAD6APQA7gDoAOIA3ADWANAAygDEAL4AuACyAKwApgACAAoACQAKAAAADAAMAAIA","EQAaAAMAHgAeAA0ATwBPAA4A7gDvAA8BCQEJABEBmwGkABIBrwG4ABwBugHDACYAAgGkAbgAAgGjAbcAAgGiAbYAAgGhAbUAAgGgAbQAAgGfAbMAAgGe","AbIAAgGdAbEAAgGcAbAAAgGbAa8AAgGkAcMAAgGjAcIAAgGiAcEAAgGhAcAAAgGgAb8AAgGfAb4AAgGeAb0AAgGdAbwAAgGcAbsAAgGbAboAAgAaAbgA","AgAZAbcAAgAYAbYAAgAXAbUAAgAWAbQAAgAVAbMAAgAUAbIAAgATAbEAAgASAbAAAgARAa8AAwFgAWEBYgACAYMB1wACAWwBdwACAVMBjQACAdMB1QAG","AV8BmgGkAa4BwwHNAAYBWgGZAaMBrQHCAcwABgFZAZgBogGsAcEBywAGAV4BlwGhAasBwAHKAAYBWAGWAaABqgG/AckABgFXAZUBnwGpAb4ByAAGAHMB","lAGeAagBvQHHAAYAcgGTAZ0BpwG8AcYABgB5AZIBnAGmAbsBxQAHAV0BkQGbAaUBuQG6AcQAAgHSAdQAAgHQAdEAAgHOAc8AAQAAAAEACAACAHYAOAFS","AGoBbgFvAHoAagGFAYkBfAF9AYoBiwGMAHoBjgGPAZABcAFxAXIBcwFqAYEBawGCAYYBhwGIAX4BdAF1AXYBeQF6AXsBaAF/AWkBgAE/AUABbQGEASEB","IgF4AZEBkgGTAZQBlQGWAZcBmAGZAZoAAQA4ABAAIgAqACsAMABCAEgASQBKAEsATABNAE4AUABRAFQAVQCMAI0AjgCPAMQAxQDYANkA3QDfAOEA4wDo","AOoA7ADwAPEA8wD6APsBBAEFAR0BHgExATIBWwFcAWwBpQGmAacBqAGpAaoBqwGsAa0BrgAAQEqZmJeWh4aFhIOCgYB/fn18e3p5eHd2dXRzcnFwb25t","bGtqaWhnZmVkY2JhYF9eXVxbWllYV1ZVVFNRUE9OTUxLSklIR0YoHxAKCSwBsQsKQyNDZQotLACxCgtDI0MLLSwBsAZDsAdDZQotLLBPKyCwQFFYIUtS","WEVEGyEhWRsjIbBAsAQlRbAEJUVhZIpjUlhFRBshIVlZLSwAsAdDsAZDCy0sS1MjS1FaWCBFimBEGyEhWS0sS1RYIEWKYEQbISFZLSxLUyNLUVpYOBsh","IVktLEtUWDgbISFZLSywAkNUWLBGKxshISEhWS0ssAJDVFiwRysbISEhWS0ssAJDVFiwSCsbISEhIVktLLACQ1RYsEkrGyEhIVktLCMgsABQiopksQAD","JVRYsEAbsQEDJVRYsAVDi1mwTytZI7BiKyMhI1hlWS0ssQgADCFUYEMtLLEMAAwhVGBDLSwBIEewAkMguBAAYrgQAGNXI7gBAGK4EABjV1pYsCBgZllI","LSyxAAIlsAIlsAIlU7gANSN4sAIlsAIlYLAgYyAgsAYlI2JQWIohsAFgIxsgILAGJSNiUlgjIbABYRuKISMhIFlZuP/BHGCwIGMjIS0ssQIAQrEjAYhR","sUABiFNaWLgQALAgiFRYsgIBAkNgQlmxJAGIUVi4IACwQIhUWLICAgJDYEKxJAGIVFiyAiACQ2BCAEsBS1JYsgIIAkNgQlkbuEAAsICIVFiyAgQCQ2BC","WbhAALCAY7gBAIhUWLICCAJDYEJZuUAAAQBjuAIAiFRYsgIQAkNgQlmxJgGIUVi5QAACAGO4BACIVFiyAkACQ2BCWblAAAQAY7gIAIhUWLICgAJDYEJZ","sSgBiFFYuUAACABjuBAAiFRYuQACAQCwAkNgQllZWVlZWVmxAAJDVFhACgVACEAJQAwCDQIbsQECQ1RYsgVACLoBAAAJAQCzDAENARuxgAJDUliyBUAI","uAGAsQlAG7gBALACQ1JYsgVACLoBgAAJAUAbuAGAsAJDUliyBUAIuAIAsQlAG7IFQAi6AQAACQEAWVlZuEAAsICIVblAAAIAY7gEAIhVWlizDAANARuz","DAANAVlZWUJCQkJCLSxFsQJOKyOwTysgsEBRWCFLUViwAiVFsQFOK2BZGyNLUViwAyVFIGSKY7BAU1ixAk4rYBshWRshWVlELSwgsABQIFgjZRsjWbEU","FIpwRbEQEENLikNRWliwQBuwTytZI7FhBiZgK4pYsAVDi1kjWGVZIxA6LSywAyVJYyNGYLBPKyOwBCWwBCVJsAMlY1YgYLBiYCuwAyUgEEaKRmCwIGNh","Oi0ssAAWsQIDJbEBBCUBPgA+sQECBgywCiNlQrALI0KxAgMlsQEEJQE/AD+xAQIGDLAGI2VCsAcjQrABFrEAAkNUWEUjRSAYaYpjI2IgILBAUFhnG2ZZ","YbAgY7BAI2GwBCNCG7EEAEIhIVkYAS0sIEWxAE4rRC0sS1GxQE8rUFtYIEWxAU4rIIqKRCCxQAQmYWNhsQFOK0QhGyMhikWxAU4rIIojRERZLSxLUbFA","TytQW1hFIIqwQGFjYBsjIUVZsQFOK0QtLCNFIIpFI2EgZLBAUbAEJSCwAFMjsEBRWlqxQE8rVFpYigxkI2QjU1ixQECKYSBjYRsgY1kbilljsQJOK2BE","LSwBLSwALSwFsQsKQyNDZQotLLEKC0MjQwsCLSywAiVjZrACJbggAGJgI2ItLLACJWOwIGBmsAIluCAAYmAjYi0ssAIlY2ewAiW4IABiYCNiLSywAiVj","ZrAgYLACJbggAGJgI2ItLCNKsQJOKy0sI0qxAU4rLSwjikojRWSwAiVksAIlYWSwA0NSWCEgZFmxAk4rI7AAUFhlWS0sI4pKI0VksAIlZLACJWFksAND","UlghIGRZsQFOKyOwAFBYZVktLCCwAyVKsQJOK4oQOy0sILADJUqxAU4rihA7LSywAyWwAyWKsGcrihA7LSywAyWwAyWKsGgrihA7LSywAyVGsAMlRmCw","BCUusAQlsAQlsAQmILAAUFghsGobsGxZK7ADJUawAyVGYGGwgGIgiiAQIzojIBAjOi0ssAMlR7ADJUdgsAUlR7CAY2GwAiWwBiVJYyOwBSVKsIBjIFhi","GyFZsAQmRmCKRopGYLAgY2EtLLAEJrAEJbAEJbAEJrBuKyCKIBAjOiMgECM6LSwjILABVFghsAIlsQJOK7CAUCBgWSBgYCCwAVFYISEbILAFUVghIGZh","sEAjYbEAAyVQsAMlsAMlUFpYILADJWGKU1ghsABZGyFZG7AHVFggZmFlIyEbISGwAFlZWbECTistLLACJbAEJUqwAFNYsAAbioojirABWbAEJUYgZmEg","sAUmsAYmSbAFJrAFJrBwKyNhZbAgYCBmYbAgYWUtLLACJUYgiiCwAFBYIbECTisbRSMhWWFlsAIlEDstLLAEJiC4AgBiILgCAGOKI2EgsF1gK7AFJRGK","EoogOYpYuQBdEACwBCZjVmArIyEgECBGILECTisjYRsjISCKIBBJsQJOK1k7LSy5AF0QALAJJWNWYCuwBSWwBSWwBSawbSuxXQclYCuwBSWwBSWwBSWw","BSWwbyu5AF0QALAIJmNWYCsgsABSWLBQK7AFJbAFJbAHJbAHJbAFJbBxK7ACFziwAFKwAiWwAVJaWLAEJbAGJUmwAyWwBSVJYCCwQFJYIRuwAFJYILAC","VFiwBCWwBCWwByWwByVJsAIXOBuwBCWwBCWwBCWwBiVJsAIXOFlZWVlZISEhISEtLLkAXRAAsAslY1ZgK7AHJbAHJbAGJbAGJbAMJbAMJbAJJbAIJbBu","K7AEFziwByWwByWwByawbSuwBCWwBCWwBCawbSuwUCuwBiWwBiWwAyWwcSuwBSWwBSWwAyWwAhc4ILAGJbAGJbAFJbBxK2CwBiWwBiWwBCVlsAIXOLAC","JbACJWAgsEBTWCGwQGEjsEBhIxu4/8BQWLBAYCOwQGAjWVmwCCWwCCWwBCawAhc4sAUlsAUlirACFzggsABSWLAGJbAIJUmwAyWwBSVJYCCwQFJYIRuw","AFJYsAYlsAYlsAYlsAYlsAslsAslSbAEFziwBiWwBiWwBiWwBiWwCiWwCiWwByWwcSuwBBc4sAQlsAQlsAUlsAclsAUlsHErsAIXOBuwBCWwBCW4/8Cw","Ahc4WVlZISEhISEhISEtLLAEJbADJYewAyWwAyWKILAAUFghsGUbsGhZK2SwBCWwBCUGsAQlsAQlSSAgY7ADJSBjUbEAAyVUW1ghISMhBxsgY7ACJSBj","YSCwUyuKY7AFJbAFJYewBCWwBCZKsABQWGVZsAQmIAFGIwBGsAUmIAFGIwBGsAAWALAAI0gBsAAjSAAgsAEjSLACI0gBILABI0iwAiNII7ICAAEIIziy","AgABCSM4sQIBB7ABFlktLCMQDQyKYyOKY2BkuUAABABjUFiwADgbPFktLLAGJbAJJbAJJbAHJrB2KyOwAFRYBRsEWbAEJbAGJrB3K7AFJbAFJrAFJbAF","JrB2K7AAVFgFGwRZsHcrLSywByWwCiWwCiWwCCawdiuKsABUWAUbBFmwBSWwByawdyuwBiWwBiawBiWwBiawdisIsHcrLSywByWwCiWwCiWwCCawdiuK","igiwBCWwBiawdyuwBSWwBSawBSWwBSawdiuwAFRYBRsEWbB3Ky0ssAglsAslsAslsAkmsHYrsAQmsAQmCLAFJbAHJrB3K7AGJbAGJrAGJbAGJrB2Kwiw","dystLAOwAyWwAyVKsAQlsAMlSgKwBSWwBSZKsAUmsAUmSrAEJmOKimNhLSyxXQ4lYCuwDCYRsAUmErAKJTmwByU5sAolsAolsAklsHwrsABQsAslsAgl","sAolsHwrsABQVFiwByWwCyWHsAQlsAQlC7AKJRCwCSXBsAIlsAIlC7AHJRCwBiXBG7AHJbALJbALJbj//7B2K7AEJbAEJQuwByWwCiWwdyuwCiWwCCWw","CCW4//+wdiuwAiWwAiULsAolsAclsHcrWbAKJUawCiVGYLAIJUawCCVGYLAGJbAGJQuwDCWwDCWwDCYgsABQWCGwahuwbFkrsAQlsAQlC7AJJbAJJbAJ","JiCwAFBYIbBqG7BsWSsjsAolRrAKJUZgYbAgYyOwCCVGsAglRmBhsCBjsQEMJVRYBBsFWbAKJiAQsAMlOrAGJrAGJguwByYgEIo6sQEHJlRYBBsFWbAF","JiAQsAIlOoqKCyMgECM6LSwjsAFUWLkAAEAAG7hAALAAWYqwAVRYuQAAQAAbuEAAsABZsH0rLSyKiggNirABVFi5AABAABu4QACwAFmwfSstLAiwAVRY","uQAAQAAbuEAAsABZDbB9Ky0ssAQmsAQmCA2wBCawBCYIDbB9Ky0sIAFGIwBGsApDsAtDimMjYmEtLLAJK7AGJS6wBSV9xbAGJbAFJbAEJSCwAFBYIbBq","G7BsWSuwBSWwBCWwAyUgsABQWCGwahuwbFkrGLAIJbAHJbAGJbAKJbBvK7AGJbAFJbAEJiCwAFBYIbBmG7BoWSuwBSWwBCWwBCYgsABQWCGwZhuwaFkr","VFh9sAQlELADJcWwAiUQsAElxbAFJiGwBSYhG7AGJrAEJbADJbAIJrBvK1mxAAJDVFh9sAIlsIIrsAUlsIIrICBpYbAEQwEjYbBgYCBpYbAgYSCwCCaw","CCaKsAIXOIqKYSBpYWGwAhc4GyEhISFZGC0sS1KxAQJDU1pYIxAgATwAPBshIVktLCOwAiWwAiVTWCCwBCVYPBs5WbABYLj/6RxZISEhLSywAiVHsAIl","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","AAEHAEEBKQFvAAqzGQUCcgArzjAx//8AAAAABQ0HkAYmACIAAAEHAHQBwAFvAAqzGQUCcgArzjAx//8AAAAABQ0HjwYmACIAAAEHAUEA5wFvAAqzHwUC","cgArzjAx//8AAAAABQ0HTAYmACIAAAEHAUgAuwFvAAqzJAUCcgArzjAx//8AAAAABQ0HQQYmACIAAAEHAGgANAFvAAy0KBwFAnIAK87OMDH//wAAAAAF","DQcKBiYAIgAAAAcBRgFUAIIAAv/+AAAGgQW2AA8AEwArQBUTCQkQAwoNAw0DDQUGAnIOAQEFCHIAKzIRMysROTkvLxEzETMyETMwMWEhESEDIwEhFSER","IRUhESEBIREjBoH9BP4H3rACrwPU/a4CK/3VAlL7TQG3cwHQ/jAFtpb+J5T94wHRArf//wB9/hQEywXLBiYAJAAAAAcAeAIWAAD//wDIAAAD9geQBiYA","JgAAAQcAQQEVAW8ACrMSAgJyACvOMDH//wDIAAAD9geQBiYAJgAAAQcAdAGtAW8ACrMSAgJyACvOMDH//wDIAAAD9gePBiYAJgAAAQcBQQDTAW8ACrMS","AgJyACvOMDH//wDIAAAD9gdBBiYAJgAAAQcAaAAhAW8ADLQhFQICcgArzs4wMf////QAAAGJB5AGJgAqAAABBwBB/6IBbwAKswoBAnIAK84wMf//ALQA","AAJJB5AGJgAqAAABBwB0AGIBbwAKswoBAnIAK84wMf///84AAAJvB48GJgAqAAABBwFB/3wBbwAKswoBAnIAK84wMf//AAYAAAI7B0EGJgAqAAABBwBo","/tABbwAMtA0ZAQJyACvOzjAxAAIAOgAABVEFtgAOABwAH0APDBERCxQUCRAOAnIVCQhyACsyKzIROS8zMxEzMDFBMgQSFRQCBCMhESM1MxEFIxEhFSER","MyAAETQCJgKB3gFDr7T+qvT+gpubAZLpAXT+jMMBLwEuhP0FtqP+wev3/rWnAomVApiR/fmV/gkBKgEnxQEAfQD//wDIAAAFPwdMBiYALwAAAQcBSAE8","AW8ACrMUCgJyACvOMDH//wB9/+wFvAeQBiYAMAAAAQcAQQHCAW8ACrMnDgNyACvOMDH//wB9/+wFvAeQBiYAMAAAAQcAdAJYAW8ACrMoDgNyACvOMDH/","/wB9/+wFvAePBiYAMAAAAQcBQQF/AW8ACrMtDgNyACvOMDH//wB9/+wFvAdMBiYAMAAAAQcBSAFSAW8ACrMyDgNyACvOMDH//wB9/+wFvAdBBiYAMAAA","AQcAaADMAW8ADLQ2Kg4DcgArzs4wMQABAIUBEAQKBJYACwAkQBMHCQEDCAsCBQgKBgAACgoGBAQGAC8zLxEzLzMvERIXOTAxQRcBAQcBAScBATcBA6xe","/p4BYV/+nP6jYwFh/p5jAWAElmH+nv6eYQFg/qBhAWIBYGP+nAADAH3/wgW8BfcAGgAlADAAOUAcKh4eGBgVFS0tFxYSA3IfKSkLCwgIIiIKCQUJcgAr","zjIzETMRMxEzETMrzjIzETMRMxEzETMwMUEUAgYGIyImJwcnNyYCNTQSJDMyFhc3FwcWEgc0JicBFhYzMjYSJRQWFwEmJiMiBgIFvFap+qV2wEpmdG5b","WpQBLeNruktic2pdY7M4N/1fOJJbqtlo/Cc0NAKeNopVqtxrAt2p/uvHbDMzkEycZAEfsuABUrwzLotPlGL+4baG2Uz8TCgtlAEQuoLTTQOuJiiS/vMA","//8Auf/sBRoHkAYmADYAAAEHAEEBjwFvAAqzGgkCcgArzjAx//8Auf/sBRoHkAYmADYAAAEHAHQCJgFvAAqzGwkCcgArzjAx//8Auf/sBRoHjwYmADYA","AAEHAUEBTQFvAAqzIQkCcgArzjAx//8Auf/sBRoHQQYmADYAAAEHAGgAmwFvAAy0KR0JAnIAK87OMDH//wAAAAAEeQeQBiYAOgAAAQcAdAF4AW8ACrMQ","BwJyACvOMDEAAgDIAAAEZwW2AA4AGAAfQA8PBhgLBgsGCwgJAnIICHIAKysROTkvLxEzETMwMUEUDgIjIxEjETMRMyAEATMyNjY1NCYjIwRnPIffo7Cq","qtEBIgEC/QuekLtct8vDAw5ep39J/r8Ftv8A3f35PYdvk40AAQCv/+wEnQYfADwAFUALLjkBcjQKchoSC3IAKzIrKzIwMUEUDgMVFBYWFx4CFRQGBiMi","Jic1HgIzMjY1NCYmJy4CNTQ+AzU0JiMiBgYVESMRNDY2MzIWFgQaOlVVOh1PSkhqOV6pcWGQNiVdajZ0ZyVVR1NiKjhUUziRc02ATKZ0yoGBwGsE9Edm","TkJBKB8wPTEwYndTcJJHIyCXFSYYY1Q1TksuNlhZOEFZREBPOFhSK2db+1kEp4mlSkOF//8AXv/sA8sGIQYmAEIAAAEHAEEA3AAAAAqzLwAHcgArzjAx","//8AXv/sA8sGIQYmAEIAAAEHAHQBdAAAAAqzLwAHcgArzjAx//8AXv/sA8sGIAYmAEIAAAEHAUEAmgAAAAqzNQAHcgArzjAx//8AXv/sA8sF3QYmAEIA","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"].join("");let decoded=null;function bundledFontBytes(){if(decoded===null){decoded=new Uint8Array(Buffer.from(BUNDLED_FONT_BASE64,"base64"))}return decoded}const mimeOf=target=>target==="jpeg"?"image/jpeg":"image/png";const DEFAULT_SCALE_ZOOM=3;function zoomFor(opts){return(opts.scale??100)/100*DEFAULT_SCALE_ZOOM}function resvgFitTo(opts){if(opts.width!==void 0)return{mode:"width",value:opts.width};if(opts.height!==void 0)return{mode:"height",value:opts.height};return{mode:"zoom",value:zoomFor(opts)}}async function rasterize(svg,target,opts={}){if(typeof OffscreenCanvas!=="undefined"){return rasterizeViaCanvas(svg,target,opts)}return rasterizeViaResvgWasm(svg,target,opts)}async function loadAndSizeCanvas(svg,opts){const encoded=typeof btoa!=="undefined"?btoa(unescape(encodeURIComponent(svg))):Buffer.from(svg,"utf8").toString("base64");const url=`data:image/svg+xml;base64,${encoded}`;const ImageCtor=globalThis.Image;if(typeof ImageCtor==="undefined"){throw new RasterizationUnsupportedError("OffscreenCanvas present but Image constructor is not")}const img=new ImageCtor;img.src=url;if(typeof img.decode==="function"){await img.decode()}else{await new Promise((res,rej)=>{img.onload=()=>res();img.onerror=()=>rej(new Error("image load failed"))})}const natW=img.width??800;const natH=img.height??600;let width;let height;if(opts.width!==void 0){width=opts.width;height=Math.round(width*natH/natW)}else if(opts.height!==void 0){height=opts.height;width=Math.round(height*natW/natH)}else{const zoom=zoomFor(opts);width=Math.round(natW*zoom);height=Math.round(natH*zoom)}const canvas=new OffscreenCanvas(width,height);const ctx=canvas.getContext("2d");if(!ctx)throw new RenderError("failed to acquire 2d canvas context");ctx.drawImage(img,0,0,width,height);return{canvas:canvas,ctx:ctx,width:width,height:height}}async function rasterizeViaCanvas(svg,target,opts){const{canvas:canvas}=await loadAndSizeCanvas(svg,opts);const blob=await canvas.convertToBlob({type:mimeOf(target),quality:target==="jpeg"?(opts.quality??85)/100:void 0});const ab=await blob.arrayBuffer();return new Uint8Array(ab)}let wasmInited=false;async function resvgModule(){let mod;try{mod=await import("@resvg/resvg-wasm")}catch(e){throw new RasterizationUnsupportedError(`PNG/JPEG in this runtime requires @resvg/resvg-wasm; install with: npm install @resvg/resvg-wasm`)}if(typeof mod.initWasm==="function"&&!wasmInited){try{const{readFileSync:readFileSync}=await import("fs");const{resolve:resolve}=await import("path");const{createRequire:createRequire}=await import("module");const req=createRequire(typeof document==="undefined"?require("u"+"rl").pathToFileURL(__filename).href:_documentCurrentScript&&_documentCurrentScript.tagName.toUpperCase()==="SCRIPT"&&_documentCurrentScript.src||new URL("lib.cjs",document.baseURI).href);const wasmPath=resolve(req.resolve("@resvg/resvg-wasm"),"../index_bg.wasm");const wasmBuffer=readFileSync(wasmPath);await mod.initWasm(wasmBuffer);wasmInited=true}catch(e){wasmInited=true}}return mod}async function rasterizeViaResvgWasm(svg,target,opts){const mod=await resvgModule();const Resvg=mod.Resvg;const resvg=new Resvg(svg,{font:{fontBuffers:[bundledFontBytes()],defaultFontFamily:"Open Sans",loadSystemFonts:false},fitTo:resvgFitTo(opts)});let rendered;try{rendered=resvg.render();const pngData=rendered.asPng();if(target==="png")return new Uint8Array(pngData);throw new RasterizationUnsupportedError("JPEG output in a non-Canvas runtime is not supported in v1; use --target=png instead")}finally{rendered?.free();resvg.free()}}async function rasterizeRgba(svg,opts={}){if(typeof OffscreenCanvas!=="undefined"){return rgbaViaCanvas(svg,opts)}return rgbaViaResvgWasm(svg,opts)}async function rgbaViaCanvas(svg,opts){const{ctx:ctx,width:width,height:height}=await loadAndSizeCanvas(svg,opts);const data=ctx.getImageData(0,0,width,height);const rgba=new Uint8Array(data.data.buffer.slice(data.data.byteOffset,data.data.byteOffset+data.data.byteLength));return{rgba:rgba,width:width,height:height}}async function rgbaViaResvgWasm(svg,opts){const mod=await resvgModule();const Resvg=mod.Resvg;const resvg=new Resvg(svg,{font:{fontBuffers:[bundledFontBytes()],defaultFontFamily:"Open Sans",loadSystemFonts:false},fitTo:resvgFitTo(opts)});let rendered;try{rendered=resvg.render();const rgba=new Uint8Array(rendered.pixels);for(let i=0;i<rgba.length;i+=4){const a=rgba[i+3];if(a!==0&&a!==255){rgba[i]=Math.min(255,Math.round(rgba[i]*255/a));rgba[i+1]=Math.min(255,Math.round(rgba[i+1]*255/a));rgba[i+2]=Math.min(255,Math.round(rgba[i+2]*255/a))}}return{rgba:rgba,width:rendered.width,height:rendered.height}}finally{rendered?.free();resvg.free()}}async function pngTarget(fsl,opts={}){const svg=await svgTarget(fsl);return rasterize(svg,"png",{width:opts.width,height:opts.height,scale:opts.scale})}async function jpegTarget(fsl,opts={}){const svg=await svgTarget(fsl);return rasterize(svg,"jpeg",{width:opts.width,height:opts.height,scale:opts.scale,quality:opts.quality})}function xml_unescape(s){return s.replace(/&lt;/g,"<").replace(/&gt;/g,">").replace(/&quot;/g,'"').replace(/&#39;/g,"'").replace(/&amp;/g,"&")}const NODE_GROUP_RE=/<g[^>]*\bclass="node"[^>]*>([\s\S]*?)<\/g>/g;const TEXT_RE=/<text[^>]*>([\s\S]*?)<\/text>/;const SHAPE_FILL_RE=/(<(?:ellipse|polygon|path)\b[^>]*\bfill=")([^"]*)(")/;function patch_state_fill(svg,state,fill){let done=false;const out=svg.replace(NODE_GROUP_RE,(whole,body)=>{if(done){return whole}const text=body.match(TEXT_RE);if(text===null){return whole}if(xml_unescape(text[1])!==state){return whole}const patched_body=body.replace(SHAPE_FILL_RE,(_m,pre,_old,post)=>`${pre}${fill}${post}`);if(patched_body===body){return whole}done=true;return whole.replace(body,()=>patched_body)});return out}const DefaultBufferLength=1024;let nextPropID=0;let Range$1=class Range{constructor(from,to){this.from=from;this.to=to}};class NodeProp{constructor(config={}){this.id=nextPropID++;this.perNode=!!config.perNode;this.deserialize=config.deserialize||(()=>{throw new Error("This node type doesn't define a deserialize function")});this.combine=config.combine||null}add(match){if(this.perNode)throw new RangeError("Can't add per-node props to node types");if(typeof match!="function")match=NodeType.match(match);return type=>{let result=match(type);return result===undefined?null:[this,result]}}}NodeProp.closedBy=new NodeProp({deserialize:str=>str.split(" ")});NodeProp.openedBy=new NodeProp({deserialize:str=>str.split(" ")});NodeProp.group=new NodeProp({deserialize:str=>str.split(" ")});NodeProp.isolate=new NodeProp({deserialize:value=>{if(value&&value!="rtl"&&value!="ltr"&&value!="auto")throw new RangeError("Invalid value for isolate: "+value);return value||"auto"}});NodeProp.contextHash=new NodeProp({perNode:true});NodeProp.lookAhead=new NodeProp({perNode:true});NodeProp.mounted=new NodeProp({perNode:true});class MountedTree{constructor(tree,overlay,parser,bracketed=false){this.tree=tree;this.overlay=overlay;this.parser=parser;this.bracketed=bracketed}static get(tree){return tree&&tree.props&&tree.props[NodeProp.mounted.id]}}const noProps=Object.create(null);class NodeType{constructor(name,props,id,flags=0){this.name=name;this.props=props;this.id=id;this.flags=flags}static define(spec){let props=spec.props&&spec.props.length?Object.create(null):noProps;let flags=(spec.top?1:0)|(spec.skipped?2:0)|(spec.error?4:0)|(spec.name==null?8:0);let type=new NodeType(spec.name||"",props,spec.id,flags);if(spec.props)for(let src of spec.props){if(!Array.isArray(src))src=src(type);if(src){if(src[0].perNode)throw new RangeError("Can't store a per-node prop on a node type");props[src[0].id]=src[1]}}return type}prop(prop){return this.props[prop.id]}get isTop(){return(this.flags&1)>0}get isSkipped(){return(this.flags&2)>0}get isError(){return(this.flags&4)>0}get isAnonymous(){return(this.flags&8)>0}is(name){if(typeof name=="string"){if(this.name==name)return true;let group=this.prop(NodeProp.group);return group?group.indexOf(name)>-1:false}return this.id==name}static match(map){let direct=Object.create(null);for(let prop in map)for(let name of prop.split(" "))direct[name]=map[prop];return node=>{for(let groups=node.prop(NodeProp.group),i=-1;i<(groups?groups.length:0);i++){let found=direct[i<0?node.name:groups[i]];if(found)return found}}}}NodeType.none=new NodeType("",Object.create(null),0,8);class NodeSet{constructor(types){this.types=types;for(let i=0;i<types.length;i++)if(types[i].id!=i)throw new RangeError("Node type ids should correspond to array positions when creating a node set")}extend(...props){let newTypes=[];for(let type of this.types){let newProps=null;for(let source of props){let add=source(type);if(add){if(!newProps)newProps=Object.assign({},type.props);let value=add[1],prop=add[0];if(prop.combine&&prop.id in newProps)value=prop.combine(newProps[prop.id],value);newProps[prop.id]=value}}newTypes.push(newProps?new NodeType(type.name,newProps,type.id,type.flags):type)}return new NodeSet(newTypes)}}const CachedNode=new WeakMap,CachedInnerNode=new WeakMap;var IterMode;(function(IterMode){IterMode[IterMode["ExcludeBuffers"]=1]="ExcludeBuffers";IterMode[IterMode["IncludeAnonymous"]=2]="IncludeAnonymous";IterMode[IterMode["IgnoreMounts"]=4]="IgnoreMounts";IterMode[IterMode["IgnoreOverlays"]=8]="IgnoreOverlays";IterMode[IterMode["EnterBracketed"]=16]="EnterBracketed"})(IterMode||(IterMode={}));class Tree{constructor(type,children,positions,length,props){this.type=type;this.children=children;this.positions=positions;this.length=length;this.props=null;if(props&&props.length){this.props=Object.create(null);for(let[prop,value]of props)this.props[typeof prop=="number"?prop:prop.id]=value}}toString(){let mounted=MountedTree.get(this);if(mounted&&!mounted.overlay)return mounted.tree.toString();let children="";for(let ch of this.children){let str=ch.toString();if(str){if(children)children+=",";children+=str}}return!this.type.name?children:(/\W/.test(this.type.name)&&!this.type.isError?JSON.stringify(this.type.name):this.type.name)+(children.length?"("+children+")":"")}cursor(mode=0){return new TreeCursor(this.topNode,mode)}cursorAt(pos,side=0,mode=0){let scope=CachedNode.get(this)||this.topNode;let cursor=new TreeCursor(scope);cursor.moveTo(pos,side);CachedNode.set(this,cursor._tree);return cursor}get topNode(){return new TreeNode(this,0,0,null)}resolve(pos,side=0){let node=resolveNode(CachedNode.get(this)||this.topNode,pos,side,false);CachedNode.set(this,node);return node}resolveInner(pos,side=0){let node=resolveNode(CachedInnerNode.get(this)||this.topNode,pos,side,true);CachedInnerNode.set(this,node);return node}resolveStack(pos,side=0){return stackIterator(this,pos,side)}iterate(spec){let{enter:enter,leave:leave,from:from=0,to:to=this.length}=spec;let mode=spec.mode||0,anon=(mode&IterMode.IncludeAnonymous)>0;for(let c=this.cursor(mode|IterMode.IncludeAnonymous);;){let entered=false;if(c.from<=to&&c.to>=from&&(!anon&&c.type.isAnonymous||enter(c)!==false)){if(c.firstChild())continue;entered=true}for(;;){if(entered&&leave&&(anon||!c.type.isAnonymous))leave(c);if(c.nextSibling())break;if(!c.parent())return;entered=true}}}prop(prop){return!prop.perNode?this.type.prop(prop):this.props?this.props[prop.id]:undefined}get propValues(){let result=[];if(this.props)for(let id in this.props)result.push([+id,this.props[id]]);return result}balance(config={}){return this.children.length<=8?this:balanceRange(NodeType.none,this.children,this.positions,0,this.children.length,0,this.length,(children,positions,length)=>new Tree(this.type,children,positions,length,this.propValues),config.makeTree||((children,positions,length)=>new Tree(NodeType.none,children,positions,length)))}static build(data){return buildTree(data)}}Tree.empty=new Tree(NodeType.none,[],[],0);class FlatBufferCursor{constructor(buffer,index){this.buffer=buffer;this.index=index}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)}}class TreeBuffer{constructor(buffer,length,set){this.buffer=buffer;this.length=length;this.set=set}get type(){return NodeType.none}toString(){let result=[];for(let index=0;index<this.buffer.length;){result.push(this.childString(index));index=this.buffer[index+3]}return result.join(",")}childString(index){let id=this.buffer[index],endIndex=this.buffer[index+3];let type=this.set.types[id],result=type.name;if(/\W/.test(result)&&!type.isError)result=JSON.stringify(result);index+=4;if(endIndex==index)return result;let children=[];while(index<endIndex){children.push(this.childString(index));index=this.buffer[index+3]}return result+"("+children.join(",")+")"}findChild(startIndex,endIndex,dir,pos,side){let{buffer:buffer}=this,pick=-1;for(let i=startIndex;i!=endIndex;i=buffer[i+3]){if(checkSide(side,pos,buffer[i+1],buffer[i+2])){pick=i;if(dir>0)break}}return pick}slice(startI,endI,from){let b=this.buffer;let copy=new Uint16Array(endI-startI),len=0;for(let i=startI,j=0;i<endI;){copy[j++]=b[i++];copy[j++]=b[i++]-from;let to=copy[j++]=b[i++]-from;copy[j++]=b[i++]-startI;len=Math.max(len,to)}return new TreeBuffer(copy,len,this.set)}}function checkSide(side,pos,from,to){switch(side){case-2:return from<pos;case-1:return to>=pos&&from<pos;case 0:return from<pos&&to>pos;case 1:return from<=pos&&to>pos;case 2:return to>pos;case 4:return true}}function resolveNode(node,pos,side,overlays){var _a;while(node.from==node.to||(side<1?node.from>=pos:node.from>pos)||(side>-1?node.to<=pos:node.to<pos)){let parent=!overlays&&node instanceof TreeNode&&node.index<0?null:node.parent;if(!parent)return node;node=parent}let mode=overlays?0:IterMode.IgnoreOverlays;if(overlays)for(let scan=node,parent=scan.parent;parent;scan=parent,parent=scan.parent){if(scan instanceof TreeNode&&scan.index<0&&((_a=parent.enter(pos,side,mode))===null||_a===void 0?void 0:_a.from)!=scan.from)node=parent}for(;;){let inner=node.enter(pos,side,mode);if(!inner)return node;node=inner}}class BaseNode{cursor(mode=0){return new TreeCursor(this,mode)}getChild(type,before=null,after=null){let r=getChildren(this,type,before,after);return r.length?r[0]:null}getChildren(type,before=null,after=null){return getChildren(this,type,before,after)}resolve(pos,side=0){return resolveNode(this,pos,side,false)}resolveInner(pos,side=0){return resolveNode(this,pos,side,true)}matchContext(context){return matchNodeContext(this.parent,context)}enterUnfinishedNodesBefore(pos){let scan=this.childBefore(pos),node=this;while(scan){let last=scan.lastChild;if(!last||last.to!=scan.to)break;if(last.type.isError&&last.from==last.to){node=scan;scan=last.prevSibling}else{scan=last}}return node}get node(){return this}get next(){return this.parent}}class TreeNode extends BaseNode{constructor(_tree,from,index,_parent){super();this._tree=_tree;this.from=from;this.index=index;this._parent=_parent}get type(){return this._tree.type}get name(){return this._tree.type.name}get to(){return this.from+this._tree.length}nextChild(i,dir,pos,side,mode=0){for(let parent=this;;){for(let{children:children,positions:positions}=parent._tree,e=dir>0?children.length:-1;i!=e;i+=dir){let next=children[i],start=positions[i]+parent.from,mounted;if(!(mode&IterMode.EnterBracketed&&next instanceof Tree&&(mounted=MountedTree.get(next))&&!mounted.overlay&&mounted.bracketed&&pos>=start&&pos<=start+next.length)&&!checkSide(side,pos,start,start+next.length))continue;if(next instanceof TreeBuffer){if(mode&IterMode.ExcludeBuffers)continue;let index=next.findChild(0,next.buffer.length,dir,pos-start,side);if(index>-1)return new BufferNode(new BufferContext(parent,next,i,start),null,index)}else if(mode&IterMode.IncludeAnonymous||(!next.type.isAnonymous||hasChild(next))){let mounted;if(!(mode&IterMode.IgnoreMounts)&&(mounted=MountedTree.get(next))&&!mounted.overlay)return new TreeNode(mounted.tree,start,i,parent);let inner=new TreeNode(next,start,i,parent);return mode&IterMode.IncludeAnonymous||!inner.type.isAnonymous?inner:inner.nextChild(dir<0?next.children.length-1:0,dir,pos,side,mode)}}if(mode&IterMode.IncludeAnonymous||!parent.type.isAnonymous)return null;if(parent.index>=0)i=parent.index+dir;else i=dir<0?-1:parent._parent._tree.children.length;parent=parent._parent;if(!parent)return null}}get firstChild(){return this.nextChild(0,1,0,4)}get lastChild(){return this.nextChild(this._tree.children.length-1,-1,0,4)}childAfter(pos){return this.nextChild(0,1,pos,2)}childBefore(pos){return this.nextChild(this._tree.children.length-1,-1,pos,-2)}prop(prop){return this._tree.prop(prop)}enter(pos,side,mode=0){let mounted;if(!(mode&IterMode.IgnoreOverlays)&&(mounted=MountedTree.get(this._tree))&&mounted.overlay){let rPos=pos-this.from,enterBracketed=mode&IterMode.EnterBracketed&&mounted.bracketed;for(let{from:from,to:to}of mounted.overlay){if((side>0||enterBracketed?from<=rPos:from<rPos)&&(side<0||enterBracketed?to>=rPos:to>rPos))return new TreeNode(mounted.tree,mounted.overlay[0].from+this.from,-1,this)}}return this.nextChild(0,1,pos,side,mode)}nextSignificantParent(){let val=this;while(val.type.isAnonymous&&val._parent)val=val._parent;return val}get parent(){return this._parent?this._parent.nextSignificantParent():null}get nextSibling(){return this._parent&&this.index>=0?this._parent.nextChild(this.index+1,1,0,4):null}get prevSibling(){return this._parent&&this.index>=0?this._parent.nextChild(this.index-1,-1,0,4):null}get tree(){return this._tree}toTree(){return this._tree}toString(){return this._tree.toString()}}function getChildren(node,type,before,after){let cur=node.cursor(),result=[];if(!cur.firstChild())return result;if(before!=null)for(let found=false;!found;){found=cur.type.is(before);if(!cur.nextSibling())return result}for(;;){if(after!=null&&cur.type.is(after))return result;if(cur.type.is(type))result.push(cur.node);if(!cur.nextSibling())return after==null?result:[]}}function matchNodeContext(node,context,i=context.length-1){for(let p=node;i>=0;p=p.parent){if(!p)return false;if(!p.type.isAnonymous){if(context[i]&&context[i]!=p.name)return false;i--}}return true}class BufferContext{constructor(parent,buffer,index,start){this.parent=parent;this.buffer=buffer;this.index=index;this.start=start}}class BufferNode extends BaseNode{get name(){return this.type.name}get from(){return this.context.start+this.context.buffer.buffer[this.index+1]}get to(){return this.context.start+this.context.buffer.buffer[this.index+2]}constructor(context,_parent,index){super();this.context=context;this._parent=_parent;this.index=index;this.type=context.buffer.set.types[context.buffer.buffer[index]]}child(dir,pos,side){let{buffer:buffer}=this.context;let index=buffer.findChild(this.index+4,buffer.buffer[this.index+3],dir,pos-this.context.start,side);return index<0?null:new BufferNode(this.context,this,index)}get firstChild(){return this.child(1,0,4)}get lastChild(){return this.child(-1,0,4)}childAfter(pos){return this.child(1,pos,2)}childBefore(pos){return this.child(-1,pos,-2)}prop(prop){return this.type.prop(prop)}enter(pos,side,mode=0){if(mode&IterMode.ExcludeBuffers)return null;let{buffer:buffer}=this.context;let index=buffer.findChild(this.index+4,buffer.buffer[this.index+3],side>0?1:-1,pos-this.context.start,side);return index<0?null:new BufferNode(this.context,this,index)}get parent(){return this._parent||this.context.parent.nextSignificantParent()}externalSibling(dir){return this._parent?null:this.context.parent.nextChild(this.context.index+dir,dir,0,4)}get nextSibling(){let{buffer:buffer}=this.context;let after=buffer.buffer[this.index+3];if(after<(this._parent?buffer.buffer[this._parent.index+3]:buffer.buffer.length))return new BufferNode(this.context,this._parent,after);return this.externalSibling(1)}get prevSibling(){let{buffer:buffer}=this.context;let parentStart=this._parent?this._parent.index+4:0;if(this.index==parentStart)return this.externalSibling(-1);return new BufferNode(this.context,this._parent,buffer.findChild(parentStart,this.index,-1,0,4))}get tree(){return null}toTree(){let children=[],positions=[];let{buffer:buffer}=this.context;let startI=this.index+4,endI=buffer.buffer[this.index+3];if(endI>startI){let from=buffer.buffer[this.index+1];children.push(buffer.slice(startI,endI,from));positions.push(0)}return new Tree(this.type,children,positions,this.to-this.from)}toString(){return this.context.buffer.childString(this.index)}}function iterStack(heads){if(!heads.length)return null;let pick=0,picked=heads[0];for(let i=1;i<heads.length;i++){let node=heads[i];if(node.from>picked.from||node.to<picked.to){picked=node;pick=i}}let next=picked instanceof TreeNode&&picked.index<0?null:picked.parent;let newHeads=heads.slice();if(next)newHeads[pick]=next;else newHeads.splice(pick,1);return new StackIterator(newHeads,picked)}class StackIterator{constructor(heads,node){this.heads=heads;this.node=node}get next(){return iterStack(this.heads)}}function stackIterator(tree,pos,side){let inner=tree.resolveInner(pos,side),layers=null;for(let scan=inner instanceof TreeNode?inner:inner.context.parent;scan;scan=scan.parent){if(scan.index<0){let parent=scan.parent;(layers||(layers=[inner])).push(parent.resolve(pos,side));scan=parent}else{let mount=MountedTree.get(scan.tree);if(mount&&mount.overlay&&mount.overlay[0].from<=pos&&mount.overlay[mount.overlay.length-1].to>=pos){let root=new TreeNode(mount.tree,mount.overlay[0].from+scan.from,-1,scan);(layers||(layers=[inner])).push(resolveNode(root,pos,side,false))}}}return layers?iterStack(layers):inner}class TreeCursor{get name(){return this.type.name}constructor(node,mode=0){this.buffer=null;this.stack=[];this.index=0;this.bufferNode=null;this.mode=mode&~IterMode.EnterBracketed;if(node instanceof TreeNode){this.yieldNode(node)}else{this._tree=node.context.parent;this.buffer=node.context;for(let n=node._parent;n;n=n._parent)this.stack.unshift(n.index);this.bufferNode=node;this.yieldBuf(node.index)}}yieldNode(node){if(!node)return false;this._tree=node;this.type=node.type;this.from=node.from;this.to=node.to;return true}yieldBuf(index,type){this.index=index;let{start:start,buffer:buffer}=this.buffer;this.type=type||buffer.set.types[buffer.buffer[index]];this.from=start+buffer.buffer[index+1];this.to=start+buffer.buffer[index+2];return true}yield(node){if(!node)return false;if(node instanceof TreeNode){this.buffer=null;return this.yieldNode(node)}this.buffer=node.context;return this.yieldBuf(node.index,node.type)}toString(){return this.buffer?this.buffer.buffer.childString(this.index):this._tree.toString()}enterChild(dir,pos,side){if(!this.buffer)return this.yield(this._tree.nextChild(dir<0?this._tree._tree.children.length-1:0,dir,pos,side,this.mode));let{buffer:buffer}=this.buffer;let index=buffer.findChild(this.index+4,buffer.buffer[this.index+3],dir,pos-this.buffer.start,side);if(index<0)return false;this.stack.push(this.index);return this.yieldBuf(index)}firstChild(){return this.enterChild(1,0,4)}lastChild(){return this.enterChild(-1,0,4)}childAfter(pos){return this.enterChild(1,pos,2)}childBefore(pos){return this.enterChild(-1,pos,-2)}enter(pos,side,mode=this.mode){if(!this.buffer)return this.yield(this._tree.enter(pos,side,mode));return mode&IterMode.ExcludeBuffers?false:this.enterChild(1,pos,side)}parent(){if(!this.buffer)return this.yieldNode(this.mode&IterMode.IncludeAnonymous?this._tree._parent:this._tree.parent);if(this.stack.length)return this.yieldBuf(this.stack.pop());let parent=this.mode&IterMode.IncludeAnonymous?this.buffer.parent:this.buffer.parent.nextSignificantParent();this.buffer=null;return this.yieldNode(parent)}sibling(dir){if(!this.buffer)return!this._tree._parent?false:this.yield(this._tree.index<0?null:this._tree._parent.nextChild(this._tree.index+dir,dir,0,4,this.mode));let{buffer:buffer}=this.buffer,d=this.stack.length-1;if(dir<0){let parentStart=d<0?0:this.stack[d]+4;if(this.index!=parentStart)return this.yieldBuf(buffer.findChild(parentStart,this.index,-1,0,4))}else{let after=buffer.buffer[this.index+3];if(after<(d<0?buffer.buffer.length:buffer.buffer[this.stack[d]+3]))return this.yieldBuf(after)}return d<0?this.yield(this.buffer.parent.nextChild(this.buffer.index+dir,dir,0,4,this.mode)):false}nextSibling(){return this.sibling(1)}prevSibling(){return this.sibling(-1)}atLastNode(dir){let index,parent,{buffer:buffer}=this;if(buffer){if(dir>0){if(this.index<buffer.buffer.buffer.length)return false}else{for(let i=0;i<this.index;i++)if(buffer.buffer.buffer[i+3]<this.index)return false}({index:index,parent:parent}=buffer)}else{({index:index,_parent:parent}=this._tree)}for(;parent;({index:index,_parent:parent}=parent)){if(index>-1)for(let i=index+dir,e=dir<0?-1:parent._tree.children.length;i!=e;i+=dir){let child=parent._tree.children[i];if(this.mode&IterMode.IncludeAnonymous||child instanceof TreeBuffer||!child.type.isAnonymous||hasChild(child))return false}}return true}move(dir,enter){if(enter&&this.enterChild(dir,0,4))return true;for(;;){if(this.sibling(dir))return true;if(this.atLastNode(dir)||!this.parent())return false}}next(enter=true){return this.move(1,enter)}prev(enter=true){return this.move(-1,enter)}moveTo(pos,side=0){while(this.from==this.to||(side<1?this.from>=pos:this.from>pos)||(side>-1?this.to<=pos:this.to<pos))if(!this.parent())break;while(this.enterChild(1,pos,side)){}return this}get node(){if(!this.buffer)return this._tree;let cache=this.bufferNode,result=null,depth=0;if(cache&&cache.context==this.buffer){scan:for(let index=this.index,d=this.stack.length;d>=0;){for(let c=cache;c;c=c._parent)if(c.index==index){if(index==this.index)return c;result=c;depth=d+1;break scan}index=this.stack[--d]}}for(let i=depth;i<this.stack.length;i++)result=new BufferNode(this.buffer,result,this.stack[i]);return this.bufferNode=new BufferNode(this.buffer,result,this.index)}get tree(){return this.buffer?null:this._tree._tree}iterate(enter,leave){for(let depth=0;;){let mustLeave=false;if(this.type.isAnonymous||enter(this)!==false){if(this.firstChild()){depth++;continue}if(!this.type.isAnonymous)mustLeave=true}for(;;){if(mustLeave&&leave)leave(this);mustLeave=this.type.isAnonymous;if(!depth)return;if(this.nextSibling())break;this.parent();depth--;mustLeave=true}}}matchContext(context){if(!this.buffer)return matchNodeContext(this.node.parent,context);let{buffer:buffer}=this.buffer,{types:types}=buffer.set;for(let i=context.length-1,d=this.stack.length-1;i>=0;d--){if(d<0)return matchNodeContext(this._tree,context,i);let type=types[buffer.buffer[this.stack[d]]];if(!type.isAnonymous){if(context[i]&&context[i]!=type.name)return false;i--}}return true}}function hasChild(tree){return tree.children.some(ch=>ch instanceof TreeBuffer||!ch.type.isAnonymous||hasChild(ch))}function buildTree(data){var _a;let{buffer:buffer,nodeSet:nodeSet,maxBufferLength:maxBufferLength=DefaultBufferLength,reused:reused=[],minRepeatType:minRepeatType=nodeSet.types.length}=data;let cursor=Array.isArray(buffer)?new FlatBufferCursor(buffer,buffer.length):buffer;let types=nodeSet.types;let contextHash=0,lookAhead=0;function takeNode(parentStart,minPos,children,positions,inRepeat,depth){let{id:id,start:start,end:end,size:size}=cursor;let lookAheadAtStart=lookAhead,contextAtStart=contextHash;if(size<0){cursor.next();if(size==-1){let node=reused[id];children.push(node);positions.push(start-parentStart);return}else if(size==-3){contextHash=id;return}else if(size==-4){lookAhead=id;return}else{throw new RangeError(`Unrecognized record size: ${size}`)}}let type=types[id],node,buffer;let startPos=start-parentStart;if(end-start<=maxBufferLength&&(buffer=findBufferSize(cursor.pos-minPos,inRepeat))){let data=new Uint16Array(buffer.size-buffer.skip);let endPos=cursor.pos-buffer.size,index=data.length;while(cursor.pos>endPos)index=copyToBuffer(buffer.start,data,index);node=new TreeBuffer(data,end-buffer.start,nodeSet);startPos=buffer.start-parentStart}else{let endPos=cursor.pos-size;cursor.next();let localChildren=[],localPositions=[];let localInRepeat=id>=minRepeatType?id:-1;let lastGroup=0,lastEnd=end;while(cursor.pos>endPos){if(localInRepeat>=0&&cursor.id==localInRepeat&&cursor.size>=0){if(cursor.end<=lastEnd-maxBufferLength){makeRepeatLeaf(localChildren,localPositions,start,lastGroup,cursor.end,lastEnd,localInRepeat,lookAheadAtStart,contextAtStart);lastGroup=localChildren.length;lastEnd=cursor.end}cursor.next()}else if(depth>2500){takeFlatNode(start,endPos,localChildren,localPositions)}else{takeNode(start,endPos,localChildren,localPositions,localInRepeat,depth+1)}}if(localInRepeat>=0&&lastGroup>0&&lastGroup<localChildren.length)makeRepeatLeaf(localChildren,localPositions,start,lastGroup,start,lastEnd,localInRepeat,lookAheadAtStart,contextAtStart);localChildren.reverse();localPositions.reverse();if(localInRepeat>-1&&lastGroup>0){let make=makeBalanced(type,contextAtStart);node=balanceRange(type,localChildren,localPositions,0,localChildren.length,0,end-start,make,make)}else{node=makeTree(type,localChildren,localPositions,end-start,lookAheadAtStart-end,contextAtStart)}}children.push(node);positions.push(startPos)}function takeFlatNode(parentStart,minPos,children,positions){let nodes=[];let nodeCount=0,stopAt=-1;while(cursor.pos>minPos){let{id:id,start:start,end:end,size:size}=cursor;if(size>4){cursor.next()}else if(stopAt>-1&&start<stopAt){break}else{if(stopAt<0)stopAt=end-maxBufferLength;nodes.push(id,start,end);nodeCount++;cursor.next()}}if(nodeCount){let buffer=new Uint16Array(nodeCount*4);let start=nodes[nodes.length-2];for(let i=nodes.length-3,j=0;i>=0;i-=3){buffer[j++]=nodes[i];buffer[j++]=nodes[i+1]-start;buffer[j++]=nodes[i+2]-start;buffer[j++]=j}children.push(new TreeBuffer(buffer,nodes[2]-start,nodeSet));positions.push(start-parentStart)}}function makeBalanced(type,contextHash){return(children,positions,length)=>{let lookAhead=0,lastI=children.length-1,last,lookAheadProp;if(lastI>=0&&(last=children[lastI])instanceof Tree){if(!lastI&&last.type==type&&last.length==length)return last;if(lookAheadProp=last.prop(NodeProp.lookAhead))lookAhead=positions[lastI]+last.length+lookAheadProp}return makeTree(type,children,positions,length,lookAhead,contextHash)}}function makeRepeatLeaf(children,positions,base,i,from,to,type,lookAhead,contextHash){let localChildren=[],localPositions=[];while(children.length>i){localChildren.push(children.pop());localPositions.push(positions.pop()+base-from)}children.push(makeTree(nodeSet.types[type],localChildren,localPositions,to-from,lookAhead-to,contextHash));positions.push(from-base)}function makeTree(type,children,positions,length,lookAhead,contextHash,props){if(contextHash){let pair=[NodeProp.contextHash,contextHash];props=props?[pair].concat(props):[pair]}if(lookAhead>25){let pair=[NodeProp.lookAhead,lookAhead];props=props?[pair].concat(props):[pair]}return new Tree(type,children,positions,length,props)}function findBufferSize(maxSize,inRepeat){let fork=cursor.fork();let size=0,start=0,skip=0,minStart=fork.end-maxBufferLength;let result={size:0,start:0,skip:0};scan:for(let minPos=fork.pos-maxSize;fork.pos>minPos;){let nodeSize=fork.size;if(fork.id==inRepeat&&nodeSize>=0){result.size=size;result.start=start;result.skip=skip;skip+=4;size+=4;fork.next();continue}let startPos=fork.pos-nodeSize;if(nodeSize<0||startPos<minPos||fork.start<minStart)break;let localSkipped=fork.id>=minRepeatType?4:0;let nodeStart=fork.start;fork.next();while(fork.pos>startPos){if(fork.size<0){if(fork.size==-3||fork.size==-4)localSkipped+=4;else break scan}else if(fork.id>=minRepeatType){localSkipped+=4}fork.next()}start=nodeStart;size+=nodeSize;skip+=localSkipped}if(inRepeat<0||size==maxSize){result.size=size;result.start=start;result.skip=skip}return result.size>4?result:undefined}function copyToBuffer(bufferStart,buffer,index){let{id:id,start:start,end:end,size:size}=cursor;cursor.next();if(size>=0&&id<minRepeatType){let startIndex=index;if(size>4){let endPos=cursor.pos-(size-4);while(cursor.pos>endPos)index=copyToBuffer(bufferStart,buffer,index)}buffer[--index]=startIndex;buffer[--index]=end-bufferStart;buffer[--index]=start-bufferStart;buffer[--index]=id}else if(size==-3){contextHash=id}else if(size==-4){lookAhead=id}return index}let children=[],positions=[];while(cursor.pos>0)takeNode(data.start||0,data.bufferStart||0,children,positions,-1,0);let length=(_a=data.length)!==null&&_a!==void 0?_a:children.length?positions[0]+children[0].length:0;return new Tree(types[data.topID],children.reverse(),positions.reverse(),length)}const nodeSizeCache=new WeakMap;function nodeSize(balanceType,node){if(!balanceType.isAnonymous||node instanceof TreeBuffer||node.type!=balanceType)return 1;let size=nodeSizeCache.get(node);if(size==null){size=1;for(let child of node.children){if(child.type!=balanceType||!(child instanceof Tree)){size=1;break}size+=nodeSize(balanceType,child)}nodeSizeCache.set(node,size)}return size}function balanceRange(balanceType,children,positions,from,to,start,length,mkTop,mkTree){let total=0;for(let i=from;i<to;i++)total+=nodeSize(balanceType,children[i]);let maxChild=Math.ceil(total*1.5/8);let localChildren=[],localPositions=[];function divide(children,positions,from,to,offset){for(let i=from;i<to;){let groupFrom=i,groupStart=positions[i],groupSize=nodeSize(balanceType,children[i]);i++;for(;i<to;i++){let nextSize=nodeSize(balanceType,children[i]);if(groupSize+nextSize>=maxChild)break;groupSize+=nextSize}if(i==groupFrom+1){if(groupSize>maxChild){let only=children[groupFrom];divide(only.children,only.positions,0,only.children.length,positions[groupFrom]+offset);continue}localChildren.push(children[groupFrom])}else{let length=positions[i-1]+children[i-1].length-groupStart;localChildren.push(balanceRange(balanceType,children,positions,groupFrom,i,groupStart,length,null,mkTree))}localPositions.push(groupStart+offset-start)}}divide(children,positions,from,to,0);return(mkTop||mkTree)(localChildren,localPositions,length)}class TreeFragment{constructor(from,to,tree,offset,openStart=false,openEnd=false){this.from=from;this.to=to;this.tree=tree;this.offset=offset;this.open=(openStart?1:0)|(openEnd?2:0)}get openStart(){return(this.open&1)>0}get openEnd(){return(this.open&2)>0}static addTree(tree,fragments=[],partial=false){let result=[new TreeFragment(0,tree.length,tree,0,false,partial)];for(let f of fragments)if(f.to>tree.length)result.push(f);return result}static applyChanges(fragments,changes,minGap=128){if(!changes.length)return fragments;let result=[];let fI=1,nextF=fragments.length?fragments[0]:null;for(let cI=0,pos=0,off=0;;cI++){let nextC=cI<changes.length?changes[cI]:null;let nextPos=nextC?nextC.fromA:1e9;if(nextPos-pos>=minGap)while(nextF&&nextF.from<nextPos){let cut=nextF;if(pos>=cut.from||nextPos<=cut.to||off){let fFrom=Math.max(cut.from,pos)-off,fTo=Math.min(cut.to,nextPos)-off;cut=fFrom>=fTo?null:new TreeFragment(fFrom,fTo,cut.tree,cut.offset+off,cI>0,!!nextC)}if(cut)result.push(cut);if(nextF.to>nextPos)break;nextF=fI<fragments.length?fragments[fI++]:null}if(!nextC)break;pos=nextC.toA;off=nextC.toA-nextC.toB}return result}}class Parser{startParse(input,fragments,ranges){if(typeof input=="string")input=new StringInput(input);ranges=!ranges?[new Range$1(0,input.length)]:ranges.length?ranges.map(r=>new Range$1(r.from,r.to)):[new Range$1(0,0)];return this.createParse(input,fragments||[],ranges)}parse(input,fragments,ranges){let parse=this.startParse(input,fragments,ranges);for(;;){let done=parse.advance();if(done)return done}}}class StringInput{constructor(string){this.string=string}get length(){return this.string.length}chunk(from){return this.string.slice(from)}get lineChunks(){return false}read(from,to){return this.string.slice(from,to)}}new NodeProp({perNode:true});let nextTagID=0;class Tag{constructor(name,set,base,modified){this.name=name;this.set=set;this.base=base;this.modified=modified;this.id=nextTagID++}toString(){let{name:name}=this;for(let mod of this.modified)if(mod.name)name=`${mod.name}(${name})`;return name}static define(nameOrParent,parent){let name=typeof nameOrParent=="string"?nameOrParent:"?";if(nameOrParent instanceof Tag)parent=nameOrParent;if(parent===null||parent===void 0?void 0:parent.base)throw new Error("Can not derive from a modified tag");let tag=new Tag(name,[],null,[]);tag.set.push(tag);if(parent)for(let t of parent.set)tag.set.push(t);return tag}static defineModifier(name){let mod=new Modifier(name);return tag=>{if(tag.modified.indexOf(mod)>-1)return tag;return Modifier.get(tag.base||tag,tag.modified.concat(mod).sort((a,b)=>a.id-b.id))}}}let nextModifierID=0;class Modifier{constructor(name){this.name=name;this.instances=[];this.id=nextModifierID++}static get(base,mods){if(!mods.length)return base;let exists=mods[0].instances.find(t=>t.base==base&&sameArray$1(mods,t.modified));if(exists)return exists;let set=[],tag=new Tag(base.name,set,base,mods);for(let m of mods)m.instances.push(tag);let configs=powerSet(mods);for(let parent of base.set)if(!parent.modified.length)for(let config of configs)set.push(Modifier.get(parent,config));return tag}}function sameArray$1(a,b){return a.length==b.length&&a.every((x,i)=>x==b[i])}function powerSet(array){let sets=[[]];for(let i=0;i<array.length;i++){for(let j=0,e=sets.length;j<e;j++){sets.push(sets[j].concat(array[i]))}}return sets.sort((a,b)=>b.length-a.length)}function styleTags(spec){let byName=Object.create(null);for(let prop in spec){let tags=spec[prop];if(!Array.isArray(tags))tags=[tags];for(let part of prop.split(" "))if(part){let pieces=[],mode=2,rest=part;for(let pos=0;;){if(rest=="..."&&pos>0&&pos+3==part.length){mode=1;break}let m=/^"(?:[^"\\]|\\.)*?"|[^\/!]+/.exec(rest);if(!m)throw new RangeError("Invalid path: "+part);pieces.push(m[0]=="*"?"":m[0][0]=='"'?JSON.parse(m[0]):m[0]);pos+=m[0].length;if(pos==part.length)break;let next=part[pos++];if(pos==part.length&&next=="!"){mode=0;break}if(next!="/")throw new RangeError("Invalid path: "+part);rest=part.slice(pos)}let last=pieces.length-1,inner=pieces[last];if(!inner)throw new RangeError("Invalid path: "+part);let rule=new Rule(tags,mode,last>0?pieces.slice(0,last):null);byName[inner]=rule.sort(byName[inner])}}return ruleNodeProp.add(byName)}const ruleNodeProp=new NodeProp({combine(a,b){let cur,root,take;while(a||b){if(!a||b&&a.depth>=b.depth){take=b;b=b.next}else{take=a;a=a.next}if(cur&&cur.mode==take.mode&&!take.context&&!cur.context)continue;let copy=new Rule(take.tags,take.mode,take.context);if(cur)cur.next=copy;else root=copy;cur=copy}return root}});class Rule{constructor(tags,mode,context,next){this.tags=tags;this.mode=mode;this.context=context;this.next=next}get opaque(){return this.mode==0}get inherit(){return this.mode==1}sort(other){if(!other||other.depth<this.depth){this.next=other;return this}other.next=this.sort(other.next);return other}get depth(){return this.context?this.context.length:0}}Rule.empty=new Rule([],2,null);function tagHighlighter(tags,options){let map=Object.create(null);for(let style of tags){if(!Array.isArray(style.tag))map[style.tag.id]=style.class;else for(let tag of style.tag)map[tag.id]=style.class}let{scope:scope,all:all=null}=options||{};return{style:tags=>{let cls=all;for(let tag of tags){for(let sub of tag.set){let tagClass=map[sub.id];if(tagClass){cls=cls?cls+" "+tagClass:tagClass;break}}}return cls},scope:scope}}const t=Tag.define;const comment=t(),name=t(),typeName=t(name),propertyName=t(name),literal=t(),string=t(literal),number=t(literal),content=t(),heading=t(content),keyword=t(),operator=t(),punctuation=t(),bracket=t(punctuation),meta=t();const tags={comment:comment,lineComment:t(comment),blockComment:t(comment),docComment:t(comment),name:name,variableName:t(name),typeName:typeName,tagName:t(typeName),propertyName:propertyName,attributeName:t(propertyName),className:t(name),labelName:t(name),namespace:t(name),macroName:t(name),literal:literal,string:string,docString:t(string),character:t(string),attributeValue:t(string),number:number,integer:t(number),float:t(number),bool:t(literal),regexp:t(literal),escape:t(literal),color:t(literal),url:t(literal),keyword:keyword,self:t(keyword),null:t(keyword),atom:t(keyword),unit:t(keyword),modifier:t(keyword),operatorKeyword:t(keyword),controlKeyword:t(keyword),definitionKeyword:t(keyword),moduleKeyword:t(keyword),operator:operator,derefOperator:t(operator),arithmeticOperator:t(operator),logicOperator:t(operator),bitwiseOperator:t(operator),compareOperator:t(operator),updateOperator:t(operator),definitionOperator:t(operator),typeOperator:t(operator),controlOperator:t(operator),punctuation:punctuation,separator:t(punctuation),bracket:bracket,angleBracket:t(bracket),squareBracket:t(bracket),paren:t(bracket),brace:t(bracket),content:content,heading:heading,heading1:t(heading),heading2:t(heading),heading3:t(heading),heading4:t(heading),heading5:t(heading),heading6:t(heading),contentSeparator:t(content),list:t(content),quote:t(content),emphasis:t(content),strong:t(content),link:t(content),monospace:t(content),strikethrough:t(content),inserted:t(),deleted:t(),changed:t(),invalid:t(),meta:meta,documentMeta:t(meta),annotation:t(meta),processingInstruction:t(meta),definition:Tag.defineModifier("definition"),constant:Tag.defineModifier("constant"),function:Tag.defineModifier("function"),standard:Tag.defineModifier("standard"),local:Tag.defineModifier("local"),special:Tag.defineModifier("special")};for(let name in tags){let val=tags[name];if(val instanceof Tag)val.name=name}tagHighlighter([{tag:tags.link,class:"tok-link"},{tag:tags.heading,class:"tok-heading"},{tag:tags.emphasis,class:"tok-emphasis"},{tag:tags.strong,class:"tok-strong"},{tag:tags.keyword,class:"tok-keyword"},{tag:tags.atom,class:"tok-atom"},{tag:tags.bool,class:"tok-bool"},{tag:tags.url,class:"tok-url"},{tag:tags.labelName,class:"tok-labelName"},{tag:tags.inserted,class:"tok-inserted"},{tag:tags.deleted,class:"tok-deleted"},{tag:tags.literal,class:"tok-literal"},{tag:tags.string,class:"tok-string"},{tag:tags.number,class:"tok-number"},{tag:[tags.regexp,tags.escape,tags.special(tags.string)],class:"tok-string2"},{tag:tags.variableName,class:"tok-variableName"},{tag:tags.local(tags.variableName),class:"tok-variableName tok-local"},{tag:tags.definition(tags.variableName),class:"tok-variableName tok-definition"},{tag:tags.special(tags.variableName),class:"tok-variableName2"},{tag:tags.definition(tags.propertyName),class:"tok-propertyName tok-definition"},{tag:tags.typeName,class:"tok-typeName"},{tag:tags.namespace,class:"tok-namespace"},{tag:tags.className,class:"tok-className"},{tag:tags.macroName,class:"tok-macroName"},{tag:tags.propertyName,class:"tok-propertyName"},{tag:tags.operator,class:"tok-operator"},{tag:tags.comment,class:"tok-comment"},{tag:tags.meta,class:"tok-meta"},{tag:tags.invalid,class:"tok-invalid"},{tag:tags.punctuation,class:"tok-punctuation"}]);let rangeFrom=[],rangeTo=[];(()=>{let numbers="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(s=>s?parseInt(s,36):1);for(let i=0,n=0;i<numbers.length;i++)(i%2?rangeTo:rangeFrom).push(n=n+numbers[i])})();function isExtendingChar(code){if(code<768)return false;for(let from=0,to=rangeFrom.length;;){let mid=from+to>>1;if(code<rangeFrom[mid])to=mid;else if(code>=rangeTo[mid])from=mid+1;else return true;if(from==to)return false}}function isRegionalIndicator(code){return code>=127462&&code<=127487}const ZWJ=8205;function findClusterBreak$1(str,pos,forward=true,includeExtending=true){return(forward?nextClusterBreak:prevClusterBreak)(str,pos,includeExtending)}function nextClusterBreak(str,pos,includeExtending){if(pos==str.length)return pos;if(pos&&surrogateLow(str.charCodeAt(pos))&&surrogateHigh(str.charCodeAt(pos-1)))pos--;let prev=codePointAt(str,pos);pos+=codePointSize(prev);while(pos<str.length){let next=codePointAt(str,pos);if(prev==ZWJ||next==ZWJ||includeExtending&&isExtendingChar(next)){pos+=codePointSize(next);prev=next}else if(isRegionalIndicator(next)){let countBefore=0,i=pos-2;while(i>=0&&isRegionalIndicator(codePointAt(str,i))){countBefore++;i-=2}if(countBefore%2==0)break;else pos+=2}else{break}}return pos}function prevClusterBreak(str,pos,includeExtending){while(pos>0){let found=nextClusterBreak(str,pos-2,includeExtending);if(found<pos)return found;pos--}return 0}function codePointAt(str,pos){let code0=str.charCodeAt(pos);if(!surrogateHigh(code0)||pos+1==str.length)return code0;let code1=str.charCodeAt(pos+1);if(!surrogateLow(code1))return code0;return(code0-55296<<10)+(code1-56320)+65536}function surrogateLow(ch){return ch>=56320&&ch<57344}function surrogateHigh(ch){return ch>=55296&&ch<56320}function codePointSize(code){return code<65536?1:2}class Text{lineAt(pos){if(pos<0||pos>this.length)throw new RangeError(`Invalid position ${pos} in document of length ${this.length}`);return this.lineInner(pos,false,1,0)}line(n){if(n<1||n>this.lines)throw new RangeError(`Invalid line number ${n} in ${this.lines}-line document`);return this.lineInner(n,true,1,0)}replace(from,to,text){[from,to]=clip(this,from,to);let parts=[];this.decompose(0,from,parts,2);if(text.length)text.decompose(0,text.length,parts,1|2);this.decompose(to,this.length,parts,1);return TextNode.from(parts,this.length-(to-from)+text.length)}append(other){return this.replace(this.length,this.length,other)}slice(from,to=this.length){[from,to]=clip(this,from,to);let parts=[];this.decompose(from,to,parts,0);return TextNode.from(parts,to-from)}eq(other){if(other==this)return true;if(other.length!=this.length||other.lines!=this.lines)return false;let start=this.scanIdentical(other,1),end=this.length-this.scanIdentical(other,-1);let a=new RawTextCursor(this),b=new RawTextCursor(other);for(let skip=start,pos=start;;){a.next(skip);b.next(skip);skip=0;if(a.lineBreak!=b.lineBreak||a.done!=b.done||a.value!=b.value)return false;pos+=a.value.length;if(a.done||pos>=end)return true}}iter(dir=1){return new RawTextCursor(this,dir)}iterRange(from,to=this.length){return new PartialTextCursor(this,from,to)}iterLines(from,to){let inner;if(from==null){inner=this.iter()}else{if(to==null)to=this.lines+1;let start=this.line(from).from;inner=this.iterRange(start,Math.max(start,to==this.lines+1?this.length:to<=1?0:this.line(to-1).to))}return new LineCursor(inner)}toString(){return this.sliceString(0)}toJSON(){let lines=[];this.flatten(lines);return lines}constructor(){}static of(text){if(text.length==0)throw new RangeError("A document must have at least one line");if(text.length==1&&!text[0])return Text.empty;return text.length<=32?new TextLeaf(text):TextNode.from(TextLeaf.split(text,[]))}}class TextLeaf extends Text{constructor(text,length=textLength(text)){super();this.text=text;this.length=length}get lines(){return this.text.length}get children(){return null}lineInner(target,isLine,line,offset){for(let i=0;;i++){let string=this.text[i],end=offset+string.length;if((isLine?line:end)>=target)return new Line(offset,end,line,string);offset=end+1;line++}}decompose(from,to,target,open){let text=from<=0&&to>=this.length?this:new TextLeaf(sliceText(this.text,from,to),Math.min(to,this.length)-Math.max(0,from));if(open&1){let prev=target.pop();let joined=appendText(text.text,prev.text.slice(),0,text.length);if(joined.length<=32){target.push(new TextLeaf(joined,prev.length+text.length))}else{let mid=joined.length>>1;target.push(new TextLeaf(joined.slice(0,mid)),new TextLeaf(joined.slice(mid)))}}else{target.push(text)}}replace(from,to,text){if(!(text instanceof TextLeaf))return super.replace(from,to,text);[from,to]=clip(this,from,to);let lines=appendText(this.text,appendText(text.text,sliceText(this.text,0,from)),to);let newLen=this.length+text.length-(to-from);if(lines.length<=32)return new TextLeaf(lines,newLen);return TextNode.from(TextLeaf.split(lines,[]),newLen)}sliceString(from,to=this.length,lineSep="\n"){[from,to]=clip(this,from,to);let result="";for(let pos=0,i=0;pos<=to&&i<this.text.length;i++){let line=this.text[i],end=pos+line.length;if(pos>from&&i)result+=lineSep;if(from<end&&to>pos)result+=line.slice(Math.max(0,from-pos),to-pos);pos=end+1}return result}flatten(target){for(let line of this.text)target.push(line)}scanIdentical(){return 0}static split(text,target){let part=[],len=-1;for(let line of text){part.push(line);len+=line.length+1;if(part.length==32){target.push(new TextLeaf(part,len));part=[];len=-1}}if(len>-1)target.push(new TextLeaf(part,len));return target}}class TextNode extends Text{constructor(children,length){super();this.children=children;this.length=length;this.lines=0;for(let child of children)this.lines+=child.lines}lineInner(target,isLine,line,offset){for(let i=0;;i++){let child=this.children[i],end=offset+child.length,endLine=line+child.lines-1;if((isLine?endLine:end)>=target)return child.lineInner(target,isLine,line,offset);offset=end+1;line=endLine+1}}decompose(from,to,target,open){for(let i=0,pos=0;pos<=to&&i<this.children.length;i++){let child=this.children[i],end=pos+child.length;if(from<=end&&to>=pos){let childOpen=open&((pos<=from?1:0)|(end>=to?2:0));if(pos>=from&&end<=to&&!childOpen)target.push(child);else child.decompose(from-pos,to-pos,target,childOpen)}pos=end+1}}replace(from,to,text){[from,to]=clip(this,from,to);if(text.lines<this.lines)for(let i=0,pos=0;i<this.children.length;i++){let child=this.children[i],end=pos+child.length;if(from>=pos&&to<=end){let updated=child.replace(from-pos,to-pos,text);let totalLines=this.lines-child.lines+updated.lines;if(updated.lines<totalLines>>5-1&&updated.lines>totalLines>>5+1){let copy=this.children.slice();copy[i]=updated;return new TextNode(copy,this.length-(to-from)+text.length)}return super.replace(pos,end,updated)}pos=end+1}return super.replace(from,to,text)}sliceString(from,to=this.length,lineSep="\n"){[from,to]=clip(this,from,to);let result="";for(let i=0,pos=0;i<this.children.length&&pos<=to;i++){let child=this.children[i],end=pos+child.length;if(pos>from&&i)result+=lineSep;if(from<end&&to>pos)result+=child.sliceString(from-pos,to-pos,lineSep);pos=end+1}return result}flatten(target){for(let child of this.children)child.flatten(target)}scanIdentical(other,dir){if(!(other instanceof TextNode))return 0;let length=0;let[iA,iB,eA,eB]=dir>0?[0,0,this.children.length,other.children.length]:[this.children.length-1,other.children.length-1,-1,-1];for(;;iA+=dir,iB+=dir){if(iA==eA||iB==eB)return length;let chA=this.children[iA],chB=other.children[iB];if(chA!=chB)return length+chA.scanIdentical(chB,dir);length+=chA.length+1}}static from(children,length=children.reduce((l,ch)=>l+ch.length+1,-1)){let lines=0;for(let ch of children)lines+=ch.lines;if(lines<32){let flat=[];for(let ch of children)ch.flatten(flat);return new TextLeaf(flat,length)}let chunk=Math.max(32,lines>>5),maxChunk=chunk<<1,minChunk=chunk>>1;let chunked=[],currentLines=0,currentLen=-1,currentChunk=[];function add(child){let last;if(child.lines>maxChunk&&child instanceof TextNode){for(let node of child.children)add(node)}else if(child.lines>minChunk&&(currentLines>minChunk||!currentLines)){flush();chunked.push(child)}else if(child instanceof TextLeaf&&currentLines&&(last=currentChunk[currentChunk.length-1])instanceof TextLeaf&&child.lines+last.lines<=32){currentLines+=child.lines;currentLen+=child.length+1;currentChunk[currentChunk.length-1]=new TextLeaf(last.text.concat(child.text),last.length+1+child.length)}else{if(currentLines+child.lines>chunk)flush();currentLines+=child.lines;currentLen+=child.length+1;currentChunk.push(child)}}function flush(){if(currentLines==0)return;chunked.push(currentChunk.length==1?currentChunk[0]:TextNode.from(currentChunk,currentLen));currentLen=-1;currentLines=currentChunk.length=0}for(let child of children)add(child);flush();return chunked.length==1?chunked[0]:new TextNode(chunked,length)}}Text.empty=new TextLeaf([""],0);function textLength(text){let length=-1;for(let line of text)length+=line.length+1;return length}function appendText(text,target,from=0,to=1e9){for(let pos=0,i=0,first=true;i<text.length&&pos<=to;i++){let line=text[i],end=pos+line.length;if(end>=from){if(end>to)line=line.slice(0,to-pos);if(pos<from)line=line.slice(from-pos);if(first){target[target.length-1]+=line;first=false}else target.push(line)}pos=end+1}return target}function sliceText(text,from,to){return appendText(text,[""],from,to)}class RawTextCursor{constructor(text,dir=1){this.dir=dir;this.done=false;this.lineBreak=false;this.value="";this.nodes=[text];this.offsets=[dir>0?1:(text instanceof TextLeaf?text.text.length:text.children.length)<<1]}nextInner(skip,dir){this.done=this.lineBreak=false;for(;;){let last=this.nodes.length-1;let top=this.nodes[last],offsetValue=this.offsets[last],offset=offsetValue>>1;let size=top instanceof TextLeaf?top.text.length:top.children.length;if(offset==(dir>0?size:0)){if(last==0){this.done=true;this.value="";return this}if(dir>0)this.offsets[last-1]++;this.nodes.pop();this.offsets.pop()}else if((offsetValue&1)==(dir>0?0:1)){this.offsets[last]+=dir;if(skip==0){this.lineBreak=true;this.value="\n";return this}skip--}else if(top instanceof TextLeaf){let next=top.text[offset+(dir<0?-1:0)];this.offsets[last]+=dir;if(next.length>Math.max(0,skip)){this.value=skip==0?next:dir>0?next.slice(skip):next.slice(0,next.length-skip);return this}skip-=next.length}else{let next=top.children[offset+(dir<0?-1:0)];if(skip>next.length){skip-=next.length;this.offsets[last]+=dir}else{if(dir<0)this.offsets[last]--;this.nodes.push(next);this.offsets.push(dir>0?1:(next instanceof TextLeaf?next.text.length:next.children.length)<<1)}}}}next(skip=0){if(skip<0){this.nextInner(-skip,-this.dir);skip=this.value.length}return this.nextInner(skip,this.dir)}}class PartialTextCursor{constructor(text,start,end){this.value="";this.done=false;this.cursor=new RawTextCursor(text,start>end?-1:1);this.pos=start>end?text.length:0;this.from=Math.min(start,end);this.to=Math.max(start,end)}nextInner(skip,dir){if(dir<0?this.pos<=this.from:this.pos>=this.to){this.value="";this.done=true;return this}skip+=Math.max(0,dir<0?this.pos-this.to:this.from-this.pos);let limit=dir<0?this.pos-this.from:this.to-this.pos;if(skip>limit)skip=limit;limit-=skip;let{value:value}=this.cursor.next(skip);this.pos+=(value.length+skip)*dir;this.value=value.length<=limit?value:dir<0?value.slice(value.length-limit):value.slice(0,limit);this.done=!this.value;return this}next(skip=0){if(skip<0)skip=Math.max(skip,this.from-this.pos);else if(skip>0)skip=Math.min(skip,this.to-this.pos);return this.nextInner(skip,this.cursor.dir)}get lineBreak(){return this.cursor.lineBreak&&this.value!=""}}class LineCursor{constructor(inner){this.inner=inner;this.afterBreak=true;this.value="";this.done=false}next(skip=0){let{done:done,lineBreak:lineBreak,value:value}=this.inner.next(skip);if(done&&this.afterBreak){this.value="";this.afterBreak=false}else if(done){this.done=true;this.value=""}else if(lineBreak){if(this.afterBreak){this.value=""}else{this.afterBreak=true;this.next()}}else{this.value=value;this.afterBreak=false}return this}get lineBreak(){return false}}if(typeof Symbol!="undefined"){Text.prototype[Symbol.iterator]=function(){return this.iter()};RawTextCursor.prototype[Symbol.iterator]=PartialTextCursor.prototype[Symbol.iterator]=LineCursor.prototype[Symbol.iterator]=function(){return this}}class Line{constructor(from,to,number,text){this.from=from;this.to=to;this.number=number;this.text=text}get length(){return this.to-this.from}}function clip(text,from,to){from=Math.max(0,Math.min(text.length,from));return[from,Math.max(from,Math.min(text.length,to))]}function findClusterBreak(str,pos,forward=true,includeExtending=true){return findClusterBreak$1(str,pos,forward,includeExtending)}const DefaultSplit=/\r\n?|\n/;var MapMode=function(MapMode){MapMode[MapMode["Simple"]=0]="Simple";MapMode[MapMode["TrackDel"]=1]="TrackDel";MapMode[MapMode["TrackBefore"]=2]="TrackBefore";MapMode[MapMode["TrackAfter"]=3]="TrackAfter";return MapMode}(MapMode||(MapMode={}));class ChangeDesc{constructor(sections){this.sections=sections}get length(){let result=0;for(let i=0;i<this.sections.length;i+=2)result+=this.sections[i];return result}get newLength(){let result=0;for(let i=0;i<this.sections.length;i+=2){let ins=this.sections[i+1];result+=ins<0?this.sections[i]:ins}return result}get empty(){return this.sections.length==0||this.sections.length==2&&this.sections[1]<0}iterGaps(f){for(let i=0,posA=0,posB=0;i<this.sections.length;){let len=this.sections[i++],ins=this.sections[i++];if(ins<0){f(posA,posB,len);posB+=len}else{posB+=ins}posA+=len}}iterChangedRanges(f,individual=false){iterChanges(this,f,individual)}get invertedDesc(){let sections=[];for(let i=0;i<this.sections.length;){let len=this.sections[i++],ins=this.sections[i++];if(ins<0)sections.push(len,ins);else sections.push(ins,len)}return new ChangeDesc(sections)}composeDesc(other){return this.empty?other:other.empty?this:composeSets(this,other)}mapDesc(other,before=false){return other.empty?this:mapSet(this,other,before)}mapPos(pos,assoc=-1,mode=MapMode.Simple){let posA=0,posB=0;for(let i=0;i<this.sections.length;){let len=this.sections[i++],ins=this.sections[i++],endA=posA+len;if(ins<0){if(endA>pos)return posB+(pos-posA);posB+=len}else{if(mode!=MapMode.Simple&&endA>=pos&&(mode==MapMode.TrackDel&&posA<pos&&endA>pos||mode==MapMode.TrackBefore&&posA<pos||mode==MapMode.TrackAfter&&endA>pos))return null;if(endA>pos||endA==pos&&assoc<0&&!len)return pos==posA||assoc<0?posB:posB+ins;posB+=ins}posA=endA}if(pos>posA)throw new RangeError(`Position ${pos} is out of range for changeset of length ${posA}`);return posB}touchesRange(from,to=from){for(let i=0,pos=0;i<this.sections.length&&pos<=to;){let len=this.sections[i++],ins=this.sections[i++],end=pos+len;if(ins>=0&&pos<=to&&end>=from)return pos<from&&end>to?"cover":true;pos=end}return false}toString(){let result="";for(let i=0;i<this.sections.length;){let len=this.sections[i++],ins=this.sections[i++];result+=(result?" ":"")+len+(ins>=0?":"+ins:"")}return result}toJSON(){return this.sections}static fromJSON(json){if(!Array.isArray(json)||json.length%2||json.some(a=>typeof a!="number"))throw new RangeError("Invalid JSON representation of ChangeDesc");return new ChangeDesc(json)}static create(sections){return new ChangeDesc(sections)}}class ChangeSet extends ChangeDesc{constructor(sections,inserted){super(sections);this.inserted=inserted}apply(doc){if(this.length!=doc.length)throw new RangeError("Applying change set to a document with the wrong length");iterChanges(this,(fromA,toA,fromB,_toB,text)=>doc=doc.replace(fromB,fromB+(toA-fromA),text),false);return doc}mapDesc(other,before=false){return mapSet(this,other,before,true)}invert(doc){let sections=this.sections.slice(),inserted=[];for(let i=0,pos=0;i<sections.length;i+=2){let len=sections[i],ins=sections[i+1];if(ins>=0){sections[i]=ins;sections[i+1]=len;let index=i>>1;while(inserted.length<index)inserted.push(Text.empty);inserted.push(len?doc.slice(pos,pos+len):Text.empty)}pos+=len}return new ChangeSet(sections,inserted)}compose(other){return this.empty?other:other.empty?this:composeSets(this,other,true)}map(other,before=false){return other.empty?this:mapSet(this,other,before,true)}iterChanges(f,individual=false){iterChanges(this,f,individual)}get desc(){return ChangeDesc.create(this.sections)}filter(ranges){let resultSections=[],resultInserted=[],filteredSections=[];let iter=new SectionIter(this);done:for(let i=0,pos=0;;){let next=i==ranges.length?1e9:ranges[i++];while(pos<next||pos==next&&iter.len==0){if(iter.done)break done;let len=Math.min(iter.len,next-pos);addSection(filteredSections,len,-1);let ins=iter.ins==-1?-1:iter.off==0?iter.ins:0;addSection(resultSections,len,ins);if(ins>0)addInsert(resultInserted,resultSections,iter.text);iter.forward(len);pos+=len}let end=ranges[i++];while(pos<end){if(iter.done)break done;let len=Math.min(iter.len,end-pos);addSection(resultSections,len,-1);addSection(filteredSections,len,iter.ins==-1?-1:iter.off==0?iter.ins:0);iter.forward(len);pos+=len}}return{changes:new ChangeSet(resultSections,resultInserted),filtered:ChangeDesc.create(filteredSections)}}toJSON(){let parts=[];for(let i=0;i<this.sections.length;i+=2){let len=this.sections[i],ins=this.sections[i+1];if(ins<0)parts.push(len);else if(ins==0)parts.push([len]);else parts.push([len].concat(this.inserted[i>>1].toJSON()))}return parts}static of(changes,length,lineSep){let sections=[],inserted=[],pos=0;let total=null;function flush(force=false){if(!force&&!sections.length)return;if(pos<length)addSection(sections,length-pos,-1);let set=new ChangeSet(sections,inserted);total=total?total.compose(set.map(total)):set;sections=[];inserted=[];pos=0}function process(spec){if(Array.isArray(spec)){for(let sub of spec)process(sub)}else if(spec instanceof ChangeSet){if(spec.length!=length)throw new RangeError(`Mismatched change set length (got ${spec.length}, expected ${length})`);flush();total=total?total.compose(spec.map(total)):spec}else{let{from:from,to:to=from,insert:insert}=spec;if(from>to||from<0||to>length)throw new RangeError(`Invalid change range ${from} to ${to} (in doc of length ${length})`);let insText=!insert?Text.empty:typeof insert=="string"?Text.of(insert.split(lineSep||DefaultSplit)):insert;let insLen=insText.length;if(from==to&&insLen==0)return;if(from<pos)flush();if(from>pos)addSection(sections,from-pos,-1);addSection(sections,to-from,insLen);addInsert(inserted,sections,insText);pos=to}}process(changes);flush(!total);return total}static empty(length){return new ChangeSet(length?[length,-1]:[],[])}static fromJSON(json){if(!Array.isArray(json))throw new RangeError("Invalid JSON representation of ChangeSet");let sections=[],inserted=[];for(let i=0;i<json.length;i++){let part=json[i];if(typeof part=="number"){sections.push(part,-1)}else if(!Array.isArray(part)||typeof part[0]!="number"||part.some((e,i)=>i&&typeof e!="string")){throw new RangeError("Invalid JSON representation of ChangeSet")}else if(part.length==1){sections.push(part[0],0)}else{while(inserted.length<i)inserted.push(Text.empty);inserted[i]=Text.of(part.slice(1));sections.push(part[0],inserted[i].length)}}return new ChangeSet(sections,inserted)}static createSet(sections,inserted){return new ChangeSet(sections,inserted)}}function addSection(sections,len,ins,forceJoin=false){if(len==0&&ins<=0)return;let last=sections.length-2;if(last>=0&&ins<=0&&ins==sections[last+1])sections[last]+=len;else if(last>=0&&len==0&&sections[last]==0)sections[last+1]+=ins;else if(forceJoin){sections[last]+=len;sections[last+1]+=ins}else sections.push(len,ins)}function addInsert(values,sections,value){if(value.length==0)return;let index=sections.length-2>>1;if(index<values.length){values[values.length-1]=values[values.length-1].append(value)}else{while(values.length<index)values.push(Text.empty);values.push(value)}}function iterChanges(desc,f,individual){let inserted=desc.inserted;for(let posA=0,posB=0,i=0;i<desc.sections.length;){let len=desc.sections[i++],ins=desc.sections[i++];if(ins<0){posA+=len;posB+=len}else{let endA=posA,endB=posB,text=Text.empty;for(;;){endA+=len;endB+=ins;if(ins&&inserted)text=text.append(inserted[i-2>>1]);if(individual||i==desc.sections.length||desc.sections[i+1]<0)break;len=desc.sections[i++];ins=desc.sections[i++]}f(posA,endA,posB,endB,text);posA=endA;posB=endB}}}function mapSet(setA,setB,before,mkSet=false){let sections=[],insert=mkSet?[]:null;let a=new SectionIter(setA),b=new SectionIter(setB);for(let inserted=-1;;){if(a.done&&b.len||b.done&&a.len){throw new Error("Mismatched change set lengths")}else if(a.ins==-1&&b.ins==-1){let len=Math.min(a.len,b.len);addSection(sections,len,-1);a.forward(len);b.forward(len)}else if(b.ins>=0&&(a.ins<0||inserted==a.i||a.off==0&&(b.len<a.len||b.len==a.len&&!before))){let len=b.len;addSection(sections,b.ins,-1);while(len){let piece=Math.min(a.len,len);if(a.ins>=0&&inserted<a.i&&a.len<=piece){addSection(sections,0,a.ins);if(insert)addInsert(insert,sections,a.text);inserted=a.i}a.forward(piece);len-=piece}b.next()}else if(a.ins>=0){let len=0,left=a.len;while(left){if(b.ins==-1){let piece=Math.min(left,b.len);len+=piece;left-=piece;b.forward(piece)}else if(b.ins==0&&b.len<left){left-=b.len;b.next()}else{break}}addSection(sections,len,inserted<a.i?a.ins:0);if(insert&&inserted<a.i)addInsert(insert,sections,a.text);inserted=a.i;a.forward(a.len-left)}else if(a.done&&b.done){return insert?ChangeSet.createSet(sections,insert):ChangeDesc.create(sections)}else{throw new Error("Mismatched change set lengths")}}}function composeSets(setA,setB,mkSet=false){let sections=[];let insert=mkSet?[]:null;let a=new SectionIter(setA),b=new SectionIter(setB);for(let open=false;;){if(a.done&&b.done){return insert?ChangeSet.createSet(sections,insert):ChangeDesc.create(sections)}else if(a.ins==0){addSection(sections,a.len,0,open);a.next()}else if(b.len==0&&!b.done){addSection(sections,0,b.ins,open);if(insert)addInsert(insert,sections,b.text);b.next()}else if(a.done||b.done){throw new Error("Mismatched change set lengths")}else{let len=Math.min(a.len2,b.len),sectionLen=sections.length;if(a.ins==-1){let insB=b.ins==-1?-1:b.off?0:b.ins;addSection(sections,len,insB,open);if(insert&&insB)addInsert(insert,sections,b.text)}else if(b.ins==-1){addSection(sections,a.off?0:a.len,len,open);if(insert)addInsert(insert,sections,a.textBit(len))}else{addSection(sections,a.off?0:a.len,b.off?0:b.ins,open);if(insert&&!b.off)addInsert(insert,sections,b.text)}open=(a.ins>len||b.ins>=0&&b.len>len)&&(open||sections.length>sectionLen);a.forward2(len);b.forward(len)}}}class SectionIter{constructor(set){this.set=set;this.i=0;this.next()}next(){let{sections:sections}=this.set;if(this.i<sections.length){this.len=sections[this.i++];this.ins=sections[this.i++]}else{this.len=0;this.ins=-2}this.off=0}get done(){return this.ins==-2}get len2(){return this.ins<0?this.len:this.ins}get text(){let{inserted:inserted}=this.set,index=this.i-2>>1;return index>=inserted.length?Text.empty:inserted[index]}textBit(len){let{inserted:inserted}=this.set,index=this.i-2>>1;return index>=inserted.length&&!len?Text.empty:inserted[index].slice(this.off,len==null?undefined:this.off+len)}forward(len){if(len==this.len)this.next();else{this.len-=len;this.off+=len}}forward2(len){if(this.ins==-1)this.forward(len);else if(len==this.ins)this.next();else{this.ins-=len;this.off+=len}}}class SelectionRange{constructor(from,to,flags,goalColumn){this.from=from;this.to=to;this.flags=flags;this.goalColumn=goalColumn}get anchor(){return this.flags&32?this.to:this.from}get head(){return this.flags&32?this.from:this.to}get empty(){return this.from==this.to}get assoc(){return this.flags&8?-1:this.flags&16?1:0}get undirectional(){return(this.flags&64)>0}get bidiLevel(){let level=this.flags&7;return level==7?null:level}map(change,assoc=-1){let from,to;if(this.empty){from=to=change.mapPos(this.from,assoc)}else{from=change.mapPos(this.from,1);to=change.mapPos(this.to,-1)}return from==this.from&&to==this.to?this:new SelectionRange(from,to,this.flags,this.goalColumn)}extend(from,to=from,assoc=0){if(from<=this.anchor&&to>=this.anchor)return EditorSelection.range(from,to,undefined,undefined,assoc);let head=Math.abs(from-this.anchor)>Math.abs(to-this.anchor)?from:to;return EditorSelection.range(this.anchor,head,undefined,undefined,assoc)}eq(other,includeAssoc=false){return this.anchor==other.anchor&&this.head==other.head&&this.goalColumn==other.goalColumn&&(!includeAssoc||!this.empty||this.assoc==other.assoc)}toJSON(){return{anchor:this.anchor,head:this.head}}static fromJSON(json){if(!json||typeof json.anchor!="number"||typeof json.head!="number")throw new RangeError("Invalid JSON representation for SelectionRange");return EditorSelection.range(json.anchor,json.head)}static create(from,to,flags,goalColumn){return new SelectionRange(from,to,flags,goalColumn)}}class EditorSelection{constructor(ranges,mainIndex){this.ranges=ranges;this.mainIndex=mainIndex}map(change,assoc=-1){if(change.empty)return this;return EditorSelection.create(this.ranges.map(r=>r.map(change,assoc)),this.mainIndex)}eq(other,includeAssoc=false){if(this.ranges.length!=other.ranges.length||this.mainIndex!=other.mainIndex)return false;for(let i=0;i<this.ranges.length;i++)if(!this.ranges[i].eq(other.ranges[i],includeAssoc))return false;return true}get main(){return this.ranges[this.mainIndex]}asSingle(){return this.ranges.length==1?this:new EditorSelection([this.main],0)}addRange(range,main=true){return EditorSelection.create([range].concat(this.ranges),main?0:this.mainIndex+1)}replaceRange(range,which=this.mainIndex){let ranges=this.ranges.slice();ranges[which]=range;return EditorSelection.create(ranges,this.mainIndex)}toJSON(){return{ranges:this.ranges.map(r=>r.toJSON()),main:this.mainIndex}}static fromJSON(json){if(!json||!Array.isArray(json.ranges)||typeof json.main!="number"||json.main>=json.ranges.length)throw new RangeError("Invalid JSON representation for EditorSelection");return new EditorSelection(json.ranges.map(r=>SelectionRange.fromJSON(r)),json.main)}static single(anchor,head=anchor){return new EditorSelection([EditorSelection.range(anchor,head)],0)}static create(ranges,mainIndex=0){if(ranges.length==0)throw new RangeError("A selection needs at least one range");for(let pos=0,i=0;i<ranges.length;i++){let range=ranges[i];if(range.empty?range.from<=pos:range.from<pos)return EditorSelection.normalized(ranges.slice(),mainIndex);pos=range.to}return new EditorSelection(ranges,mainIndex)}static cursor(pos,assoc=0,bidiLevel,goalColumn){return SelectionRange.create(pos,pos,(assoc==0?0:assoc<0?8:16)|(bidiLevel==null?7:Math.min(6,bidiLevel)),goalColumn)}static range(anchor,head,goalColumn,bidiLevel,assoc){let flags=bidiLevel==null?7:Math.min(6,bidiLevel);if(!assoc&&anchor!=head)assoc=head<anchor?1:-1;if(assoc)flags|=assoc<0?8:16;return head<anchor?SelectionRange.create(head,anchor,flags|32,goalColumn):SelectionRange.create(anchor,head,flags,goalColumn)}static undirectionalRange(from,to){return SelectionRange.create(from,to,64,undefined)}static normalized(ranges,mainIndex=0){let main=ranges[mainIndex];ranges.sort((a,b)=>a.from-b.from);mainIndex=ranges.indexOf(main);for(let i=1;i<ranges.length;i++){let range=ranges[i],prev=ranges[i-1];if(range.empty?range.from<=prev.to:range.from<prev.to){let from=prev.from,to=Math.max(range.to,prev.to);if(i<=mainIndex)mainIndex--;ranges.splice(--i,2,range.anchor>range.head?EditorSelection.range(to,from):EditorSelection.range(from,to))}}return new EditorSelection(ranges,mainIndex)}}function checkSelection(selection,docLength){for(let range of selection.ranges)if(range.to>docLength)throw new RangeError("Selection points outside of document")}let nextID=0;class Facet{constructor(combine,compareInput,compare,isStatic,enables){this.combine=combine;this.compareInput=compareInput;this.compare=compare;this.isStatic=isStatic;this.id=nextID++;this.default=combine([]);this.extensions=typeof enables=="function"?enables(this):enables}get reader(){return this}static define(config={}){return new Facet(config.combine||(a=>a),config.compareInput||((a,b)=>a===b),config.compare||(!config.combine?sameArray:(a,b)=>a===b),!!config.static,config.enables)}of(value){return new FacetProvider([],this,0,value)}compute(deps,get){if(this.isStatic)throw new Error("Can't compute a static facet");return new FacetProvider(deps,this,1,get)}computeN(deps,get){if(this.isStatic)throw new Error("Can't compute a static facet");return new FacetProvider(deps,this,2,get)}from(field,get){if(!get)get=x=>x;return this.compute([field],state=>get(state.field(field)))}}function sameArray(a,b){return a==b||a.length==b.length&&a.every((e,i)=>e===b[i])}class FacetProvider{constructor(dependencies,facet,type,value){this.dependencies=dependencies;this.facet=facet;this.type=type;this.value=value;this.id=nextID++}dynamicSlot(addresses){var _a;let getter=this.value;let compare=this.facet.compareInput;let id=this.id,idx=addresses[id]>>1,multi=this.type==2;let depDoc=false,depSel=false,depAddrs=[];for(let dep of this.dependencies){if(dep=="doc")depDoc=true;else if(dep=="selection")depSel=true;else if((((_a=addresses[dep.id])!==null&&_a!==void 0?_a:1)&1)==0)depAddrs.push(addresses[dep.id])}return{create(state){state.values[idx]=getter(state);return 1},update(state,tr){if(depDoc&&tr.docChanged||depSel&&(tr.docChanged||tr.selection)||ensureAll(state,depAddrs)){let newVal=getter(state);if(multi?!compareArray(newVal,state.values[idx],compare):!compare(newVal,state.values[idx])){state.values[idx]=newVal;return 1}}return 0},reconfigure:(state,oldState)=>{let newVal,oldAddr=oldState.config.address[id];if(oldAddr!=null){let oldVal=getAddr(oldState,oldAddr);if(this.dependencies.every(dep=>dep instanceof Facet?oldState.facet(dep)===state.facet(dep):dep instanceof StateField?oldState.field(dep,false)==state.field(dep,false):true)||(multi?compareArray(newVal=getter(state),oldVal,compare):compare(newVal=getter(state),oldVal))){state.values[idx]=oldVal;return 0}}else{newVal=getter(state)}state.values[idx]=newVal;return 1}}}}function compareArray(a,b,compare){if(a.length!=b.length)return false;for(let i=0;i<a.length;i++)if(!compare(a[i],b[i]))return false;return true}function ensureAll(state,addrs){let changed=false;for(let addr of addrs)if(ensureAddr(state,addr)&1)changed=true;return changed}function dynamicFacetSlot(addresses,facet,providers){let providerAddrs=providers.map(p=>addresses[p.id]);let providerTypes=providers.map(p=>p.type);let dynamic=providerAddrs.filter(p=>!(p&1));let idx=addresses[facet.id]>>1;function get(state){let values=[];for(let i=0;i<providerAddrs.length;i++){let value=getAddr(state,providerAddrs[i]);if(providerTypes[i]==2)for(let val of value)values.push(val);else values.push(value)}return facet.combine(values)}return{create(state){for(let addr of providerAddrs)ensureAddr(state,addr);state.values[idx]=get(state);return 1},update(state,tr){if(!ensureAll(state,dynamic))return 0;let value=get(state);if(facet.compare(value,state.values[idx]))return 0;state.values[idx]=value;return 1},reconfigure(state,oldState){let depChanged=ensureAll(state,providerAddrs);let oldProviders=oldState.config.facets[facet.id],oldValue=oldState.facet(facet);if(oldProviders&&!depChanged&&sameArray(providers,oldProviders)){state.values[idx]=oldValue;return 0}let value=get(state);if(facet.compare(value,oldValue)){state.values[idx]=oldValue;return 0}state.values[idx]=value;return 1}}}const initField=Facet.define({static:true});class StateField{constructor(id,createF,updateF,compareF,spec){this.id=id;this.createF=createF;this.updateF=updateF;this.compareF=compareF;this.spec=spec;this.provides=undefined}static define(config){let field=new StateField(nextID++,config.create,config.update,config.compare||((a,b)=>a===b),config);if(config.provide)field.provides=config.provide(field);return field}create(state){let init=state.facet(initField).find(i=>i.field==this);return((init===null||init===void 0?void 0:init.create)||this.createF)(state)}slot(addresses){let idx=addresses[this.id]>>1;return{create:state=>{state.values[idx]=this.create(state);return 1},update:(state,tr)=>{let oldVal=state.values[idx];let value=this.updateF(oldVal,tr);if(this.compareF(oldVal,value))return 0;state.values[idx]=value;return 1},reconfigure:(state,oldState)=>{let init=state.facet(initField),oldInit=oldState.facet(initField),reInit;if((reInit=init.find(i=>i.field==this))&&reInit!=oldInit.find(i=>i.field==this)){state.values[idx]=reInit.create(state);return 1}if(oldState.config.address[this.id]!=null){state.values[idx]=oldState.field(this);return 0}state.values[idx]=this.create(state);return 1}}}init(create){return[this,initField.of({field:this,create:create})]}get extension(){return this}}const Prec_={lowest:4,low:3,default:2,high:1,highest:0};function prec(value){return ext=>new PrecExtension(ext,value)}const Prec={highest:prec(Prec_.highest),high:prec(Prec_.high),default:prec(Prec_.default),low:prec(Prec_.low),lowest:prec(Prec_.lowest)};class PrecExtension{constructor(inner,prec){this.inner=inner;this.prec=prec}}class Compartment{of(ext){return new CompartmentInstance(this,ext)}reconfigure(content){return Compartment.reconfigure.of({compartment:this,extension:content})}get(state){return state.config.compartments.get(this)}}class CompartmentInstance{constructor(compartment,inner){this.compartment=compartment;this.inner=inner}}class Configuration{constructor(base,compartments,dynamicSlots,address,staticValues,facets){this.base=base;this.compartments=compartments;this.dynamicSlots=dynamicSlots;this.address=address;this.staticValues=staticValues;this.facets=facets;this.statusTemplate=[];while(this.statusTemplate.length<dynamicSlots.length)this.statusTemplate.push(0)}staticFacet(facet){let addr=this.address[facet.id];return addr==null?facet.default:this.staticValues[addr>>1]}static resolve(base,compartments,oldState){let fields=[];let facets=Object.create(null);let newCompartments=new Map;for(let ext of flatten(base,compartments,newCompartments)){if(ext instanceof StateField)fields.push(ext);else(facets[ext.facet.id]||(facets[ext.facet.id]=[])).push(ext)}let address=Object.create(null);let staticValues=[];let dynamicSlots=[];for(let field of fields){address[field.id]=dynamicSlots.length<<1;dynamicSlots.push(a=>field.slot(a))}let oldFacets=oldState===null||oldState===void 0?void 0:oldState.config.facets;for(let id in facets){let providers=facets[id],facet=providers[0].facet;let oldProviders=oldFacets&&oldFacets[id]||[];if(providers.every(p=>p.type==0)){address[facet.id]=staticValues.length<<1|1;if(sameArray(oldProviders,providers)){staticValues.push(oldState.facet(facet))}else{let value=facet.combine(providers.map(p=>p.value));staticValues.push(oldState&&facet.compare(value,oldState.facet(facet))?oldState.facet(facet):value)}}else{for(let p of providers){if(p.type==0){address[p.id]=staticValues.length<<1|1;staticValues.push(p.value)}else{address[p.id]=dynamicSlots.length<<1;dynamicSlots.push(a=>p.dynamicSlot(a))}}address[facet.id]=dynamicSlots.length<<1;dynamicSlots.push(a=>dynamicFacetSlot(a,facet,providers))}}let dynamic=dynamicSlots.map(f=>f(address));return new Configuration(base,newCompartments,dynamic,address,staticValues,facets)}}function flatten(extension,compartments,newCompartments){let result=[[],[],[],[],[]];let seen=new Map;function inner(ext,prec){let known=seen.get(ext);if(known!=null){if(known<=prec)return;let found=result[known].indexOf(ext);if(found>-1)result[known].splice(found,1);if(ext instanceof CompartmentInstance)newCompartments.delete(ext.compartment)}seen.set(ext,prec);if(Array.isArray(ext)){for(let e of ext)inner(e,prec)}else if(ext instanceof CompartmentInstance){if(newCompartments.has(ext.compartment))throw new RangeError(`Duplicate use of compartment in extensions`);let content=compartments.get(ext.compartment)||ext.inner;newCompartments.set(ext.compartment,content);inner(content,prec)}else if(ext instanceof PrecExtension){inner(ext.inner,ext.prec)}else if(ext instanceof StateField){result[prec].push(ext);if(ext.provides)inner(ext.provides,prec)}else if(ext instanceof FacetProvider){result[prec].push(ext);if(ext.facet.extensions)inner(ext.facet.extensions,Prec_.default)}else{let content=ext.extension;if(!content)throw new Error(`Unrecognized extension value in extension set (${ext}). This sometimes happens because multiple instances of @codemirror/state are loaded, breaking instanceof checks.`);inner(content,prec)}}inner(extension,Prec_.default);return result.reduce((a,b)=>a.concat(b))}function ensureAddr(state,addr){if(addr&1)return 2;let idx=addr>>1;let status=state.status[idx];if(status==4)throw new Error("Cyclic dependency between fields and/or facets");if(status&2)return status;state.status[idx]=4;let changed=state.computeSlot(state,state.config.dynamicSlots[idx]);return state.status[idx]=2|changed}function getAddr(state,addr){return addr&1?state.config.staticValues[addr>>1]:state.values[addr>>1]}const languageData=Facet.define();const allowMultipleSelections=Facet.define({combine:values=>values.some(v=>v),static:true});const lineSeparator=Facet.define({combine:values=>values.length?values[0]:undefined,static:true});const changeFilter=Facet.define();const transactionFilter=Facet.define();const transactionExtender=Facet.define();const readOnly=Facet.define({combine:values=>values.length?values[0]:false});class Annotation{constructor(type,value){this.type=type;this.value=value}static define(){return new AnnotationType}}class AnnotationType{of(value){return new Annotation(this,value)}}class StateEffectType{constructor(map){this.map=map}of(value){return new StateEffect(this,value)}}class StateEffect{constructor(type,value){this.type=type;this.value=value}map(mapping){let mapped=this.type.map(this.value,mapping);return mapped===undefined?undefined:mapped==this.value?this:new StateEffect(this.type,mapped)}is(type){return this.type==type}static define(spec={}){return new StateEffectType(spec.map||(v=>v))}static mapEffects(effects,mapping){if(!effects.length)return effects;let result=[];for(let effect of effects){let mapped=effect.map(mapping);if(mapped)result.push(mapped)}return result}}StateEffect.reconfigure=StateEffect.define();StateEffect.appendConfig=StateEffect.define();class Transaction{constructor(startState,changes,selection,effects,annotations,scrollIntoView){this.startState=startState;this.changes=changes;this.selection=selection;this.effects=effects;this.annotations=annotations;this.scrollIntoView=scrollIntoView;this._doc=null;this._state=null;if(selection)checkSelection(selection,changes.newLength);if(!annotations.some(a=>a.type==Transaction.time))this.annotations=annotations.concat(Transaction.time.of(Date.now()))}static create(startState,changes,selection,effects,annotations,scrollIntoView){return new Transaction(startState,changes,selection,effects,annotations,scrollIntoView)}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(){if(!this._state)this.startState.applyTransaction(this);return this._state}annotation(type){for(let ann of this.annotations)if(ann.type==type)return ann.value;return undefined}get docChanged(){return!this.changes.empty}get reconfigured(){return this.startState.config!=this.state.config}isUserEvent(event){let e=this.annotation(Transaction.userEvent);return!!(e&&(e==event||e.length>event.length&&e.slice(0,event.length)==event&&e[event.length]=="."))}}Transaction.time=Annotation.define();Transaction.userEvent=Annotation.define();Transaction.addToHistory=Annotation.define();Transaction.remote=Annotation.define();function joinRanges(a,b){let result=[];for(let iA=0,iB=0;;){let from,to;if(iA<a.length&&(iB==b.length||b[iB]>=a[iA])){from=a[iA++];to=a[iA++]}else if(iB<b.length){from=b[iB++];to=b[iB++]}else return result;if(!result.length||result[result.length-1]<from)result.push(from,to);else if(result[result.length-1]<to)result[result.length-1]=to}}function mergeTransaction(a,b,sequential){var _a;let mapForA,mapForB,changes;if(sequential){mapForA=b.changes;mapForB=ChangeSet.empty(b.changes.length);changes=a.changes.compose(b.changes)}else{mapForA=b.changes.map(a.changes);mapForB=a.changes.mapDesc(b.changes,true);changes=a.changes.compose(mapForA)}return{changes:changes,selection:b.selection?b.selection.map(mapForB):(_a=a.selection)===null||_a===void 0?void 0:_a.map(mapForA),effects:StateEffect.mapEffects(a.effects,mapForA).concat(StateEffect.mapEffects(b.effects,mapForB)),annotations:a.annotations.length?a.annotations.concat(b.annotations):b.annotations,scrollIntoView:a.scrollIntoView||b.scrollIntoView}}function resolveTransactionInner(state,spec,docSize){let sel=spec.selection,annotations=asArray(spec.annotations);if(spec.userEvent)annotations=annotations.concat(Transaction.userEvent.of(spec.userEvent));return{changes:spec.changes instanceof ChangeSet?spec.changes:ChangeSet.of(spec.changes||[],docSize,state.facet(lineSeparator)),selection:sel&&(sel instanceof EditorSelection?sel:EditorSelection.single(sel.anchor,sel.head)),effects:asArray(spec.effects),annotations:annotations,scrollIntoView:!!spec.scrollIntoView}}function resolveTransaction(state,specs,filter){let s=resolveTransactionInner(state,specs.length?specs[0]:{},state.doc.length);if(specs.length&&specs[0].filter===false)filter=false;for(let i=1;i<specs.length;i++){if(specs[i].filter===false)filter=false;let seq=!!specs[i].sequential;s=mergeTransaction(s,resolveTransactionInner(state,specs[i],seq?s.changes.newLength:state.doc.length),seq)}let tr=Transaction.create(state,s.changes,s.selection,s.effects,s.annotations,s.scrollIntoView);return extendTransaction(filter?filterTransaction(tr):tr)}function filterTransaction(tr){let state=tr.startState;let result=true;for(let filter of state.facet(changeFilter)){let value=filter(tr);if(value===false){result=false;break}if(Array.isArray(value))result=result===true?value:joinRanges(result,value)}if(result!==true){let changes,back;if(result===false){back=tr.changes.invertedDesc;changes=ChangeSet.empty(state.doc.length)}else{let filtered=tr.changes.filter(result);changes=filtered.changes;back=filtered.filtered.mapDesc(filtered.changes).invertedDesc}tr=Transaction.create(state,changes,tr.selection&&tr.selection.map(back),StateEffect.mapEffects(tr.effects,back),tr.annotations,tr.scrollIntoView)}let filters=state.facet(transactionFilter);for(let i=filters.length-1;i>=0;i--){let filtered=filters[i](tr);if(filtered instanceof Transaction)tr=filtered;else if(Array.isArray(filtered)&&filtered.length==1&&filtered[0]instanceof Transaction)tr=filtered[0];else tr=resolveTransaction(state,asArray(filtered),false)}return tr}function extendTransaction(tr){let state=tr.startState,extenders=state.facet(transactionExtender),spec=tr;for(let i=extenders.length-1;i>=0;i--){let extension=extenders[i](tr);if(extension&&Object.keys(extension).length)spec=mergeTransaction(spec,resolveTransactionInner(state,extension,tr.changes.newLength),true)}return spec==tr?tr:Transaction.create(state,tr.changes,tr.selection,spec.effects,spec.annotations,spec.scrollIntoView)}const none=[];function asArray(value){return value==null?none:Array.isArray(value)?value:[value]}var CharCategory=function(CharCategory){CharCategory[CharCategory["Word"]=0]="Word";CharCategory[CharCategory["Space"]=1]="Space";CharCategory[CharCategory["Other"]=2]="Other";return CharCategory}(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(_){}function hasWordChar(str){if(wordChar)return wordChar.test(str);for(let i=0;i<str.length;i++){let ch=str[i];if(/\w/.test(ch)||ch>"€"&&(ch.toUpperCase()!=ch.toLowerCase()||nonASCIISingleCaseWordChar.test(ch)))return true}return false}function makeCategorizer(wordChars){return char=>{if(!/\S/.test(char))return CharCategory.Space;if(hasWordChar(char))return CharCategory.Word;for(let i=0;i<wordChars.length;i++)if(char.indexOf(wordChars[i])>-1)return CharCategory.Word;return CharCategory.Other}}class EditorState{constructor(config,doc,selection,values,computeSlot,tr){this.config=config;this.doc=doc;this.selection=selection;this.values=values;this.status=config.statusTemplate.slice();this.computeSlot=computeSlot;if(tr)tr._state=this;for(let i=0;i<this.config.dynamicSlots.length;i++)ensureAddr(this,i<<1);this.computeSlot=null}field(field,require=true){let addr=this.config.address[field.id];if(addr==null){if(require)throw new RangeError("Field is not present in this state");return undefined}ensureAddr(this,addr);return getAddr(this,addr)}update(...specs){return resolveTransaction(this,specs,true)}applyTransaction(tr){let conf=this.config,{base:base,compartments:compartments}=conf;for(let effect of tr.effects){if(effect.is(Compartment.reconfigure)){if(conf){compartments=new Map;conf.compartments.forEach((val,key)=>compartments.set(key,val));conf=null}compartments.set(effect.value.compartment,effect.value.extension)}else if(effect.is(StateEffect.reconfigure)){conf=null;base=effect.value}else if(effect.is(StateEffect.appendConfig)){conf=null;base=asArray(base).concat(effect.value)}}let startValues;if(!conf){conf=Configuration.resolve(base,compartments,this);let intermediateState=new EditorState(conf,this.doc,this.selection,conf.dynamicSlots.map(()=>null),(state,slot)=>slot.reconfigure(state,this),null);startValues=intermediateState.values}else{startValues=tr.startState.values.slice()}let selection=tr.startState.facet(allowMultipleSelections)?tr.newSelection:tr.newSelection.asSingle();new EditorState(conf,tr.newDoc,selection,startValues,(state,slot)=>slot.update(state,tr),tr)}replaceSelection(text){if(typeof text=="string")text=this.toText(text);return this.changeByRange(range=>({changes:{from:range.from,to:range.to,insert:text},range:EditorSelection.cursor(range.from+text.length)}))}changeByRange(f){let sel=this.selection;let result1=f(sel.ranges[0]);let changes=this.changes(result1.changes),ranges=[result1.range];let effects=asArray(result1.effects);for(let i=1;i<sel.ranges.length;i++){let result=f(sel.ranges[i]);let newChanges=this.changes(result.changes),newMapped=newChanges.map(changes);for(let j=0;j<i;j++)ranges[j]=ranges[j].map(newMapped);let mapBy=changes.mapDesc(newChanges,true);ranges.push(result.range.map(mapBy));changes=changes.compose(newMapped);effects=StateEffect.mapEffects(effects,newMapped).concat(StateEffect.mapEffects(asArray(result.effects),mapBy))}return{changes:changes,selection:EditorSelection.create(ranges,sel.mainIndex),effects:effects}}changes(spec=[]){if(spec instanceof ChangeSet)return spec;return ChangeSet.of(spec,this.doc.length,this.facet(EditorState.lineSeparator))}toText(string){return Text.of(string.split(this.facet(EditorState.lineSeparator)||DefaultSplit))}sliceDoc(from=0,to=this.doc.length){return this.doc.sliceString(from,to,this.lineBreak)}facet(facet){let addr=this.config.address[facet.id];if(addr==null)return facet.default;ensureAddr(this,addr);return getAddr(this,addr)}toJSON(fields){let result={doc:this.sliceDoc(),selection:this.selection.toJSON()};if(fields)for(let prop in fields){let value=fields[prop];if(value instanceof StateField&&this.config.address[value.id]!=null)result[prop]=value.spec.toJSON(this.field(fields[prop]),this)}return result}static fromJSON(json,config={},fields){if(!json||typeof json.doc!="string")throw new RangeError("Invalid JSON representation for EditorState");let fieldInit=[];if(fields)for(let prop in fields){if(Object.prototype.hasOwnProperty.call(json,prop)){let field=fields[prop],value=json[prop];fieldInit.push(field.init(state=>field.spec.fromJSON(value,state)))}}return EditorState.create({doc:json.doc,selection:EditorSelection.fromJSON(json.selection),extensions:config.extensions?fieldInit.concat([config.extensions]):fieldInit})}static create(config={}){let configuration=Configuration.resolve(config.extensions||[],new Map);let doc=config.doc instanceof Text?config.doc:Text.of((config.doc||"").split(configuration.staticFacet(EditorState.lineSeparator)||DefaultSplit));let selection=!config.selection?EditorSelection.single(0):config.selection instanceof EditorSelection?config.selection:EditorSelection.single(config.selection.anchor,config.selection.head);checkSelection(selection,doc.length);if(!configuration.staticFacet(allowMultipleSelections))selection=selection.asSingle();return new EditorState(configuration,doc,selection,configuration.dynamicSlots.map(()=>null),(state,slot)=>slot.create(state),null)}get tabSize(){return this.facet(EditorState.tabSize)}get lineBreak(){return this.facet(EditorState.lineSeparator)||"\n"}get readOnly(){return this.facet(readOnly)}phrase(phrase,...insert){for(let map of this.facet(EditorState.phrases))if(Object.prototype.hasOwnProperty.call(map,phrase)){phrase=map[phrase];break}if(insert.length)phrase=phrase.replace(/\$(\$|\d*)/g,(m,i)=>{if(i=="$")return"$";let n=+(i||1);return!n||n>insert.length?m:insert[n-1]});return phrase}languageDataAt(name,pos,side=-1){let values=[];for(let provider of this.facet(languageData)){for(let result of provider(this,pos,side)){if(Object.prototype.hasOwnProperty.call(result,name))values.push(result[name])}}return values}charCategorizer(at){let chars=this.languageDataAt("wordChars",at);return makeCategorizer(chars.length?chars[0]:"")}wordAt(pos){let{text:text,from:from,length:length}=this.doc.lineAt(pos);let cat=this.charCategorizer(pos);let start=pos-from,end=pos-from;while(start>0){let prev=findClusterBreak(text,start,false);if(cat(text.slice(prev,start))!=CharCategory.Word)break;start=prev}while(end<length){let next=findClusterBreak(text,end);if(cat(text.slice(end,next))!=CharCategory.Word)break;end=next}return start==end?null:EditorSelection.range(start+from,end+from)}}EditorState.allowMultipleSelections=allowMultipleSelections;EditorState.tabSize=Facet.define({combine:values=>values.length?values[0]:4});EditorState.lineSeparator=lineSeparator;EditorState.readOnly=readOnly;EditorState.phrases=Facet.define({compare(a,b){let kA=Object.keys(a),kB=Object.keys(b);return kA.length==kB.length&&kA.every(k=>a[k]==b[k])}});EditorState.languageData=languageData;EditorState.changeFilter=changeFilter;EditorState.transactionFilter=transactionFilter;EditorState.transactionExtender=transactionExtender;Compartment.reconfigure=StateEffect.define();class RangeValue{eq(other){return this==other}range(from,to=from){return Range.create(from,to,this)}}RangeValue.prototype.startSide=RangeValue.prototype.endSide=0;RangeValue.prototype.point=false;RangeValue.prototype.mapMode=MapMode.TrackDel;function cmpVal(a,b){return a==b||a.constructor==b.constructor&&a.eq(b)}class Range{constructor(from,to,value){this.from=from;this.to=to;this.value=value}static create(from,to,value){return new Range(from,to,value)}}function cmpRange(a,b){return a.from-b.from||a.value.startSide-b.value.startSide}class Chunk{constructor(from,to,value,maxPoint){this.from=from;this.to=to;this.value=value;this.maxPoint=maxPoint}get length(){return this.to[this.to.length-1]}findIndex(pos,side,end,startAt=0){let arr=end?this.to:this.from;for(let lo=startAt,hi=arr.length;;){if(lo==hi)return lo;let mid=lo+hi>>1;let diff=arr[mid]-pos||(end?this.value[mid].endSide:this.value[mid].startSide)-side;if(mid==lo)return diff>=0?lo:hi;if(diff>=0)hi=mid;else lo=mid+1}}between(offset,from,to,f){for(let i=this.findIndex(from,-1e9,true),e=this.findIndex(to,1e9,false,i);i<e;i++)if(f(this.from[i]+offset,this.to[i]+offset,this.value[i])===false)return false}map(offset,changes){let value=[],from=[],to=[],newPos=-1,maxPoint=-1;for(let i=0;i<this.value.length;i++){let val=this.value[i],curFrom=this.from[i]+offset,curTo=this.to[i]+offset,newFrom,newTo;if(curFrom==curTo){let mapped=changes.mapPos(curFrom,val.startSide,val.mapMode);if(mapped==null)continue;newFrom=newTo=mapped;if(val.startSide!=val.endSide){newTo=changes.mapPos(curFrom,val.endSide);if(newTo<newFrom)continue}}else{newFrom=changes.mapPos(curFrom,val.startSide);newTo=changes.mapPos(curTo,val.endSide);if(newFrom>newTo||newFrom==newTo&&val.startSide>0&&val.endSide<=0)continue}if((newTo-newFrom||val.endSide-val.startSide)<0)continue;if(newPos<0)newPos=newFrom;if(val.point)maxPoint=Math.max(maxPoint,newTo-newFrom);value.push(val);from.push(newFrom-newPos);to.push(newTo-newPos)}return{mapped:value.length?new Chunk(from,to,value,maxPoint):null,pos:newPos}}}class RangeSet{constructor(chunkPos,chunk,nextLayer,maxPoint){this.chunkPos=chunkPos;this.chunk=chunk;this.nextLayer=nextLayer;this.maxPoint=maxPoint}static create(chunkPos,chunk,nextLayer,maxPoint){return new RangeSet(chunkPos,chunk,nextLayer,maxPoint)}get length(){let last=this.chunk.length-1;return last<0?0:Math.max(this.chunkEnd(last),this.nextLayer.length)}get size(){if(this.isEmpty)return 0;let size=this.nextLayer.size;for(let chunk of this.chunk)size+=chunk.value.length;return size}chunkEnd(index){return this.chunkPos[index]+this.chunk[index].length}update(updateSpec){let{add:add=[],sort:sort=false,filterFrom:filterFrom=0,filterTo:filterTo=this.length}=updateSpec;let filter=updateSpec.filter;if(add.length==0&&!filter)return this;if(sort)add=add.slice().sort(cmpRange);if(this.isEmpty)return add.length?RangeSet.of(add):this;let cur=new LayerCursor(this,null,-1).goto(0),i=0,spill=[];let builder=new RangeSetBuilder;while(cur.value||i<add.length){if(i<add.length&&(cur.from-add[i].from||cur.startSide-add[i].value.startSide)>=0){let range=add[i++];if(!builder.addInner(range.from,range.to,range.value))spill.push(range)}else if(cur.rangeIndex==1&&cur.chunkIndex<this.chunk.length&&(i==add.length||this.chunkEnd(cur.chunkIndex)<add[i].from)&&(!filter||filterFrom>this.chunkEnd(cur.chunkIndex)||filterTo<this.chunkPos[cur.chunkIndex])&&builder.addChunk(this.chunkPos[cur.chunkIndex],this.chunk[cur.chunkIndex])){cur.nextChunk()}else{if(!filter||filterFrom>cur.to||filterTo<cur.from||filter(cur.from,cur.to,cur.value)){if(!builder.addInner(cur.from,cur.to,cur.value))spill.push(Range.create(cur.from,cur.to,cur.value))}cur.next()}}return builder.finishInner(this.nextLayer.isEmpty&&!spill.length?RangeSet.empty:this.nextLayer.update({add:spill,filter:filter,filterFrom:filterFrom,filterTo:filterTo}))}map(changes){if(changes.empty||this.isEmpty)return this;let chunks=[],chunkPos=[],maxPoint=-1;for(let i=0;i<this.chunk.length;i++){let start=this.chunkPos[i],chunk=this.chunk[i];let touch=changes.touchesRange(start,start+chunk.length);if(touch===false){maxPoint=Math.max(maxPoint,chunk.maxPoint);chunks.push(chunk);chunkPos.push(changes.mapPos(start))}else if(touch===true){let{mapped:mapped,pos:pos}=chunk.map(start,changes);if(mapped){maxPoint=Math.max(maxPoint,mapped.maxPoint);chunks.push(mapped);chunkPos.push(pos)}}}let next=this.nextLayer.map(changes);return chunks.length==0?next:new RangeSet(chunkPos,chunks,next||RangeSet.empty,maxPoint)}between(from,to,f){if(this.isEmpty)return;for(let i=0;i<this.chunk.length;i++){let start=this.chunkPos[i],chunk=this.chunk[i];if(to>=start&&from<=start+chunk.length&&chunk.between(start,from-start,to-start,f)===false)return}this.nextLayer.between(from,to,f)}iter(from=0){return HeapCursor.from([this]).goto(from)}get isEmpty(){return this.nextLayer==this}static iter(sets,from=0){return HeapCursor.from(sets).goto(from)}static compare(oldSets,newSets,textDiff,comparator,minPointSize=-1){let a=oldSets.filter(set=>set.maxPoint>0||!set.isEmpty&&set.maxPoint>=minPointSize);let b=newSets.filter(set=>set.maxPoint>0||!set.isEmpty&&set.maxPoint>=minPointSize);let sharedChunks=findSharedChunks(a,b,textDiff);let sideA=new SpanCursor(a,sharedChunks,minPointSize);let sideB=new SpanCursor(b,sharedChunks,minPointSize);textDiff.iterGaps((fromA,fromB,length)=>compare(sideA,fromA,sideB,fromB,length,comparator));if(textDiff.empty&&textDiff.length==0)compare(sideA,0,sideB,0,0,comparator)}static eq(oldSets,newSets,from=0,to){if(to==null)to=1e9-1;let a=oldSets.filter(set=>!set.isEmpty&&newSets.indexOf(set)<0);let b=newSets.filter(set=>!set.isEmpty&&oldSets.indexOf(set)<0);if(a.length!=b.length)return false;if(!a.length)return true;let sharedChunks=findSharedChunks(a,b);let sideA=new SpanCursor(a,sharedChunks,0).goto(from),sideB=new SpanCursor(b,sharedChunks,0).goto(from);for(;;){if(sideA.to!=sideB.to||!sameValues(sideA.active,sideB.active)||sideA.point&&(!sideB.point||!cmpVal(sideA.point,sideB.point)))return false;if(sideA.to>to)return true;sideA.next();sideB.next()}}static spans(sets,from,to,iterator,minPointSize=-1){let cursor=new SpanCursor(sets,null,minPointSize).goto(from),pos=from;let openRanges=cursor.openStart;for(;;){let curTo=Math.min(cursor.to,to);if(cursor.point){let active=cursor.activeForPoint(cursor.to);let openCount=cursor.pointFrom<from?active.length+1:cursor.point.startSide<0?active.length:Math.min(active.length,openRanges);iterator.point(pos,curTo,cursor.point,active,openCount,cursor.pointRank);openRanges=Math.min(cursor.openEnd(curTo),active.length)}else if(curTo>pos){iterator.span(pos,curTo,cursor.active,openRanges);openRanges=cursor.openEnd(curTo)}if(cursor.to>to)return openRanges+(cursor.point&&cursor.to>to?1:0);pos=cursor.to;cursor.next()}}static of(ranges,sort=false){let build=new RangeSetBuilder;for(let range of ranges instanceof Range?[ranges]:sort?lazySort(ranges):ranges)build.add(range.from,range.to,range.value);return build.finish()}static join(sets){if(!sets.length)return RangeSet.empty;let result=sets[sets.length-1];for(let i=sets.length-2;i>=0;i--){for(let layer=sets[i];layer!=RangeSet.empty;layer=layer.nextLayer)result=new RangeSet(layer.chunkPos,layer.chunk,result,Math.max(layer.maxPoint,result.maxPoint))}return result}}RangeSet.empty=new RangeSet([],[],null,-1);function lazySort(ranges){if(ranges.length>1)for(let prev=ranges[0],i=1;i<ranges.length;i++){let cur=ranges[i];if(cmpRange(prev,cur)>0)return ranges.slice().sort(cmpRange);prev=cur}return ranges}RangeSet.empty.nextLayer=RangeSet.empty;class RangeSetBuilder{finishChunk(newArrays){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;if(newArrays){this.from=[];this.to=[];this.value=[]}}constructor(){this.chunks=[];this.chunkPos=[];this.chunkStart=-1;this.last=null;this.lastFrom=-1e9;this.lastTo=-1e9;this.from=[];this.to=[];this.value=[];this.maxPoint=-1;this.setMaxPoint=-1;this.nextLayer=null}add(from,to,value){if(!this.addInner(from,to,value))(this.nextLayer||(this.nextLayer=new RangeSetBuilder)).add(from,to,value)}addInner(from,to,value){let diff=from-this.lastTo||value.startSide-this.last.endSide;if(diff<=0&&(from-this.lastFrom||value.startSide-this.last.startSide)<0)throw new Error("Ranges must be added sorted by `from` position and `startSide`");if(diff<0)return false;if(this.from.length==250)this.finishChunk(true);if(this.chunkStart<0)this.chunkStart=from;this.from.push(from-this.chunkStart);this.to.push(to-this.chunkStart);this.last=value;this.lastFrom=from;this.lastTo=to;this.value.push(value);if(value.point)this.maxPoint=Math.max(this.maxPoint,to-from);return true}addChunk(from,chunk){if((from-this.lastTo||chunk.value[0].startSide-this.last.endSide)<0)return false;if(this.from.length)this.finishChunk(true);this.setMaxPoint=Math.max(this.setMaxPoint,chunk.maxPoint);this.chunks.push(chunk);this.chunkPos.push(from);let last=chunk.value.length-1;this.last=chunk.value[last];this.lastFrom=chunk.from[last]+from;this.lastTo=chunk.to[last]+from;return true}finish(){return this.finishInner(RangeSet.empty)}finishInner(next){if(this.from.length)this.finishChunk(false);if(this.chunks.length==0)return next;let result=RangeSet.create(this.chunkPos,this.chunks,this.nextLayer?this.nextLayer.finishInner(next):next,this.setMaxPoint);this.from=null;return result}}function findSharedChunks(a,b,textDiff){let inA=new Map;for(let set of a)for(let i=0;i<set.chunk.length;i++)if(set.chunk[i].maxPoint<=0)inA.set(set.chunk[i],set.chunkPos[i]);let shared=new Set;for(let set of b)for(let i=0;i<set.chunk.length;i++){let known=inA.get(set.chunk[i]);if(known!=null&&(textDiff?textDiff.mapPos(known):known)==set.chunkPos[i]&&!(textDiff===null||textDiff===void 0?void 0:textDiff.touchesRange(known,known+set.chunk[i].length)))shared.add(set.chunk[i])}return shared}class LayerCursor{constructor(layer,skip,minPoint,rank=0){this.layer=layer;this.skip=skip;this.minPoint=minPoint;this.rank=rank}get startSide(){return this.value?this.value.startSide:0}get endSide(){return this.value?this.value.endSide:0}goto(pos,side=-1e9){this.chunkIndex=this.rangeIndex=0;this.gotoInner(pos,side,false);return this}gotoInner(pos,side,forward){while(this.chunkIndex<this.layer.chunk.length){let next=this.layer.chunk[this.chunkIndex];if(!(this.skip&&this.skip.has(next)||this.layer.chunkEnd(this.chunkIndex)<pos||next.maxPoint<this.minPoint))break;this.chunkIndex++;forward=false}if(this.chunkIndex<this.layer.chunk.length){let rangeIndex=this.layer.chunk[this.chunkIndex].findIndex(pos-this.layer.chunkPos[this.chunkIndex],side,true);if(!forward||this.rangeIndex<rangeIndex)this.setRangeIndex(rangeIndex)}this.next()}forward(pos,side){if((this.to-pos||this.endSide-side)<0)this.gotoInner(pos,side,true)}next(){for(;;){if(this.chunkIndex==this.layer.chunk.length){this.from=this.to=1e9;this.value=null;break}else{let chunkPos=this.layer.chunkPos[this.chunkIndex],chunk=this.layer.chunk[this.chunkIndex];let from=chunkPos+chunk.from[this.rangeIndex];this.from=from;this.to=chunkPos+chunk.to[this.rangeIndex];this.value=chunk.value[this.rangeIndex];this.setRangeIndex(this.rangeIndex+1);if(this.minPoint<0||this.value.point&&this.to-this.from>=this.minPoint)break}}}setRangeIndex(index){if(index==this.layer.chunk[this.chunkIndex].value.length){this.chunkIndex++;if(this.skip){while(this.chunkIndex<this.layer.chunk.length&&this.skip.has(this.layer.chunk[this.chunkIndex]))this.chunkIndex++}this.rangeIndex=0}else{this.rangeIndex=index}}nextChunk(){this.chunkIndex++;this.rangeIndex=0;this.next()}compare(other){return this.from-other.from||this.startSide-other.startSide||this.rank-other.rank||this.to-other.to||this.endSide-other.endSide}}class HeapCursor{constructor(heap){this.heap=heap}static from(sets,skip=null,minPoint=-1){let heap=[];for(let i=0;i<sets.length;i++){for(let cur=sets[i];!cur.isEmpty;cur=cur.nextLayer){if(cur.maxPoint>=minPoint)heap.push(new LayerCursor(cur,skip,minPoint,i))}}return heap.length==1?heap[0]:new HeapCursor(heap)}get startSide(){return this.value?this.value.startSide:0}goto(pos,side=-1e9){for(let cur of this.heap)cur.goto(pos,side);for(let i=this.heap.length>>1;i>=0;i--)heapBubble(this.heap,i);this.next();return this}forward(pos,side){for(let cur of this.heap)cur.forward(pos,side);for(let i=this.heap.length>>1;i>=0;i--)heapBubble(this.heap,i);if((this.to-pos||this.value.endSide-side)<0)this.next()}next(){if(this.heap.length==0){this.from=this.to=1e9;this.value=null;this.rank=-1}else{let top=this.heap[0];this.from=top.from;this.to=top.to;this.value=top.value;this.rank=top.rank;if(top.value)top.next();heapBubble(this.heap,0)}}}function heapBubble(heap,index){for(let cur=heap[index];;){let childIndex=(index<<1)+1;if(childIndex>=heap.length)break;let child=heap[childIndex];if(childIndex+1<heap.length&&child.compare(heap[childIndex+1])>=0){child=heap[childIndex+1];childIndex++}if(cur.compare(child)<0)break;heap[childIndex]=cur;heap[index]=child;index=childIndex}}class SpanCursor{constructor(sets,skip,minPoint){this.minPoint=minPoint;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(sets,skip,minPoint)}goto(pos,side=-1e9){this.cursor.goto(pos,side);this.active.length=this.activeTo.length=this.activeRank.length=0;this.minActive=-1;this.to=pos;this.endSide=side;this.openStart=-1;this.next();return this}forward(pos,side){while(this.minActive>-1&&(this.activeTo[this.minActive]-pos||this.active[this.minActive].endSide-side)<0)this.removeActive(this.minActive);this.cursor.forward(pos,side)}removeActive(index){remove(this.active,index);remove(this.activeTo,index);remove(this.activeRank,index);this.minActive=findMinIndex(this.active,this.activeTo)}addActive(trackOpen){let i=0,{value:value,to:to,rank:rank}=this.cursor;while(i<this.activeRank.length&&(rank-this.activeRank[i]||to-this.activeTo[i])>0)i++;insert(this.active,i,value);insert(this.activeTo,i,to);insert(this.activeRank,i,rank);if(trackOpen)insert(trackOpen,i,this.cursor.from);this.minActive=findMinIndex(this.active,this.activeTo)}next(){let from=this.to,wasPoint=this.point;this.point=null;let trackOpen=this.openStart<0?[]:null;for(;;){let a=this.minActive;if(a>-1&&(this.activeTo[a]-this.cursor.from||this.active[a].endSide-this.cursor.startSide)<0){if(this.activeTo[a]>from){this.to=this.activeTo[a];this.endSide=this.active[a].endSide;break}this.removeActive(a);if(trackOpen)remove(trackOpen,a)}else if(!this.cursor.value){this.to=this.endSide=1e9;break}else if(this.cursor.from>from){this.to=this.cursor.from;this.endSide=this.cursor.startSide;break}else{let nextVal=this.cursor.value;if(!nextVal.point){this.addActive(trackOpen);this.cursor.next()}else if(wasPoint&&this.cursor.to==this.to&&this.cursor.from<this.cursor.to){this.cursor.next()}else{this.point=nextVal;this.pointFrom=this.cursor.from;this.pointRank=this.cursor.rank;this.to=this.cursor.to;this.endSide=nextVal.endSide;this.cursor.next();this.forward(this.to,this.endSide);break}}}if(trackOpen){this.openStart=0;for(let i=trackOpen.length-1;i>=0&&trackOpen[i]<from;i--)this.openStart++}}activeForPoint(to){if(!this.active.length)return this.active;let active=[];for(let i=this.active.length-1;i>=0;i--){if(this.activeRank[i]<this.pointRank)break;if(this.activeTo[i]>to||this.activeTo[i]==to&&this.active[i].endSide>=this.point.endSide)active.push(this.active[i])}return active.reverse()}openEnd(to){let open=0;for(let i=this.activeTo.length-1;i>=0&&this.activeTo[i]>to;i--)open++;return open}}function compare(a,startA,b,startB,length,comparator){a.goto(startA);b.goto(startB);let endB=startB+length;let pos=startB,dPos=startB-startA;let bounds=!!comparator.boundChange;for(let boundChange=false;;){let dEnd=a.to+dPos-b.to,diff=dEnd||a.endSide-b.endSide;let end=diff<0?a.to+dPos:b.to,clipEnd=Math.min(end,endB);let point=a.point||b.point;if(point){if(!(a.point&&b.point&&cmpVal(a.point,b.point)&&sameValues(a.activeForPoint(a.to),b.activeForPoint(b.to))))comparator.comparePoint(pos,clipEnd,a.point,b.point);boundChange=false}else{if(boundChange)comparator.boundChange(pos);if(clipEnd>pos&&!sameValues(a.active,b.active))comparator.compareRange(pos,clipEnd,a.active,b.active);if(bounds&&clipEnd<endB&&(dEnd||a.openEnd(end)!=b.openEnd(end)))boundChange=true}if(end>endB)break;pos=end;if(diff<=0)a.next();if(diff>=0)b.next()}}function sameValues(a,b){if(a.length!=b.length)return false;for(let i=0;i<a.length;i++)if(a[i]!=b[i]&&!cmpVal(a[i],b[i]))return false;return true}function remove(array,index){for(let i=index,e=array.length-1;i<e;i++)array[i]=array[i+1];array.pop()}function insert(array,index,value){for(let i=array.length-1;i>=index;i--)array[i+1]=array[i];array[index]=value}function findMinIndex(value,array){let found=-1,foundPos=1e9;for(let i=0;i<array.length;i++)if((array[i]-foundPos||value[i].endSide-value[found].endSide)<0){found=i;foundPos=array[i]}return found}function findColumn(string,col,tabSize,strict){for(let i=0,n=0;;){if(n>=col)return i;if(i==string.length)break;n+=string.charCodeAt(i)==9?tabSize-n%tabSize:1;i=findClusterBreak(string,i)}return string.length}const C="ͼ";const COUNT=typeof Symbol=="undefined"?"__"+C:Symbol.for(C);const SET=typeof Symbol=="undefined"?"__styleSet"+Math.floor(Math.random()*1e8):Symbol("styleSet");const top=typeof globalThis!="undefined"?globalThis:typeof window!="undefined"?window:{};class StyleModule{constructor(spec,options){this.rules=[];let{finish:finish}=options||{};function splitSelector(selector){return/^@/.test(selector)?[selector]:selector.split(/,\s*/)}function render(selectors,spec,target,isKeyframes){let local=[],isAt=/^@(\w+)\b/.exec(selectors[0]),keyframes=isAt&&isAt[1]=="keyframes";if(isAt&&spec==null)return target.push(selectors[0]+";");for(let prop in spec){let value=spec[prop];if(/&/.test(prop)){render(prop.split(/,\s*/).map(part=>selectors.map(sel=>part.replace(/&/,sel))).reduce((a,b)=>a.concat(b)),value,target)}else if(value&&typeof value=="object"){if(!isAt)throw new RangeError("The value of a property ("+prop+") should be a primitive value.");render(splitSelector(prop),value,local,keyframes)}else if(value!=null){local.push(prop.replace(/_.*/,"").replace(/[A-Z]/g,l=>"-"+l.toLowerCase())+": "+value+";")}}if(local.length||keyframes){target.push((finish&&!isAt&&!isKeyframes?selectors.map(finish):selectors).join(", ")+" {"+local.join(" ")+"}")}}for(let prop in spec)render(splitSelector(prop),spec[prop],this.rules)}getRules(){return this.rules.join("\n")}static newName(){let id=top[COUNT]||1;top[COUNT]=id+1;return C+id.toString(36)}static mount(root,modules,options){let set=root[SET],nonce=options&&options.nonce;if(!set)set=new StyleSet(root,nonce);else if(nonce)set.setNonce(nonce);set.mount(Array.isArray(modules)?modules:[modules],root)}}let adoptedSet=new Map;class StyleSet{constructor(root,nonce){let doc=root.ownerDocument||root,win=doc.defaultView;if(!root.head&&root.adoptedStyleSheets&&win.CSSStyleSheet){let adopted=adoptedSet.get(doc);if(adopted)return root[SET]=adopted;this.sheet=new win.CSSStyleSheet;adoptedSet.set(doc,this)}else{this.styleTag=doc.createElement("style");if(nonce)this.styleTag.setAttribute("nonce",nonce)}this.modules=[];root[SET]=this}mount(modules,root){let sheet=this.sheet;let pos=0,j=0;for(let i=0;i<modules.length;i++){let mod=modules[i],index=this.modules.indexOf(mod);if(index<j&&index>-1){this.modules.splice(index,1);j--;index=-1}if(index==-1){this.modules.splice(j++,0,mod);if(sheet)for(let k=0;k<mod.rules.length;k++)sheet.insertRule(mod.rules[k],pos++)}else{while(j<index)pos+=this.modules[j++].rules.length;pos+=mod.rules.length;j++}}if(sheet){if(root.adoptedStyleSheets.indexOf(this.sheet)<0)root.adoptedStyleSheets=[this.sheet,...root.adoptedStyleSheets]}else{let text="";for(let i=0;i<this.modules.length;i++)text+=this.modules[i].getRules()+"\n";this.styleTag.textContent=text;let target=root.head||root;if(this.styleTag.parentNode!=target)target.insertBefore(this.styleTag,target.firstChild)}}setNonce(nonce){if(this.styleTag&&this.styleTag.getAttribute("nonce")!=nonce)this.styleTag.setAttribute("nonce",nonce)}}var base={8:"Backspace",9:"Tab",10:"Enter",12:"NumLock",13:"Enter",16:"Shift",17:"Control",18:"Alt",20:"CapsLock",27:"Escape",32:" ",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"ArrowLeft",38:"ArrowUp",39:"ArrowRight",40:"ArrowDown",44:"PrintScreen",45:"Insert",46:"Delete",59:";",61:"=",91:"Meta",92:"Meta",106:"*",107:"+",108:",",109:"-",110:".",111:"/",144:"NumLock",145:"ScrollLock",160:"Shift",161:"Shift",162:"Control",163:"Control",164:"Alt",165:"Alt",173:"-",186:";",187:"=",188:",",189:"-",190:".",191:"/",192:"`",219:"[",220:"\\",221:"]",222:"'"};var shift={48:")",49:"!",50:"@",51:"#",52:"$",53:"%",54:"^",55:"&",56:"*",57:"(",59:":",61:"+",173:"_",186:":",187:"+",188:"<",189:"_",190:">",191:"?",192:"~",219:"{",220:"|",221:"}",222:'"'};for(var i=0;i<10;i++)base[48+i]=base[96+i]=String(i);for(var i=1;i<=24;i++)base[i+111]="F"+i;for(var i=65;i<=90;i++){base[i]=String.fromCharCode(i+32);shift[i]=String.fromCharCode(i)}for(var code in base)if(!shift.hasOwnProperty(code))shift[code]=base[code];let nav=typeof navigator!="undefined"?navigator:{userAgent:"",vendor:"",platform:""};let doc=typeof document!="undefined"?document:{documentElement:{style:{}}};const ie_edge=/Edge\/(\d+)/.exec(nav.userAgent);const ie_upto10=/MSIE \d/.test(nav.userAgent);const ie_11up=/Trident\/(?:[7-9]|\d{2,})\..*rv:(\d+)/.exec(nav.userAgent);const ie=!!(ie_upto10||ie_11up||ie_edge);const gecko=!ie&&/gecko\/(\d+)/i.test(nav.userAgent);const chrome=!ie&&/Chrome\/(\d+)/.exec(nav.userAgent);const webkit="webkitFontSmoothing"in doc.documentElement.style;const safari=!ie&&/Apple Computer/.test(nav.vendor);const ios=safari&&(/Mobile\/\w+/.test(nav.userAgent)||nav.maxTouchPoints>2);var browser={mac:ios||/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:ios,android:/Android\b/.test(nav.userAgent),webkit_version:webkit?+(/\bAppleWebKit\/(\d+)/.exec(nav.userAgent)||[0,0])[1]:0,safari:safari,safari_version:safari?+(/\bVersion\/(\d+(\.\d+)?)/.exec(nav.userAgent)||[0,0])[1]:0,tabSize:doc.documentElement.style.tabSize!=null?"tab-size":"-moz-tab-size"};function combineAttrs(source,target){for(let name in source){if(name=="class"&&target.class)target.class+=" "+source.class;else if(name=="style"&&target.style)target.style+=";"+source.style;else target[name]=source[name]}return target}const noAttrs=Object.create(null);function attrsEq(a,b,ignore){if(a==b)return true;if(!a)a=noAttrs;if(!b)b=noAttrs;let keysA=Object.keys(a),keysB=Object.keys(b);if(keysA.length-0!=keysB.length-0)return false;for(let key of keysA){if(key!=ignore&&(keysB.indexOf(key)==-1||a[key]!==b[key]))return false}return true}function setAttrs(dom,attrs){for(let i=dom.attributes.length-1;i>=0;i--){let name=dom.attributes[i].name;if(attrs[name]==null)dom.removeAttribute(name)}for(let name in attrs){let value=attrs[name];if(name=="style")dom.style.cssText=value;else if(dom.getAttribute(name)!=value)dom.setAttribute(name,value)}}function updateAttrs(dom,prev,attrs){let changed=false;if(prev)for(let name in prev)if(!(attrs&&name in attrs)){changed=true;if(name=="style")dom.style.cssText="";else dom.removeAttribute(name)}if(attrs)for(let name in attrs)if(!(prev&&prev[name]==attrs[name])){changed=true;if(name=="style")dom.style.cssText=attrs[name];else dom.setAttribute(name,attrs[name])}return changed}function getAttrs(dom){let attrs=Object.create(null);for(let i=0;i<dom.attributes.length;i++){let attr=dom.attributes[i];attrs[attr.name]=attr.value}return attrs}class WidgetType{eq(widget){return false}updateDOM(dom,view,from){return false}compare(other){return this==other||this.constructor==other.constructor&&this.eq(other)}get estimatedHeight(){return-1}get lineBreaks(){return 0}ignoreEvent(event){return true}coordsAt(dom,pos,side){return null}get isHidden(){return false}get editable(){return false}destroy(dom){}}var BlockType=function(BlockType){BlockType[BlockType["Text"]=0]="Text";BlockType[BlockType["WidgetBefore"]=1]="WidgetBefore";BlockType[BlockType["WidgetAfter"]=2]="WidgetAfter";BlockType[BlockType["WidgetRange"]=3]="WidgetRange";return BlockType}(BlockType||(BlockType={}));class Decoration extends RangeValue{constructor(startSide,endSide,widget,spec){super();this.startSide=startSide;this.endSide=endSide;this.widget=widget;this.spec=spec}get heightRelevant(){return false}static mark(spec){return new MarkDecoration(spec)}static widget(spec){let side=Math.max(-1e4,Math.min(1e4,spec.side||0)),block=!!spec.block;side+=block&&!spec.inlineOrder?side>0?3e8:-4e8:side>0?1e8:-1e8;return new PointDecoration(spec,side,side,block,spec.widget||null,false)}static replace(spec){let block=!!spec.block,startSide,endSide;if(spec.isBlockGap){startSide=-5e8;endSide=4e8}else{let{start:start,end:end}=getInclusive(spec,block);startSide=(start?block?-3e8:-1:5e8)-1;endSide=(end?block?2e8:1:-6e8)+1}return new PointDecoration(spec,startSide,endSide,block,spec.widget||null,true)}static line(spec){return new LineDecoration(spec)}static set(of,sort=false){return RangeSet.of(of,sort)}hasHeight(){return this.widget?this.widget.estimatedHeight>-1:false}}Decoration.none=RangeSet.empty;class MarkDecoration extends Decoration{constructor(spec){let{start:start,end:end}=getInclusive(spec);super(start?-1:5e8,end?1:-6e8,null,spec);this.tagName=spec.tagName||"span";this.attrs=spec.class&&spec.attributes?combineAttrs(spec.attributes,{class:spec.class}):spec.class?{class:spec.class}:spec.attributes||noAttrs}eq(other){return this==other||other instanceof MarkDecoration&&this.tagName==other.tagName&&attrsEq(this.attrs,other.attrs)}range(from,to=from){if(from>=to)throw new RangeError("Mark decorations may not be empty");return super.range(from,to)}}MarkDecoration.prototype.point=false;class LineDecoration extends Decoration{constructor(spec){super(-2e8,-2e8,null,spec)}eq(other){return other instanceof LineDecoration&&this.spec.class==other.spec.class&&attrsEq(this.spec.attributes,other.spec.attributes)}range(from,to=from){if(to!=from)throw new RangeError("Line decoration ranges must be zero-length");return super.range(from,to)}}LineDecoration.prototype.mapMode=MapMode.TrackBefore;LineDecoration.prototype.point=true;class PointDecoration extends Decoration{constructor(spec,startSide,endSide,block,widget,isReplace){super(startSide,endSide,widget,spec);this.block=block;this.isReplace=isReplace;this.mapMode=!block?MapMode.TrackDel:startSide<=0?MapMode.TrackBefore:MapMode.TrackAfter}get type(){return this.startSide!=this.endSide?BlockType.WidgetRange:this.startSide<=0?BlockType.WidgetBefore:BlockType.WidgetAfter}get heightRelevant(){return this.block||!!this.widget&&(this.widget.estimatedHeight>=5||this.widget.lineBreaks>0)}eq(other){return other instanceof PointDecoration&&widgetsEq(this.widget,other.widget)&&this.block==other.block&&this.startSide==other.startSide&&this.endSide==other.endSide}range(from,to=from){if(this.isReplace&&(from>to||from==to&&this.startSide>0&&this.endSide<=0))throw new RangeError("Invalid range for replacement decoration");if(!this.isReplace&&to!=from)throw new RangeError("Widget decorations can only have zero-length ranges");return super.range(from,to)}}PointDecoration.prototype.point=true;function getInclusive(spec,block=false){let{inclusiveStart:start,inclusiveEnd:end}=spec;if(start==null)start=spec.inclusive;if(end==null)end=spec.inclusive;return{start:start!==null&&start!==void 0?start:block,end:end!==null&&end!==void 0?end:block}}function widgetsEq(a,b){return a==b||!!(a&&b&&a.compare(b))}function addRange(from,to,ranges,margin=0){let last=ranges.length-1;if(last>=0&&ranges[last]+margin>=from)ranges[last]=Math.max(ranges[last],to);else ranges.push(from,to)}class BlockWrapper extends RangeValue{constructor(tagName,attributes,rank){super();this.tagName=tagName;this.attributes=attributes;this.rank=rank}eq(other){return other==this||other instanceof BlockWrapper&&this.tagName==other.tagName&&attrsEq(this.attributes,other.attributes)}static create(spec){return new BlockWrapper(spec.tagName,spec.attributes||noAttrs,spec.rank==null?50:Math.max(0,Math.min(spec.rank,100)))}static set(of,sort=false){return RangeSet.of(of,sort)}}BlockWrapper.prototype.startSide=BlockWrapper.prototype.endSide=-1;function getSelection(root){let target;if(root.nodeType==11){target=root.getSelection?root:root.ownerDocument}else{target=root}return target.getSelection()}function contains(dom,node){return node?dom==node||dom.contains(node.nodeType!=1?node.parentNode:node):false}function hasSelection(dom,selection){if(!selection.anchorNode)return false;try{return contains(dom,selection.anchorNode)}catch(_){return false}}function clientRectsFor(dom){if(dom.nodeType==3)return textRange(dom,0,dom.nodeValue.length).getClientRects();else if(dom.nodeType==1)return dom.getClientRects();else return[]}function isEquivalentPosition(node,off,targetNode,targetOff){return targetNode?scanFor(node,off,targetNode,targetOff,-1)||scanFor(node,off,targetNode,targetOff,1):false}function domIndex(node){for(var index=0;;index++){node=node.previousSibling;if(!node)return index}}function isBlockElement(node){return node.nodeType==1&&/^(DIV|P|LI|UL|OL|BLOCKQUOTE|DD|DT|H\d|SECTION|PRE)$/.test(node.nodeName)}function scanFor(node,off,targetNode,targetOff,dir){for(;;){if(node==targetNode&&off==targetOff)return true;if(off==(dir<0?0:maxOffset(node))){if(node.nodeName=="DIV")return false;let parent=node.parentNode;if(!parent||parent.nodeType!=1)return false;off=domIndex(node)+(dir<0?0:1);node=parent}else if(node.nodeType==1){node=node.childNodes[off+(dir<0?-1:0)];if(node.nodeType==1&&node.contentEditable=="false")return false;off=dir<0?maxOffset(node):0}else{return false}}}function maxOffset(node){return node.nodeType==3?node.nodeValue.length:node.childNodes.length}function flattenRect(rect,left){let x=left?rect.left:rect.right;return{left:x,right:x,top:rect.top,bottom:rect.bottom}}function windowRect(win){let vp=win.visualViewport;if(vp)return{left:0,right:vp.width,top:0,bottom:vp.height};return{left:0,right:win.innerWidth,top:0,bottom:win.innerHeight}}function getScale(elt,rect){let scaleX=rect.width/elt.offsetWidth;let scaleY=rect.height/elt.offsetHeight;if(scaleX>.995&&scaleX<1.005||!isFinite(scaleX)||Math.abs(rect.width-elt.offsetWidth)<1)scaleX=1;if(scaleY>.995&&scaleY<1.005||!isFinite(scaleY)||Math.abs(rect.height-elt.offsetHeight)<1)scaleY=1;return{scaleX:scaleX,scaleY:scaleY}}function scrollRectIntoView(dom,rect,side,x,y,xMargin,yMargin,ltr){let doc=dom.ownerDocument,win=doc.defaultView||window;for(let cur=dom,stop=false;cur&&!stop;){if(cur.nodeType==1){let bounding,top=cur==doc.body;let scaleX=1,scaleY=1;if(top){bounding=windowRect(win)}else{if(/^(fixed|sticky)$/.test(getComputedStyle(cur).position))stop=true;if(cur.scrollHeight<=cur.clientHeight&&cur.scrollWidth<=cur.clientWidth){cur=cur.assignedSlot||cur.parentNode;continue}let rect=cur.getBoundingClientRect();({scaleX:scaleX,scaleY:scaleY}=getScale(cur,rect));bounding={left:rect.left,right:rect.left+cur.clientWidth*scaleX,top:rect.top,bottom:rect.top+cur.clientHeight*scaleY}}let moveX=0,moveY=0;if(y=="nearest"){if(rect.top<bounding.top+yMargin){moveY=rect.top-(bounding.top+yMargin);if(side>0&&rect.bottom>bounding.bottom+moveY)moveY=rect.bottom-bounding.bottom+yMargin}else if(rect.bottom>bounding.bottom-yMargin){moveY=rect.bottom-bounding.bottom+yMargin;if(side<0&&rect.top-moveY<bounding.top)moveY=rect.top-(bounding.top+yMargin)}}else{let rectHeight=rect.bottom-rect.top,boundingHeight=bounding.bottom-bounding.top;let targetTop=y=="center"&&rectHeight<=boundingHeight?rect.top+rectHeight/2-boundingHeight/2:y=="start"||y=="center"&&side<0?rect.top-yMargin:rect.bottom-boundingHeight+yMargin;moveY=targetTop-bounding.top}if(x=="nearest"){if(rect.left<bounding.left+xMargin){moveX=rect.left-(bounding.left+xMargin);if(side>0&&rect.right>bounding.right+moveX)moveX=rect.right-bounding.right+xMargin}else if(rect.right>bounding.right-xMargin){moveX=rect.right-bounding.right+xMargin;if(side<0&&rect.left<bounding.left+moveX)moveX=rect.left-(bounding.left+xMargin)}}else{let targetLeft=x=="center"?rect.left+(rect.right-rect.left)/2-(bounding.right-bounding.left)/2:x=="start"==ltr?rect.left-xMargin:rect.right-(bounding.right-bounding.left)+xMargin;moveX=targetLeft-bounding.left}if(moveX||moveY){if(top){win.scrollBy(moveX,moveY)}else{let movedX=0,movedY=0;if(moveY){let start=cur.scrollTop;cur.scrollTop+=moveY/scaleY;movedY=(cur.scrollTop-start)*scaleY}if(moveX){let start=cur.scrollLeft;cur.scrollLeft+=moveX/scaleX;movedX=(cur.scrollLeft-start)*scaleX}rect={left:rect.left-movedX,top:rect.top-movedY,right:rect.right-movedX,bottom:rect.bottom-movedY};if(movedX&&Math.abs(movedX-moveX)<1)x="nearest";if(movedY&&Math.abs(movedY-moveY)<1)y="nearest"}}if(top)break;if(rect.top<bounding.top||rect.bottom>bounding.bottom||rect.left<bounding.left||rect.right>bounding.right)rect={left:Math.max(rect.left,bounding.left),right:Math.min(rect.right,bounding.right),top:Math.max(rect.top,bounding.top),bottom:Math.min(rect.bottom,bounding.bottom)};cur=cur.assignedSlot||cur.parentNode}else if(cur.nodeType==11){cur=cur.host}else{break}}}function scrollableParents(dom,getX=true){let doc=dom.ownerDocument,x=null,y=null;for(let cur=dom.parentNode;cur;){if(cur==doc.body||(!getX||x)&&y){break}else if(cur.nodeType==1){if(!y&&cur.scrollHeight>cur.clientHeight)y=cur;if(getX&&!x&&cur.scrollWidth>cur.clientWidth)x=cur;cur=cur.assignedSlot||cur.parentNode}else if(cur.nodeType==11){cur=cur.host}else{break}}return{x:x,y:y}}class DOMSelectionState{constructor(){this.anchorNode=null;this.anchorOffset=0;this.focusNode=null;this.focusOffset=0}eq(domSel){return this.anchorNode==domSel.anchorNode&&this.anchorOffset==domSel.anchorOffset&&this.focusNode==domSel.focusNode&&this.focusOffset==domSel.focusOffset}setRange(range){let{anchorNode:anchorNode,focusNode:focusNode}=range;this.set(anchorNode,Math.min(range.anchorOffset,anchorNode?maxOffset(anchorNode):0),focusNode,Math.min(range.focusOffset,focusNode?maxOffset(focusNode):0))}set(anchorNode,anchorOffset,focusNode,focusOffset){this.anchorNode=anchorNode;this.anchorOffset=anchorOffset;this.focusNode=focusNode;this.focusOffset=focusOffset}}let preventScrollSupported=null;if(browser.safari&&browser.safari_version>=26)preventScrollSupported=false;function focusPreventScroll(dom){if(dom.setActive)return dom.setActive();if(preventScrollSupported)return dom.focus(preventScrollSupported);let stack=[];for(let cur=dom;cur;cur=cur.parentNode){stack.push(cur,cur.scrollTop,cur.scrollLeft);if(cur==cur.ownerDocument)break}dom.focus(preventScrollSupported==null?{get preventScroll(){preventScrollSupported={preventScroll:true};return true}}:undefined);if(!preventScrollSupported){preventScrollSupported=false;for(let i=0;i<stack.length;){let elt=stack[i++],top=stack[i++],left=stack[i++];if(elt.scrollTop!=top)elt.scrollTop=top;if(elt.scrollLeft!=left)elt.scrollLeft=left}}}let scratchRange;function textRange(node,from,to=from){let range=scratchRange||(scratchRange=document.createRange());range.setEnd(node,to);range.setStart(node,from);return range}function dispatchKey(elt,name,code,mods){let options={key:name,code:name,keyCode:code,which:code,cancelable:true};if(mods)({altKey:options.altKey,ctrlKey:options.ctrlKey,shiftKey:options.shiftKey,metaKey:options.metaKey}=mods);let down=new KeyboardEvent("keydown",options);down.synthetic=true;elt.dispatchEvent(down);let up=new KeyboardEvent("keyup",options);up.synthetic=true;elt.dispatchEvent(up);return down.defaultPrevented||up.defaultPrevented}function getRoot(node){while(node){if(node&&(node.nodeType==9||node.nodeType==11&&node.host))return node;node=node.assignedSlot||node.parentNode}return null}function atElementStart(doc,selection){let node=selection.focusNode,offset=selection.focusOffset;if(!node||selection.anchorNode!=node||selection.anchorOffset!=offset)return false;offset=Math.min(offset,maxOffset(node));for(;;){if(offset){if(node.nodeType!=1)return false;let prev=node.childNodes[offset-1];if(prev.contentEditable=="false")offset--;else{node=prev;offset=maxOffset(node)}}else if(node==doc){return true}else{offset=domIndex(node);node=node.parentNode}}}function isScrolledToBottom(elt){if(elt instanceof Window)return elt.pageYOffset>Math.max(0,elt.document.documentElement.scrollHeight-elt.innerHeight-4);return elt.scrollTop>Math.max(1,elt.scrollHeight-elt.clientHeight-4)}function textNodeBefore(startNode,startOffset){for(let node=startNode,offset=startOffset;;){if(node.nodeType==3&&offset>0){return{node:node,offset:offset}}else if(node.nodeType==1&&offset>0){if(node.contentEditable=="false")return null;node=node.childNodes[offset-1];offset=maxOffset(node)}else if(node.parentNode&&!isBlockElement(node)){offset=domIndex(node);node=node.parentNode}else{return null}}}function textNodeAfter(startNode,startOffset){for(let node=startNode,offset=startOffset;;){if(node.nodeType==3&&offset<node.nodeValue.length){return{node:node,offset:offset}}else if(node.nodeType==1&&offset<node.childNodes.length){if(node.contentEditable=="false")return null;node=node.childNodes[offset];offset=0}else if(node.parentNode&&!isBlockElement(node)){offset=domIndex(node)+1;node=node.parentNode}else{return null}}}class DOMPos{constructor(node,offset,precise=true){this.node=node;this.offset=offset;this.precise=precise}static before(dom,precise){return new DOMPos(dom.parentNode,domIndex(dom),precise)}static after(dom,precise){return new DOMPos(dom.parentNode,domIndex(dom)+1,precise)}}var Direction=function(Direction){Direction[Direction["LTR"]=0]="LTR";Direction[Direction["RTL"]=1]="RTL";return Direction}(Direction||(Direction={}));const LTR=Direction.LTR,RTL=Direction.RTL;function dec(str){let result=[];for(let i=0;i<str.length;i++)result.push(1<<+str[i]);return result}const LowTypes=dec("88888888888888888888888888888888888666888888787833333333337888888000000000000000000000000008888880000000000000000000000000088888888888888888888888888888888888887866668888088888663380888308888800000000000000000000000800000000000000000000000000000008");const ArabicTypes=dec("4444448826627288999999999992222222222222222222222222222222222222222222222229999999999999999999994444444444644222822222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222999999949999999229989999223333333333");const Brackets=Object.create(null),BracketStack=[];for(let p of["()","[]","{}"]){let l=p.charCodeAt(0),r=p.charCodeAt(1);Brackets[l]=r;Brackets[r]=-l}function charType(ch){return ch<=247?LowTypes[ch]:1424<=ch&&ch<=1524?2:1536<=ch&&ch<=1785?ArabicTypes[ch-1536]:1774<=ch&&ch<=2220?4:8192<=ch&&ch<=8204?256:64336<=ch&&ch<=65023?4:1}const BidiRE=/[\u0590-\u05f4\u0600-\u06ff\u0700-\u08ac\ufb50-\ufdff]/;class BidiSpan{get dir(){return this.level%2?RTL:LTR}constructor(from,to,level){this.from=from;this.to=to;this.level=level}side(end,dir){return this.dir==dir==end?this.to:this.from}forward(forward,dir){return forward==(this.dir==dir)}static find(order,index,level,assoc){let maybe=-1;for(let i=0;i<order.length;i++){let span=order[i];if(span.from<=index&&span.to>=index){if(span.level==level)return i;if(maybe<0||(assoc!=0?assoc<0?span.from<index:span.to>index:order[maybe].level>span.level))maybe=i}}if(maybe<0)throw new RangeError("Index out of range");return maybe}}function isolatesEq(a,b){if(a.length!=b.length)return false;for(let i=0;i<a.length;i++){let iA=a[i],iB=b[i];if(iA.from!=iB.from||iA.to!=iB.to||iA.direction!=iB.direction||!isolatesEq(iA.inner,iB.inner))return false}return true}const types=[];function computeCharTypes(line,rFrom,rTo,isolates,outerType){for(let iI=0;iI<=isolates.length;iI++){let from=iI?isolates[iI-1].to:rFrom,to=iI<isolates.length?isolates[iI].from:rTo;let prevType=iI?256:outerType;for(let i=from,prev=prevType,prevStrong=prevType;i<to;i++){let type=charType(line.charCodeAt(i));if(type==512)type=prev;else if(type==8&&prevStrong==4)type=16;types[i]=type==4?2:type;if(type&7)prevStrong=type;prev=type}for(let i=from,prev=prevType,prevStrong=prevType;i<to;i++){let type=types[i];if(type==128){if(i<to-1&&prev==types[i+1]&&prev&24)type=types[i]=prev;else types[i]=256}else if(type==64){let end=i+1;while(end<to&&types[end]==64)end++;let replace=i&&prev==8||end<rTo&&types[end]==8?prevStrong==1?1:8:256;for(let j=i;j<end;j++)types[j]=replace;i=end-1}else if(type==8&&prevStrong==1){types[i]=1}prev=type;if(type&7)prevStrong=type}}}function processBracketPairs(line,rFrom,rTo,isolates,outerType){let oppositeType=outerType==1?2:1;for(let iI=0,sI=0,context=0;iI<=isolates.length;iI++){let from=iI?isolates[iI-1].to:rFrom,to=iI<isolates.length?isolates[iI].from:rTo;for(let i=from,ch,br,type;i<to;i++){if(br=Brackets[ch=line.charCodeAt(i)]){if(br<0){for(let sJ=sI-3;sJ>=0;sJ-=3){if(BracketStack[sJ+1]==-br){let flags=BracketStack[sJ+2];let type=flags&2?outerType:!(flags&4)?0:flags&1?oppositeType:outerType;if(type)types[i]=types[BracketStack[sJ]]=type;sI=sJ;break}}}else if(BracketStack.length==189){break}else{BracketStack[sI++]=i;BracketStack[sI++]=ch;BracketStack[sI++]=context}}else if((type=types[i])==2||type==1){let embed=type==outerType;context=embed?0:1;for(let sJ=sI-3;sJ>=0;sJ-=3){let cur=BracketStack[sJ+2];if(cur&2)break;if(embed){BracketStack[sJ+2]|=2}else{if(cur&4)break;BracketStack[sJ+2]|=4}}}}}}function processNeutrals(rFrom,rTo,isolates,outerType){for(let iI=0,prev=outerType;iI<=isolates.length;iI++){let from=iI?isolates[iI-1].to:rFrom,to=iI<isolates.length?isolates[iI].from:rTo;for(let i=from;i<to;){let type=types[i];if(type==256){let end=i+1;for(;;){if(end==to){if(iI==isolates.length)break;end=isolates[iI++].to;to=iI<isolates.length?isolates[iI].from:rTo}else if(types[end]==256){end++}else{break}}let beforeL=prev==1;let afterL=(end<rTo?types[end]:outerType)==1;let replace=beforeL==afterL?beforeL?1:2:outerType;for(let j=end,jI=iI,fromJ=jI?isolates[jI-1].to:rFrom;j>i;){if(j==fromJ){j=isolates[--jI].from;fromJ=jI?isolates[jI-1].to:rFrom}types[--j]=replace}i=end}else{prev=type;i++}}}}function emitSpans(line,from,to,level,baseLevel,isolates,order){let ourType=level%2?2:1;if(level%2==baseLevel%2){for(let iCh=from,iI=0;iCh<to;){let sameDir=true,isNum=false;if(iI==isolates.length||iCh<isolates[iI].from){let next=types[iCh];if(next!=ourType){sameDir=false;isNum=next==16}}let recurse=!sameDir&&ourType==1?[]:null;let localLevel=sameDir?level:level+1;let iScan=iCh;run:for(;;){if(iI<isolates.length&&iScan==isolates[iI].from){if(isNum)break run;let iso=isolates[iI];if(!sameDir)for(let upto=iso.to,jI=iI+1;;){if(upto==to)break run;if(jI<isolates.length&&isolates[jI].from==upto)upto=isolates[jI++].to;else if(types[upto]==ourType)break run;else break}iI++;if(recurse){recurse.push(iso)}else{if(iso.from>iCh)order.push(new BidiSpan(iCh,iso.from,localLevel));let dirSwap=iso.direction==LTR!=!(localLevel%2);computeSectionOrder(line,dirSwap?level+1:level,baseLevel,iso.inner,iso.from,iso.to,order);iCh=iso.to}iScan=iso.to}else if(iScan==to||(sameDir?types[iScan]!=ourType:types[iScan]==ourType)){break}else{iScan++}}if(recurse)emitSpans(line,iCh,iScan,level+1,baseLevel,recurse,order);else if(iCh<iScan)order.push(new BidiSpan(iCh,iScan,localLevel));iCh=iScan}}else{for(let iCh=to,iI=isolates.length;iCh>from;){let sameDir=true,isNum=false;if(!iI||iCh>isolates[iI-1].to){let next=types[iCh-1];if(next!=ourType){sameDir=false;isNum=next==16}}let recurse=!sameDir&&ourType==1?[]:null;let localLevel=sameDir?level:level+1;let iScan=iCh;run:for(;;){if(iI&&iScan==isolates[iI-1].to){if(isNum)break run;let iso=isolates[--iI];if(!sameDir)for(let upto=iso.from,jI=iI;;){if(upto==from)break run;if(jI&&isolates[jI-1].to==upto)upto=isolates[--jI].from;else if(types[upto-1]==ourType)break run;else break}if(recurse){recurse.push(iso)}else{if(iso.to<iCh)order.push(new BidiSpan(iso.to,iCh,localLevel));let dirSwap=iso.direction==LTR!=!(localLevel%2);computeSectionOrder(line,dirSwap?level+1:level,baseLevel,iso.inner,iso.from,iso.to,order);iCh=iso.from}iScan=iso.from}else if(iScan==from||(sameDir?types[iScan-1]!=ourType:types[iScan-1]==ourType)){break}else{iScan--}}if(recurse)emitSpans(line,iScan,iCh,level+1,baseLevel,recurse,order);else if(iScan<iCh)order.push(new BidiSpan(iScan,iCh,localLevel));iCh=iScan}}}function computeSectionOrder(line,level,baseLevel,isolates,from,to,order){let outerType=level%2?2:1;computeCharTypes(line,from,to,isolates,outerType);processBracketPairs(line,from,to,isolates,outerType);processNeutrals(from,to,isolates,outerType);emitSpans(line,from,to,level,baseLevel,isolates,order)}function computeOrder(line,direction,isolates){if(!line)return[new BidiSpan(0,0,direction==RTL?1:0)];if(direction==LTR&&!isolates.length&&!BidiRE.test(line))return trivialOrder(line.length);if(isolates.length)while(line.length>types.length)types[types.length]=256;let order=[],level=direction==LTR?0:1;computeSectionOrder(line,level,level,isolates,0,line.length,order);return order}function trivialOrder(length){return[new BidiSpan(0,length,0)]}let movedOver="";function moveVisually(line,order,dir,start,forward){var _a;let startIndex=start.head-line.from;let spanI=BidiSpan.find(order,startIndex,(_a=start.bidiLevel)!==null&&_a!==void 0?_a:-1,start.assoc);let span=order[spanI],spanEnd=span.side(forward,dir);if(startIndex==spanEnd){let nextI=spanI+=forward?1:-1;if(nextI<0||nextI>=order.length)return null;span=order[spanI=nextI];startIndex=span.side(!forward,dir);spanEnd=span.side(forward,dir)}let nextIndex=findClusterBreak(line.text,startIndex,span.forward(forward,dir));if(nextIndex<span.from||nextIndex>span.to)nextIndex=spanEnd;movedOver=line.text.slice(Math.min(startIndex,nextIndex),Math.max(startIndex,nextIndex));let nextSpan=spanI==(forward?order.length-1:0)?null:order[spanI+(forward?1:-1)];if(nextSpan&&nextIndex==spanEnd&&nextSpan.level+(forward?0:1)<span.level)return EditorSelection.cursor(nextSpan.side(!forward,dir)+line.from,nextSpan.forward(forward,dir)?1:-1,nextSpan.level);return EditorSelection.cursor(nextIndex+line.from,span.forward(forward,dir)?-1:1,span.level)}function autoDirection(text,from,to){for(let i=from;i<to;i++){let type=charType(text.charCodeAt(i));if(type==1)return LTR;if(type==2||type==4)return RTL}return LTR}const clickAddsSelectionRange=Facet.define();const dragMovesSelection$1=Facet.define();const mouseSelectionStyle=Facet.define();const exceptionSink=Facet.define();const updateListener=Facet.define();const inputHandler=Facet.define();const focusChangeEffect=Facet.define();const clipboardInputFilter=Facet.define();const clipboardOutputFilter=Facet.define();const perLineTextDirection=Facet.define({combine:values=>values.some(x=>x)});const nativeSelectionHidden=Facet.define({combine:values=>values.some(x=>x)});const scrollHandler=Facet.define();class ScrollTarget{constructor(range,y,x,yMargin,xMargin,isSnapshot=false){this.range=range;this.y=y;this.x=x;this.yMargin=yMargin;this.xMargin=xMargin;this.isSnapshot=isSnapshot}map(changes){return changes.empty?this:new ScrollTarget(this.range.map(changes),this.y,this.x,this.yMargin,this.xMargin,this.isSnapshot)}clip(state){return this.range.to<=state.doc.length?this:new ScrollTarget(EditorSelection.cursor(state.doc.length),this.y,this.x,this.yMargin,this.xMargin,this.isSnapshot)}}const scrollIntoView=StateEffect.define({map:(t,ch)=>t.map(ch)});const setEditContextFormatting=StateEffect.define();function logException(state,exception,context){let handler=state.facet(exceptionSink);if(handler.length)handler[0](exception);else if(window.onerror&&window.onerror(String(exception),context,undefined,undefined,exception));else if(context)console.error(context+":",exception);else console.error(exception)}const editable=Facet.define({combine:values=>values.length?values[0]:true});let nextPluginID=0;const viewPlugin=Facet.define({combine(plugins){return plugins.filter((p,i)=>{for(let j=0;j<i;j++)if(plugins[j].plugin==p.plugin)return false;return true})}});class ViewPlugin{constructor(id,create,domEventHandlers,domEventObservers,buildExtensions){this.id=id;this.create=create;this.domEventHandlers=domEventHandlers;this.domEventObservers=domEventObservers;this.baseExtensions=buildExtensions(this);this.extension=this.baseExtensions.concat(viewPlugin.of({plugin:this,arg:undefined}))}of(arg){return this.baseExtensions.concat(viewPlugin.of({plugin:this,arg:arg}))}static define(create,spec){const{eventHandlers:eventHandlers,eventObservers:eventObservers,provide:provide,decorations:deco}=spec||{};return new ViewPlugin(nextPluginID++,create,eventHandlers,eventObservers,plugin=>{let ext=[];if(deco)ext.push(decorations.of(view=>{let pluginInst=view.plugin(plugin);return pluginInst?deco(pluginInst):Decoration.none}));if(provide)ext.push(provide(plugin));return ext})}static fromClass(cls,spec){return ViewPlugin.define((view,arg)=>new cls(view,arg),spec)}}class PluginInstance{constructor(spec){this.spec=spec;this.mustUpdate=null;this.value=null}get plugin(){return this.spec&&this.spec.plugin}update(view){if(!this.value){if(this.spec){try{this.value=this.spec.plugin.create(view,this.spec.arg)}catch(e){logException(view.state,e,"CodeMirror plugin crashed");this.deactivate()}}}else if(this.mustUpdate){let update=this.mustUpdate;this.mustUpdate=null;if(this.value.update){try{this.value.update(update)}catch(e){logException(update.state,e,"CodeMirror plugin crashed");if(this.value.destroy)try{this.value.destroy()}catch(_){}this.deactivate()}}}return this}destroy(view){var _a;if((_a=this.value)===null||_a===void 0?void 0:_a.destroy){try{this.value.destroy()}catch(e){logException(view.state,e,"CodeMirror plugin crashed")}}}deactivate(){this.spec=this.value=null}}const editorAttributes=Facet.define();const contentAttributes=Facet.define();const decorations=Facet.define();const blockWrappers=Facet.define();const outerDecorations=Facet.define();const atomicRanges=Facet.define();const bidiIsolatedRanges=Facet.define();function getIsolatedRanges(view,line){let isolates=view.state.facet(bidiIsolatedRanges);if(!isolates.length)return isolates;let sets=isolates.map(i=>i instanceof Function?i(view):i);let result=[];RangeSet.spans(sets,line.from,line.to,{point(){},span(fromDoc,toDoc,active,open){let from=fromDoc-line.from,to=toDoc-line.from;let level=result;for(let i=active.length-1;i>=0;i--,open--){let direction=active[i].spec.bidiIsolate,update;if(direction==null)direction=autoDirection(line.text,from,to);if(open>0&&level.length&&(update=level[level.length-1]).to==from&&update.direction==direction){update.to=to;level=update.inner}else{let add={from:from,to:to,direction:direction,inner:[]};level.push(add);level=add.inner}}}});return result}const scrollMargins=Facet.define();function getScrollMargins(view){let left=0,right=0,top=0,bottom=0;for(let source of view.state.facet(scrollMargins)){let m=source(view);if(m){if(m.left!=null)left=Math.max(left,m.left);if(m.right!=null)right=Math.max(right,m.right);if(m.top!=null)top=Math.max(top,m.top);if(m.bottom!=null)bottom=Math.max(bottom,m.bottom)}}return{left:left,right:right,top:top,bottom:bottom}}const styleModule=Facet.define();class ChangedRange{constructor(fromA,toA,fromB,toB){this.fromA=fromA;this.toA=toA;this.fromB=fromB;this.toB=toB}join(other){return new ChangedRange(Math.min(this.fromA,other.fromA),Math.max(this.toA,other.toA),Math.min(this.fromB,other.fromB),Math.max(this.toB,other.toB))}addToSet(set){let i=set.length,me=this;for(;i>0;i--){let range=set[i-1];if(range.fromA>me.toA)continue;if(range.toA<me.fromA)break;me=me.join(range);set.splice(i-1,1)}set.splice(i,0,me);return set}static extendWithRanges(diff,ranges){if(ranges.length==0)return diff;let result=[];for(let dI=0,rI=0,off=0;;){let nextD=dI<diff.length?diff[dI].fromB:1e9;let nextR=rI<ranges.length?ranges[rI]:1e9;let fromB=Math.min(nextD,nextR);if(fromB==1e9)break;let fromA=fromB+off,toB=fromB,toA=fromA;for(;;){if(rI<ranges.length&&ranges[rI]<=toB){let end=ranges[rI+1];rI+=2;toB=Math.max(toB,end);for(let i=dI;i<diff.length&&diff[i].fromB<=toB;i++)off=diff[i].toA-diff[i].toB;toA=Math.max(toA,end+off)}else if(dI<diff.length&&diff[dI].fromB<=toB){let next=diff[dI++];toB=Math.max(toB,next.toB);toA=Math.max(toA,next.toA);off=next.toA-next.toB}else{break}}result.push(new ChangedRange(fromA,toA,fromB,toB))}return result}}class ViewUpdate{constructor(view,state,transactions){this.view=view;this.state=state;this.transactions=transactions;this.flags=0;this.startState=view.state;this.changes=ChangeSet.empty(this.startState.doc.length);for(let tr of transactions)this.changes=this.changes.compose(tr.changes);let changedRanges=[];this.changes.iterChangedRanges((fromA,toA,fromB,toB)=>changedRanges.push(new ChangedRange(fromA,toA,fromB,toB)));this.changedRanges=changedRanges}static create(view,state,transactions){return new ViewUpdate(view,state,transactions)}get viewportChanged(){return(this.flags&4)>0}get viewportMoved(){return(this.flags&8)>0}get heightChanged(){return(this.flags&2)>0}get geometryChanged(){return this.docChanged||(this.flags&(16|2))>0}get focusChanged(){return(this.flags&1)>0}get docChanged(){return!this.changes.empty}get selectionSet(){return this.transactions.some(tr=>tr.selection)}get empty(){return this.flags==0&&this.transactions.length==0}}const noChildren=[];class Tile{constructor(dom,length,flags=0){this.dom=dom;this.length=length;this.flags=flags;this.parent=null;dom.cmTile=this}get breakAfter(){return this.flags&1}get children(){return noChildren}isWidget(){return false}get isHidden(){return false}isComposite(){return false}isLine(){return false}isText(){return false}isBlock(){return false}get domAttrs(){return null}sync(track){this.flags|=2;if(this.flags&4){this.flags&=-5;let attrs=this.domAttrs;if(attrs)setAttrs(this.dom,attrs)}}toString(){return this.constructor.name+(this.children.length?`(${this.children})`:"")+(this.breakAfter?"#":"")}destroy(){this.parent=null}setDOM(dom){this.dom=dom;dom.cmTile=this}get posAtStart(){return this.parent?this.parent.posBefore(this):0}get posAtEnd(){return this.posAtStart+this.length}posBefore(tile,start=this.posAtStart){let pos=start;for(let child of this.children){if(child==tile)return pos;pos+=child.length+child.breakAfter}throw new RangeError("Invalid child in posBefore")}posAfter(tile){return this.posBefore(tile)+tile.length}covers(side){return true}coordsIn(pos,side){return null}domPosFor(off,side){let index=domIndex(this.dom);let after=this.length?off>0:side>0;return new DOMPos(this.parent.dom,index+(after?1:0),off==0||off==this.length)}markDirty(attrs){this.flags&=-3;if(attrs)this.flags|=4;if(this.parent&&this.parent.flags&2)this.parent.markDirty(false)}get overrideDOMText(){return null}get root(){for(let t=this;t;t=t.parent)if(t instanceof DocTile)return t;return null}static get(dom){return dom.cmTile}}class CompositeTile extends Tile{constructor(dom){super(dom,0);this._children=[]}isComposite(){return true}get children(){return this._children}get lastChild(){return this.children.length?this.children[this.children.length-1]:null}append(child){this.children.push(child);child.parent=this}sync(track){if(this.flags&2)return;super.sync(track);let parent=this.dom,prev=null,next;let tracking=(track===null||track===void 0?void 0:track.node)==parent?track:null;let length=0;for(let child of this.children){child.sync(track);length+=child.length+child.breakAfter;next=prev?prev.nextSibling:parent.firstChild;if(tracking&&next!=child.dom)tracking.written=true;if(child.dom.parentNode==parent){while(next&&next!=child.dom)next=rm$1(next)}else{parent.insertBefore(child.dom,next)}prev=child.dom}next=prev?prev.nextSibling:parent.firstChild;if(tracking&&next)tracking.written=true;while(next)next=rm$1(next);this.length=length}}function rm$1(dom){let next=dom.nextSibling;dom.parentNode.removeChild(dom);return next}class DocTile extends CompositeTile{constructor(view,dom){super(dom);this.view=view}owns(tile){for(;tile;tile=tile.parent)if(tile==this)return true;return false}isBlock(){return true}nearest(dom){for(;;){if(!dom)return null;let tile=Tile.get(dom);if(tile&&this.owns(tile))return tile;dom=dom.parentNode}}blockTiles(f){for(let stack=[],cur=this,i=0,pos=0;;){if(i==cur.children.length){if(!stack.length)return;cur=cur.parent;if(cur.breakAfter)pos++;i=stack.pop()}else{let next=cur.children[i++];if(next instanceof BlockWrapperTile){stack.push(i);cur=next;i=0}else{let end=pos+next.length;let result=f(next,pos);if(result!==undefined)return result;pos=end+next.breakAfter}}}}resolveBlock(pos,side){let before,beforeOff=-1,after,afterOff=-1;this.blockTiles((tile,off)=>{let end=off+tile.length;if(pos>=off&&pos<=end){if(tile.isWidget()&&side>=-1&&side<=1){if(tile.flags&32)return true;if(tile.flags&16)before=undefined}if((off<pos||pos==end&&(side<-1?tile.length:tile.covers(1)))&&(!before||!tile.isWidget()&&before.isWidget())){before=tile;beforeOff=pos-off}if((end>pos||pos==off&&(side>1?tile.length:tile.covers(-1)))&&(!after||!tile.isWidget()&&after.isWidget())){after=tile;afterOff=pos-off}}});if(!before&&!after)throw new Error("No tile at position "+pos);return before&&side<0||!after?{tile:before,offset:beforeOff}:{tile:after,offset:afterOff}}}class BlockWrapperTile extends CompositeTile{constructor(dom,wrapper){super(dom);this.wrapper=wrapper}isBlock(){return true}covers(side){if(!this.children.length)return false;return side<0?this.children[0].covers(-1):this.lastChild.covers(1)}get domAttrs(){return this.wrapper.attributes}static of(wrapper,dom){let tile=new BlockWrapperTile(dom||document.createElement(wrapper.tagName),wrapper);if(!dom)tile.flags|=4;return tile}}class LineTile extends CompositeTile{constructor(dom,attrs){super(dom);this.attrs=attrs}isLine(){return true}static start(attrs,dom,keepAttrs){let line=new LineTile(dom||document.createElement("div"),attrs);if(!dom||!keepAttrs)line.flags|=4;return line}get domAttrs(){return this.attrs}resolveInline(pos,side,forCoords){let before=null,beforeOff=-1,after=null,afterOff=-1;function scan(tile,pos){for(let i=0,off=0;i<tile.children.length&&off<=pos;i++){let child=tile.children[i],end=off+child.length;if(end>=pos){if(child.isComposite()){scan(child,pos-off)}else if((!after||after.isHidden&&(side>0||forCoords&&onSameLine(after,child)))&&(end>pos||child.flags&32)){after=child;afterOff=pos-off}else if(off<pos||child.flags&16&&!child.isHidden){before=child;beforeOff=pos-off}}off=end}}scan(this,pos);let target=(side<0?before:after)||before||after;return target?{tile:target,offset:target==before?beforeOff:afterOff}:null}coordsIn(pos,side){let found=this.resolveInline(pos,side,true);if(!found)return fallbackRect(this);return found.tile.coordsIn(Math.max(0,found.offset),side)}domIn(pos,side){let found=this.resolveInline(pos,side);if(found){let{tile:tile,offset:offset}=found;if(this.dom.contains(tile.dom)){if(tile.isText())return new DOMPos(tile.dom,Math.min(tile.dom.nodeValue.length,offset));return tile.domPosFor(offset,tile.flags&16?1:tile.flags&32?-1:side)}let parent=found.tile.parent,saw=false;for(let ch of parent.children){if(saw)return new DOMPos(ch.dom,0);if(ch==found.tile){saw=true}}}return new DOMPos(this.dom,0)}}function fallbackRect(tile){let last=tile.dom.lastChild;if(!last)return tile.dom.getBoundingClientRect();let rects=clientRectsFor(last);return rects[rects.length-1]||null}function onSameLine(a,b){let posA=a.coordsIn(0,1),posB=b.coordsIn(0,1);return posA&&posB&&posB.top<posA.bottom}class MarkTile extends CompositeTile{constructor(dom,mark){super(dom);this.mark=mark}get domAttrs(){return this.mark.attrs}static of(mark,dom){let tile=new MarkTile(dom||document.createElement(mark.tagName),mark);if(!dom)tile.flags|=4;return tile}}class TextTile extends Tile{constructor(dom,text){super(dom,text.length);this.text=text}sync(track){if(this.flags&2)return;super.sync(track);if(this.dom.nodeValue!=this.text){if(track&&track.node==this.dom)track.written=true;this.dom.nodeValue=this.text}}isText(){return true}toString(){return JSON.stringify(this.text)}coordsIn(pos,side){let length=this.dom.nodeValue.length;if(pos>length)pos=length;let from=pos,to=pos,flatten=0;if(pos==0&&side<0||pos==length&&side>=0){if(!(browser.chrome||browser.gecko)){if(pos){from--;flatten=1}else if(to<length){to++;flatten=-1}}}else{if(side<0)from--;else if(to<length)to++}let rects=textRange(this.dom,from,to).getClientRects();if(!rects.length)return null;let rect=rects[(flatten?flatten<0:side>=0)?0:rects.length-1];if(browser.safari&&!flatten&&rect.width==0)rect=Array.prototype.find.call(rects,r=>r.width)||rect;return flatten?flattenRect(rect,flatten<0):rect||null}static of(text,dom){let tile=new TextTile(dom||document.createTextNode(text),text);if(!dom)tile.flags|=2;return tile}}class WidgetTile extends Tile{constructor(dom,length,widget,flags){super(dom,length,flags);this.widget=widget}isWidget(){return true}get isHidden(){return this.widget.isHidden}covers(side){if(this.flags&48)return false;return(this.flags&(side<0?64:128))>0}coordsIn(pos,side){return this.coordsInWidget(pos,side,false)}coordsInWidget(pos,side,block){let custom=this.widget.coordsAt(this.dom,pos,side);if(custom)return custom;if(block){return flattenRect(this.dom.getBoundingClientRect(),this.length?pos==0:side<=0)}else{let rects=this.dom.getClientRects(),rect=null;if(!rects.length)return null;let fromBack=this.flags&16?true:this.flags&32?false:pos>0;for(let i=fromBack?rects.length-1:0;;i+=fromBack?-1:1){rect=rects[i];if(pos>0?i==0:i==rects.length-1||rect.top<rect.bottom)break}return flattenRect(rect,!fromBack)}}get overrideDOMText(){if(!this.length)return Text.empty;let{root:root}=this;if(!root)return Text.empty;let start=this.posAtStart;return root.view.state.doc.slice(start,start+this.length)}destroy(){super.destroy();this.widget.destroy(this.dom)}static of(widget,view,length,flags,dom){if(!dom){dom=widget.toDOM(view);if(!widget.editable)dom.contentEditable="false"}return new WidgetTile(dom,length,widget,flags)}}class WidgetBufferTile extends Tile{constructor(flags){let img=document.createElement("img");img.className="cm-widgetBuffer";img.setAttribute("aria-hidden","true");super(img,0,flags)}get isHidden(){return true}get overrideDOMText(){return Text.empty}coordsIn(pos){return this.dom.getBoundingClientRect()}}class TilePointer{constructor(top){this.index=0;this.beforeBreak=false;this.parents=[];this.tile=top}advance(dist,side,walker){let{tile:tile,index:index,beforeBreak:beforeBreak,parents:parents}=this;while(dist||side>0){if(!tile.isComposite()){if(index==tile.length){beforeBreak=!!tile.breakAfter;({tile:tile,index:index}=parents.pop());index++}else if(!dist){break}else{let take=Math.min(dist,tile.length-index);if(walker)walker.skip(tile,index,index+take);dist-=take;index+=take}}else if(beforeBreak){if(!dist)break;if(walker)walker.break();dist--;beforeBreak=false}else if(index==tile.children.length){if(!dist&&!parents.length)break;if(walker)walker.leave(tile);beforeBreak=!!tile.breakAfter;({tile:tile,index:index}=parents.pop());index++}else{let next=tile.children[index],brk=next.breakAfter;if((side>0?next.length<=dist:next.length<dist)&&(!walker||walker.skip(next,0,next.length)!==false||!next.isComposite)){beforeBreak=!!brk;index++;dist-=next.length}else{parents.push({tile:tile,index:index});tile=next;index=0;if(walker&&next.isComposite())walker.enter(next)}}}this.tile=tile;this.index=index;this.beforeBreak=beforeBreak;return this}get root(){return this.parents.length?this.parents[0].tile:this.tile}}class OpenWrapper{constructor(from,to,wrapper,rank){this.from=from;this.to=to;this.wrapper=wrapper;this.rank=rank}}class TileBuilder{constructor(cache,root,blockWrappers){this.cache=cache;this.root=root;this.blockWrappers=blockWrappers;this.curLine=null;this.lastBlock=null;this.afterWidget=null;this.pos=0;this.wrappers=[];this.wrapperPos=0}addText(text,marks,openStart,tile){var _a;this.flushBuffer();let parent=this.ensureMarks(marks,openStart);let prev=parent.lastChild;if(prev&&prev.isText()&&!(prev.flags&8)&&prev.length+text.length<512){this.cache.reused.set(prev,2);let tile=parent.children[parent.children.length-1]=new TextTile(prev.dom,prev.text+text);tile.parent=parent}else{parent.append(tile||TextTile.of(text,(_a=this.cache.find(TextTile))===null||_a===void 0?void 0:_a.dom))}this.pos+=text.length;this.afterWidget=null}addComposition(composition,context){let line=this.curLine;if(line.dom!=context.line.dom){line.setDOM(this.cache.reused.has(context.line)?freeNode(context.line.dom):context.line.dom);this.cache.reused.set(context.line,2)}let head=line;for(let i=context.marks.length-1;i>=0;i--){let mark=context.marks[i];let last=head.lastChild;if(last instanceof MarkTile&&last.mark.eq(mark.mark)){if(last.dom!=mark.dom)last.setDOM(freeNode(mark.dom));head=last}else{if(this.cache.reused.get(mark)){let tile=Tile.get(mark.dom);if(tile)tile.setDOM(freeNode(mark.dom))}let nw=MarkTile.of(mark.mark,mark.dom);head.append(nw);head=nw}this.cache.reused.set(mark,2)}let oldTile=Tile.get(composition.text);if(oldTile)this.cache.reused.set(oldTile,2);let text=new TextTile(composition.text,composition.text.nodeValue);text.flags|=8;this.pos=composition.range.toB;head.append(text)}addInlineWidget(widget,marks,openStart){let noSpace=this.afterWidget&&widget.flags&48&&(this.afterWidget.flags&48)==(widget.flags&48);if(!noSpace)this.flushBuffer();let parent=this.ensureMarks(marks,openStart);if(!noSpace&&!(widget.flags&16))parent.append(this.getBuffer(1));parent.append(widget);this.pos+=widget.length;this.afterWidget=widget}addMark(tile,marks,openStart){this.flushBuffer();let parent=this.ensureMarks(marks,openStart);parent.append(tile);this.pos+=tile.length;this.afterWidget=null}addBlockWidget(widget){this.getBlockPos().append(widget);this.pos+=widget.length;this.lastBlock=widget;this.endLine()}continueWidget(length){let widget=this.afterWidget||this.lastBlock;widget.length+=length;this.pos+=length}addLineStart(attrs,dom){var _a;if(!attrs)attrs=lineBaseAttrs;let tile=LineTile.start(attrs,dom||((_a=this.cache.find(LineTile))===null||_a===void 0?void 0:_a.dom),!!dom);this.getBlockPos().append(this.lastBlock=this.curLine=tile)}addLine(tile){this.getBlockPos().append(tile);this.pos+=tile.length;this.lastBlock=tile;this.endLine()}addBreak(){this.lastBlock.flags|=1;this.endLine();this.pos++}addLineStartIfNotCovered(attrs){if(!this.blockPosCovered())this.addLineStart(attrs)}ensureLine(attrs){if(!this.curLine)this.addLineStart(attrs)}ensureMarks(marks,openStart){var _a;let parent=this.curLine;for(let i=marks.length-1;i>=0;i--){let mark=marks[i],last;if(openStart>0&&(last=parent.lastChild)&&last instanceof MarkTile&&last.mark.eq(mark)){parent=last;openStart--}else{let tile=MarkTile.of(mark,(_a=this.cache.find(MarkTile,m=>m.mark.eq(mark)))===null||_a===void 0?void 0:_a.dom);parent.append(tile);parent=tile;openStart=0}}return parent}endLine(){if(this.curLine){this.flushBuffer();let last=this.curLine.lastChild;if(!last||!hasContent(this.curLine,false)||last.dom.nodeName!="BR"&&last.isWidget()&&!(browser.ios&&hasContent(this.curLine,true)))this.curLine.append(this.cache.findWidget(BreakWidget,0,32)||new WidgetTile(BreakWidget.toDOM(),0,BreakWidget,32));this.curLine=this.afterWidget=null}}updateBlockWrappers(){if(this.wrapperPos>this.pos+1e4){this.blockWrappers.goto(this.pos);this.wrappers.length=0}for(let i=this.wrappers.length-1;i>=0;i--)if(this.wrappers[i].to<this.pos)this.wrappers.splice(i,1);for(let cur=this.blockWrappers;cur.value&&cur.from<=this.pos;cur.next())if(cur.to>=this.pos){let rank=cur.rank*102+cur.value.rank;let wrap=new OpenWrapper(cur.from,cur.to,cur.value,rank),i=this.wrappers.length;while(i>0&&(this.wrappers[i-1].rank-wrap.rank||this.wrappers[i-1].to-wrap.to)<0)i--;this.wrappers.splice(i,0,wrap)}this.wrapperPos=this.pos}getBlockPos(){var _a;this.updateBlockWrappers();let parent=this.root;for(let wrap of this.wrappers){let last=parent.lastChild;if(wrap.from<this.pos&&last instanceof BlockWrapperTile&&last.wrapper.eq(wrap.wrapper)){parent=last}else{let tile=BlockWrapperTile.of(wrap.wrapper,(_a=this.cache.find(BlockWrapperTile,t=>t.wrapper.eq(wrap.wrapper)))===null||_a===void 0?void 0:_a.dom);parent.append(tile);parent=tile}}return parent}blockPosCovered(){let last=this.lastBlock;return last!=null&&!last.breakAfter&&(!last.isWidget()||(last.flags&(32|128))>0)}getBuffer(side){let flags=2|(side<0?16:32);let found=this.cache.find(WidgetBufferTile,undefined,1);if(found)found.flags=flags;return found||new WidgetBufferTile(flags)}flushBuffer(){if(this.afterWidget&&!(this.afterWidget.flags&32)){this.afterWidget.parent.append(this.getBuffer(-1));this.afterWidget=null}}}class TextStream{constructor(doc){this.skipCount=0;this.text="";this.textOff=0;this.cursor=doc.iter()}skip(len){if(this.textOff+len<=this.text.length){this.textOff+=len}else{this.skipCount+=len-(this.text.length-this.textOff);this.text="";this.textOff=0}}next(maxLen){if(this.textOff==this.text.length){let{value:value,lineBreak:lineBreak,done:done}=this.cursor.next(this.skipCount);this.skipCount=0;if(done)throw new Error("Ran out of text content when drawing inline views");this.text=value;let len=this.textOff=Math.min(maxLen,value.length);return lineBreak?null:value.slice(0,len)}let end=Math.min(this.text.length,this.textOff+maxLen);let chars=this.text.slice(this.textOff,end);this.textOff=end;return chars}}const buckets=[WidgetTile,LineTile,TextTile,MarkTile,WidgetBufferTile,BlockWrapperTile,DocTile];for(let i=0;i<buckets.length;i++)buckets[i].bucket=i;class TileCache{constructor(view){this.view=view;this.buckets=buckets.map(()=>[]);this.index=buckets.map(()=>0);this.reused=new Map}add(tile){let i=tile.constructor.bucket,bucket=this.buckets[i];if(bucket.length<6)bucket.push(tile);else bucket[this.index[i]=(this.index[i]+1)%6]=tile}find(cls,test,type=2){let i=cls.bucket;let bucket=this.buckets[i],off=this.index[i];for(let j=bucket.length-1;j>=0;j--){let index=(j+off)%bucket.length,tile=bucket[index];if((!test||test(tile))&&!this.reused.has(tile)){bucket.splice(index,1);if(index<off)this.index[i]--;this.reused.set(tile,type);return tile}}return null}findWidget(widget,length,flags){let widgets=this.buckets[0];if(widgets.length)for(let i=0,pass=0;;i++){if(i==widgets.length){if(pass)return null;pass=1;i=0}let tile=widgets[i];if(!this.reused.has(tile)&&(pass==0?tile.widget.compare(widget):tile.widget.constructor==widget.constructor&&widget.updateDOM(tile.dom,this.view,tile.widget))){widgets.splice(i,1);if(i<this.index[0])this.index[0]--;if(tile.widget==widget&&tile.length==length&&(tile.flags&(496|1))==flags){this.reused.set(tile,1);return tile}else{this.reused.set(tile,2);return new WidgetTile(tile.dom,length,widget,tile.flags&-498|flags)}}}}reuse(tile){this.reused.set(tile,1);return tile}maybeReuse(tile,type=2){if(this.reused.has(tile))return undefined;this.reused.set(tile,type);return tile.dom}clear(){for(let i=0;i<this.buckets.length;i++)this.buckets[i].length=this.index[i]=0}}class TileUpdate{constructor(view,old,blockWrappers,decorations,disallowBlockEffectsFor){this.view=view;this.decorations=decorations;this.disallowBlockEffectsFor=disallowBlockEffectsFor;this.openWidget=false;this.openMarks=0;this.cache=new TileCache(view);this.text=new TextStream(view.state.doc);this.builder=new TileBuilder(this.cache,new DocTile(view,view.contentDOM),RangeSet.iter(blockWrappers));this.cache.reused.set(old,2);this.old=new TilePointer(old);this.reuseWalker={skip:(tile,from,to)=>{this.cache.add(tile);if(tile.isComposite())return false},enter:tile=>this.cache.add(tile),leave:()=>{},break:()=>{}}}run(changes,composition){let compositionContext=composition&&this.getCompositionContext(composition.text);for(let posA=0,posB=0,i=0;;){let next=i<changes.length?changes[i++]:null;let skipA=next?next.fromA:this.old.root.length;if(skipA>posA){let len=skipA-posA;this.preserve(len,!i,!next);posA=skipA;posB+=len}if(!next)break;if(composition&&next.fromA<=composition.range.fromA&&next.toA>=composition.range.toA){this.forward(next.fromA,composition.range.fromA,composition.range.fromA<composition.range.toA?1:-1);this.emit(posB,composition.range.fromB);this.builder.flushBuffer();this.cache.clear();this.builder.addComposition(composition,compositionContext);this.text.skip(composition.range.toB-composition.range.fromB);this.forward(composition.range.fromA,next.toA);this.emit(composition.range.toB,next.toB)}else{this.forward(next.fromA,next.toA);this.emit(posB,next.toB)}posB=next.toB;posA=next.toA}if(this.builder.curLine)this.builder.endLine();return this.builder.root}preserve(length,incStart,incEnd){let activeMarks=getMarks(this.old),openMarks=this.openMarks;this.old.advance(length,incEnd?1:-1,{skip:(tile,from,to)=>{if(tile.isWidget()){if(this.openWidget){this.builder.continueWidget(to-from)}else{let widget=to>0||from<tile.length?WidgetTile.of(tile.widget,this.view,to-from,tile.flags&496,this.cache.maybeReuse(tile)):this.cache.reuse(tile);if(widget.flags&256){widget.flags&=-2;this.builder.addBlockWidget(widget)}else{this.builder.ensureLine(null);this.builder.addInlineWidget(widget,activeMarks,openMarks);openMarks=activeMarks.length}}}else if(tile.isText()){this.builder.ensureLine(null);if(!from&&to==tile.length&&!this.cache.reused.has(tile)){this.builder.addText(tile.text,activeMarks,openMarks,this.cache.reuse(tile))}else{this.cache.add(tile);this.builder.addText(tile.text.slice(from,to),activeMarks,openMarks)}openMarks=activeMarks.length}else if(tile.isLine()){tile.flags&=-2;this.cache.reused.set(tile,1);this.builder.addLine(tile)}else if(tile instanceof WidgetBufferTile){this.cache.add(tile)}else if(tile instanceof MarkTile){this.builder.ensureLine(null);this.builder.addMark(tile,activeMarks,openMarks);this.cache.reused.set(tile,1);openMarks=activeMarks.length}else{return false}this.openWidget=false},enter:tile=>{if(tile.isLine()){this.builder.addLineStart(tile.attrs,this.cache.maybeReuse(tile))}else{this.cache.add(tile);if(tile instanceof MarkTile)activeMarks.unshift(tile.mark)}this.openWidget=false},leave:tile=>{if(tile.isLine()){if(activeMarks.length)activeMarks.length=openMarks=0}else if(tile instanceof MarkTile){activeMarks.shift();openMarks=Math.min(openMarks,activeMarks.length)}},break:()=>{this.builder.addBreak();this.openWidget=false}});this.text.skip(length)}emit(from,to){let pendingLineAttrs=null;let b=this.builder,markCount=0;let openEnd=RangeSet.spans(this.decorations,from,to,{point:(from,to,deco,active,openStart,index)=>{if(deco instanceof PointDecoration){if(this.disallowBlockEffectsFor[index]){if(deco.block)throw new RangeError("Block decorations may not be specified via plugins");if(to>this.view.state.doc.lineAt(from).to)throw new RangeError("Decorations that replace line breaks may not be specified via plugins")}markCount=active.length;if(openStart>active.length){b.continueWidget(to-from)}else{let widget=deco.widget||(deco.block?NullWidget.block:NullWidget.inline);let flags=widgetFlags(deco);let tile=this.cache.findWidget(widget,to-from,flags)||WidgetTile.of(widget,this.view,to-from,flags);if(deco.block){if(deco.startSide>0)b.addLineStartIfNotCovered(pendingLineAttrs);b.addBlockWidget(tile)}else{b.ensureLine(pendingLineAttrs);b.addInlineWidget(tile,active,openStart)}}pendingLineAttrs=null}else{pendingLineAttrs=addLineDeco(pendingLineAttrs,deco)}if(to>from)this.text.skip(to-from)},span:(from,to,active,openStart)=>{for(let pos=from;pos<to;){let chars=this.text.next(Math.min(512,to-pos));if(chars==null){b.addLineStartIfNotCovered(pendingLineAttrs);b.addBreak();pos++}else{b.ensureLine(pendingLineAttrs);b.addText(chars,active,pos==from?openStart:active.length);pos+=chars.length}pendingLineAttrs=null}}});b.addLineStartIfNotCovered(pendingLineAttrs);this.openWidget=openEnd>markCount;this.openMarks=openEnd}forward(from,to,side=1){if(to-from<=10){this.old.advance(to-from,side,this.reuseWalker)}else{this.old.advance(5,-1,this.reuseWalker);this.old.advance(to-from-10,-1);this.old.advance(5,side,this.reuseWalker)}}getCompositionContext(text){let marks=[],line=null;for(let parent=text.parentNode;;parent=parent.parentNode){let tile=Tile.get(parent);if(parent==this.view.contentDOM)break;if(tile instanceof MarkTile)marks.push(tile);else if(tile===null||tile===void 0?void 0:tile.isLine())line=tile;else if(tile instanceof BlockWrapperTile);else if(parent.nodeName=="DIV"&&!line&&parent!=this.view.contentDOM)line=new LineTile(parent,lineBaseAttrs);else if(!line)marks.push(MarkTile.of(new MarkDecoration({tagName:parent.nodeName.toLowerCase(),attributes:getAttrs(parent)}),parent))}return{line:line,marks:marks}}}function hasContent(tile,requireText){let scan=tile=>{for(let ch of tile.children)if((requireText?ch.isText():ch.length)||scan(ch))return true;return false};return scan(tile)}function widgetFlags(deco){let flags=deco.isReplace?(deco.startSide<0?64:0)|(deco.endSide>0?128:0):deco.startSide>0?32:16;if(deco.block)flags|=256;return flags}const lineBaseAttrs={class:"cm-line"};function addLineDeco(value,deco){let attrs=deco.spec.attributes,cls=deco.spec.class;if(!attrs&&!cls)return value;if(!value)value={class:"cm-line"};if(attrs)combineAttrs(attrs,value);if(cls)value.class+=" "+cls;return value}function getMarks(ptr){let found=[];for(let i=ptr.parents.length;i>1;i--){let tile=i==ptr.parents.length?ptr.tile:ptr.parents[i].tile;if(tile instanceof MarkTile)found.push(tile.mark)}return found}function freeNode(node){let tile=Tile.get(node);if(tile)tile.setDOM(node.cloneNode());return node}class NullWidget extends WidgetType{constructor(tag){super();this.tag=tag}eq(other){return other.tag==this.tag}toDOM(){return document.createElement(this.tag)}updateDOM(elt){return elt.nodeName.toLowerCase()==this.tag}get isHidden(){return true}}NullWidget.inline=new NullWidget("span");NullWidget.block=new NullWidget("div");const BreakWidget=new class extends WidgetType{toDOM(){return document.createElement("br")}get isHidden(){return true}get editable(){return true}};class DocView{constructor(view){this.view=view;this.decorations=[];this.blockWrappers=[];this.dynamicDecorationMap=[false];this.domChanged=null;this.hasComposition=null;this.editContextFormatting=Decoration.none;this.lastCompositionAfterCursor=false;this.minWidth=0;this.minWidthFrom=0;this.minWidthTo=0;this.impreciseAnchor=null;this.impreciseHead=null;this.forceSelection=false;this.lastUpdate=Date.now();this.updateDeco();this.tile=new DocTile(view,view.contentDOM);this.updateInner([new ChangedRange(0,0,0,view.state.doc.length)],null)}update(update){var _a;let changedRanges=update.changedRanges;if(this.minWidth>0&&changedRanges.length){if(!changedRanges.every(({fromA:fromA,toA:toA})=>toA<this.minWidthFrom||fromA>this.minWidthTo)){this.minWidth=this.minWidthFrom=this.minWidthTo=0}else{this.minWidthFrom=update.changes.mapPos(this.minWidthFrom,1);this.minWidthTo=update.changes.mapPos(this.minWidthTo,1)}}this.updateEditContextFormatting(update);let readCompositionAt=-1;if(this.view.inputState.composing>=0&&!this.view.observer.editContext){if((_a=this.domChanged)===null||_a===void 0?void 0:_a.newSel)readCompositionAt=this.domChanged.newSel.head;else if(!touchesComposition(update.changes,this.hasComposition)&&!update.selectionSet)readCompositionAt=update.state.selection.main.head}let composition=readCompositionAt>-1?findCompositionRange(this.view,update.changes,readCompositionAt):null;this.domChanged=null;if(this.hasComposition){let{from:from,to:to}=this.hasComposition;changedRanges=new ChangedRange(from,to,update.changes.mapPos(from,-1),update.changes.mapPos(to,1)).addToSet(changedRanges.slice())}this.hasComposition=composition?{from:composition.range.fromB,to:composition.range.toB}:null;if((browser.ie||browser.chrome)&&!composition&&update&&update.state.doc.lines!=update.startState.doc.lines)this.forceSelection=true;let prevDeco=this.decorations,prevWrappers=this.blockWrappers;this.updateDeco();let decoDiff=findChangedDeco(prevDeco,this.decorations,update.changes);if(decoDiff.length)changedRanges=ChangedRange.extendWithRanges(changedRanges,decoDiff);let blockDiff=findChangedWrappers(prevWrappers,this.blockWrappers,update.changes);if(blockDiff.length)changedRanges=ChangedRange.extendWithRanges(changedRanges,blockDiff);if(composition&&!changedRanges.some(r=>r.fromA<=composition.range.fromA&&r.toA>=composition.range.toA))changedRanges=composition.range.addToSet(changedRanges.slice());if(this.tile.flags&2&&changedRanges.length==0){return false}else{this.updateInner(changedRanges,composition);if(update.transactions.length)this.lastUpdate=Date.now();return true}}updateInner(changes,composition){this.view.viewState.mustMeasureContent=true;let{observer:observer}=this.view;observer.ignore(()=>{if(composition||changes.length){let oldTile=this.tile;let builder=new TileUpdate(this.view,oldTile,this.blockWrappers,this.decorations,this.dynamicDecorationMap);if(composition&&Tile.get(composition.text))builder.cache.reused.set(Tile.get(composition.text),2);this.tile=builder.run(changes,composition);destroyDropped(oldTile,builder.cache.reused)}this.tile.dom.style.height=this.view.viewState.contentHeight/this.view.scaleY+"px";this.tile.dom.style.flexBasis=this.minWidth?this.minWidth+"px":"";let track=browser.chrome||browser.ios?{node:observer.selectionRange.focusNode,written:false}:undefined;this.tile.sync(track);if(track&&(track.written||observer.selectionRange.focusNode!=track.node||!this.tile.dom.contains(track.node)))this.forceSelection=true;this.tile.dom.style.height=""});let gaps=[];if(this.view.viewport.from||this.view.viewport.to<this.view.state.doc.length)for(let child of this.tile.children)if(child.isWidget()&&child.widget instanceof BlockGapWidget)gaps.push(child.dom);observer.updateGaps(gaps)}updateEditContextFormatting(update){this.editContextFormatting=this.editContextFormatting.map(update.changes);for(let tr of update.transactions)for(let effect of tr.effects)if(effect.is(setEditContextFormatting)){this.editContextFormatting=effect.value}}updateSelection(mustRead=false,fromPointer=false){if(mustRead||!this.view.observer.selectionRange.focusNode)this.view.observer.readSelectionRange();let{dom:dom}=this.tile;let activeElt=this.view.root.activeElement,focused=activeElt==dom;let selectionNotFocus=!focused&&!(this.view.state.facet(editable)||dom.tabIndex>-1)&&hasSelection(dom,this.view.observer.selectionRange)&&!(activeElt&&dom.contains(activeElt));if(!(focused||fromPointer||selectionNotFocus))return;let force=this.forceSelection;this.forceSelection=false;let main=this.view.state.selection.main,anchor,head;if(main.empty){head=anchor=this.inlineDOMNearPos(main.anchor,main.assoc||1)}else{head=this.inlineDOMNearPos(main.head,main.head==main.from?1:-1);anchor=this.inlineDOMNearPos(main.anchor,main.anchor==main.from?1:-1)}if(browser.gecko&&main.empty&&!this.hasComposition&&betweenUneditable(anchor)){let dummy=document.createTextNode("");this.view.observer.ignore(()=>anchor.node.insertBefore(dummy,anchor.node.childNodes[anchor.offset]||null));anchor=head=new DOMPos(dummy,0);force=true}let domSel=this.view.observer.selectionRange;if(force||!domSel.focusNode||(!isEquivalentPosition(anchor.node,anchor.offset,domSel.anchorNode,domSel.anchorOffset)||!isEquivalentPosition(head.node,head.offset,domSel.focusNode,domSel.focusOffset))&&!this.suppressWidgetCursorChange(domSel,main)){this.view.observer.ignore(()=>{if(browser.android&&browser.chrome&&dom.contains(domSel.focusNode)&&inUneditable(domSel.focusNode,dom)){dom.blur();dom.focus({preventScroll:true})}let rawSel=getSelection(this.view.root);if(!rawSel);else if(main.empty){if(browser.gecko){let nextTo=nextToUneditable(anchor.node,anchor.offset);if(nextTo&&nextTo!=(1|2)){let text=(nextTo==1?textNodeBefore:textNodeAfter)(anchor.node,anchor.offset);if(text)anchor=new DOMPos(text.node,text.offset)}}rawSel.collapse(anchor.node,anchor.offset);if(main.bidiLevel!=null&&rawSel.caretBidiLevel!==undefined)rawSel.caretBidiLevel=main.bidiLevel}else if(rawSel.extend){rawSel.collapse(anchor.node,anchor.offset);try{rawSel.extend(head.node,head.offset)}catch(_){}}else{let range=document.createRange();if(main.anchor>main.head)[anchor,head]=[head,anchor];range.setEnd(head.node,head.offset);range.setStart(anchor.node,anchor.offset);rawSel.removeAllRanges();rawSel.addRange(range)}if(selectionNotFocus&&this.view.root.activeElement==dom){dom.blur();if(activeElt)activeElt.focus()}});this.view.observer.setSelectionRange(anchor,head)}this.impreciseAnchor=anchor.precise?null:new DOMPos(domSel.anchorNode,domSel.anchorOffset);this.impreciseHead=head.precise?null:new DOMPos(domSel.focusNode,domSel.focusOffset)}suppressWidgetCursorChange(sel,cursor){return this.hasComposition&&cursor.empty&&isEquivalentPosition(sel.focusNode,sel.focusOffset,sel.anchorNode,sel.anchorOffset)&&this.posFromDOM(sel.focusNode,sel.focusOffset)==cursor.head}enforceCursorAssoc(){if(this.hasComposition)return;let{view:view}=this,cursor=view.state.selection.main;let sel=getSelection(view.root);let{anchorNode:anchorNode,anchorOffset:anchorOffset}=view.observer.selectionRange;if(!sel||!cursor.empty||!cursor.assoc||!sel.modify)return;let line=this.lineAt(cursor.head,cursor.assoc);if(!line)return;let lineStart=line.posAtStart;if(cursor.head==lineStart||cursor.head==lineStart+line.length)return;let before=this.coordsAt(cursor.head,-1),after=this.coordsAt(cursor.head,1);if(!before||!after||before.bottom>after.top)return;let dom=this.domAtPos(cursor.head+cursor.assoc,cursor.assoc);sel.collapse(dom.node,dom.offset);sel.modify("move",cursor.assoc<0?"forward":"backward","lineboundary");view.observer.readSelectionRange();let newRange=view.observer.selectionRange;if(view.docView.posFromDOM(newRange.anchorNode,newRange.anchorOffset)!=cursor.from)sel.collapse(anchorNode,anchorOffset)}posFromDOM(node,offset){let tile=this.tile.nearest(node);if(!tile)return this.tile.dom.compareDocumentPosition(node)&2?0:this.view.state.doc.length;let start=tile.posAtStart;if(tile.isComposite()){let after;if(node==tile.dom){after=tile.dom.childNodes[offset]}else{let bias=maxOffset(node)==0?0:offset==0?-1:1;for(;;){let parent=node.parentNode;if(parent==tile.dom)break;if(bias==0&&parent.firstChild!=parent.lastChild){if(node==parent.firstChild)bias=-1;else bias=1}node=parent}if(bias<0)after=node;else after=node.nextSibling}if(after==tile.dom.firstChild)return start;while(after&&!Tile.get(after))after=after.nextSibling;if(!after)return start+tile.length;for(let i=0,pos=start;;i++){let child=tile.children[i];if(child.dom==after)return pos;pos+=child.length+child.breakAfter}}else if(tile.isText()){return node==tile.dom?start+offset:start+(offset?tile.length:0)}else{return start}}domAtPos(pos,side){let{tile:tile,offset:offset}=this.tile.resolveBlock(pos,side);if(tile.isWidget())return tile.domPosFor(pos,side);return tile.domIn(offset,side)}inlineDOMNearPos(pos,side){let before,beforeOff=-1,beforeBad=false;let after,afterOff=-1,afterBad=false;this.tile.blockTiles((tile,off)=>{if(tile.isWidget()){if(tile.flags&32&&off>=pos)return true;if(tile.flags&16)beforeBad=true}else{let end=off+tile.length;if(off<=pos){before=tile;beforeOff=pos-off;beforeBad=end<pos}if(end>=pos&&!after){after=tile;afterOff=pos-off;afterBad=off>pos}if(off>pos&&after)return true}});if(!before&&!after)return this.domAtPos(pos,side);if(beforeBad&&after)before=null;else if(afterBad&&before)after=null;return before&&side<0||!after?before.domIn(beforeOff,side):after.domIn(afterOff,side)}coordsAt(pos,side){let{tile:tile,offset:offset}=this.tile.resolveBlock(pos,side);if(tile.isWidget()){if(tile.widget instanceof BlockGapWidget)return null;return tile.coordsInWidget(offset,side,true)}return tile.coordsIn(offset,side)}lineAt(pos,side){let{tile:tile}=this.tile.resolveBlock(pos,side);return tile.isLine()?tile:null}coordsForChar(pos){let{tile:tile,offset:offset}=this.tile.resolveBlock(pos,1);if(!tile.isLine())return null;function scan(tile,offset){if(tile.isComposite()){for(let ch of tile.children){if(ch.length>=offset){let found=scan(ch,offset);if(found)return found}offset-=ch.length;if(offset<0)break}}else if(tile.isText()&&offset<tile.length){let end=findClusterBreak(tile.text,offset);if(end==offset)return null;let rects=textRange(tile.dom,offset,end).getClientRects();for(let i=0;i<rects.length;i++){let rect=rects[i];if(i==rects.length-1||rect.top<rect.bottom&&rect.left<rect.right)return rect}}return null}return scan(tile,offset)}measureVisibleLineHeights(viewport){let result=[],{from:from,to:to}=viewport;let contentWidth=this.view.contentDOM.clientWidth;let isWider=contentWidth>Math.max(this.view.scrollDOM.clientWidth,this.minWidth)+1;let widest=-1,ltr=this.view.textDirection==Direction.LTR;let spaceAbove=0;let scan=(tile,pos,measureBounds)=>{for(let i=0;i<tile.children.length;i++){if(pos>to)break;let child=tile.children[i],end=pos+child.length;let childRect=child.dom.getBoundingClientRect(),{height:height}=childRect;if(measureBounds&&!i)spaceAbove+=childRect.top-measureBounds.top;if(child instanceof BlockWrapperTile){if(end>from)scan(child,pos,childRect)}else if(pos>=from){if(spaceAbove>0)result.push(-spaceAbove);result.push(height+spaceAbove);spaceAbove=0;if(isWider){let last=child.dom.lastChild;let rects=last?clientRectsFor(last):[];if(rects.length){let rect=rects[rects.length-1];let width=ltr?rect.right-childRect.left:childRect.right-rect.left;if(width>widest){widest=width;this.minWidth=contentWidth;this.minWidthFrom=pos;this.minWidthTo=end}}}}if(measureBounds&&i==tile.children.length-1)spaceAbove+=measureBounds.bottom-childRect.bottom;pos=end+child.breakAfter}};scan(this.tile,0,null);return result}textDirectionAt(pos){let{tile:tile}=this.tile.resolveBlock(pos,1);return getComputedStyle(tile.dom).direction=="rtl"?Direction.RTL:Direction.LTR}measureTextSize(){let lineMeasure=this.tile.blockTiles(tile=>{if(tile.isLine()&&tile.children.length&&tile.length<=20){let totalWidth=0,textHeight;for(let child of tile.children){if(!child.isText()||/[^ -~]/.test(child.text))return undefined;let rects=clientRectsFor(child.dom);if(rects.length!=1)return undefined;totalWidth+=rects[0].width;textHeight=rects[0].height}if(totalWidth)return{lineHeight:tile.dom.getBoundingClientRect().height,charWidth:totalWidth/tile.length,textHeight:textHeight}}});if(lineMeasure)return lineMeasure;let dummy=document.createElement("div"),lineHeight,charWidth,textHeight;dummy.className="cm-line";dummy.style.width="99999px";dummy.style.position="absolute";dummy.textContent="abc def ghi jkl mno pqr stu";this.view.observer.ignore(()=>{this.tile.dom.appendChild(dummy);let rect=clientRectsFor(dummy.firstChild)[0];lineHeight=dummy.getBoundingClientRect().height;charWidth=rect&&rect.width?rect.width/27:7;textHeight=rect&&rect.height?rect.height:lineHeight;dummy.remove()});return{lineHeight:lineHeight,charWidth:charWidth,textHeight:textHeight}}computeBlockGapDeco(){let deco=[],vs=this.view.viewState;for(let pos=0,i=0;;i++){let next=i==vs.viewports.length?null:vs.viewports[i];let end=next?next.from-1:this.view.state.doc.length;if(end>pos){let height=(vs.lineBlockAt(end).bottom-vs.lineBlockAt(pos).top)/this.view.scaleY;deco.push(Decoration.replace({widget:new BlockGapWidget(height),block:true,inclusive:true,isBlockGap:true}).range(pos,end))}if(!next)break;pos=next.to+1}return Decoration.set(deco)}updateDeco(){let i=1;let allDeco=this.view.state.facet(decorations).map(d=>{let dynamic=this.dynamicDecorationMap[i++]=typeof d=="function";return dynamic?d(this.view):d});let dynamicOuter=false,outerDeco=this.view.state.facet(outerDecorations).map((d,i)=>{let dynamic=typeof d=="function";if(dynamic)dynamicOuter=true;return dynamic?d(this.view):d});if(outerDeco.length){this.dynamicDecorationMap[i++]=dynamicOuter;allDeco.push(RangeSet.join(outerDeco))}this.decorations=[this.editContextFormatting,...allDeco,this.computeBlockGapDeco(),this.view.viewState.lineGapDeco];while(i<this.decorations.length)this.dynamicDecorationMap[i++]=false;this.blockWrappers=this.view.state.facet(blockWrappers).map(v=>typeof v=="function"?v(this.view):v)}scrollIntoView(target){var _a;if(target.isSnapshot){let ref=this.view.viewState.lineBlockAt(target.range.head);this.view.scrollDOM.scrollTop=ref.top-target.yMargin;this.view.scrollDOM.scrollLeft=target.xMargin;return}for(let handler of this.view.state.facet(scrollHandler)){try{if(handler(this.view,target.range,target))return true}catch(e){logException(this.view.state,e,"scroll handler")}}let{range:range}=target;let rect=this.coordsAt(range.head,(_a=range.assoc)!==null&&_a!==void 0?_a:range.empty?0:range.head>range.anchor?-1:1),other;if(!rect)return;if(!range.empty&&(other=this.coordsAt(range.anchor,range.anchor>range.head?-1:1)))rect={left:Math.min(rect.left,other.left),top:Math.min(rect.top,other.top),right:Math.max(rect.right,other.right),bottom:Math.max(rect.bottom,other.bottom)};let margins=getScrollMargins(this.view);let targetRect={left:rect.left-margins.left,top:rect.top-margins.top,right:rect.right+margins.right,bottom:rect.bottom+margins.bottom};let{offsetWidth:offsetWidth,offsetHeight:offsetHeight}=this.view.scrollDOM;scrollRectIntoView(this.view.scrollDOM,targetRect,range.head<range.anchor?-1:1,target.x,target.y,Math.max(Math.min(target.xMargin,offsetWidth),-offsetWidth),Math.max(Math.min(target.yMargin,offsetHeight),-offsetHeight),this.view.textDirection==Direction.LTR);if(window.visualViewport&&window.innerHeight-window.visualViewport.height>1&&(rect.top>window.pageYOffset+window.visualViewport.offsetTop+window.visualViewport.height||rect.bottom<window.pageYOffset+window.visualViewport.offsetTop)){let line=this.view.docView.lineAt(range.head,1);if(line)line.dom.scrollIntoView({block:"nearest"})}}lineHasWidget(pos){let scan=child=>child.isWidget()||child.children.some(scan);return scan(this.tile.resolveBlock(pos,1).tile)}destroy(){destroyDropped(this.tile)}}function destroyDropped(tile,reused){let r=reused===null||reused===void 0?void 0:reused.get(tile);if(r!=1){if(r==null)tile.destroy();for(let ch of tile.children)destroyDropped(ch,reused)}}function betweenUneditable(pos){return pos.node.nodeType==1&&pos.node.firstChild&&(pos.offset==0||pos.node.childNodes[pos.offset-1].contentEditable=="false")&&(pos.offset==pos.node.childNodes.length||pos.node.childNodes[pos.offset].contentEditable=="false")}function findCompositionNode(view,headPos){let sel=view.observer.selectionRange;if(!sel.focusNode)return null;let textBefore=textNodeBefore(sel.focusNode,sel.focusOffset);let textAfter=textNodeAfter(sel.focusNode,sel.focusOffset);let textNode=textBefore||textAfter;if(textAfter&&textBefore&&textAfter.node!=textBefore.node){let tileAfter=Tile.get(textAfter.node);if(!tileAfter||tileAfter.isText()&&tileAfter.text!=textAfter.node.nodeValue){textNode=textAfter}else if(view.docView.lastCompositionAfterCursor){let tileBefore=Tile.get(textBefore.node);if(!(!tileBefore||tileBefore.isText()&&tileBefore.text!=textBefore.node.nodeValue))textNode=textAfter}}view.docView.lastCompositionAfterCursor=textNode!=textBefore;if(!textNode)return null;let from=headPos-textNode.offset;return{from:from,to:from+textNode.node.nodeValue.length,node:textNode.node}}function findCompositionRange(view,changes,headPos){let found=findCompositionNode(view,headPos);if(!found)return null;let{node:textNode,from:from,to:to}=found,text=textNode.nodeValue;if(/[\n\r]/.test(text))return null;if(view.state.doc.sliceString(found.from,found.to)!=text)return null;let inv=changes.invertedDesc;return{range:new ChangedRange(inv.mapPos(from),inv.mapPos(to),from,to),text:textNode}}function nextToUneditable(node,offset){if(node.nodeType!=1)return 0;return(offset&&node.childNodes[offset-1].contentEditable=="false"?1:0)|(offset<node.childNodes.length&&node.childNodes[offset].contentEditable=="false"?2:0)}let DecorationComparator$1=class DecorationComparator{constructor(){this.changes=[]}compareRange(from,to){addRange(from,to,this.changes)}comparePoint(from,to){addRange(from,to,this.changes)}boundChange(pos){addRange(pos,pos,this.changes)}};function findChangedDeco(a,b,diff){let comp=new DecorationComparator$1;RangeSet.compare(a,b,diff,comp);return comp.changes}class WrapperComparator{constructor(){this.changes=[]}compareRange(from,to){addRange(from,to,this.changes)}comparePoint(){}boundChange(pos){addRange(pos,pos,this.changes)}}function findChangedWrappers(a,b,diff){let comp=new WrapperComparator;RangeSet.compare(a,b,diff,comp);return comp.changes}function inUneditable(node,inside){for(let cur=node;cur&&cur!=inside;cur=cur.assignedSlot||cur.parentNode){if(cur.nodeType==1&&cur.contentEditable=="false"){return true}}return false}function touchesComposition(changes,composition){let touched=false;if(composition)changes.iterChangedRanges((from,to)=>{if(from<composition.to&&to>composition.from)touched=true});return touched}class BlockGapWidget extends WidgetType{constructor(height){super();this.height=height}toDOM(){let elt=document.createElement("div");elt.className="cm-gap";this.updateDOM(elt);return elt}eq(other){return other.height==this.height}updateDOM(elt){elt.style.height=this.height+"px";return true}get editable(){return true}get estimatedHeight(){return this.height}ignoreEvent(){return false}}function groupAt(state,pos,bias=1){let categorize=state.charCategorizer(pos);let line=state.doc.lineAt(pos),linePos=pos-line.from;if(line.length==0)return EditorSelection.cursor(pos);if(linePos==0)bias=1;else if(linePos==line.length)bias=-1;let from=linePos,to=linePos;if(bias<0)from=findClusterBreak(line.text,linePos,false);else to=findClusterBreak(line.text,linePos);let cat=categorize(line.text.slice(from,to));while(from>0){let prev=findClusterBreak(line.text,from,false);if(categorize(line.text.slice(prev,from))!=cat)break;from=prev}while(to<line.length){let next=findClusterBreak(line.text,to);if(categorize(line.text.slice(to,next))!=cat)break;to=next}return EditorSelection.undirectionalRange(from+line.from,to+line.from)}function posAtCoordsImprecise(view,contentRect,block,x,y){let into=Math.round((x-contentRect.left)*view.defaultCharacterWidth);if(view.lineWrapping&&block.height>view.defaultLineHeight*1.5){let textHeight=view.viewState.heightOracle.textHeight;let line=Math.floor((y-block.top-(view.defaultLineHeight-textHeight)*.5)/textHeight);into+=line*view.viewState.heightOracle.lineLength}let content=view.state.sliceDoc(block.from,block.to);return block.from+findColumn(content,into,view.state.tabSize)}function blockAt(view,pos,side){let line=view.lineBlockAt(pos);if(Array.isArray(line.type)){let best;for(let l of line.type){if(l.from>pos)break;if(l.to<pos)continue;if(l.from<pos&&l.to>pos)return l;if(!best||l.type==BlockType.Text&&(best.type!=l.type||(side<0?l.from<pos:l.to>pos)))best=l}return best||line}return line}function moveToLineBoundary(view,start,forward,includeWrap){let line=blockAt(view,start.head,start.assoc||-1);let coords=!includeWrap||line.type!=BlockType.Text||!(view.lineWrapping||line.widgetLineBreaks)?null:view.coordsAtPos(start.assoc<0&&start.head>line.from?start.head-1:start.head);if(coords){let editorRect=view.dom.getBoundingClientRect();let direction=view.textDirectionAt(line.from);let pos=view.posAtCoords({x:forward==(direction==Direction.LTR)?editorRect.right-1:editorRect.left+1,y:(coords.top+coords.bottom)/2});if(pos!=null)return EditorSelection.cursor(pos,forward?-1:1)}return EditorSelection.cursor(forward?line.to:line.from,forward?-1:1)}function moveByChar(view,start,forward,by){let line=view.state.doc.lineAt(start.head),spans=view.bidiSpans(line);let direction=view.textDirectionAt(line.from);for(let cur=start,check=null;;){let next=moveVisually(line,spans,direction,cur,forward),char=movedOver;if(!next){if(line.number==(forward?view.state.doc.lines:1))return cur;char="\n";line=view.state.doc.line(line.number+(forward?1:-1));spans=view.bidiSpans(line);next=view.visualLineSide(line,!forward)}if(!check){if(!by)return next;check=by(char)}else if(!check(char)){return cur}cur=next}}function byGroup(view,pos,start){let categorize=view.state.charCategorizer(pos);let cat=categorize(start);return next=>{let nextCat=categorize(next);if(cat==CharCategory.Space)cat=nextCat;return cat==nextCat}}function moveVertically(view,start,forward,distance){let startPos=start.head,dir=forward?1:-1;if(startPos==(forward?view.state.doc.length:0))return EditorSelection.cursor(startPos,start.assoc);let goal=start.goalColumn,startY;let rect=view.contentDOM.getBoundingClientRect();let startCoords=view.coordsAtPos(startPos,start.assoc||((start.empty?forward:start.head==start.from)?1:-1));let docTop=view.documentTop;if(startCoords){if(goal==null)goal=startCoords.left-rect.left;startY=dir<0?startCoords.top:startCoords.bottom}else{let line=view.viewState.lineBlockAt(startPos);if(goal==null)goal=Math.min(rect.right-rect.left,view.defaultCharacterWidth*(startPos-line.from));startY=(dir<0?line.top:line.bottom)+docTop}let resolvedGoal=rect.left+goal;let halfText=view.viewState.heightOracle.textHeight>>1,dist=distance!==null&&distance!==void 0?distance:halfText;for(let scan=0;;scan+=halfText){let y=startY+(dist+scan)*dir;let pos=posAtCoords(view,{x:resolvedGoal,y:y},false,dir);if(forward?y>rect.bottom:y<rect.top)return EditorSelection.cursor(pos.pos,pos.assoc);let posCoords=view.coordsAtPos(pos.pos,pos.assoc),mid=posCoords?(posCoords.top+posCoords.bottom)/2:0;if(!posCoords||(forward?mid>startY:mid<startY))return EditorSelection.cursor(pos.pos,pos.assoc,undefined,goal)}}function skipAtomicRanges(atoms,pos,bias){for(;;){let moved=0;for(let set of atoms){set.between(pos-1,pos+1,(from,to,value)=>{if(pos>from&&pos<to){let side=moved||bias||(pos-from<to-pos?-1:1);pos=side<0?from:to;moved=side}})}if(!moved)return pos}}function skipAtomsForSelection(atoms,sel){let ranges=null;for(let i=0;i<sel.ranges.length;i++){let range=sel.ranges[i],updated=null;if(range.empty){let pos=skipAtomicRanges(atoms,range.from,0);if(pos!=range.from)updated=EditorSelection.cursor(pos,-1)}else{let from=skipAtomicRanges(atoms,range.from,-1);let to=skipAtomicRanges(atoms,range.to,1);if(from!=range.from||to!=range.to){if(range.undirectional)updated=EditorSelection.undirectionalRange(range.from,range.to);else updated=EditorSelection.range(range.from==range.anchor?from:to,range.from==range.head?from:to)}}if(updated){if(!ranges)ranges=sel.ranges.slice();ranges[i]=updated}}return ranges?EditorSelection.create(ranges,sel.mainIndex):sel}function skipAtoms(view,oldPos,pos){let newPos=skipAtomicRanges(view.state.facet(atomicRanges).map(f=>f(view)),pos.from,oldPos.head>pos.from?-1:1);return newPos==pos.from?pos:EditorSelection.cursor(newPos,newPos<pos.from?1:-1)}class PosAssoc{constructor(pos,assoc){this.pos=pos;this.assoc=assoc}}function posAtCoords(view,coords,precise,scanY){let content=view.contentDOM.getBoundingClientRect(),docTop=content.top+view.viewState.paddingTop;let{x:x,y:y}=coords,yOffset=y-docTop,block;for(;;){if(yOffset<0)return new PosAssoc(0,1);if(yOffset>view.viewState.docHeight)return new PosAssoc(view.state.doc.length,-1);block=view.elementAtHeight(yOffset);if(scanY==null)break;if(block.type==BlockType.Text){if(scanY<0?block.to<view.viewport.from:block.from>view.viewport.to)break;let rect=view.docView.coordsAt(scanY<0?block.from:block.to,scanY>0?-1:1);if(rect&&(scanY<0?rect.top<=yOffset+docTop:rect.bottom>=yOffset+docTop))break}let halfLine=view.viewState.heightOracle.textHeight/2;yOffset=scanY>0?block.bottom+halfLine:block.top-halfLine}if(view.viewport.from>=block.to||view.viewport.to<=block.from){if(precise)return null;if(block.type==BlockType.Text){let pos=posAtCoordsImprecise(view,content,block,x,y);return new PosAssoc(pos,pos==block.from?1:-1)}}if(block.type!=BlockType.Text)return yOffset<(block.top+block.bottom)/2?new PosAssoc(block.from,1):new PosAssoc(block.to,-1);let line=view.docView.lineAt(block.from,2);if(!line||line.length!=block.length)line=view.docView.lineAt(block.from,-2);return new InlineCoordsScan(view,x,y,view.textDirectionAt(block.from)).scanTile(line,block.from)}class InlineCoordsScan{constructor(view,x,y,baseDir){this.view=view;this.x=x;this.y=y;this.baseDir=baseDir;this.line=null;this.spans=null}bidiSpansAt(pos){if(!this.line||this.line.from>pos||this.line.to<pos){this.line=this.view.state.doc.lineAt(pos);this.spans=this.view.bidiSpans(this.line)}return this}baseDirAt(pos,side){let{line:line,spans:spans}=this.bidiSpansAt(pos);let level=spans[BidiSpan.find(spans,pos-line.from,-1,side)].level;return level==this.baseDir}dirAt(pos,side){let{line:line,spans:spans}=this.bidiSpansAt(pos);return spans[BidiSpan.find(spans,pos-line.from,-1,side)].dir}bidiIn(from,to){let{spans:spans,line:line}=this.bidiSpansAt(from);return spans.length>1||spans.length&&(spans[0].level!=this.baseDir||spans[0].to+line.from<to)}scan(positions,getRects,recursed=false){let lo=0,hi=positions.length-1,seen=new Set;let bidi=this.bidiIn(positions[0],positions[hi]);let above,below;let closestI=-1,closestDx=1e9,closestRect;search:while(lo<hi){let dist=hi-lo,mid=lo+hi>>1;adjust:if(seen.has(mid)){let scan=lo+Math.floor(Math.random()*dist);for(let i=0;i<dist;i++){if(!seen.has(scan)){mid=scan;break adjust}scan++;if(scan==hi)scan=lo}break search}seen.add(mid);let rects=getRects(mid);if(rects)for(let i=0;i<rects.length;i++){let rect=rects[i],side=0;if(rect.width==0&&rects.length>1)continue;if(rect.bottom<this.y){if(!above||above.bottom<rect.bottom)above=rect;side=1}else if(rect.top>this.y){if(!below||below.top>rect.top)below=rect;side=-1}else{let off=rect.left>this.x?this.x-rect.left:rect.right<this.x?this.x-rect.right:0;let dx=Math.abs(off);if(dx<closestDx){closestI=mid;closestDx=dx;closestRect=rect}if(off)side=off<0==(this.baseDir==Direction.LTR)?-1:1}if(side==-1&&(!bidi||this.baseDirAt(positions[mid],1)))hi=mid;else if(side==1&&(!bidi||this.baseDirAt(positions[mid+1],-1)))lo=mid+1}}if(!closestRect){if(!below&&!above)return{i:positions[0],after:false};let side=above&&(!below||this.y-above.bottom<below.top-this.y)?above:below;this.y=(side.top+side.bottom)/2;return this.scan(positions,getRects,true)}if(closestDx&&!recursed){let{top:top,bottom:bottom}=closestRect;if(above&&above.bottom>(top+top+bottom)/3){this.y=above.bottom-1;return this.scan(positions,getRects,true)}if(below&&below.top<(top+bottom+bottom)/3){this.y=below.top+1;return this.scan(positions,getRects,true)}}let ltr=(bidi?this.dirAt(positions[closestI],1):this.baseDir)==Direction.LTR;return{i:closestI,after:this.x>(closestRect.left+closestRect.right)/2==ltr}}scanText(tile,offset){let positions=[];for(let i=0;i<tile.length;i=findClusterBreak(tile.text,i))positions.push(offset+i);positions.push(offset+tile.length);let scan=this.scan(positions,i=>{let off=positions[i]-offset,end=positions[i+1]-offset;return textRange(tile.dom,off,end).getClientRects()});return scan.after?new PosAssoc(positions[scan.i+1],-1):new PosAssoc(positions[scan.i],1)}scanTile(tile,offset){if(!tile.length)return new PosAssoc(offset,1);if(tile.children.length==1){let child=tile.children[0];if(child.isText())return this.scanText(child,offset);else if(child.isComposite())return this.scanTile(child,offset)}let positions=[offset];for(let i=0,pos=offset;i<tile.children.length;i++)positions.push(pos+=tile.children[i].length);let scan=this.scan(positions,i=>{let child=tile.children[i];if(child.flags&48)return null;return(child.dom.nodeType==1?child.dom:textRange(child.dom,0,child.length)).getClientRects()});let child=tile.children[scan.i],pos=positions[scan.i];if(child.isText())return this.scanText(child,pos);if(child.isComposite())return this.scanTile(child,pos);return scan.after?new PosAssoc(positions[scan.i+1],-1):new PosAssoc(pos,1)}}const LineBreakPlaceholder="￿";class DOMReader{constructor(points,view){this.points=points;this.view=view;this.text="";this.lineSeparator=view.state.facet(EditorState.lineSeparator)}append(text){this.text+=text}lineBreak(){this.text+=LineBreakPlaceholder}readRange(start,end){if(!start)return this;let parent=start.parentNode;for(let cur=start;;){this.findPointBefore(parent,cur);let oldLen=this.text.length;this.readNode(cur);let tile=Tile.get(cur),next=cur.nextSibling;if(next==end){if((tile===null||tile===void 0?void 0:tile.breakAfter)&&!next&&parent!=this.view.contentDOM)this.lineBreak();break}let nextTile=Tile.get(next);if((tile&&nextTile?tile.breakAfter:(tile?tile.breakAfter:isBlockElement(cur))||isBlockElement(next)&&(cur.nodeName!="BR"||(tile===null||tile===void 0?void 0:tile.isWidget()))&&this.text.length>oldLen)&&!isEmptyToEnd(next,end))this.lineBreak();cur=next}this.findPointBefore(parent,end);return this}readTextNode(node){let text=node.nodeValue;for(let point of this.points)if(point.node==node)point.pos=this.text.length+Math.min(point.offset,text.length);for(let off=0,re=this.lineSeparator?null:/\r\n?|\n/g;;){let nextBreak=-1,breakSize=1,m;if(this.lineSeparator){nextBreak=text.indexOf(this.lineSeparator,off);breakSize=this.lineSeparator.length}else if(m=re.exec(text)){nextBreak=m.index;breakSize=m[0].length}this.append(text.slice(off,nextBreak<0?text.length:nextBreak));if(nextBreak<0)break;this.lineBreak();if(breakSize>1)for(let point of this.points)if(point.node==node&&point.pos>this.text.length)point.pos-=breakSize-1;off=nextBreak+breakSize}}readNode(node){let tile=Tile.get(node);let fromView=tile&&tile.overrideDOMText;if(fromView!=null){this.findPointInside(node,fromView.length);for(let i=fromView.iter();!i.next().done;){if(i.lineBreak)this.lineBreak();else this.append(i.value)}}else if(node.nodeType==3){this.readTextNode(node)}else if(node.nodeName=="BR"){if(node.nextSibling)this.lineBreak()}else if(node.nodeType==1){this.readRange(node.firstChild,null)}}findPointBefore(node,next){for(let point of this.points)if(point.node==node&&node.childNodes[point.offset]==next)point.pos=this.text.length}findPointInside(node,length){for(let point of this.points)if(node.nodeType==3?point.node==node:node.contains(point.node))point.pos=this.text.length+(isAtEnd(node,point.node,point.offset)?length:0)}}function isAtEnd(parent,node,offset){for(;;){if(!node||offset<maxOffset(node))return false;if(node==parent)return true;offset=domIndex(node)+1;node=node.parentNode}}function isEmptyToEnd(node,end){let widgets;for(;;node=node.nextSibling){if(node==end||!node)break;let view=Tile.get(node);if(!(view===null||view===void 0?void 0:view.isWidget()))return false;if(view)(widgets||(widgets=[])).push(view)}if(widgets)for(let w of widgets){let override=w.overrideDOMText;if(override===null||override===void 0?void 0:override.length)return false}return true}class DOMPoint{constructor(node,offset){this.node=node;this.offset=offset;this.pos=-1}}class DOMChange{constructor(view,start,end,typeOver){this.typeOver=typeOver;this.bounds=null;this.text="";this.domChanged=start>-1;let{impreciseHead:iHead,impreciseAnchor:iAnchor}=view.docView,curSel=view.state.selection;if(view.state.readOnly&&start>-1){this.newSel=null}else if(start>-1&&(this.bounds=domBoundsAround(view.docView.tile,start,end,0))){let selPoints=iHead||iAnchor?[]:selectionPoints(view);let reader=new DOMReader(selPoints,view);reader.readRange(this.bounds.startDOM,this.bounds.endDOM);this.text=reader.text;this.newSel=selectionFromPoints(selPoints,this.bounds.from)}else{let domSel=view.observer.selectionRange;let head=iHead&&iHead.node==domSel.focusNode&&iHead.offset==domSel.focusOffset||!contains(view.contentDOM,domSel.focusNode)?curSel.main.head:view.docView.posFromDOM(domSel.focusNode,domSel.focusOffset);let anchor=iAnchor&&iAnchor.node==domSel.anchorNode&&iAnchor.offset==domSel.anchorOffset||!contains(view.contentDOM,domSel.anchorNode)?curSel.main.anchor:view.docView.posFromDOM(domSel.anchorNode,domSel.anchorOffset);let vp=view.viewport;if((browser.ios||browser.chrome)&&head!=anchor&&Math.min(head,anchor)<=curSel.main.from&&Math.max(head,anchor)>=curSel.main.to&&(vp.from>0||vp.to<view.state.doc.length)){let from=Math.min(head,anchor),to=Math.max(head,anchor);let offFrom=vp.from-from,offTo=vp.to-to;if((offFrom==0||offFrom==1||from==0)&&(offTo==0||offTo==-1||to==view.state.doc.length)){head=0;anchor=view.state.doc.length}}if(view.inputState.composing>-1&&curSel.ranges.length>1){this.newSel=curSel.replaceRange(EditorSelection.range(anchor,head))}else if(view.lineWrapping&&anchor==head&&!(curSel.main.empty&&curSel.main.head==head)&&view.inputState.lastTouchTime>Date.now()-100){let before=view.coordsAtPos(head,-1),assoc=0;if(before)assoc=view.inputState.lastTouchY<=before.bottom?-1:1;this.newSel=EditorSelection.create([EditorSelection.cursor(head,assoc)])}else{this.newSel=EditorSelection.single(anchor,head)}}}}function domBoundsAround(tile,from,to,offset){if(tile.isComposite()){let fromI=-1,fromStart=-1,toI=-1,toEnd=-1;for(let i=0,pos=offset,prevEnd=offset;i<tile.children.length;i++){let child=tile.children[i],end=pos+child.length;if(pos<from&&end>to)return domBoundsAround(child,from,to,pos);if(end>=from&&fromI==-1){fromI=i;fromStart=pos}if(pos>to&&child.dom.parentNode==tile.dom){toI=i;toEnd=prevEnd;break}prevEnd=end;pos=end+child.breakAfter}return{from:fromStart,to:toEnd<0?offset+tile.length:toEnd,startDOM:(fromI?tile.children[fromI-1].dom.nextSibling:null)||tile.dom.firstChild,endDOM:toI<tile.children.length&&toI>=0?tile.children[toI].dom:null}}else if(tile.isText()){return{from:offset,to:offset+tile.length,startDOM:tile.dom,endDOM:tile.dom.nextSibling}}else{return null}}function applyDOMChange(view,domChange){let change;let{newSel:newSel}=domChange,{state:state}=view,sel=state.selection.main;let lastKey=view.inputState.lastKeyTime>Date.now()-100?view.inputState.lastKeyCode:-1;if(domChange.bounds){let{from:from,to:to}=domChange.bounds;let preferredPos=sel.from,preferredSide=null;if(lastKey===8||browser.android&&domChange.text.length<to-from){preferredPos=sel.to;preferredSide="end"}let cmp=state.doc.sliceString(from,to,LineBreakPlaceholder),selEnd,diff;if(!sel.empty&&sel.from>=from&&sel.to<=to&&(domChange.typeOver||cmp!=domChange.text)&&cmp.slice(0,sel.from-from)==domChange.text.slice(0,sel.from-from)&&cmp.slice(sel.to-from)==domChange.text.slice(selEnd=domChange.text.length-(cmp.length-(sel.to-from)))){change={from:sel.from,to:sel.to,insert:Text.of(domChange.text.slice(sel.from-from,selEnd).split(LineBreakPlaceholder))}}else if(diff=findDiff(cmp,domChange.text,preferredPos-from,preferredSide)){if(browser.chrome&&lastKey==13&&diff.toB==diff.from+2&&domChange.text.slice(diff.from,diff.toB)==LineBreakPlaceholder+LineBreakPlaceholder)diff.toB--;change={from:from+diff.from,to:from+diff.toA,insert:Text.of(domChange.text.slice(diff.from,diff.toB).split(LineBreakPlaceholder))}}}else if(newSel&&(!view.hasFocus&&state.facet(editable)||sameSelPos(newSel,sel))){newSel=null}if(!change&&!newSel)return false;if((browser.mac||browser.android)&&change&&change.from==change.to&&change.from==sel.head-1&&/^\. ?$/.test(change.insert.toString())&&view.contentDOM.getAttribute("autocorrect")=="off"){if(newSel&&change.insert.length==2)newSel=EditorSelection.single(newSel.main.anchor-1,newSel.main.head-1);change={from:change.from,to:change.to,insert:Text.of([change.insert.toString().replace("."," ")])}}else if(state.doc.lineAt(sel.from).to<sel.to&&view.docView.lineHasWidget(sel.to)&&view.inputState.insertingTextAt>Date.now()-50){change={from:sel.from,to:sel.to,insert:state.toText(view.inputState.insertingText)}}else if(browser.chrome&&change&&change.from==change.to&&change.from==sel.head&&change.insert.toString()=="\n "&&view.lineWrapping){if(newSel)newSel=EditorSelection.single(newSel.main.anchor-1,newSel.main.head-1);change={from:sel.from,to:sel.to,insert:Text.of([" "])}}if(change){return applyDOMChangeInner(view,change,newSel,lastKey)}else if(newSel&&!sameSelPos(newSel,sel)){let scrollIntoView=false,userEvent="select";if(view.inputState.lastSelectionTime>Date.now()-50){if(view.inputState.lastSelectionOrigin=="select")scrollIntoView=true;userEvent=view.inputState.lastSelectionOrigin;if(userEvent=="select.pointer")newSel=skipAtomsForSelection(state.facet(atomicRanges).map(f=>f(view)),newSel)}view.dispatch({selection:newSel,scrollIntoView:scrollIntoView,userEvent:userEvent});return true}else{return false}}function applyDOMChangeInner(view,change,newSel,lastKey=-1){if(browser.ios&&view.inputState.flushIOSKey(change))return true;let sel=view.state.selection.main;if(browser.android&&(change.to==sel.to&&(change.from==sel.from||change.from==sel.from-1&&view.state.sliceDoc(change.from,sel.from)==" ")&&change.insert.length==1&&change.insert.lines==2&&dispatchKey(view.contentDOM,"Enter",13)||(change.from==sel.from-1&&change.to==sel.to&&change.insert.length==0||lastKey==8&&change.insert.length<change.to-change.from&&change.to>sel.head)&&dispatchKey(view.contentDOM,"Backspace",8)||change.from==sel.from&&change.to==sel.to+1&&change.insert.length==0&&dispatchKey(view.contentDOM,"Delete",46)))return true;let text=change.insert.toString();if(view.inputState.composing>=0)view.inputState.composing++;let defaultTr;let defaultInsert=()=>defaultTr||(defaultTr=applyDefaultInsert(view,change,newSel));if(!view.state.facet(inputHandler).some(h=>h(view,change.from,change.to,text,defaultInsert)))view.dispatch(defaultInsert());return true}function applyDefaultInsert(view,change,newSel){let tr,startState=view.state,sel=startState.selection.main,inAtomic=-1;if(change.from==change.to&&change.from<sel.from||change.from>sel.to){let side=change.from<sel.from?-1:1,pos=side<0?sel.from:sel.to;let moved=skipAtomicRanges(startState.facet(atomicRanges).map(f=>f(view)),pos,side);if(change.from==moved)inAtomic=moved}if(inAtomic>-1){tr={changes:change,selection:EditorSelection.cursor(change.from+change.insert.length,-1)}}else if(change.from>=sel.from&&change.to<=sel.to&&change.to-change.from>=(sel.to-sel.from)/3&&(!newSel||newSel.main.empty&&newSel.main.from==change.from+change.insert.length)&&view.inputState.composing<0){let before=sel.from<change.from?startState.sliceDoc(sel.from,change.from):"";let after=sel.to>change.to?startState.sliceDoc(change.to,sel.to):"";tr=startState.replaceSelection(view.state.toText(before+change.insert.sliceString(0,undefined,view.state.lineBreak)+after))}else{let changes=startState.changes(change);let mainSel=newSel&&newSel.main.to<=changes.newLength?newSel.main:undefined;if(startState.selection.ranges.length>1&&(view.inputState.composing>=0||view.inputState.compositionPendingChange)&&change.to<=sel.to+10&&change.to>=sel.to-10){let replaced=view.state.sliceDoc(change.from,change.to);let compositionRange,composition=newSel&&findCompositionNode(view,newSel.main.head);if(composition){let dLen=change.insert.length-(change.to-change.from);compositionRange={from:composition.from,to:composition.to-dLen}}else{compositionRange=view.state.doc.lineAt(sel.head)}let offset=sel.to-change.to;tr=startState.changeByRange(range=>{if(range.from==sel.from&&range.to==sel.to)return{changes:changes,range:mainSel||range.map(changes)};let to=range.to-offset,from=to-replaced.length;if(view.state.sliceDoc(from,to)!=replaced||to>=compositionRange.from&&from<=compositionRange.to)return{range:range};let rangeChanges=startState.changes({from:from,to:to,insert:change.insert}),selOff=range.to-sel.to;return{changes:rangeChanges,range:!mainSel?range.map(rangeChanges):EditorSelection.range(Math.max(0,mainSel.anchor+selOff),Math.max(0,mainSel.head+selOff))}})}else{tr={changes:changes,selection:mainSel&&startState.selection.replaceRange(mainSel)}}}let userEvent="input.type";if(view.composing||view.inputState.compositionPendingChange&&view.inputState.compositionEndedAt>Date.now()-50){view.inputState.compositionPendingChange=false;userEvent+=".compose";if(view.inputState.compositionFirstChange){userEvent+=".start";view.inputState.compositionFirstChange=false}}return startState.update(tr,{userEvent:userEvent,scrollIntoView:true})}function findDiff(a,b,preferredPos,preferredSide){let minLen=Math.min(a.length,b.length);let from=0;while(from<minLen&&a.charCodeAt(from)==b.charCodeAt(from))from++;if(from==minLen&&a.length==b.length)return null;let toA=a.length,toB=b.length;while(toA>0&&toB>0&&a.charCodeAt(toA-1)==b.charCodeAt(toB-1)){toA--;toB--}if(preferredSide=="end"){let adjust=Math.max(0,from-Math.min(toA,toB));preferredPos-=toA+adjust-from}if(toA<from&&a.length<b.length){let move=preferredPos<=from&&preferredPos>=toA?from-preferredPos:0;from-=move;toB=from+(toB-toA);toA=from}else if(toB<from){let move=preferredPos<=from&&preferredPos>=toB?from-preferredPos:0;from-=move;toA=from+(toA-toB);toB=from}return{from:from,toA:toA,toB:toB}}function selectionPoints(view){let result=[];if(view.root.activeElement!=view.contentDOM)return result;let{anchorNode:anchorNode,anchorOffset:anchorOffset,focusNode:focusNode,focusOffset:focusOffset}=view.observer.selectionRange;if(anchorNode){result.push(new DOMPoint(anchorNode,anchorOffset));if(focusNode!=anchorNode||focusOffset!=anchorOffset)result.push(new DOMPoint(focusNode,focusOffset))}return result}function selectionFromPoints(points,base){if(points.length==0)return null;let anchor=points[0].pos,head=points.length==2?points[1].pos:anchor;return anchor>-1&&head>-1?EditorSelection.single(anchor+base,head+base):null}function sameSelPos(selection,range){return range.head==selection.main.head&&range.anchor==selection.main.anchor}class InputState{setSelectionOrigin(origin){this.lastSelectionOrigin=origin;this.lastSelectionTime=Date.now()}constructor(view){this.view=view;this.lastKeyCode=0;this.lastKeyTime=0;this.lastTouchTime=0;this.lastTouchX=0;this.lastTouchY=0;this.lastFocusTime=0;this.lastScrollTop=0;this.lastScrollLeft=0;this.lastWheelEvent=0;this.pendingIOSKey=undefined;this.tabFocusMode=-1;this.lastSelectionOrigin=null;this.lastSelectionTime=0;this.lastContextMenu=0;this.scrollHandlers=[];this.handlers=Object.create(null);this.composing=-1;this.compositionFirstChange=null;this.compositionEndedAt=0;this.compositionPendingKey=false;this.compositionPendingChange=false;this.insertingText="";this.insertingTextAt=0;this.mouseSelection=null;this.draggedContent=null;this.handleEvent=this.handleEvent.bind(this);this.notifiedFocused=view.hasFocus;if(browser.safari)view.contentDOM.addEventListener("input",()=>null);if(browser.gecko)firefoxCopyCutHack(view.contentDOM.ownerDocument)}handleEvent(event){if(!eventBelongsToEditor(this.view,event)||this.ignoreDuringComposition(event))return;if(event.type=="keydown"&&this.keydown(event))return;if(this.view.updateState!=0)Promise.resolve().then(()=>this.runHandlers(event.type,event));else this.runHandlers(event.type,event)}runHandlers(type,event){let handlers=this.handlers[type];if(handlers){for(let observer of handlers.observers)observer(this.view,event);for(let handler of handlers.handlers){if(event.defaultPrevented)break;if(handler(this.view,event)){event.preventDefault();break}}}}ensureHandlers(plugins){let handlers=computeHandlers(plugins),prev=this.handlers,dom=this.view.contentDOM;for(let type in handlers)if(type!="scroll"){let passive=!handlers[type].handlers.length;let exists=prev[type];if(exists&&passive!=!exists.handlers.length){dom.removeEventListener(type,this.handleEvent);exists=null}if(!exists)dom.addEventListener(type,this.handleEvent,{passive:passive})}for(let type in prev)if(type!="scroll"&&!handlers[type])dom.removeEventListener(type,this.handleEvent);this.handlers=handlers}keydown(event){this.lastKeyCode=event.keyCode;this.lastKeyTime=Date.now();if(event.keyCode==9&&this.tabFocusMode>-1&&(!this.tabFocusMode||Date.now()<=this.tabFocusMode))return true;if(this.tabFocusMode>0&&event.keyCode!=27&&modifierCodes.indexOf(event.keyCode)<0)this.tabFocusMode=-1;if(browser.android&&browser.chrome&&!event.synthetic&&(event.keyCode==13||event.keyCode==8)){this.view.observer.delayAndroidKey(event.key,event.keyCode);return true}if(browser.ios&&!event.synthetic&&!event.altKey&&!event.metaKey&&(PendingKeys.some(key=>key.keyCode==event.keyCode)&&!event.ctrlKey||EmacsyPendingKeys.indexOf(event.key)>-1&&event.ctrlKey)){let mods={ctrlKey:event.ctrlKey,altKey:event.altKey,metaKey:event.metaKey,shiftKey:event.shiftKey};if(mods.shiftKey&&browser.ios&&!/^(off|none)$/.test(this.view.contentDOM.autocapitalize)&&iosVirtualKeyboardOpen(this.view.win))mods.shiftKey=false;this.pendingIOSKey={key:event.key,keyCode:event.keyCode,mods:mods};setTimeout(()=>this.flushIOSKey(),250);return true}if(event.keyCode!=229)this.view.observer.forceFlush();return false}flushIOSKey(change){let key=this.pendingIOSKey;if(!key)return false;if(key.key=="Enter"&&change&&change.from<change.to&&/^\S+$/.test(change.insert.toString()))return false;this.pendingIOSKey=undefined;return dispatchKey(this.view.contentDOM,key.key,key.keyCode,key.mods)}ignoreDuringComposition(event){if(!/^key/.test(event.type)||event.synthetic)return false;if(this.composing>0)return true;if(browser.safari&&!browser.ios&&this.compositionPendingKey&&Date.now()-this.compositionEndedAt<100){this.compositionPendingKey=false;return true}return false}startMouseSelection(mouseSelection){if(this.mouseSelection)this.mouseSelection.destroy();this.mouseSelection=mouseSelection}update(update){this.view.observer.update(update);if(this.mouseSelection)this.mouseSelection.update(update);if(this.draggedContent&&update.docChanged)this.draggedContent=this.draggedContent.map(update.changes);if(update.transactions.length)this.lastKeyCode=this.lastSelectionTime=0}destroy(){if(this.mouseSelection)this.mouseSelection.destroy()}}function iosVirtualKeyboardOpen(win){if(!win.visualViewport)return false;return win.visualViewport.height*win.visualViewport.scale/win.document.documentElement.clientHeight<.85}function bindHandler(plugin,handler){return(view,event)=>{try{return handler.call(plugin,event,view)}catch(e){logException(view.state,e)}}}function computeHandlers(plugins){let result=Object.create(null);function record(type){return result[type]||(result[type]={observers:[],handlers:[]})}for(let plugin of plugins){let spec=plugin.spec,handlers=spec&&spec.plugin.domEventHandlers,observers=spec&&spec.plugin.domEventObservers;if(handlers)for(let type in handlers){let f=handlers[type];if(f)record(type).handlers.push(bindHandler(plugin.value,f))}if(observers)for(let type in observers){let f=observers[type];if(f)record(type).observers.push(bindHandler(plugin.value,f))}}for(let type in handlers)record(type).handlers.push(handlers[type]);for(let type in observers)record(type).observers.push(observers[type]);return result}const PendingKeys=[{key:"Backspace",keyCode:8,inputType:"deleteContentBackward"},{key:"Enter",keyCode:13,inputType:"insertParagraph"},{key:"Enter",keyCode:13,inputType:"insertLineBreak"},{key:"Delete",keyCode:46,inputType:"deleteContentForward"}];const EmacsyPendingKeys="dthko";const modifierCodes=[16,17,18,20,91,92,224,225];const dragScrollMargin=6;function dragScrollSpeed(dist){return Math.max(0,dist)*.7+8}function dist(a,b){return Math.max(Math.abs(a.clientX-b.clientX),Math.abs(a.clientY-b.clientY))}class MouseSelection{constructor(view,startEvent,style,mustSelect){this.view=view;this.startEvent=startEvent;this.style=style;this.mustSelect=mustSelect;this.scrollSpeed={x:0,y:0};this.scrolling=-1;this.lastEvent=startEvent;this.scrollParents=scrollableParents(view.contentDOM);this.atoms=view.state.facet(atomicRanges).map(f=>f(view));let doc=view.contentDOM.ownerDocument;doc.addEventListener("mousemove",this.move=this.move.bind(this));doc.addEventListener("mouseup",this.up=this.up.bind(this));this.extend=startEvent.shiftKey;this.multiple=view.state.facet(EditorState.allowMultipleSelections)&&addsSelectionRange(view,startEvent);this.dragging=isInPrimarySelection(view,startEvent)&&getClickType(startEvent)==1?null:false}start(event){if(this.dragging===false)this.select(event)}move(event){if(event.buttons==0)return this.destroy();if(this.dragging||this.dragging==null&&dist(this.startEvent,event)<10)return;this.select(this.lastEvent=event);let sx=0,sy=0;let left=0,top=0,right=this.view.win.innerWidth,bottom=this.view.win.innerHeight;if(this.scrollParents.x)({left:left,right:right}=this.scrollParents.x.getBoundingClientRect());if(this.scrollParents.y)({top:top,bottom:bottom}=this.scrollParents.y.getBoundingClientRect());let margins=getScrollMargins(this.view);if(event.clientX-margins.left<=left+dragScrollMargin)sx=-dragScrollSpeed(left-event.clientX);else if(event.clientX+margins.right>=right-dragScrollMargin)sx=dragScrollSpeed(event.clientX-right);if(event.clientY-margins.top<=top+dragScrollMargin)sy=-dragScrollSpeed(top-event.clientY);else if(event.clientY+margins.bottom>=bottom-dragScrollMargin)sy=dragScrollSpeed(event.clientY-bottom);this.setScrollSpeed(sx,sy)}up(event){if(this.dragging==null)this.select(this.lastEvent);if(!this.dragging)event.preventDefault();this.destroy()}destroy(){this.setScrollSpeed(0,0);let doc=this.view.contentDOM.ownerDocument;doc.removeEventListener("mousemove",this.move);doc.removeEventListener("mouseup",this.up);this.view.inputState.mouseSelection=this.view.inputState.draggedContent=null}setScrollSpeed(sx,sy){this.scrollSpeed={x:sx,y:sy};if(sx||sy){if(this.scrolling<0)this.scrolling=setInterval(()=>this.scroll(),50)}else if(this.scrolling>-1){clearInterval(this.scrolling);this.scrolling=-1}}scroll(){let{x:x,y:y}=this.scrollSpeed;if(x&&this.scrollParents.x){this.scrollParents.x.scrollLeft+=x;x=0}if(y&&this.scrollParents.y){this.scrollParents.y.scrollTop+=y;y=0}if(x||y)this.view.win.scrollBy(x,y);if(this.dragging===false)this.select(this.lastEvent)}select(event){let{view:view}=this,selection=skipAtomsForSelection(this.atoms,this.style.get(event,this.extend,this.multiple));if(this.mustSelect||!selection.eq(view.state.selection,this.dragging===false))this.view.dispatch({selection:selection,userEvent:"select.pointer"});this.mustSelect=false}update(update){if(update.transactions.some(tr=>tr.isUserEvent("input.type")))this.destroy();else if(this.style.update(update))setTimeout(()=>this.select(this.lastEvent),20)}}function addsSelectionRange(view,event){let facet=view.state.facet(clickAddsSelectionRange);return facet.length?facet[0](event):browser.mac?event.metaKey:event.ctrlKey}function dragMovesSelection(view,event){let facet=view.state.facet(dragMovesSelection$1);return facet.length?facet[0](event):browser.mac?!event.altKey:!event.ctrlKey}function isInPrimarySelection(view,event){let{main:main}=view.state.selection;if(main.empty)return false;let sel=getSelection(view.root);if(!sel||sel.rangeCount==0)return true;let rects=sel.getRangeAt(0).getClientRects();for(let i=0;i<rects.length;i++){let rect=rects[i];if(rect.left<=event.clientX&&rect.right>=event.clientX&&rect.top<=event.clientY&&rect.bottom>=event.clientY)return true}return false}function eventBelongsToEditor(view,event){if(!event.bubbles)return true;if(event.defaultPrevented)return false;for(let node=event.target,tile;node!=view.contentDOM;node=node.parentNode)if(!node||node.nodeType==11||(tile=Tile.get(node))&&tile.isWidget()&&!tile.isHidden&&tile.widget.ignoreEvent(event))return false;return true}const handlers=Object.create(null);const observers=Object.create(null);const brokenClipboardAPI=browser.ie&&browser.ie_version<15||browser.ios&&browser.webkit_version<604;function capturePaste(view){let parent=view.dom.parentNode;if(!parent)return;let target=parent.appendChild(document.createElement("textarea"));target.style.cssText="position: fixed; left: -10000px; top: 10px";target.focus();setTimeout(()=>{view.focus();target.remove();doPaste(view,target.value)},50)}function textFilter(state,facet,text){for(let filter of state.facet(facet))text=filter(text,state);return text}function doPaste(view,input){input=textFilter(view.state,clipboardInputFilter,input);let{state:state}=view,changes,i=1,text=state.toText(input);let byLine=text.lines==state.selection.ranges.length;let linewise=lastLinewiseCopy!=null&&state.selection.ranges.every(r=>r.empty)&&lastLinewiseCopy==text.toString();if(linewise){let lastLine=-1;changes=state.changeByRange(range=>{let line=state.doc.lineAt(range.from);if(line.from==lastLine)return{range:range};lastLine=line.from;let insert=state.toText((byLine?text.line(i++).text:input)+state.lineBreak);return{changes:{from:line.from,insert:insert},range:EditorSelection.cursor(range.from+insert.length)}})}else if(byLine){changes=state.changeByRange(range=>{let line=text.line(i++);return{changes:{from:range.from,to:range.to,insert:line.text},range:EditorSelection.cursor(range.from+line.length)}})}else{changes=state.replaceSelection(text)}view.dispatch(changes,{userEvent:"input.paste",scrollIntoView:true})}observers.scroll=view=>{view.inputState.lastScrollTop=view.scrollDOM.scrollTop;view.inputState.lastScrollLeft=view.scrollDOM.scrollLeft};observers.wheel=observers.mousewheel=view=>{view.inputState.lastWheelEvent=Date.now()};handlers.keydown=(view,event)=>{view.inputState.setSelectionOrigin("select");if(event.keyCode==27&&view.inputState.tabFocusMode!=0)view.inputState.tabFocusMode=Date.now()+2e3;return false};observers.touchstart=(view,e)=>{let iState=view.inputState,touch=e.targetTouches[0];iState.lastTouchTime=Date.now();if(touch){iState.lastTouchX=touch.clientX;iState.lastTouchY=touch.clientY}iState.setSelectionOrigin("select.pointer")};observers.touchmove=view=>{view.inputState.setSelectionOrigin("select.pointer")};handlers.mousedown=(view,event)=>{view.observer.flush();if(view.inputState.lastTouchTime>Date.now()-2e3)return false;let style=null;for(let makeStyle of view.state.facet(mouseSelectionStyle)){style=makeStyle(view,event);if(style)break}if(!style&&event.button==0)style=basicMouseSelection(view,event);if(style){let mustFocus=!view.hasFocus;view.inputState.startMouseSelection(new MouseSelection(view,event,style,mustFocus));if(mustFocus)view.observer.ignore(()=>{focusPreventScroll(view.contentDOM);let active=view.root.activeElement;if(active&&!active.contains(view.contentDOM))active.blur()});let mouseSel=view.inputState.mouseSelection;if(mouseSel){mouseSel.start(event);return mouseSel.dragging===false}}else{view.inputState.setSelectionOrigin("select.pointer")}return false};function rangeForClick(view,pos,bias,type){if(type==1){return EditorSelection.cursor(pos,bias)}else if(type==2){return groupAt(view.state,pos,bias)}else{let visual=view.docView.lineAt(pos,bias),line=view.state.doc.lineAt(visual?visual.posAtEnd:pos);let from=visual?visual.posAtStart:line.from,to=visual?visual.posAtEnd:line.to;if(to<view.state.doc.length&&to==line.to)to++;return EditorSelection.undirectionalRange(from,to)}}const BadMouseDetail=browser.ie&&browser.ie_version<=11;let lastMouseDown=null,lastMouseDownCount=0,lastMouseDownTime=0;function getClickType(event){if(!BadMouseDetail)return event.detail;let last=lastMouseDown,lastTime=lastMouseDownTime;lastMouseDown=event;lastMouseDownTime=Date.now();return lastMouseDownCount=!last||lastTime>Date.now()-400&&Math.abs(last.clientX-event.clientX)<2&&Math.abs(last.clientY-event.clientY)<2?(lastMouseDownCount+1)%3:1}function basicMouseSelection(view,event){let start=view.posAndSideAtCoords({x:event.clientX,y:event.clientY},false),type=getClickType(event);let startSel=view.state.selection;return{update(update){if(update.docChanged){start.pos=update.changes.mapPos(start.pos);startSel=startSel.map(update.changes)}},get(event,extend,multiple){let cur=view.posAndSideAtCoords({x:event.clientX,y:event.clientY},false),removed;let range=rangeForClick(view,cur.pos,cur.assoc,type);if(start.pos!=cur.pos&&!extend){let startRange=rangeForClick(view,start.pos,start.assoc,type);let from=Math.min(startRange.from,range.from),to=Math.max(startRange.to,range.to);range=from<range.from?EditorSelection.range(from,to,range.assoc):EditorSelection.range(to,from,range.assoc)}if(extend)return startSel.replaceRange(startSel.main.extend(range.from,range.to,range.assoc));else if(multiple&&type==1&&startSel.ranges.length>1&&(removed=removeRangeAround(startSel,cur.pos)))return removed;else if(multiple)return startSel.addRange(range);else return EditorSelection.create([range])}}}function removeRangeAround(sel,pos){for(let i=0;i<sel.ranges.length;i++){let{from:from,to:to}=sel.ranges[i];if(from<=pos&&to>=pos)return EditorSelection.create(sel.ranges.slice(0,i).concat(sel.ranges.slice(i+1)),sel.mainIndex==i?0:sel.mainIndex-(sel.mainIndex>i?1:0))}return null}handlers.dragstart=(view,event)=>{let{selection:{main:range}}=view.state;if(event.target.draggable){let tile=view.docView.tile.nearest(event.target);if(tile&&tile.isWidget()){let from=tile.posAtStart,to=from+tile.length;if(from>=range.to||to<=range.from)range=EditorSelection.undirectionalRange(from,to)}}let{inputState:inputState}=view;if(inputState.mouseSelection)inputState.mouseSelection.dragging=true;inputState.draggedContent=range;if(event.dataTransfer){event.dataTransfer.setData("Text",textFilter(view.state,clipboardOutputFilter,view.state.sliceDoc(range.from,range.to)));event.dataTransfer.effectAllowed="copyMove"}return false};handlers.dragend=view=>{view.inputState.draggedContent=null;return false};function dropText(view,event,text,direct){text=textFilter(view.state,clipboardInputFilter,text);if(!text)return;let dropPos=view.posAtCoords({x:event.clientX,y:event.clientY},false);let{draggedContent:draggedContent}=view.inputState;let del=direct&&draggedContent&&dragMovesSelection(view,event)?{from:draggedContent.from,to:draggedContent.to}:null;let ins={from:dropPos,insert:text};let changes=view.state.changes(del?[del,ins]:ins);view.focus();view.dispatch({changes:changes,selection:{anchor:changes.mapPos(dropPos,-1),head:changes.mapPos(dropPos,1)},userEvent:del?"move.drop":"input.drop"});view.inputState.draggedContent=null}handlers.drop=(view,event)=>{if(!event.dataTransfer)return false;if(view.state.readOnly)return true;let files=event.dataTransfer.files;if(files&&files.length){let text=Array(files.length),read=0;let finishFile=()=>{if(++read==files.length)dropText(view,event,text.filter(s=>s!=null).join(view.state.lineBreak),false)};for(let i=0;i<files.length;i++){let reader=new FileReader;reader.onerror=finishFile;reader.onload=()=>{if(!/[\x00-\x08\x0e-\x1f]{2}/.test(reader.result))text[i]=reader.result;finishFile()};reader.readAsText(files[i])}return true}else{let text=event.dataTransfer.getData("Text");if(text){dropText(view,event,text,true);return true}}return false};handlers.paste=(view,event)=>{if(view.state.readOnly)return true;view.observer.flush();let data=brokenClipboardAPI?null:event.clipboardData;if(data){doPaste(view,data.getData("text/plain")||data.getData("text/uri-list"));return true}else{capturePaste(view);return false}};function captureCopy(view,text){let parent=view.dom.parentNode;if(!parent)return;let target=parent.appendChild(document.createElement("textarea"));target.style.cssText="position: fixed; left: -10000px; top: 10px";target.value=text;target.focus();target.selectionEnd=text.length;target.selectionStart=0;setTimeout(()=>{target.remove();view.focus()},50)}function copiedRange(state){let content=[],ranges=[],linewise=false;for(let range of state.selection.ranges)if(!range.empty){content.push(state.sliceDoc(range.from,range.to));ranges.push(range)}if(!content.length){let upto=-1;for(let{from:from}of state.selection.ranges){let line=state.doc.lineAt(from);if(line.number>upto){content.push(line.text);ranges.push({from:line.from,to:Math.min(state.doc.length,line.to+1)})}upto=line.number}linewise=true}return{text:textFilter(state,clipboardOutputFilter,content.join(state.lineBreak)),ranges:ranges,linewise:linewise}}let lastLinewiseCopy=null;handlers.copy=handlers.cut=(view,event)=>{if(!hasSelection(view.contentDOM,view.observer.selectionRange))return false;let{text:text,ranges:ranges,linewise:linewise}=copiedRange(view.state);if(!text&&!linewise)return false;lastLinewiseCopy=linewise?text:null;if(event.type=="cut"&&!view.state.readOnly)view.dispatch({changes:ranges,scrollIntoView:true,userEvent:"delete.cut"});let data=brokenClipboardAPI?null:event.clipboardData;if(data){data.clearData();data.setData("text/plain",text);return true}else{captureCopy(view,text);return false}};const isFocusChange=Annotation.define();function focusChangeTransaction(state,focus){let effects=[];for(let getEffect of state.facet(focusChangeEffect)){let effect=getEffect(state,focus);if(effect)effects.push(effect)}return effects.length?state.update({effects:effects,annotations:isFocusChange.of(true)}):null}function updateForFocusChange(view){setTimeout(()=>{let focus=view.hasFocus;if(focus!=view.inputState.notifiedFocused){let tr=focusChangeTransaction(view.state,focus);if(tr)view.dispatch(tr);else view.update([])}},10)}observers.focus=view=>{view.inputState.lastFocusTime=Date.now();if(!view.scrollDOM.scrollTop&&(view.inputState.lastScrollTop||view.inputState.lastScrollLeft)){view.scrollDOM.scrollTop=view.inputState.lastScrollTop;view.scrollDOM.scrollLeft=view.inputState.lastScrollLeft}updateForFocusChange(view)};observers.blur=view=>{view.observer.clearSelectionRange();updateForFocusChange(view)};observers.compositionstart=observers.compositionupdate=view=>{if(view.observer.editContext)return;if(view.inputState.compositionFirstChange==null)view.inputState.compositionFirstChange=true;if(view.inputState.composing<0){view.inputState.composing=0}};observers.compositionend=view=>{if(view.observer.editContext)return;view.inputState.composing=-1;view.inputState.compositionEndedAt=Date.now();view.inputState.compositionPendingKey=true;view.inputState.compositionPendingChange=view.observer.pendingRecords().length>0;view.inputState.compositionFirstChange=null;if(browser.chrome&&browser.android){view.observer.flushSoon()}else if(view.inputState.compositionPendingChange){Promise.resolve().then(()=>view.observer.flush())}else{setTimeout(()=>{if(view.inputState.composing<0&&view.docView.hasComposition)view.update([])},50)}};observers.contextmenu=view=>{view.inputState.lastContextMenu=Date.now()};handlers.beforeinput=(view,event)=>{var _a,_b;if(event.inputType=="insertText"||event.inputType=="insertCompositionText"){view.inputState.insertingText=event.data;view.inputState.insertingTextAt=Date.now()}if(event.inputType=="insertReplacementText"&&view.observer.editContext){let text=(_a=event.dataTransfer)===null||_a===void 0?void 0:_a.getData("text/plain"),ranges=event.getTargetRanges();if(text&&ranges.length){let r=ranges[0];let from=view.posAtDOM(r.startContainer,r.startOffset),to=view.posAtDOM(r.endContainer,r.endOffset);applyDOMChangeInner(view,{from:from,to:to,insert:view.state.toText(text)},null);return true}}let pending;if(browser.chrome&&browser.android&&(pending=PendingKeys.find(key=>key.inputType==event.inputType))){view.observer.delayAndroidKey(pending.key,pending.keyCode);if(pending.key=="Backspace"||pending.key=="Delete"){let startViewHeight=((_b=window.visualViewport)===null||_b===void 0?void 0:_b.height)||0;setTimeout(()=>{var _a;if((((_a=window.visualViewport)===null||_a===void 0?void 0:_a.height)||0)>startViewHeight+10&&view.hasFocus){view.contentDOM.blur();view.focus()}},100)}}if(browser.ios&&event.inputType=="deleteContentForward"){view.observer.flushSoon()}if(browser.safari&&event.inputType=="insertText"&&view.inputState.composing>=0){setTimeout(()=>observers.compositionend(view,event),20)}return false};const appliedFirefoxHack=new Set;function firefoxCopyCutHack(doc){if(!appliedFirefoxHack.has(doc)){appliedFirefoxHack.add(doc);doc.addEventListener("copy",()=>{});doc.addEventListener("cut",()=>{})}}const wrappingWhiteSpace=["pre-wrap","normal","pre-line","break-spaces"];let heightChangeFlag=false;function clearHeightChangeFlag(){heightChangeFlag=false}class HeightOracle{constructor(lineWrapping){this.lineWrapping=lineWrapping;this.doc=Text.empty;this.heightSamples={};this.lineHeight=14;this.charWidth=7;this.textHeight=14;this.lineLength=30}heightForGap(from,to){let lines=this.doc.lineAt(to).number-this.doc.lineAt(from).number+1;if(this.lineWrapping)lines+=Math.max(0,Math.ceil((to-from-lines*this.lineLength*.5)/this.lineLength));return this.lineHeight*lines}heightForLine(length){if(!this.lineWrapping)return this.lineHeight;let lines=1+Math.max(0,Math.ceil((length-this.lineLength)/Math.max(1,this.lineLength-5)));return lines*this.lineHeight}setDoc(doc){this.doc=doc;return this}mustRefreshForWrapping(whiteSpace){return wrappingWhiteSpace.indexOf(whiteSpace)>-1!=this.lineWrapping}mustRefreshForHeights(lineHeights){let newHeight=false;for(let i=0;i<lineHeights.length;i++){let h=lineHeights[i];if(h<0){i++}else if(!this.heightSamples[Math.floor(h*10)]){newHeight=true;this.heightSamples[Math.floor(h*10)]=true}}return newHeight}refresh(whiteSpace,lineHeight,charWidth,textHeight,lineLength,knownHeights){let lineWrapping=wrappingWhiteSpace.indexOf(whiteSpace)>-1;let changed=Math.abs(lineHeight-this.lineHeight)>.3||this.lineWrapping!=lineWrapping;this.lineWrapping=lineWrapping;this.lineHeight=lineHeight;this.charWidth=charWidth;this.textHeight=textHeight;this.lineLength=lineLength;if(changed){this.heightSamples={};for(let i=0;i<knownHeights.length;i++){let h=knownHeights[i];if(h<0)i++;else this.heightSamples[Math.floor(h*10)]=true}}return changed}}class MeasuredHeights{constructor(from,heights){this.from=from;this.heights=heights;this.index=0}get more(){return this.index<this.heights.length}}class BlockInfo{constructor(from,length,top,height,_content){this.from=from;this.length=length;this.top=top;this.height=height;this._content=_content}get type(){return typeof this._content=="number"?BlockType.Text:Array.isArray(this._content)?this._content:this._content.type}get to(){return this.from+this.length}get bottom(){return this.top+this.height}get widget(){return this._content instanceof PointDecoration?this._content.widget:null}get widgetLineBreaks(){return typeof this._content=="number"?this._content:0}join(other){let content=(Array.isArray(this._content)?this._content:[this]).concat(Array.isArray(other._content)?other._content:[other]);return new BlockInfo(this.from,this.length+other.length,this.top,this.height+other.height,content)}}var QueryType=function(QueryType){QueryType[QueryType["ByPos"]=0]="ByPos";QueryType[QueryType["ByHeight"]=1]="ByHeight";QueryType[QueryType["ByPosNoHeight"]=2]="ByPosNoHeight";return QueryType}(QueryType||(QueryType={}));const Epsilon=.001;class HeightMap{constructor(length,height,flags=2){this.length=length;this.height=height;this.flags=flags}get outdated(){return(this.flags&2)>0}set outdated(value){this.flags=(value?2:0)|this.flags&-3}setHeight(height){if(this.height!=height){if(Math.abs(this.height-height)>Epsilon)heightChangeFlag=true;this.height=height}}replace(_from,_to,nodes){return HeightMap.of(nodes)}decomposeLeft(_to,result){result.push(this)}decomposeRight(_from,result){result.push(this)}applyChanges(decorations,oldDoc,oracle,changes){let me=this,doc=oracle.doc;for(let i=changes.length-1;i>=0;i--){let{fromA:fromA,toA:toA,fromB:fromB,toB:toB}=changes[i];let start=me.lineAt(fromA,QueryType.ByPosNoHeight,oracle.setDoc(oldDoc),0,0);let end=start.to>=toA?start:me.lineAt(toA,QueryType.ByPosNoHeight,oracle,0,0);toB+=end.to-toA;toA=end.to;while(i>0&&start.from<=changes[i-1].toA){fromA=changes[i-1].fromA;fromB=changes[i-1].fromB;i--;if(fromA<start.from)start=me.lineAt(fromA,QueryType.ByPosNoHeight,oracle,0,0)}fromB+=start.from-fromA;fromA=start.from;let nodes=NodeBuilder.build(oracle.setDoc(doc),decorations,fromB,toB);me=replace(me,me.replace(fromA,toA,nodes))}return me.updateHeight(oracle,0)}static empty(){return new HeightMapText(0,0,0)}static of(nodes){if(nodes.length==1)return nodes[0];let i=0,j=nodes.length,before=0,after=0;for(;;){if(i==j){if(before>after*2){let split=nodes[i-1];if(split.break)nodes.splice(--i,1,split.left,null,split.right);else nodes.splice(--i,1,split.left,split.right);j+=1+split.break;before-=split.size}else if(after>before*2){let split=nodes[j];if(split.break)nodes.splice(j,1,split.left,null,split.right);else nodes.splice(j,1,split.left,split.right);j+=2+split.break;after-=split.size}else{break}}else if(before<after){let next=nodes[i++];if(next)before+=next.size}else{let next=nodes[--j];if(next)after+=next.size}}let brk=0;if(nodes[i-1]==null){brk=1;i--}else if(nodes[i]==null){brk=1;j++}return new HeightMapBranch(HeightMap.of(nodes.slice(0,i)),brk,HeightMap.of(nodes.slice(j)))}}function replace(old,val){if(old==val)return old;if(old.constructor!=val.constructor)heightChangeFlag=true;return val}HeightMap.prototype.size=1;const SpaceDeco=Decoration.replace({});class HeightMapBlock extends HeightMap{constructor(length,height,deco){super(length,height);this.deco=deco;this.spaceAbove=0}mainBlock(top,offset){return new BlockInfo(offset,this.length,top+this.spaceAbove,this.height-this.spaceAbove,this.deco||0)}blockAt(height,_oracle,top,offset){return this.spaceAbove&&height<top+this.spaceAbove?new BlockInfo(offset,0,top,this.spaceAbove,SpaceDeco):this.mainBlock(top,offset)}lineAt(_value,_type,oracle,top,offset){let main=this.mainBlock(top,offset);return this.spaceAbove?this.blockAt(0,oracle,top,offset).join(main):main}forEachLine(from,to,oracle,top,offset,f){if(from<=offset+this.length&&to>=offset)f(this.lineAt(0,QueryType.ByPos,oracle,top,offset))}setMeasuredHeight(measured){let next=measured.heights[measured.index++];if(next<0){this.spaceAbove=-next;next=measured.heights[measured.index++]}else{this.spaceAbove=0}this.setHeight(next)}updateHeight(oracle,offset=0,_force=false,measured){if(measured&&measured.from<=offset&&measured.more)this.setMeasuredHeight(measured);this.outdated=false;return this}toString(){return`block(${this.length})`}}class HeightMapText extends HeightMapBlock{constructor(length,height,above){super(length,height,null);this.collapsed=0;this.widgetHeight=0;this.breaks=0;this.spaceAbove=above}mainBlock(top,offset){return new BlockInfo(offset,this.length,top+this.spaceAbove,this.height-this.spaceAbove,this.breaks)}replace(_from,_to,nodes){let node=nodes[0];if(nodes.length==1&&(node instanceof HeightMapText||node instanceof HeightMapGap&&node.flags&4)&&Math.abs(this.length-node.length)<10){if(node instanceof HeightMapGap)node=new HeightMapText(node.length,this.height,this.spaceAbove);else node.height=this.height;if(!this.outdated)node.outdated=false;return node}else{return HeightMap.of(nodes)}}updateHeight(oracle,offset=0,force=false,measured){if(measured&&measured.from<=offset&&measured.more){this.setMeasuredHeight(measured)}else if(force||this.outdated){this.spaceAbove=0;this.setHeight(Math.max(this.widgetHeight,oracle.heightForLine(this.length-this.collapsed))+this.breaks*oracle.lineHeight)}this.outdated=false;return this}toString(){return`line(${this.length}${this.collapsed?-this.collapsed:""}${this.widgetHeight?":"+this.widgetHeight:""})`}}class HeightMapGap extends HeightMap{constructor(length){super(length,0)}heightMetrics(oracle,offset){let firstLine=oracle.doc.lineAt(offset).number,lastLine=oracle.doc.lineAt(offset+this.length).number;let lines=lastLine-firstLine+1;let perLine,perChar=0;if(oracle.lineWrapping){let totalPerLine=Math.min(this.height,oracle.lineHeight*lines);perLine=totalPerLine/lines;if(this.length>lines+1)perChar=(this.height-totalPerLine)/(this.length-lines-1)}else{perLine=this.height/lines}return{firstLine:firstLine,lastLine:lastLine,perLine:perLine,perChar:perChar}}blockAt(height,oracle,top,offset){let{firstLine:firstLine,lastLine:lastLine,perLine:perLine,perChar:perChar}=this.heightMetrics(oracle,offset);if(oracle.lineWrapping){let guess=offset+(height<oracle.lineHeight?0:Math.round(Math.max(0,Math.min(1,(height-top)/this.height))*this.length));let line=oracle.doc.lineAt(guess),lineHeight=perLine+line.length*perChar;let lineTop=Math.max(top,height-lineHeight/2);return new BlockInfo(line.from,line.length,lineTop,lineHeight,0)}else{let line=Math.max(0,Math.min(lastLine-firstLine,Math.floor((height-top)/perLine)));let{from:from,length:length}=oracle.doc.line(firstLine+line);return new BlockInfo(from,length,top+perLine*line,perLine,0)}}lineAt(value,type,oracle,top,offset){if(type==QueryType.ByHeight)return this.blockAt(value,oracle,top,offset);if(type==QueryType.ByPosNoHeight){let{from:from,to:to}=oracle.doc.lineAt(value);return new BlockInfo(from,to-from,0,0,0)}let{firstLine:firstLine,perLine:perLine,perChar:perChar}=this.heightMetrics(oracle,offset);let line=oracle.doc.lineAt(value),lineHeight=perLine+line.length*perChar;let linesAbove=line.number-firstLine;let lineTop=top+perLine*linesAbove+perChar*(line.from-offset-linesAbove);return new BlockInfo(line.from,line.length,Math.max(top,Math.min(lineTop,top+this.height-lineHeight)),lineHeight,0)}forEachLine(from,to,oracle,top,offset,f){from=Math.max(from,offset);to=Math.min(to,offset+this.length);let{firstLine:firstLine,perLine:perLine,perChar:perChar}=this.heightMetrics(oracle,offset);for(let pos=from,lineTop=top;pos<=to;){let line=oracle.doc.lineAt(pos);if(pos==from){let linesAbove=line.number-firstLine;lineTop+=perLine*linesAbove+perChar*(from-offset-linesAbove)}let lineHeight=perLine+perChar*line.length;f(new BlockInfo(line.from,line.length,lineTop,lineHeight,0));lineTop+=lineHeight;pos=line.to+1}}replace(from,to,nodes){let after=this.length-to;if(after>0){let last=nodes[nodes.length-1];if(last instanceof HeightMapGap)nodes[nodes.length-1]=new HeightMapGap(last.length+after);else nodes.push(null,new HeightMapGap(after-1))}if(from>0){let first=nodes[0];if(first instanceof HeightMapGap)nodes[0]=new HeightMapGap(from+first.length);else nodes.unshift(new HeightMapGap(from-1),null)}return HeightMap.of(nodes)}decomposeLeft(to,result){result.push(new HeightMapGap(to-1),null)}decomposeRight(from,result){result.push(null,new HeightMapGap(this.length-from-1))}updateHeight(oracle,offset=0,force=false,measured){let end=offset+this.length;if(measured&&measured.from<=offset+this.length&&measured.more){let nodes=[],pos=Math.max(offset,measured.from),singleHeight=-1;if(measured.from>offset)nodes.push(new HeightMapGap(measured.from-offset-1).updateHeight(oracle,offset));while(pos<=end&&measured.more){let len=oracle.doc.lineAt(pos).length;if(nodes.length)nodes.push(null);let height=measured.heights[measured.index++],above=0;if(height<0){above=-height;height=measured.heights[measured.index++]}if(singleHeight==-1)singleHeight=height;else if(Math.abs(height-singleHeight)>=Epsilon)singleHeight=-2;let line=new HeightMapText(len,height,above);line.outdated=false;nodes.push(line);pos+=len+1}if(pos<=end)nodes.push(null,new HeightMapGap(end-pos).updateHeight(oracle,pos));let result=HeightMap.of(nodes);if(singleHeight<0||Math.abs(result.height-this.height)>=Epsilon||Math.abs(singleHeight-this.heightMetrics(oracle,offset).perLine)>=Epsilon)heightChangeFlag=true;return replace(this,result)}else if(force||this.outdated){this.setHeight(oracle.heightForGap(offset,offset+this.length));this.outdated=false}return this}toString(){return`gap(${this.length})`}}class HeightMapBranch extends HeightMap{constructor(left,brk,right){super(left.length+brk+right.length,left.height+right.height,brk|(left.outdated||right.outdated?2:0));this.left=left;this.right=right;this.size=left.size+right.size}get break(){return this.flags&1}blockAt(height,oracle,top,offset){let mid=top+this.left.height;return height<mid?this.left.blockAt(height,oracle,top,offset):this.right.blockAt(height,oracle,mid,offset+this.left.length+this.break)}lineAt(value,type,oracle,top,offset){let rightTop=top+this.left.height,rightOffset=offset+this.left.length+this.break;let left=type==QueryType.ByHeight?value<rightTop:value<rightOffset;let base=left?this.left.lineAt(value,type,oracle,top,offset):this.right.lineAt(value,type,oracle,rightTop,rightOffset);if(this.break||(left?base.to<rightOffset:base.from>rightOffset))return base;let subQuery=type==QueryType.ByPosNoHeight?QueryType.ByPosNoHeight:QueryType.ByPos;if(left)return base.join(this.right.lineAt(rightOffset,subQuery,oracle,rightTop,rightOffset));else return this.left.lineAt(rightOffset,subQuery,oracle,top,offset).join(base)}forEachLine(from,to,oracle,top,offset,f){let rightTop=top+this.left.height,rightOffset=offset+this.left.length+this.break;if(this.break){if(from<rightOffset)this.left.forEachLine(from,to,oracle,top,offset,f);if(to>=rightOffset)this.right.forEachLine(from,to,oracle,rightTop,rightOffset,f)}else{let mid=this.lineAt(rightOffset,QueryType.ByPos,oracle,top,offset);if(from<mid.from)this.left.forEachLine(from,mid.from-1,oracle,top,offset,f);if(mid.to>=from&&mid.from<=to)f(mid);if(to>mid.to)this.right.forEachLine(mid.to+1,to,oracle,rightTop,rightOffset,f)}}replace(from,to,nodes){let rightStart=this.left.length+this.break;if(to<rightStart)return this.balanced(this.left.replace(from,to,nodes),this.right);if(from>this.left.length)return this.balanced(this.left,this.right.replace(from-rightStart,to-rightStart,nodes));let result=[];if(from>0)this.decomposeLeft(from,result);let left=result.length;for(let node of nodes)result.push(node);if(from>0)mergeGaps(result,left-1);if(to<this.length){let right=result.length;this.decomposeRight(to,result);mergeGaps(result,right)}return HeightMap.of(result)}decomposeLeft(to,result){let left=this.left.length;if(to<=left)return this.left.decomposeLeft(to,result);result.push(this.left);if(this.break){left++;if(to>=left)result.push(null)}if(to>left)this.right.decomposeLeft(to-left,result)}decomposeRight(from,result){let left=this.left.length,right=left+this.break;if(from>=right)return this.right.decomposeRight(from-right,result);if(from<left)this.left.decomposeRight(from,result);if(this.break&&from<right)result.push(null);result.push(this.right)}balanced(left,right){if(left.size>2*right.size||right.size>2*left.size)return HeightMap.of(this.break?[left,null,right]:[left,right]);this.left=replace(this.left,left);this.right=replace(this.right,right);this.setHeight(left.height+right.height);this.outdated=left.outdated||right.outdated;this.size=left.size+right.size;this.length=left.length+this.break+right.length;return this}updateHeight(oracle,offset=0,force=false,measured){let{left:left,right:right}=this,rightStart=offset+left.length+this.break,rebalance=null;if(measured&&measured.from<=offset+left.length&&measured.more)rebalance=left=left.updateHeight(oracle,offset,force,measured);else left.updateHeight(oracle,offset,force);if(measured&&measured.from<=rightStart+right.length&&measured.more)rebalance=right=right.updateHeight(oracle,rightStart,force,measured);else right.updateHeight(oracle,rightStart,force);if(rebalance)return this.balanced(left,right);this.height=this.left.height+this.right.height;this.outdated=false;return this}toString(){return this.left+(this.break?" ":"-")+this.right}}function mergeGaps(nodes,around){let before,after;if(nodes[around]==null&&(before=nodes[around-1])instanceof HeightMapGap&&(after=nodes[around+1])instanceof HeightMapGap)nodes.splice(around-1,3,new HeightMapGap(before.length+1+after.length))}const relevantWidgetHeight=5;class NodeBuilder{constructor(pos,oracle){this.pos=pos;this.oracle=oracle;this.nodes=[];this.lineStart=-1;this.lineEnd=-1;this.covering=null;this.writtenTo=pos}get isCovered(){return this.covering&&this.nodes[this.nodes.length-1]==this.covering}span(_from,to){if(this.lineStart>-1){let end=Math.min(to,this.lineEnd),last=this.nodes[this.nodes.length-1];if(last instanceof HeightMapText)last.length+=end-this.pos;else if(end>this.pos||!this.isCovered)this.nodes.push(new HeightMapText(end-this.pos,-1,0));this.writtenTo=end;if(to>end){this.nodes.push(null);this.writtenTo++;this.lineStart=-1}}this.pos=to}point(from,to,deco){if(from<to||deco.heightRelevant){let height=deco.widget?deco.widget.estimatedHeight:0;let breaks=deco.widget?deco.widget.lineBreaks:0;if(height<0)height=this.oracle.lineHeight;let len=to-from;if(deco.block){this.addBlock(new HeightMapBlock(len,height,deco))}else if(len||breaks||height>=relevantWidgetHeight){this.addLineDeco(height,breaks,len)}}else if(to>from){this.span(from,to)}if(this.lineEnd>-1&&this.lineEnd<this.pos)this.lineEnd=this.oracle.doc.lineAt(this.pos).to}enterLine(){if(this.lineStart>-1)return;let{from:from,to:to}=this.oracle.doc.lineAt(this.pos);this.lineStart=from;this.lineEnd=to;if(this.writtenTo<from){if(this.writtenTo<from-1||this.nodes[this.nodes.length-1]==null)this.nodes.push(this.blankContent(this.writtenTo,from-1));this.nodes.push(null)}if(this.pos>from)this.nodes.push(new HeightMapText(this.pos-from,-1,0));this.writtenTo=this.pos}blankContent(from,to){let gap=new HeightMapGap(to-from);if(this.oracle.doc.lineAt(from).to==to)gap.flags|=4;return gap}ensureLine(){this.enterLine();let last=this.nodes.length?this.nodes[this.nodes.length-1]:null;if(last instanceof HeightMapText)return last;let line=new HeightMapText(0,-1,0);this.nodes.push(line);return line}addBlock(block){this.enterLine();let deco=block.deco;if(deco&&deco.startSide>0&&!this.isCovered)this.ensureLine();this.nodes.push(block);this.writtenTo=this.pos=this.pos+block.length;if(deco&&deco.endSide>0)this.covering=block}addLineDeco(height,breaks,length){let line=this.ensureLine();line.length+=length;line.collapsed+=length;line.widgetHeight=Math.max(line.widgetHeight,height);line.breaks+=breaks;this.writtenTo=this.pos=this.pos+length}finish(from){let last=this.nodes.length==0?null:this.nodes[this.nodes.length-1];if(this.lineStart>-1&&!(last instanceof HeightMapText)&&!this.isCovered)this.nodes.push(new HeightMapText(0,-1,0));else if(this.writtenTo<this.pos||last==null)this.nodes.push(this.blankContent(this.writtenTo,this.pos));let pos=from;for(let node of this.nodes){if(node instanceof HeightMapText)node.updateHeight(this.oracle,pos);pos+=node?node.length:1}return this.nodes}static build(oracle,decorations,from,to){let builder=new NodeBuilder(from,oracle);RangeSet.spans(decorations,from,to,builder,0);return builder.finish(from)}}function heightRelevantDecoChanges(a,b,diff){let comp=new DecorationComparator;RangeSet.compare(a,b,diff,comp,0);return comp.changes}class DecorationComparator{constructor(){this.changes=[]}compareRange(){}comparePoint(from,to,a,b){if(from<to||a&&a.heightRelevant||b&&b.heightRelevant)addRange(from,to,this.changes,5)}}function visiblePixelRange(dom,paddingTop){let rect=dom.getBoundingClientRect();let doc=dom.ownerDocument,win=doc.defaultView||window;let left=Math.max(0,rect.left),right=Math.min(win.innerWidth,rect.right);let top=Math.max(0,rect.top),bottom=Math.min(win.innerHeight,rect.bottom);for(let parent=dom.parentNode;parent&&parent!=doc.body;){if(parent.nodeType==1){let elt=parent;let style=window.getComputedStyle(elt);if((elt.scrollHeight>elt.clientHeight||elt.scrollWidth>elt.clientWidth)&&style.overflow!="visible"){let parentRect=elt.getBoundingClientRect();left=Math.max(left,parentRect.left);right=Math.min(right,parentRect.right);top=Math.max(top,parentRect.top);bottom=Math.min(parent==dom.parentNode?win.innerHeight:bottom,parentRect.bottom)}parent=style.position=="absolute"||style.position=="fixed"?elt.offsetParent:elt.parentNode}else if(parent.nodeType==11){parent=parent.host}else{break}}return{left:left-rect.left,right:Math.max(left,right)-rect.left,top:top-(rect.top+paddingTop),bottom:Math.max(top,bottom)-(rect.top+paddingTop)}}function inWindow(elt){let rect=elt.getBoundingClientRect(),win=elt.ownerDocument.defaultView||window;return rect.left<win.innerWidth&&rect.right>0&&rect.top<win.innerHeight&&rect.bottom>0}function fullPixelRange(dom,paddingTop){let rect=dom.getBoundingClientRect();return{left:0,right:rect.right-rect.left,top:paddingTop,bottom:rect.bottom-(rect.top+paddingTop)}}class LineGap{constructor(from,to,size,displaySize){this.from=from;this.to=to;this.size=size;this.displaySize=displaySize}static same(a,b){if(a.length!=b.length)return false;for(let i=0;i<a.length;i++){let gA=a[i],gB=b[i];if(gA.from!=gB.from||gA.to!=gB.to||gA.size!=gB.size)return false}return true}draw(viewState,wrapping){return Decoration.replace({widget:new LineGapWidget(this.displaySize*(wrapping?viewState.scaleY:viewState.scaleX),wrapping)}).range(this.from,this.to)}}class LineGapWidget extends WidgetType{constructor(size,vertical){super();this.size=size;this.vertical=vertical}eq(other){return other.size==this.size&&other.vertical==this.vertical}toDOM(){let elt=document.createElement("div");if(this.vertical){elt.style.height=this.size+"px"}else{elt.style.width=this.size+"px";elt.style.height="2px";elt.style.display="inline-block"}return elt}get estimatedHeight(){return this.vertical?this.size:-1}}class ViewState{constructor(view,state){this.view=view;this.state=state;this.pixelViewport={left:0,right:window.innerWidth,top:0,bottom:0};this.inView=true;this.paddingTop=0;this.paddingBottom=0;this.contentDOMWidth=0;this.contentDOMHeight=0;this.editorHeight=0;this.editorWidth=0;this.scaleX=1;this.scaleY=1;this.scrollOffset=0;this.scrolledToBottom=false;this.scrollAnchorPos=0;this.scrollAnchorHeight=-1;this.scaler=IdScaler;this.scrollTarget=null;this.printing=false;this.mustMeasureContent=true;this.defaultTextDirection=Direction.LTR;this.visibleRanges=[];this.mustEnforceCursorAssoc=false;let guessWrapping=state.facet(contentAttributes).some(v=>typeof v!="function"&&v.class=="cm-lineWrapping");this.heightOracle=new HeightOracle(guessWrapping);this.stateDeco=staticDeco(state);this.heightMap=HeightMap.empty().applyChanges(this.stateDeco,Text.empty,this.heightOracle.setDoc(state.doc),[new ChangedRange(0,0,0,state.doc.length)]);for(let i=0;i<2;i++){this.viewport=this.getViewport(0,null);if(!this.updateForViewport())break}this.updateViewportLines();this.lineGaps=this.ensureLineGaps([]);this.lineGapDeco=Decoration.set(this.lineGaps.map(gap=>gap.draw(this,false)));this.scrollParent=view.scrollDOM;this.computeVisibleRanges()}updateForViewport(){let viewports=[this.viewport],{main:main}=this.state.selection;for(let i=0;i<=1;i++){let pos=i?main.head:main.anchor;if(!viewports.some(({from:from,to:to})=>pos>=from&&pos<=to)){let{from:from,to:to}=this.lineBlockAt(pos);viewports.push(new Viewport(from,to))}}this.viewports=viewports.sort((a,b)=>a.from-b.from);return this.updateScaler()}updateScaler(){let scaler=this.scaler;this.scaler=this.heightMap.height<=7e6?IdScaler:new BigScaler(this.heightOracle,this.heightMap,this.viewports);return scaler.eq(this.scaler)?0:2}updateViewportLines(){this.viewportLines=[];this.heightMap.forEachLine(this.viewport.from,this.viewport.to,this.heightOracle.setDoc(this.state.doc),0,0,block=>{this.viewportLines.push(scaleBlock(block,this.scaler))})}update(update,scrollTarget=null){this.state=update.state;let prevDeco=this.stateDeco;this.stateDeco=staticDeco(this.state);let contentChanges=update.changedRanges;let heightChanges=ChangedRange.extendWithRanges(contentChanges,heightRelevantDecoChanges(prevDeco,this.stateDeco,update?update.changes:ChangeSet.empty(this.state.doc.length)));let prevHeight=this.heightMap.height;let scrollAnchor=this.scrolledToBottom?null:this.scrollAnchorAt(this.scrollOffset);clearHeightChangeFlag();this.heightMap=this.heightMap.applyChanges(this.stateDeco,update.startState.doc,this.heightOracle.setDoc(this.state.doc),heightChanges);if(this.heightMap.height!=prevHeight||heightChangeFlag)update.flags|=2;if(scrollAnchor){this.scrollAnchorPos=update.changes.mapPos(scrollAnchor.from,-1);this.scrollAnchorHeight=scrollAnchor.top}else{this.scrollAnchorPos=-1;this.scrollAnchorHeight=prevHeight}let viewport=heightChanges.length?this.mapViewport(this.viewport,update.changes):this.viewport;if(scrollTarget&&(scrollTarget.range.head<viewport.from||scrollTarget.range.head>viewport.to)||!this.viewportIsAppropriate(viewport))viewport=this.getViewport(0,scrollTarget);let viewportChange=viewport.from!=this.viewport.from||viewport.to!=this.viewport.to;this.viewport=viewport;update.flags|=this.updateForViewport();if(viewportChange||!update.changes.empty||update.flags&2)this.updateViewportLines();if(this.lineGaps.length||this.viewport.to-this.viewport.from>2e3<<1)this.updateLineGaps(this.ensureLineGaps(this.mapLineGaps(this.lineGaps,update.changes)));update.flags|=this.computeVisibleRanges(update.changes);if(scrollTarget)this.scrollTarget=scrollTarget;if(!this.mustEnforceCursorAssoc&&(update.selectionSet||update.focusChanged)&&update.view.lineWrapping&&update.state.selection.main.empty&&update.state.selection.main.assoc&&!update.state.facet(nativeSelectionHidden))this.mustEnforceCursorAssoc=true}measure(){let{view:view}=this,dom=view.contentDOM,style=window.getComputedStyle(dom);let oracle=this.heightOracle;let whiteSpace=style.whiteSpace;this.defaultTextDirection=style.direction=="rtl"?Direction.RTL:Direction.LTR;let refresh=this.heightOracle.mustRefreshForWrapping(whiteSpace)||this.mustMeasureContent==="refresh";let domRect=dom.getBoundingClientRect();let measureContent=refresh||this.mustMeasureContent||this.contentDOMHeight!=domRect.height;this.contentDOMHeight=domRect.height;this.mustMeasureContent=false;let result=0,bias=0;if(domRect.width&&domRect.height){let{scaleX:scaleX,scaleY:scaleY}=getScale(dom,domRect);if(scaleX>.005&&Math.abs(this.scaleX-scaleX)>.005||scaleY>.005&&Math.abs(this.scaleY-scaleY)>.005){this.scaleX=scaleX;this.scaleY=scaleY;result|=16;refresh=measureContent=true}}let paddingTop=(parseInt(style.paddingTop)||0)*this.scaleY;let paddingBottom=(parseInt(style.paddingBottom)||0)*this.scaleY;if(this.paddingTop!=paddingTop||this.paddingBottom!=paddingBottom){this.paddingTop=paddingTop;this.paddingBottom=paddingBottom;result|=16|2}if(this.editorWidth!=view.scrollDOM.clientWidth){if(oracle.lineWrapping)measureContent=true;this.editorWidth=view.scrollDOM.clientWidth;result|=16}let scrollParent=scrollableParents(this.view.contentDOM,false).y;if(scrollParent!=this.scrollParent){this.scrollParent=scrollParent;this.scrollAnchorHeight=-1;this.scrollOffset=0}let scrollOffset=this.getScrollOffset();if(this.scrollOffset!=scrollOffset){this.scrollAnchorHeight=-1;this.scrollOffset=scrollOffset}this.scrolledToBottom=isScrolledToBottom(this.scrollParent||view.win);let pixelViewport=(this.printing?fullPixelRange:visiblePixelRange)(dom,this.paddingTop);let dTop=pixelViewport.top-this.pixelViewport.top,dBottom=pixelViewport.bottom-this.pixelViewport.bottom;this.pixelViewport=pixelViewport;let inView=this.pixelViewport.bottom>this.pixelViewport.top&&this.pixelViewport.right>this.pixelViewport.left;if(inView!=this.inView){this.inView=inView;if(inView)measureContent=true}if(!this.inView&&!this.scrollTarget&&!inWindow(view.dom))return 0;let contentWidth=domRect.width;if(this.contentDOMWidth!=contentWidth||this.editorHeight!=view.scrollDOM.clientHeight){this.contentDOMWidth=domRect.width;this.editorHeight=view.scrollDOM.clientHeight;result|=16}if(measureContent){let lineHeights=view.docView.measureVisibleLineHeights(this.viewport);if(oracle.mustRefreshForHeights(lineHeights))refresh=true;if(refresh||oracle.lineWrapping&&Math.abs(contentWidth-this.contentDOMWidth)>oracle.charWidth){let{lineHeight:lineHeight,charWidth:charWidth,textHeight:textHeight}=view.docView.measureTextSize();refresh=lineHeight>0&&oracle.refresh(whiteSpace,lineHeight,charWidth,textHeight,Math.max(5,contentWidth/charWidth),lineHeights);if(refresh){view.docView.minWidth=0;result|=16}}if(dTop>0&&dBottom>0)bias=Math.max(dTop,dBottom);else if(dTop<0&&dBottom<0)bias=Math.min(dTop,dBottom);clearHeightChangeFlag();for(let vp of this.viewports){let heights=vp.from==this.viewport.from?lineHeights:view.docView.measureVisibleLineHeights(vp);this.heightMap=(refresh?HeightMap.empty().applyChanges(this.stateDeco,Text.empty,this.heightOracle,[new ChangedRange(0,0,0,view.state.doc.length)]):this.heightMap).updateHeight(oracle,0,refresh,new MeasuredHeights(vp.from,heights))}if(heightChangeFlag)result|=2}let viewportChange=!this.viewportIsAppropriate(this.viewport,bias)||this.scrollTarget&&(this.scrollTarget.range.head<this.viewport.from||this.scrollTarget.range.head>this.viewport.to);if(viewportChange){if(result&2)result|=this.updateScaler();this.viewport=this.getViewport(bias,this.scrollTarget);result|=this.updateForViewport()}if(result&2||viewportChange)this.updateViewportLines();if(this.lineGaps.length||this.viewport.to-this.viewport.from>2e3<<1)this.updateLineGaps(this.ensureLineGaps(refresh?[]:this.lineGaps,view));result|=this.computeVisibleRanges();if(this.mustEnforceCursorAssoc){this.mustEnforceCursorAssoc=false;view.docView.enforceCursorAssoc()}return result}get visibleTop(){return this.scaler.fromDOM(this.pixelViewport.top)}get visibleBottom(){return this.scaler.fromDOM(this.pixelViewport.bottom)}getViewport(bias,scrollTarget){let marginTop=.5-Math.max(-.5,Math.min(.5,bias/1e3/2));let map=this.heightMap,oracle=this.heightOracle;let{visibleTop:visibleTop,visibleBottom:visibleBottom}=this;let viewport=new Viewport(map.lineAt(visibleTop-marginTop*1e3,QueryType.ByHeight,oracle,0,0).from,map.lineAt(visibleBottom+(1-marginTop)*1e3,QueryType.ByHeight,oracle,0,0).to);if(scrollTarget){let{head:head}=scrollTarget.range;if(head<viewport.from||head>viewport.to){let viewHeight=Math.min(this.editorHeight,this.pixelViewport.bottom-this.pixelViewport.top);let block=map.lineAt(head,QueryType.ByPos,oracle,0,0),topPos;if(scrollTarget.y=="center")topPos=(block.top+block.bottom)/2-viewHeight/2;else if(scrollTarget.y=="start"||scrollTarget.y=="nearest"&&head<viewport.from)topPos=block.top;else topPos=block.bottom-viewHeight;viewport=new Viewport(map.lineAt(topPos-1e3/2,QueryType.ByHeight,oracle,0,0).from,map.lineAt(topPos+viewHeight+1e3/2,QueryType.ByHeight,oracle,0,0).to)}}return viewport}mapViewport(viewport,changes){let from=changes.mapPos(viewport.from,-1),to=changes.mapPos(viewport.to,1);return new Viewport(this.heightMap.lineAt(from,QueryType.ByPos,this.heightOracle,0,0).from,this.heightMap.lineAt(to,QueryType.ByPos,this.heightOracle,0,0).to)}viewportIsAppropriate({from:from,to:to},bias=0){if(!this.inView)return true;let{top:top}=this.heightMap.lineAt(from,QueryType.ByPos,this.heightOracle,0,0);let{bottom:bottom}=this.heightMap.lineAt(to,QueryType.ByPos,this.heightOracle,0,0);let{visibleTop:visibleTop,visibleBottom:visibleBottom}=this;return(from==0||top<=visibleTop-Math.max(10,Math.min(-bias,250)))&&(to==this.state.doc.length||bottom>=visibleBottom+Math.max(10,Math.min(bias,250)))&&(top>visibleTop-2*1e3&&bottom<visibleBottom+2*1e3)}mapLineGaps(gaps,changes){if(!gaps.length||changes.empty)return gaps;let mapped=[];for(let gap of gaps)if(!changes.touchesRange(gap.from,gap.to))mapped.push(new LineGap(changes.mapPos(gap.from),changes.mapPos(gap.to),gap.size,gap.displaySize));return mapped}ensureLineGaps(current,mayMeasure){let wrapping=this.heightOracle.lineWrapping;let margin=wrapping?1e4:2e3,halfMargin=margin>>1,doubleMargin=margin<<1;if(this.defaultTextDirection!=Direction.LTR&&!wrapping)return[];let gaps=[];let addGap=(from,to,line,structure)=>{if(to-from<halfMargin)return;let sel=this.state.selection.main,avoid=[sel.from];if(!sel.empty)avoid.push(sel.to);for(let pos of avoid){if(pos>from&&pos<to){addGap(from,pos-10,line,structure);addGap(pos+10,to,line,structure);return}}let gap=find(current,gap=>gap.from>=line.from&&gap.to<=line.to&&Math.abs(gap.from-from)<halfMargin&&Math.abs(gap.to-to)<halfMargin&&!avoid.some(pos=>gap.from<pos&&gap.to>pos));if(!gap){if(to<line.to&&mayMeasure&&wrapping&&mayMeasure.visibleRanges.some(r=>r.from<=to&&r.to>=to)){let lineStart=mayMeasure.moveToLineBoundary(EditorSelection.cursor(to),false,true).head;if(lineStart>from)to=lineStart}let size=this.gapSize(line,from,to,structure);let displaySize=wrapping||size<2e6?size:2e6;gap=new LineGap(from,to,size,displaySize)}gaps.push(gap)};let checkLine=line=>{if(line.length<doubleMargin||line.type!=BlockType.Text)return;let structure=lineStructure(line.from,line.to,this.stateDeco);if(structure.total<doubleMargin)return;let target=this.scrollTarget?this.scrollTarget.range.head:null;let viewFrom,viewTo;if(wrapping){let marginHeight=margin/this.heightOracle.lineLength*this.heightOracle.lineHeight;let top,bot;if(target!=null){let targetFrac=findFraction(structure,target);let spaceFrac=((this.visibleBottom-this.visibleTop)/2+marginHeight)/line.height;top=targetFrac-spaceFrac;bot=targetFrac+spaceFrac}else{top=(this.visibleTop-line.top-marginHeight)/line.height;bot=(this.visibleBottom-line.top+marginHeight)/line.height}viewFrom=findPosition(structure,top);viewTo=findPosition(structure,bot)}else{let totalWidth=structure.total*this.heightOracle.charWidth;let marginWidth=margin*this.heightOracle.charWidth;let horizOffset=0;if(totalWidth>2e6)for(let old of current){if(old.from>=line.from&&old.from<line.to&&old.size!=old.displaySize&&old.from*this.heightOracle.charWidth+horizOffset<this.pixelViewport.left)horizOffset=old.size-old.displaySize}let pxLeft=this.pixelViewport.left+horizOffset,pxRight=this.pixelViewport.right+horizOffset;let left,right;if(target!=null){let targetFrac=findFraction(structure,target);let spaceFrac=((pxRight-pxLeft)/2+marginWidth)/totalWidth;left=targetFrac-spaceFrac;right=targetFrac+spaceFrac}else{left=(pxLeft-marginWidth)/totalWidth;right=(pxRight+marginWidth)/totalWidth}viewFrom=findPosition(structure,left);viewTo=findPosition(structure,right)}if(viewFrom>line.from)addGap(line.from,viewFrom,line,structure);if(viewTo<line.to)addGap(viewTo,line.to,line,structure)};for(let line of this.viewportLines){if(Array.isArray(line.type))line.type.forEach(checkLine);else checkLine(line)}return gaps}gapSize(line,from,to,structure){let fraction=findFraction(structure,to)-findFraction(structure,from);if(this.heightOracle.lineWrapping){return line.height*fraction}else{return structure.total*this.heightOracle.charWidth*fraction}}updateLineGaps(gaps){if(!LineGap.same(gaps,this.lineGaps)){this.lineGaps=gaps;this.lineGapDeco=Decoration.set(gaps.map(gap=>gap.draw(this,this.heightOracle.lineWrapping)))}}computeVisibleRanges(changes){let deco=this.stateDeco;if(this.lineGaps.length)deco=deco.concat(this.lineGapDeco);let ranges=[];RangeSet.spans(deco,this.viewport.from,this.viewport.to,{span(from,to){ranges.push({from:from,to:to})},point(){}},20);let changed=0;if(ranges.length!=this.visibleRanges.length){changed=8|4}else{for(let i=0;i<ranges.length&&!(changed&8);i++){let old=this.visibleRanges[i],nw=ranges[i];if(old.from!=nw.from||old.to!=nw.to){changed|=4;if(!(changes&&changes.mapPos(old.from,-1)==nw.from&&changes.mapPos(old.to,1)==nw.to))changed|=8}}}this.visibleRanges=ranges;return changed}lineBlockAt(pos){return pos>=this.viewport.from&&pos<=this.viewport.to&&this.viewportLines.find(b=>b.from<=pos&&b.to>=pos)||scaleBlock(this.heightMap.lineAt(pos,QueryType.ByPos,this.heightOracle,0,0),this.scaler)}lineBlockAtHeight(height){return height>=this.viewportLines[0].top&&height<=this.viewportLines[this.viewportLines.length-1].bottom&&this.viewportLines.find(l=>l.top<=height&&l.bottom>=height)||scaleBlock(this.heightMap.lineAt(this.scaler.fromDOM(height),QueryType.ByHeight,this.heightOracle,0,0),this.scaler)}getScrollOffset(){let base=this.scrollParent==this.view.scrollDOM?this.scrollParent.scrollTop:(this.scrollParent?this.scrollParent.getBoundingClientRect().top:0)-this.view.contentDOM.getBoundingClientRect().top;return base*this.scaleY}scrollAnchorAt(scrollOffset){let block=this.lineBlockAtHeight(scrollOffset+8);return block.from>=this.viewport.from||this.viewportLines[0].top-scrollOffset>200?block:this.viewportLines[0]}elementAtHeight(height){return scaleBlock(this.heightMap.blockAt(this.scaler.fromDOM(height),this.heightOracle,0,0),this.scaler)}get docHeight(){return this.scaler.toDOM(this.heightMap.height)}get contentHeight(){return this.docHeight+this.paddingTop+this.paddingBottom}}class Viewport{constructor(from,to){this.from=from;this.to=to}}function lineStructure(from,to,stateDeco){let ranges=[],pos=from,total=0;RangeSet.spans(stateDeco,from,to,{span(){},point(from,to){if(from>pos){ranges.push({from:pos,to:from});total+=from-pos}pos=to}},20);if(pos<to){ranges.push({from:pos,to:to});total+=to-pos}return{total:total,ranges:ranges}}function findPosition({total:total,ranges:ranges},ratio){if(ratio<=0)return ranges[0].from;if(ratio>=1)return ranges[ranges.length-1].to;let dist=Math.floor(total*ratio);for(let i=0;;i++){let{from:from,to:to}=ranges[i],size=to-from;if(dist<=size)return from+dist;dist-=size}}function findFraction(structure,pos){let counted=0;for(let{from:from,to:to}of structure.ranges){if(pos<=to){counted+=pos-from;break}counted+=to-from}return counted/structure.total}function find(array,f){for(let val of array)if(f(val))return val;return undefined}const IdScaler={toDOM(n){return n},fromDOM(n){return n},scale:1,eq(other){return other==this}};function staticDeco(state){let deco=state.facet(decorations).filter(d=>typeof d!="function");let outer=state.facet(outerDecorations).filter(d=>typeof d!="function");if(outer.length)deco.push(RangeSet.join(outer));return deco}class BigScaler{constructor(oracle,heightMap,viewports){let vpHeight=0,base=0,domBase=0;this.viewports=viewports.map(({from:from,to:to})=>{let top=heightMap.lineAt(from,QueryType.ByPos,oracle,0,0).top;let bottom=heightMap.lineAt(to,QueryType.ByPos,oracle,0,0).bottom;vpHeight+=bottom-top;return{from:from,to:to,top:top,bottom:bottom,domTop:0,domBottom:0}});this.scale=(7e6-vpHeight)/(heightMap.height-vpHeight);for(let obj of this.viewports){obj.domTop=domBase+(obj.top-base)*this.scale;domBase=obj.domBottom=obj.domTop+(obj.bottom-obj.top);base=obj.bottom}}toDOM(n){for(let i=0,base=0,domBase=0;;i++){let vp=i<this.viewports.length?this.viewports[i]:null;if(!vp||n<vp.top)return domBase+(n-base)*this.scale;if(n<=vp.bottom)return vp.domTop+(n-vp.top);base=vp.bottom;domBase=vp.domBottom}}fromDOM(n){for(let i=0,base=0,domBase=0;;i++){let vp=i<this.viewports.length?this.viewports[i]:null;if(!vp||n<vp.domTop)return base+(n-domBase)/this.scale;if(n<=vp.domBottom)return vp.top+(n-vp.domTop);base=vp.bottom;domBase=vp.domBottom}}eq(other){if(!(other instanceof BigScaler))return false;return this.scale==other.scale&&this.viewports.length==other.viewports.length&&this.viewports.every((vp,i)=>vp.from==other.viewports[i].from&&vp.to==other.viewports[i].to)}}function scaleBlock(block,scaler){if(scaler.scale==1)return block;let bTop=scaler.toDOM(block.top),bBottom=scaler.toDOM(block.bottom);return new BlockInfo(block.from,block.length,bTop,bBottom-bTop,Array.isArray(block._content)?block._content.map(b=>scaleBlock(b,scaler)):block._content)}const theme=Facet.define({combine:strs=>strs.join(" ")});const darkTheme=Facet.define({combine:values=>values.indexOf(true)>-1});const baseThemeID=StyleModule.newName(),baseLightID=StyleModule.newName(),baseDarkID=StyleModule.newName();const lightDarkIDs={"&light":"."+baseLightID,"&dark":"."+baseDarkID};function buildTheme(main,spec,scopes){return new StyleModule(spec,{finish(sel){return/&/.test(sel)?sel.replace(/&\w*/,m=>{if(m=="&")return main;if(!scopes||!scopes[m])throw new RangeError(`Unsupported selector: ${m}`);return scopes[m]}):main+" "+sel}})}const baseTheme$1=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,overflowAnchor:"none"},".cm-content":{margin:0,flexGrow:2,flexShrink:0,display:"block",whiteSpace:"pre",wordWrap:"normal",boxSizing:"border-box",minHeight:"100%",padding:"4px 0",outline:"none","&[contenteditable=true]":{WebkitUserModify:"read-write-plaintext-only"}},".cm-lineWrapping":{whiteSpace_fallback:"pre-wrap",whiteSpace:"break-spaces",wordBreak:"break-word",overflowWrap:"anywhere",flexShrink:1},"&light .cm-content":{caretColor:"black"},"&dark .cm-content":{caretColor:"white"},".cm-line":{display:"block",padding:"0 2px 0 6px"},".cm-layer":{userSelect:"none",position:"absolute",left:0,top:0,contain:"size style","& > *":{position:"absolute"}},"&light .cm-selectionBackground":{background:"#d9d9d9"},"&dark .cm-selectionBackground":{background:"#222"},"&light.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground":{background:"#d7d4f0"},"&dark.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground":{background:"#233"},".cm-cursorLayer":{pointerEvents:"none"},"&.cm-focused > .cm-scroller > .cm-cursorLayer":{animation:"steps(1) cm-blink 1.2s infinite"},"@keyframes cm-blink":{"0%":{},"50%":{opacity:0},"100%":{}},"@keyframes cm-blink2":{"0%":{},"50%":{opacity:0},"100%":{}},".cm-cursor, .cm-dropCursor":{borderLeft:"1.2px solid black",marginLeft:"-0.6px",pointerEvents:"none"},".cm-cursor":{display:"none"},"&dark .cm-cursor":{borderLeftColor:"#ddd"},".cm-selectionHandle":{backgroundColor:"currentColor",width:"1.5px"},".cm-selectionHandle-start::before, .cm-selectionHandle-end::before":{content:'""',backgroundColor:"inherit",borderRadius:"50%",width:"8px",height:"8px",position:"absolute",left:"-3.25px"},".cm-selectionHandle-start::before":{top:"-8px"},".cm-selectionHandle-end::before":{bottom:"-8px"},".cm-dropCursor":{position:"absolute"},"&.cm-focused > .cm-scroller > .cm-cursorLayer .cm-cursor":{display:"block"},".cm-iso":{unicodeBidi:"isolate"},".cm-announced":{position:"fixed",top:"-10000px"},"@media print":{".cm-announced":{display:"none"}},"&light .cm-activeLine":{backgroundColor:"#cceeff44"},"&dark .cm-activeLine":{backgroundColor:"#99eeff33"},"&light .cm-specialChar":{color:"red"},"&dark .cm-specialChar":{color:"#f78"},".cm-gutters":{flexShrink:0,display:"flex",height:"100%",boxSizing:"border-box",zIndex:200},".cm-gutters-before":{insetInlineStart:0},".cm-gutters-after":{insetInlineEnd:0},"&light .cm-gutters":{backgroundColor:"#f5f5f5",color:"#6c6c6c",border:"0px solid #ddd","&.cm-gutters-before":{borderRightWidth:"1px"},"&.cm-gutters-after":{borderLeftWidth:"1px"}},"&dark .cm-gutters":{backgroundColor:"#333338",color:"#ccc"},".cm-gutter":{display:"flex !important",flexDirection:"column",flexShrink:0,boxSizing:"border-box",minHeight:"100%",overflow:"hidden"},".cm-gutterElement":{boxSizing:"border-box"},".cm-lineNumbers .cm-gutterElement":{padding:"0 3px 0 5px",minWidth:"20px",textAlign:"right",whiteSpace:"nowrap"},"&light .cm-activeLineGutter":{backgroundColor:"#e2f2ff"},"&dark .cm-activeLineGutter":{backgroundColor:"#222227"},".cm-panels":{boxSizing:"border-box",position:"sticky",left:0,right:0,zIndex:300},"&light .cm-panels":{backgroundColor:"#f5f5f5",color:"black"},"&light .cm-panels-top":{borderBottom:"1px solid #ddd"},"&light .cm-panels-bottom":{borderTop:"1px solid #ddd"},"&dark .cm-panels":{backgroundColor:"#333338",color:"white"},".cm-dialog":{padding:"2px 19px 4px 6px",position:"relative","& label":{fontSize:"80%"}},".cm-dialog-close":{position:"absolute",top:"3px",right:"4px",backgroundColor:"inherit",border:"none",font:"inherit",fontSize:"14px",padding:"0"},".cm-tab":{display:"inline-block",overflow:"hidden",verticalAlign:"bottom"},".cm-widgetBuffer":{verticalAlign:"text-top",height:"1em",width:0,display:"inline"},".cm-placeholder":{color:"#888",display:"inline-block",verticalAlign:"top",userSelect:"none"},".cm-highlightSpace":{backgroundImage:"radial-gradient(circle at 50% 55%, #aaa 20%, transparent 5%)",backgroundPosition:"center"},".cm-highlightTab":{backgroundImage:`url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" width="200" height="20"><path stroke="%23888" stroke-width="1" fill="none" d="M1 10H196L190 5M190 15L196 10M197 4L197 16"/></svg>')`,backgroundSize:"auto 100%",backgroundPosition:"right 90%",backgroundRepeat:"no-repeat"},".cm-trailingSpace":{backgroundColor:"#ff332255"},".cm-button":{verticalAlign:"middle",color:"inherit",fontSize:"70%",padding:".2em 1em",borderRadius:"1px"},"&light .cm-button":{backgroundImage:"linear-gradient(#eff1f5, #d9d9df)",border:"1px solid #888","&:active":{backgroundImage:"linear-gradient(#b4b4b4, #d0d3d6)"}},"&dark .cm-button":{backgroundImage:"linear-gradient(#393939, #111)",border:"1px solid #888","&:active":{backgroundImage:"linear-gradient(#111, #333)"}},".cm-textfield":{verticalAlign:"middle",color:"inherit",fontSize:"70%",border:"1px solid silver",padding:".2em .5em"},"&light .cm-textfield":{backgroundColor:"white"},"&dark .cm-textfield":{border:"1px solid #555",backgroundColor:"inherit"}},lightDarkIDs);const observeOptions={childList:true,characterData:true,subtree:true,attributes:true,characterDataOldValue:true};const useCharData=browser.ie&&browser.ie_version<=11;class DOMObserver{constructor(view){this.view=view;this.active=false;this.editContext=null;this.selectionRange=new DOMSelectionState;this.selectionChanged=false;this.delayedFlush=-1;this.resizeTimeout=-1;this.queue=[];this.delayedAndroidKey=null;this.flushingAndroidKey=-1;this.lastChange=0;this.scrollTargets=[];this.intersection=null;this.resizeScroll=null;this.intersecting=false;this.gapIntersection=null;this.gaps=[];this.printQuery=null;this.parentCheck=-1;this.dom=view.contentDOM;this.observer=new MutationObserver(mutations=>{for(let mut of mutations)this.queue.push(mut);if((browser.ie&&browser.ie_version<=11||browser.ios&&view.composing)&&mutations.some(m=>m.type=="childList"&&m.removedNodes.length||m.type=="characterData"&&m.oldValue.length>m.target.nodeValue.length))this.flushSoon();else this.flush()});if(window.EditContext&&browser.android&&view.constructor.EDIT_CONTEXT!==false&&!(browser.chrome&&browser.chrome_version<126)){this.editContext=new EditContextManager(view);if(view.state.facet(editable))view.contentDOM.editContext=this.editContext.editContext}if(useCharData)this.onCharData=event=>{this.queue.push({target:event.target,type:"characterData",oldValue:event.prevValue});this.flushSoon()};this.onSelectionChange=this.onSelectionChange.bind(this);this.onResize=this.onResize.bind(this);this.onPrint=this.onPrint.bind(this);this.onScroll=this.onScroll.bind(this);if(window.matchMedia)this.printQuery=window.matchMedia("print");if(typeof ResizeObserver=="function"){this.resizeScroll=new ResizeObserver(()=>{var _a;if(((_a=this.view.docView)===null||_a===void 0?void 0:_a.lastUpdate)<Date.now()-75)this.onResize()});this.resizeScroll.observe(view.scrollDOM)}this.addWindowListeners(this.win=view.win);this.start();if(typeof IntersectionObserver=="function"){this.intersection=new IntersectionObserver(entries=>{if(this.parentCheck<0)this.parentCheck=setTimeout(this.listenForScroll.bind(this),1e3);if(entries.length>0&&entries[entries.length-1].intersectionRatio>0!=this.intersecting){this.intersecting=!this.intersecting;if(this.intersecting!=this.view.inView)this.onScrollChanged(document.createEvent("Event"))}},{threshold:[0,.001]});this.intersection.observe(this.dom);this.gapIntersection=new IntersectionObserver(entries=>{if(entries.length>0&&entries[entries.length-1].intersectionRatio>0)this.onScrollChanged(document.createEvent("Event"))},{})}this.listenForScroll();this.readSelectionRange()}onScrollChanged(e){this.view.inputState.runHandlers("scroll",e);if(this.intersecting)this.view.measure()}onScroll(e){if(this.intersecting)this.flush(false);if(this.editContext)this.view.requestMeasure(this.editContext.measureReq);this.onScrollChanged(e)}onResize(){if(this.resizeTimeout<0)this.resizeTimeout=setTimeout(()=>{this.resizeTimeout=-1;this.view.requestMeasure()},50)}onPrint(event){if((event.type=="change"||!event.type)&&!event.matches)return;this.view.viewState.printing=true;this.view.measure();setTimeout(()=>{this.view.viewState.printing=false;this.view.requestMeasure()},500)}updateGaps(gaps){if(this.gapIntersection&&(gaps.length!=this.gaps.length||this.gaps.some((g,i)=>g!=gaps[i]))){this.gapIntersection.disconnect();for(let gap of gaps)this.gapIntersection.observe(gap);this.gaps=gaps}}onSelectionChange(event){let wasChanged=this.selectionChanged;if(!this.readSelectionRange()||this.delayedAndroidKey)return;let{view:view}=this,sel=this.selectionRange;if(view.state.facet(editable)?view.root.activeElement!=this.dom:!hasSelection(this.dom,sel))return;let context=sel.anchorNode&&view.docView.tile.nearest(sel.anchorNode);if(context&&context.isWidget()&&context.widget.ignoreEvent(event)){if(!wasChanged)this.selectionChanged=false;return}if((browser.ie&&browser.ie_version<=11||browser.android&&browser.chrome)&&!view.state.selection.main.empty&&sel.focusNode&&isEquivalentPosition(sel.focusNode,sel.focusOffset,sel.anchorNode,sel.anchorOffset))this.flushSoon();else this.flush(false)}readSelectionRange(){let{view:view}=this;let selection=getSelection(view.root);if(!selection)return false;let range=browser.safari&&view.root.nodeType==11&&view.root.activeElement==this.dom&&safariSelectionRangeHack(this.view,selection)||selection;if(!range||this.selectionRange.eq(range))return false;let local=hasSelection(this.dom,range);if(local&&!this.selectionChanged&&view.inputState.lastFocusTime>Date.now()-200&&view.inputState.lastTouchTime<Date.now()-300&&atElementStart(this.dom,range)){this.view.inputState.lastFocusTime=0;view.docView.updateSelection();return false}this.selectionRange.setRange(range);if(local)this.selectionChanged=true;return true}setSelectionRange(anchor,head){this.selectionRange.set(anchor.node,anchor.offset,head.node,head.offset);this.selectionChanged=false}clearSelectionRange(){this.selectionRange.set(null,0,null,0)}listenForScroll(){this.parentCheck=-1;let i=0,changed=null;for(let dom=this.dom;dom;){if(dom.nodeType==1){if(!changed&&i<this.scrollTargets.length&&this.scrollTargets[i]==dom)i++;else if(!changed)changed=this.scrollTargets.slice(0,i);if(changed)changed.push(dom);dom=dom.assignedSlot||dom.parentNode}else if(dom.nodeType==11){dom=dom.host}else{break}}if(i<this.scrollTargets.length&&!changed)changed=this.scrollTargets.slice(0,i);if(changed){for(let dom of this.scrollTargets)dom.removeEventListener("scroll",this.onScroll);for(let dom of this.scrollTargets=changed)dom.addEventListener("scroll",this.onScroll)}}ignore(f){if(!this.active)return f();try{this.stop();return f()}finally{this.start();this.clear()}}start(){if(this.active)return;this.observer.observe(this.dom,observeOptions);if(useCharData)this.dom.addEventListener("DOMCharacterDataModified",this.onCharData);this.active=true}stop(){if(!this.active)return;this.active=false;this.observer.disconnect();if(useCharData)this.dom.removeEventListener("DOMCharacterDataModified",this.onCharData)}clear(){this.processRecords();this.queue.length=0;this.selectionChanged=false}delayAndroidKey(key,keyCode){var _a;if(!this.delayedAndroidKey){let flush=()=>{let key=this.delayedAndroidKey;if(key){this.clearDelayedAndroidKey();this.view.inputState.lastKeyCode=key.keyCode;this.view.inputState.lastKeyTime=Date.now();let flushed=this.flush();if(!flushed&&key.force)dispatchKey(this.dom,key.key,key.keyCode)}};this.flushingAndroidKey=this.view.win.requestAnimationFrame(flush)}if(!this.delayedAndroidKey||key=="Enter")this.delayedAndroidKey={key:key,keyCode:keyCode,force:this.lastChange<Date.now()-50||!!((_a=this.delayedAndroidKey)===null||_a===void 0?void 0:_a.force)}}clearDelayedAndroidKey(){this.win.cancelAnimationFrame(this.flushingAndroidKey);this.delayedAndroidKey=null;this.flushingAndroidKey=-1}flushSoon(){if(this.delayedFlush<0)this.delayedFlush=this.view.win.requestAnimationFrame(()=>{this.delayedFlush=-1;this.flush()})}forceFlush(){if(this.delayedFlush>=0){this.view.win.cancelAnimationFrame(this.delayedFlush);this.delayedFlush=-1}this.flush()}pendingRecords(){for(let mut of this.observer.takeRecords())this.queue.push(mut);return this.queue}processRecords(){let records=this.pendingRecords();if(records.length)this.queue=[];let from=-1,to=-1,typeOver=false;for(let record of records){let range=this.readMutation(record);if(!range)continue;if(range.typeOver)typeOver=true;if(from==-1){({from:from,to:to}=range)}else{from=Math.min(range.from,from);to=Math.max(range.to,to)}}return{from:from,to:to,typeOver:typeOver}}readChange(){let{from:from,to:to,typeOver:typeOver}=this.processRecords();let newSel=this.selectionChanged&&hasSelection(this.dom,this.selectionRange);if(from<0&&!newSel)return null;if(from>-1)this.lastChange=Date.now();this.view.inputState.lastFocusTime=0;this.selectionChanged=false;let change=new DOMChange(this.view,from,to,typeOver);this.view.docView.domChanged={newSel:change.newSel?change.newSel.main:null};return change}flush(readSelection=true){if(this.delayedFlush>=0||this.delayedAndroidKey)return false;if(readSelection)this.readSelectionRange();let domChange=this.readChange();if(!domChange){this.view.requestMeasure();return false}let startState=this.view.state;let handled=applyDOMChange(this.view,domChange);if(this.view.state==startState&&(domChange.domChanged||domChange.newSel&&!sameSelPos(this.view.state.selection,domChange.newSel.main)))this.view.update([]);return handled}readMutation(rec){let tile=this.view.docView.tile.nearest(rec.target);if(!tile||tile.isWidget())return null;tile.markDirty(rec.type=="attributes");if(rec.type=="childList"){let childBefore=findChild(tile,rec.previousSibling||rec.target.previousSibling,-1);let childAfter=findChild(tile,rec.nextSibling||rec.target.nextSibling,1);return{from:childBefore?tile.posAfter(childBefore):tile.posAtStart,to:childAfter?tile.posBefore(childAfter):tile.posAtEnd,typeOver:false}}else if(rec.type=="characterData"){return{from:tile.posAtStart,to:tile.posAtEnd,typeOver:rec.target.nodeValue==rec.oldValue}}else{return null}}setWindow(win){if(win!=this.win){this.removeWindowListeners(this.win);this.win=win;this.addWindowListeners(this.win)}}addWindowListeners(win){win.addEventListener("resize",this.onResize);if(this.printQuery){if(this.printQuery.addEventListener)this.printQuery.addEventListener("change",this.onPrint);else this.printQuery.addListener(this.onPrint)}else win.addEventListener("beforeprint",this.onPrint);win.addEventListener("scroll",this.onScroll);win.document.addEventListener("selectionchange",this.onSelectionChange)}removeWindowListeners(win){win.removeEventListener("scroll",this.onScroll);win.removeEventListener("resize",this.onResize);if(this.printQuery){if(this.printQuery.removeEventListener)this.printQuery.removeEventListener("change",this.onPrint);else this.printQuery.removeListener(this.onPrint)}else win.removeEventListener("beforeprint",this.onPrint);win.document.removeEventListener("selectionchange",this.onSelectionChange)}update(update){if(this.editContext){this.editContext.update(update);if(update.startState.facet(editable)!=update.state.facet(editable))update.view.contentDOM.editContext=update.state.facet(editable)?this.editContext.editContext:null}}destroy(){var _a,_b,_c;this.stop();(_a=this.intersection)===null||_a===void 0?void 0:_a.disconnect();(_b=this.gapIntersection)===null||_b===void 0?void 0:_b.disconnect();(_c=this.resizeScroll)===null||_c===void 0?void 0:_c.disconnect();for(let dom of this.scrollTargets)dom.removeEventListener("scroll",this.onScroll);this.removeWindowListeners(this.win);clearTimeout(this.parentCheck);clearTimeout(this.resizeTimeout);this.win.cancelAnimationFrame(this.delayedFlush);this.win.cancelAnimationFrame(this.flushingAndroidKey);if(this.editContext){this.view.contentDOM.editContext=null;this.editContext.destroy()}}}function findChild(tile,dom,dir){while(dom){let curTile=Tile.get(dom);if(curTile&&curTile.parent==tile)return curTile;let parent=dom.parentNode;dom=parent!=tile.dom?parent:dir>0?dom.nextSibling:dom.previousSibling}return null}function buildSelectionRangeFromRange(view,range){let anchorNode=range.startContainer,anchorOffset=range.startOffset;let focusNode=range.endContainer,focusOffset=range.endOffset;let curAnchor=view.docView.domAtPos(view.state.selection.main.anchor,1);if(isEquivalentPosition(curAnchor.node,curAnchor.offset,focusNode,focusOffset))[anchorNode,anchorOffset,focusNode,focusOffset]=[focusNode,focusOffset,anchorNode,anchorOffset];return{anchorNode:anchorNode,anchorOffset:anchorOffset,focusNode:focusNode,focusOffset:focusOffset}}function safariSelectionRangeHack(view,selection){if(selection.getComposedRanges){let range=selection.getComposedRanges(view.root)[0];if(range)return buildSelectionRangeFromRange(view,range)}let found=null;function read(event){event.preventDefault();event.stopImmediatePropagation();found=event.getTargetRanges()[0]}view.contentDOM.addEventListener("beforeinput",read,true);view.dom.ownerDocument.execCommand("indent");view.contentDOM.removeEventListener("beforeinput",read,true);return found?buildSelectionRangeFromRange(view,found):null}class EditContextManager{constructor(view){this.from=0;this.to=0;this.pendingContextChange=null;this.handlers=Object.create(null);this.composing=null;this.resetRange(view.state);let context=this.editContext=new window.EditContext({text:view.state.doc.sliceString(this.from,this.to),selectionStart:this.toContextPos(Math.max(this.from,Math.min(this.to,view.state.selection.main.anchor))),selectionEnd:this.toContextPos(view.state.selection.main.head)});this.handlers.textupdate=e=>{let main=view.state.selection.main,{anchor:anchor,head:head}=main;let from=this.toEditorPos(e.updateRangeStart),to=this.toEditorPos(e.updateRangeEnd);if(view.inputState.composing>=0&&!this.composing)this.composing={contextBase:e.updateRangeStart,editorBase:from,drifted:false};let deletes=to-from>e.text.length;if(from==this.from&&anchor<this.from)from=anchor;else if(to==this.to&&anchor>this.to)to=anchor;let diff=findDiff(view.state.sliceDoc(from,to),e.text,(deletes?main.from:main.to)-from,deletes?"end":null);if(!diff){let newSel=EditorSelection.single(this.toEditorPos(e.selectionStart),this.toEditorPos(e.selectionEnd));if(!sameSelPos(newSel,main))view.dispatch({selection:newSel,userEvent:"select"});return}let change={from:diff.from+from,to:diff.toA+from,insert:Text.of(e.text.slice(diff.from,diff.toB).split("\n"))};if((browser.mac||browser.android)&&change.from==head-1&&/^\. ?$/.test(e.text)&&view.contentDOM.getAttribute("autocorrect")=="off")change={from:from,to:to,insert:Text.of([e.text.replace("."," ")])};this.pendingContextChange=change;if(!view.state.readOnly){let newLen=this.to-this.from+(change.to-change.from+change.insert.length);applyDOMChangeInner(view,change,EditorSelection.single(this.toEditorPos(e.selectionStart,newLen),this.toEditorPos(e.selectionEnd,newLen)))}if(this.pendingContextChange){this.revertPending(view.state);this.setSelection(view.state)}if(change.from<change.to&&!change.insert.length&&view.inputState.composing>=0&&!/[\\p{Alphabetic}\\p{Number}_]/.test(context.text.slice(Math.max(0,e.updateRangeStart-1),Math.min(context.text.length,e.updateRangeStart+1))))this.handlers.compositionend(e)};this.handlers.characterboundsupdate=e=>{let rects=[],prev=null;for(let i=this.toEditorPos(e.rangeStart),end=this.toEditorPos(e.rangeEnd);i<end;i++){let rect=view.coordsForChar(i);prev=rect&&new DOMRect(rect.left,rect.top,rect.right-rect.left,rect.bottom-rect.top)||prev||new DOMRect;rects.push(prev)}context.updateCharacterBounds(e.rangeStart,rects)};this.handlers.textformatupdate=e=>{let deco=[];for(let format of e.getTextFormats()){let lineStyle=format.underlineStyle,thickness=format.underlineThickness;if(!/none/i.test(lineStyle)&&!/none/i.test(thickness)){let from=this.toEditorPos(format.rangeStart),to=this.toEditorPos(format.rangeEnd);if(from<to){let style=`text-decoration: underline ${/^[a-z]/.test(lineStyle)?lineStyle+" ":lineStyle=="Dashed"?"dashed ":lineStyle=="Squiggle"?"wavy ":""}${/thin/i.test(thickness)?1:2}px`;deco.push(Decoration.mark({attributes:{style:style}}).range(from,to))}}}view.dispatch({effects:setEditContextFormatting.of(Decoration.set(deco))})};this.handlers.compositionstart=()=>{if(view.inputState.composing<0){view.inputState.composing=0;view.inputState.compositionFirstChange=true}};this.handlers.compositionend=()=>{view.inputState.composing=-1;view.inputState.compositionFirstChange=null;if(this.composing){let{drifted:drifted}=this.composing;this.composing=null;if(drifted)this.reset(view.state)}};for(let event in this.handlers)context.addEventListener(event,this.handlers[event]);this.measureReq={read:view=>{let sel=getSelection(view.root);if(sel&&sel.rangeCount)this.editContext.updateSelectionBounds(sel.getRangeAt(0).getBoundingClientRect())}}}applyEdits(update){let off=0,abort=false,pending=this.pendingContextChange;update.changes.iterChanges((fromA,toA,_fromB,_toB,insert)=>{if(abort)return;let dLen=insert.length-(toA-fromA);if(pending&&toA>=pending.to){if(pending.from==fromA&&pending.to==toA&&pending.insert.eq(insert)){pending=this.pendingContextChange=null;off+=dLen;this.to+=dLen;return}else{pending=null;this.revertPending(update.state)}}fromA+=off;toA+=off;if(toA<=this.from){this.from+=dLen;this.to+=dLen}else if(fromA<this.to){if(fromA<this.from||toA>this.to||this.to-this.from+insert.length>3e4){abort=true;return}this.editContext.updateText(this.toContextPos(fromA),this.toContextPos(toA),insert.toString());this.to+=dLen}off+=dLen});if(pending&&!abort)this.revertPending(update.state);return!abort}update(update){let reverted=this.pendingContextChange,startSel=update.startState.selection.main;if(this.composing&&(this.composing.drifted||!update.changes.touchesRange(startSel.from,startSel.to)&&update.transactions.some(tr=>!tr.isUserEvent("input.type")&&tr.changes.touchesRange(this.from,this.to)))){this.composing.drifted=true;this.composing.editorBase=update.changes.mapPos(this.composing.editorBase)}else if(!this.applyEdits(update)||!this.rangeIsValid(update.state)){this.pendingContextChange=null;this.reset(update.state)}else if(update.docChanged||update.selectionSet||reverted){this.setSelection(update.state)}if(update.geometryChanged||update.docChanged||update.selectionSet)update.view.requestMeasure(this.measureReq)}resetRange(state){let{head:head}=state.selection.main;this.from=Math.max(0,head-1e4);this.to=Math.min(state.doc.length,head+1e4)}reset(state){this.resetRange(state);this.editContext.updateText(0,this.editContext.text.length,state.doc.sliceString(this.from,this.to));this.setSelection(state)}revertPending(state){let pending=this.pendingContextChange;this.pendingContextChange=null;this.editContext.updateText(this.toContextPos(pending.from),this.toContextPos(pending.from+pending.insert.length),state.doc.sliceString(pending.from,pending.to))}setSelection(state){let{main:main}=state.selection;let start=this.toContextPos(Math.max(this.from,Math.min(this.to,main.anchor)));let end=this.toContextPos(main.head);if(this.editContext.selectionStart!=start||this.editContext.selectionEnd!=end)this.editContext.updateSelection(start,end)}rangeIsValid(state){let{head:head}=state.selection.main;return!(this.from>0&&head-this.from<500||this.to<state.doc.length&&this.to-head<500||this.to-this.from>1e4*3)}toEditorPos(contextPos,clipLen=this.to-this.from){contextPos=Math.min(contextPos,clipLen);let c=this.composing;return c&&c.drifted?c.editorBase+(contextPos-c.contextBase):contextPos+this.from}toContextPos(editorPos){let c=this.composing;return c&&c.drifted?c.contextBase+(editorPos-c.editorBase):editorPos-this.from}destroy(){for(let event in this.handlers)this.editContext.removeEventListener(event,this.handlers[event])}}class EditorView{get state(){return this.viewState.state}get viewport(){return this.viewState.viewport}get visibleRanges(){return this.viewState.visibleRanges}get inView(){return this.viewState.inView}get composing(){return!!this.inputState&&this.inputState.composing>0}get compositionStarted(){return!!this.inputState&&this.inputState.composing>=0}get root(){return this._root}get win(){return this.dom.ownerDocument.defaultView||window}constructor(config={}){var _a;this.plugins=[];this.pluginMap=new Map;this.editorAttrs={};this.contentAttrs={};this.bidiCache=[];this.destroyed=false;this.updateState=2;this.measureScheduled=-1;this.measureRequests=[];this.contentDOM=document.createElement("div");this.scrollDOM=document.createElement("div");this.scrollDOM.tabIndex=-1;this.scrollDOM.className="cm-scroller";this.scrollDOM.appendChild(this.contentDOM);this.announceDOM=document.createElement("div");this.announceDOM.className="cm-announced";this.announceDOM.setAttribute("aria-live","polite");this.dom=document.createElement("div");this.dom.appendChild(this.announceDOM);this.dom.appendChild(this.scrollDOM);if(config.parent)config.parent.appendChild(this.dom);let{dispatch:dispatch}=config;this.dispatchTransactions=config.dispatchTransactions||dispatch&&(trs=>trs.forEach(tr=>dispatch(tr,this)))||(trs=>this.update(trs));this.dispatch=this.dispatch.bind(this);this._root=config.root||getRoot(config.parent)||document;this.viewState=new ViewState(this,config.state||EditorState.create(config));if(config.scrollTo&&config.scrollTo.is(scrollIntoView))this.viewState.scrollTarget=config.scrollTo.value.clip(this.viewState.state);this.plugins=this.state.facet(viewPlugin).map(spec=>new PluginInstance(spec));for(let plugin of this.plugins)plugin.update(this);this.observer=new DOMObserver(this);this.inputState=new InputState(this);this.inputState.ensureHandlers(this.plugins);this.docView=new DocView(this);this.mountStyles();this.updateAttrs();this.updateState=0;this.requestMeasure();if((_a=document.fonts)===null||_a===void 0?void 0:_a.ready)document.fonts.ready.then(()=>{this.viewState.mustMeasureContent="refresh";this.requestMeasure()})}dispatch(...input){let trs=input.length==1&&input[0]instanceof Transaction?input:input.length==1&&Array.isArray(input[0])?input[0]:[this.state.update(...input)];this.dispatchTransactions(trs,this)}update(transactions){if(this.updateState!=0)throw new Error("Calls to EditorView.update are not allowed while an update is in progress");let redrawn=false,attrsChanged=false,update;let state=this.state;for(let tr of transactions){if(tr.startState!=state)throw new RangeError("Trying to update state with a transaction that doesn't start from the previous state.");state=tr.state}if(this.destroyed){this.viewState.state=state;return}let focus=this.hasFocus,focusFlag=0,dispatchFocus=null;if(transactions.some(tr=>tr.annotation(isFocusChange))){this.inputState.notifiedFocused=focus;focusFlag=1}else if(focus!=this.inputState.notifiedFocused){this.inputState.notifiedFocused=focus;dispatchFocus=focusChangeTransaction(state,focus);if(!dispatchFocus)focusFlag=1}let pendingKey=this.observer.delayedAndroidKey,domChange=null;if(pendingKey){this.observer.clearDelayedAndroidKey();domChange=this.observer.readChange();if(domChange&&!this.state.doc.eq(state.doc)||!this.state.selection.eq(state.selection))domChange=null}else{this.observer.clear()}if(state.facet(EditorState.phrases)!=this.state.facet(EditorState.phrases))return this.setState(state);update=ViewUpdate.create(this,state,transactions);update.flags|=focusFlag;let scrollTarget=this.viewState.scrollTarget;try{this.updateState=2;for(let tr of transactions){if(scrollTarget)scrollTarget=scrollTarget.map(tr.changes);if(tr.scrollIntoView){let{main:main}=tr.state.selection;let{x:x,y:y}=this.state.facet(EditorView.cursorScrollMargin);scrollTarget=new ScrollTarget(main.empty?main:EditorSelection.cursor(main.head,main.head>main.anchor?-1:1),"nearest","nearest",y,x)}for(let e of tr.effects)if(e.is(scrollIntoView))scrollTarget=e.value.clip(this.state)}this.viewState.update(update,scrollTarget);this.bidiCache=CachedOrder.update(this.bidiCache,update.changes);if(!update.empty){this.updatePlugins(update);this.inputState.update(update)}redrawn=this.docView.update(update);if(this.state.facet(styleModule)!=this.styleModules)this.mountStyles();attrsChanged=this.updateAttrs();this.showAnnouncements(transactions);this.docView.updateSelection(redrawn,transactions.some(tr=>tr.isUserEvent("select.pointer")))}finally{this.updateState=0}if(update.startState.facet(theme)!=update.state.facet(theme))this.viewState.mustMeasureContent=true;if(redrawn||attrsChanged||scrollTarget||this.viewState.mustEnforceCursorAssoc||this.viewState.mustMeasureContent)this.requestMeasure();if(redrawn)this.docViewUpdate();if(!update.empty)for(let listener of this.state.facet(updateListener)){try{listener(update)}catch(e){logException(this.state,e,"update listener")}}if(dispatchFocus||domChange)Promise.resolve().then(()=>{if(dispatchFocus&&this.state==dispatchFocus.startState)this.dispatch(dispatchFocus);if(domChange){if(!applyDOMChange(this,domChange)&&pendingKey.force)dispatchKey(this.contentDOM,pendingKey.key,pendingKey.keyCode)}})}setState(newState){if(this.updateState!=0)throw new Error("Calls to EditorView.setState are not allowed while an update is in progress");if(this.destroyed){this.viewState.state=newState;return}this.updateState=2;let hadFocus=this.hasFocus;try{for(let plugin of this.plugins)plugin.destroy(this);this.viewState=new ViewState(this,newState);this.plugins=newState.facet(viewPlugin).map(spec=>new PluginInstance(spec));this.pluginMap.clear();for(let plugin of this.plugins)plugin.update(this);this.docView.destroy();this.docView=new DocView(this);this.inputState.ensureHandlers(this.plugins);this.mountStyles();this.updateAttrs();this.bidiCache=[]}finally{this.updateState=0}if(hadFocus)this.focus();this.requestMeasure()}updatePlugins(update){let prevSpecs=update.startState.facet(viewPlugin),specs=update.state.facet(viewPlugin);if(prevSpecs!=specs){let newPlugins=[];for(let spec of specs){let found=prevSpecs.indexOf(spec);if(found<0){newPlugins.push(new PluginInstance(spec))}else{let plugin=this.plugins[found];plugin.mustUpdate=update;newPlugins.push(plugin)}}for(let plugin of this.plugins)if(plugin.mustUpdate!=update)plugin.destroy(this);this.plugins=newPlugins;this.pluginMap.clear()}else{for(let p of this.plugins)p.mustUpdate=update}for(let i=0;i<this.plugins.length;i++)this.plugins[i].update(this);if(prevSpecs!=specs)this.inputState.ensureHandlers(this.plugins)}docViewUpdate(){for(let plugin of this.plugins){let val=plugin.value;if(val&&val.docViewUpdate){try{val.docViewUpdate(this)}catch(e){logException(this.state,e,"doc view update listener")}}}}measure(flush=true){if(this.destroyed)return;if(this.measureScheduled>-1)this.win.cancelAnimationFrame(this.measureScheduled);if(this.observer.delayedAndroidKey){this.measureScheduled=-1;this.requestMeasure();return}this.measureScheduled=0;if(flush)this.observer.forceFlush();let updated=null;let scroll=this.viewState.scrollParent,scrollOffset=this.viewState.getScrollOffset();let{scrollAnchorPos:scrollAnchorPos,scrollAnchorHeight:scrollAnchorHeight}=this.viewState;if(Math.abs(scrollOffset-this.viewState.scrollOffset)>1)scrollAnchorHeight=-1;this.viewState.scrollAnchorHeight=-1;try{for(let i=0;;i++){if(scrollAnchorHeight<0){if(isScrolledToBottom(scroll||this.win)){scrollAnchorPos=-1;scrollAnchorHeight=this.viewState.heightMap.height}else{let block=this.viewState.scrollAnchorAt(scrollOffset);scrollAnchorPos=block.from;scrollAnchorHeight=block.top}}this.updateState=1;let changed=this.viewState.measure();if(!changed&&!this.measureRequests.length&&this.viewState.scrollTarget==null)break;if(i>5){console.warn(this.measureRequests.length?"Measure loop restarted more than 5 times":"Viewport failed to stabilize");break}let measuring=[];if(!(changed&4))[this.measureRequests,measuring]=[measuring,this.measureRequests];let measured=measuring.map(m=>{try{return m.read(this)}catch(e){logException(this.state,e);return BadMeasure}});let update=ViewUpdate.create(this,this.state,[]),redrawn=false;update.flags|=changed;if(!updated)updated=update;else updated.flags|=changed;this.updateState=2;if(!update.empty){this.updatePlugins(update);this.inputState.update(update);this.updateAttrs();redrawn=this.docView.update(update);if(redrawn)this.docViewUpdate()}for(let i=0;i<measuring.length;i++)if(measured[i]!=BadMeasure){try{let m=measuring[i];if(m.write)m.write(measured[i],this)}catch(e){logException(this.state,e)}}if(redrawn)this.docView.updateSelection(true);if(!update.viewportChanged&&this.measureRequests.length==0){if(this.viewState.editorHeight){if(this.viewState.scrollTarget){this.docView.scrollIntoView(this.viewState.scrollTarget);this.viewState.scrollTarget=null;scrollAnchorHeight=-1;continue}else{let newAnchorHeight=scrollAnchorPos<0?this.viewState.heightMap.height:this.viewState.lineBlockAt(scrollAnchorPos).top;let diff=(newAnchorHeight-scrollAnchorHeight)/this.scaleY;if((diff>1||diff<-1)&&(scroll==this.scrollDOM||this.hasFocus||Math.max(this.inputState.lastWheelEvent,this.inputState.lastTouchTime)>Date.now()-100)){scrollOffset=scrollOffset+diff;if(scroll)scroll.scrollTop+=diff;else this.win.scrollBy(0,diff);scrollAnchorHeight=-1;continue}}}break}}}finally{this.updateState=0;this.measureScheduled=-1}if(updated&&!updated.empty)for(let listener of this.state.facet(updateListener))listener(updated)}get themeClasses(){return baseThemeID+" "+(this.state.facet(darkTheme)?baseDarkID:baseLightID)+" "+this.state.facet(theme)}updateAttrs(){let editorAttrs=attrsFromFacet(this,editorAttributes,{class:"cm-editor"+(this.hasFocus?" cm-focused ":" ")+this.themeClasses});let contentAttrs={spellcheck:"false",autocorrect:"off",autocapitalize:"off",writingsuggestions:"false",translate:"no",contenteditable:!this.state.facet(editable)?"false":"true",class:"cm-content",style:`${browser.tabSize}: ${this.state.tabSize}`,role:"textbox","aria-multiline":"true"};if(this.state.readOnly)contentAttrs["aria-readonly"]="true";attrsFromFacet(this,contentAttributes,contentAttrs);let changed=this.observer.ignore(()=>{let changedContent=updateAttrs(this.contentDOM,this.contentAttrs,contentAttrs);let changedEditor=updateAttrs(this.dom,this.editorAttrs,editorAttrs);return changedContent||changedEditor});this.editorAttrs=editorAttrs;this.contentAttrs=contentAttrs;return changed}showAnnouncements(trs){let first=true;for(let tr of trs)for(let effect of tr.effects)if(effect.is(EditorView.announce)){if(first)this.announceDOM.textContent="";first=false;let div=this.announceDOM.appendChild(document.createElement("div"));div.textContent=effect.value}}mountStyles(){this.styleModules=this.state.facet(styleModule);let nonce=this.state.facet(EditorView.cspNonce);StyleModule.mount(this.root,this.styleModules.concat(baseTheme$1).reverse(),nonce?{nonce:nonce}:undefined)}readMeasured(){if(this.updateState==2)throw new Error("Reading the editor layout isn't allowed during an update");if(this.updateState==0&&this.measureScheduled>-1)this.measure(false)}requestMeasure(request){if(this.measureScheduled<0)this.measureScheduled=this.win.requestAnimationFrame(()=>this.measure());if(request){if(this.measureRequests.indexOf(request)>-1)return;if(request.key!=null)for(let i=0;i<this.measureRequests.length;i++){if(this.measureRequests[i].key===request.key){this.measureRequests[i]=request;return}}this.measureRequests.push(request)}}plugin(plugin){let known=this.pluginMap.get(plugin);if(known===undefined||known&&known.plugin!=plugin)this.pluginMap.set(plugin,known=this.plugins.find(p=>p.plugin==plugin)||null);return known&&known.update(this).value}get documentTop(){return this.contentDOM.getBoundingClientRect().top+this.viewState.paddingTop}get documentPadding(){return{top:this.viewState.paddingTop,bottom:this.viewState.paddingBottom}}get scaleX(){return this.viewState.scaleX}get scaleY(){return this.viewState.scaleY}elementAtHeight(height){this.readMeasured();return this.viewState.elementAtHeight(height)}lineBlockAtHeight(height){this.readMeasured();return this.viewState.lineBlockAtHeight(height)}get viewportLineBlocks(){return this.viewState.viewportLines}lineBlockAt(pos){return this.viewState.lineBlockAt(pos)}get contentHeight(){return this.viewState.contentHeight}moveByChar(start,forward,by){return skipAtoms(this,start,moveByChar(this,start,forward,by))}moveByGroup(start,forward){return skipAtoms(this,start,moveByChar(this,start,forward,initial=>byGroup(this,start.head,initial)))}visualLineSide(line,end){let order=this.bidiSpans(line),dir=this.textDirectionAt(line.from);let span=order[end?order.length-1:0];return EditorSelection.cursor(span.side(end,dir)+line.from,span.forward(!end,dir)?1:-1)}moveToLineBoundary(start,forward,includeWrap=true){return moveToLineBoundary(this,start,forward,includeWrap)}moveVertically(start,forward,distance){return skipAtoms(this,start,moveVertically(this,start,forward,distance))}domAtPos(pos,side=1){return this.docView.domAtPos(pos,side)}posAtDOM(node,offset=0){return this.docView.posFromDOM(node,offset)}posAtCoords(coords,precise=true){this.readMeasured();let found=posAtCoords(this,coords,precise);return found&&found.pos}posAndSideAtCoords(coords,precise=true){this.readMeasured();return posAtCoords(this,coords,precise)}coordsAtPos(pos,side=1){this.readMeasured();let rect=this.docView.coordsAt(pos,side);if(!rect||rect.left==rect.right)return rect;let line=this.state.doc.lineAt(pos),order=this.bidiSpans(line);let span=order[BidiSpan.find(order,pos-line.from,-1,side)];return flattenRect(rect,span.dir==Direction.LTR==side>0)}coordsForChar(pos){this.readMeasured();return this.docView.coordsForChar(pos)}get defaultCharacterWidth(){return this.viewState.heightOracle.charWidth}get defaultLineHeight(){return this.viewState.heightOracle.lineHeight}get textDirection(){return this.viewState.defaultTextDirection}textDirectionAt(pos){let perLine=this.state.facet(perLineTextDirection);if(!perLine||pos<this.viewport.from||pos>this.viewport.to)return this.textDirection;this.readMeasured();return this.docView.textDirectionAt(pos)}get lineWrapping(){return this.viewState.heightOracle.lineWrapping}bidiSpans(line){if(line.length>MaxBidiLine)return trivialOrder(line.length);let dir=this.textDirectionAt(line.from),isolates;for(let entry of this.bidiCache){if(entry.from==line.from&&entry.dir==dir&&(entry.fresh||isolatesEq(entry.isolates,isolates=getIsolatedRanges(this,line))))return entry.order}if(!isolates)isolates=getIsolatedRanges(this,line);let order=computeOrder(line.text,dir,isolates);this.bidiCache.push(new CachedOrder(line.from,line.to,dir,isolates,true,order));return order}get hasFocus(){var _a;return(this.dom.ownerDocument.hasFocus()||browser.safari&&((_a=this.inputState)===null||_a===void 0?void 0:_a.lastContextMenu)>Date.now()-3e4)&&this.root.activeElement==this.contentDOM}focus(){this.observer.ignore(()=>{focusPreventScroll(this.contentDOM);this.docView.updateSelection()})}setRoot(root){if(this._root!=root){this._root=root;this.observer.setWindow((root.nodeType==9?root:root.ownerDocument).defaultView||window);this.mountStyles()}}destroy(){if(this.root.activeElement==this.contentDOM)this.contentDOM.blur();for(let plugin of this.plugins)plugin.destroy(this);this.plugins=[];this.inputState.destroy();this.docView.destroy();this.dom.remove();this.observer.destroy();if(this.measureScheduled>-1)this.win.cancelAnimationFrame(this.measureScheduled);this.destroyed=true}static scrollIntoView(pos,options={}){var _a,_b,_c,_d;return scrollIntoView.of(new ScrollTarget(typeof pos=="number"?EditorSelection.cursor(pos):pos,(_a=options.y)!==null&&_a!==void 0?_a:"nearest",(_b=options.x)!==null&&_b!==void 0?_b:"nearest",(_c=options.yMargin)!==null&&_c!==void 0?_c:5,(_d=options.xMargin)!==null&&_d!==void 0?_d:5))}scrollSnapshot(){let{scrollTop:scrollTop,scrollLeft:scrollLeft}=this.scrollDOM;let ref=this.viewState.scrollAnchorAt(scrollTop);return scrollIntoView.of(new ScrollTarget(EditorSelection.cursor(ref.from),"start","start",ref.top-scrollTop,scrollLeft,true))}setTabFocusMode(to){if(to==null)this.inputState.tabFocusMode=this.inputState.tabFocusMode<0?0:-1;else if(typeof to=="boolean")this.inputState.tabFocusMode=to?0:-1;else if(this.inputState.tabFocusMode!=0)this.inputState.tabFocusMode=Date.now()+to}static domEventHandlers(handlers){return ViewPlugin.define(()=>({}),{eventHandlers:handlers})}static domEventObservers(observers){return ViewPlugin.define(()=>({}),{eventObservers:observers})}static theme(spec,options){let prefix=StyleModule.newName();let result=[theme.of(prefix),styleModule.of(buildTheme(`.${prefix}`,spec))];if(options&&options.dark)result.push(darkTheme.of(true));return result}static baseTheme(spec){return Prec.lowest(styleModule.of(buildTheme("."+baseThemeID,spec,lightDarkIDs)))}static findFromDOM(dom){var _a;let content=dom.querySelector(".cm-content");let tile=content&&Tile.get(content)||Tile.get(dom);return((_a=tile===null||tile===void 0?void 0:tile.root)===null||_a===void 0?void 0:_a.view)||null}}EditorView.styleModule=styleModule;EditorView.inputHandler=inputHandler;EditorView.clipboardInputFilter=clipboardInputFilter;EditorView.clipboardOutputFilter=clipboardOutputFilter;EditorView.scrollHandler=scrollHandler;EditorView.focusChangeEffect=focusChangeEffect;EditorView.perLineTextDirection=perLineTextDirection;EditorView.exceptionSink=exceptionSink;EditorView.updateListener=updateListener;EditorView.editable=editable;EditorView.mouseSelectionStyle=mouseSelectionStyle;EditorView.dragMovesSelection=dragMovesSelection$1;EditorView.clickAddsSelectionRange=clickAddsSelectionRange;EditorView.decorations=decorations;EditorView.blockWrappers=blockWrappers;EditorView.outerDecorations=outerDecorations;EditorView.atomicRanges=atomicRanges;EditorView.bidiIsolatedRanges=bidiIsolatedRanges;EditorView.cursorScrollMargin=Facet.define({combine:inputs=>{let x=5,y=5;for(let i of inputs){if(typeof i=="number")x=y=i;else({x:x,y:y}=i)}return{x:x,y:y}}});EditorView.scrollMargins=scrollMargins;EditorView.darkTheme=darkTheme;EditorView.cspNonce=Facet.define({combine:values=>values.length?values[0]:""});EditorView.contentAttributes=contentAttributes;EditorView.editorAttributes=editorAttributes;EditorView.lineWrapping=EditorView.contentAttributes.of({class:"cm-lineWrapping"});EditorView.announce=StateEffect.define();const MaxBidiLine=4096;const BadMeasure={};class CachedOrder{constructor(from,to,dir,isolates,fresh,order){this.from=from;this.to=to;this.dir=dir;this.isolates=isolates;this.fresh=fresh;this.order=order}static update(cache,changes){if(changes.empty&&!cache.some(c=>c.fresh))return cache;let result=[],lastDir=cache.length?cache[cache.length-1].dir:Direction.LTR;for(let i=Math.max(0,cache.length-10);i<cache.length;i++){let entry=cache[i];if(entry.dir==lastDir&&!changes.touchesRange(entry.from,entry.to))result.push(new CachedOrder(changes.mapPos(entry.from,1),changes.mapPos(entry.to,-1),entry.dir,entry.isolates,false,entry.order))}return result}}function attrsFromFacet(view,facet,base){for(let sources=view.state.facet(facet),i=sources.length-1;i>=0;i--){let source=sources[i],value=typeof source=="function"?source(view):source;if(value)combineAttrs(value,base)}return base}class GutterMarker extends RangeValue{compare(other){return this==other||this.constructor==other.constructor&&this.eq(other)}eq(other){return false}destroy(dom){}}GutterMarker.prototype.elementClass="";GutterMarker.prototype.toDOM=undefined;GutterMarker.prototype.mapMode=MapMode.TrackBefore;GutterMarker.prototype.startSide=GutterMarker.prototype.endSide=-1;GutterMarker.prototype.point=true;var _a;const languageDataProp=new NodeProp;function defineLanguageFacet(baseData){return Facet.define({combine:baseData?values=>values.concat(baseData):undefined})}const sublanguageProp=new NodeProp;class Language{constructor(data,parser,extraExtensions=[],name=""){this.data=data;this.name=name;if(!EditorState.prototype.hasOwnProperty("tree"))Object.defineProperty(EditorState.prototype,"tree",{get(){return syntaxTree(this)}});this.parser=parser;this.extension=[language.of(this),EditorState.languageData.of((state,pos,side)=>{let top=topNodeAt(state,pos,side),data=top.type.prop(languageDataProp);if(!data)return[];let base=state.facet(data),sub=top.type.prop(sublanguageProp);if(sub){let innerNode=top.resolve(pos-top.from,side);for(let sublang of sub)if(sublang.test(innerNode,state)){let data=state.facet(sublang.facet);return sublang.type=="replace"?data:data.concat(base)}}return base})].concat(extraExtensions)}isActiveAt(state,pos,side=-1){return topNodeAt(state,pos,side).type.prop(languageDataProp)==this.data}findRegions(state){let lang=state.facet(language);if((lang===null||lang===void 0?void 0:lang.data)==this.data)return[{from:0,to:state.doc.length}];if(!lang||!lang.allowsNesting)return[];let result=[];let explore=(tree,from)=>{if(tree.prop(languageDataProp)==this.data){result.push({from:from,to:from+tree.length});return}let mount=tree.prop(NodeProp.mounted);if(mount){if(mount.tree.prop(languageDataProp)==this.data){if(mount.overlay)for(let r of mount.overlay)result.push({from:r.from+from,to:r.to+from});else result.push({from:from,to:from+tree.length});return}else if(mount.overlay){let size=result.length;explore(mount.tree,mount.overlay[0].from+from);if(result.length>size)return}}for(let i=0;i<tree.children.length;i++){let ch=tree.children[i];if(ch instanceof Tree)explore(ch,tree.positions[i]+from)}};explore(syntaxTree(state),0);return result}get allowsNesting(){return true}}Language.setState=StateEffect.define();function topNodeAt(state,pos,side){let topLang=state.facet(language),tree=syntaxTree(state).topNode;if(!topLang||topLang.allowsNesting){for(let node=tree;node;node=node.enter(pos,side,IterMode.ExcludeBuffers|IterMode.EnterBracketed))if(node.type.isTop)tree=node}return tree}function syntaxTree(state){let field=state.field(Language.state,false);return field?field.tree:Tree.empty}class DocInput{constructor(doc){this.doc=doc;this.cursorPos=0;this.string="";this.cursor=doc.iter()}get length(){return this.doc.length}syncTo(pos){this.string=this.cursor.next(pos-this.cursorPos).value;this.cursorPos=pos+this.string.length;return this.cursorPos-this.string.length}chunk(pos){this.syncTo(pos);return this.string}get lineChunks(){return true}read(from,to){let stringStart=this.cursorPos-this.string.length;if(from<stringStart||to>=this.cursorPos)return this.doc.sliceString(from,to);else return this.string.slice(from-stringStart,to-stringStart)}}let currentContext=null;class ParseContext{constructor(parser,state,fragments=[],tree,treeLen,viewport,skipped,scheduleOn){this.parser=parser;this.state=state;this.fragments=fragments;this.tree=tree;this.treeLen=treeLen;this.viewport=viewport;this.skipped=skipped;this.scheduleOn=scheduleOn;this.parse=null;this.tempSkipped=[]}static create(parser,state,viewport){return new ParseContext(parser,state,[],Tree.empty,0,viewport,[],null)}startParse(){return this.parser.startParse(new DocInput(this.state.doc),this.fragments)}work(until,upto){if(upto!=null&&upto>=this.state.doc.length)upto=undefined;if(this.tree!=Tree.empty&&this.isDone(upto!==null&&upto!==void 0?upto:this.state.doc.length)){this.takeTree();return true}return this.withContext(()=>{var _a;if(typeof until=="number"){let endTime=Date.now()+until;until=()=>Date.now()>endTime}if(!this.parse)this.parse=this.startParse();if(upto!=null&&(this.parse.stoppedAt==null||this.parse.stoppedAt>upto)&&upto<this.state.doc.length)this.parse.stopAt(upto);for(;;){let done=this.parse.advance();if(done){this.fragments=this.withoutTempSkipped(TreeFragment.addTree(done,this.fragments,this.parse.stoppedAt!=null));this.treeLen=(_a=this.parse.stoppedAt)!==null&&_a!==void 0?_a:this.state.doc.length;this.tree=done;this.parse=null;if(this.treeLen<(upto!==null&&upto!==void 0?upto:this.state.doc.length))this.parse=this.startParse();else return true}if(until())return false}})}takeTree(){let pos,tree;if(this.parse&&(pos=this.parse.parsedPos)>=this.treeLen){if(this.parse.stoppedAt==null||this.parse.stoppedAt>pos)this.parse.stopAt(pos);this.withContext(()=>{while(!(tree=this.parse.advance())){}});this.treeLen=pos;this.tree=tree;this.fragments=this.withoutTempSkipped(TreeFragment.addTree(this.tree,this.fragments,true));this.parse=null}}withContext(f){let prev=currentContext;currentContext=this;try{return f()}finally{currentContext=prev}}withoutTempSkipped(fragments){for(let r;r=this.tempSkipped.pop();)fragments=cutFragments(fragments,r.from,r.to);return fragments}changes(changes,newState){let{fragments:fragments,tree:tree,treeLen:treeLen,viewport:viewport,skipped:skipped}=this;this.takeTree();if(!changes.empty){let ranges=[];changes.iterChangedRanges((fromA,toA,fromB,toB)=>ranges.push({fromA:fromA,toA:toA,fromB:fromB,toB:toB}));fragments=TreeFragment.applyChanges(fragments,ranges);tree=Tree.empty;treeLen=0;viewport={from:changes.mapPos(viewport.from,-1),to:changes.mapPos(viewport.to,1)};if(this.skipped.length){skipped=[];for(let r of this.skipped){let from=changes.mapPos(r.from,1),to=changes.mapPos(r.to,-1);if(from<to)skipped.push({from:from,to:to})}}}return new ParseContext(this.parser,newState,fragments,tree,treeLen,viewport,skipped,this.scheduleOn)}updateViewport(viewport){if(this.viewport.from==viewport.from&&this.viewport.to==viewport.to)return false;this.viewport=viewport;let startLen=this.skipped.length;for(let i=0;i<this.skipped.length;i++){let{from:from,to:to}=this.skipped[i];if(from<viewport.to&&to>viewport.from){this.fragments=cutFragments(this.fragments,from,to);this.skipped.splice(i--,1)}}if(this.skipped.length>=startLen)return false;this.reset();return true}reset(){if(this.parse){this.takeTree();this.parse=null}}skipUntilInView(from,to){this.skipped.push({from:from,to:to})}static getSkippingParser(until){return new class extends Parser{createParse(input,fragments,ranges){let from=ranges[0].from,to=ranges[ranges.length-1].to;let parser={parsedPos:from,advance(){let cx=currentContext;if(cx){for(let r of ranges)cx.tempSkipped.push(r);if(until)cx.scheduleOn=cx.scheduleOn?Promise.all([cx.scheduleOn,until]):until}this.parsedPos=to;return new Tree(NodeType.none,[],[],to-from)},stoppedAt:null,stopAt(){}};return parser}}}isDone(upto){upto=Math.min(upto,this.state.doc.length);let frags=this.fragments;return this.treeLen>=upto&&frags.length&&frags[0].from==0&&frags[0].to>=upto}static get(){return currentContext}}function cutFragments(fragments,from,to){return TreeFragment.applyChanges(fragments,[{fromA:from,toA:to,fromB:from,toB:to}])}class LanguageState{constructor(context){this.context=context;this.tree=context.tree}apply(tr){if(!tr.docChanged&&this.tree==this.context.tree)return this;let newCx=this.context.changes(tr.changes,tr.state);let upto=this.context.treeLen==tr.startState.doc.length?undefined:Math.max(tr.changes.mapPos(this.context.treeLen),newCx.viewport.to);if(!newCx.work(20,upto))newCx.takeTree();return new LanguageState(newCx)}static init(state){let vpTo=Math.min(3e3,state.doc.length);let parseState=ParseContext.create(state.facet(language).parser,state,{from:0,to:vpTo});if(!parseState.work(20,vpTo))parseState.takeTree();return new LanguageState(parseState)}}Language.state=StateField.define({create:LanguageState.init,update(value,tr){for(let e of tr.effects)if(e.is(Language.setState))return e.value;if(tr.startState.facet(language)!=tr.state.facet(language))return LanguageState.init(tr.state);return value.apply(tr)}});let requestIdle=callback=>{let timeout=setTimeout(()=>callback(),500);return()=>clearTimeout(timeout)};if(typeof requestIdleCallback!="undefined")requestIdle=callback=>{let idle=-1,timeout=setTimeout(()=>{idle=requestIdleCallback(callback,{timeout:500-100})},100);return()=>idle<0?clearTimeout(timeout):cancelIdleCallback(idle)};const isInputPending=typeof navigator!="undefined"&&((_a=navigator.scheduling)===null||_a===void 0?void 0:_a.isInputPending)?()=>navigator.scheduling.isInputPending():null;const parseWorker=ViewPlugin.fromClass(class ParseWorker{constructor(view){this.view=view;this.working=null;this.workScheduled=0;this.chunkEnd=-1;this.chunkBudget=-1;this.work=this.work.bind(this);this.scheduleWork()}update(update){let cx=this.view.state.field(Language.state).context;if(cx.updateViewport(update.view.viewport)||this.view.viewport.to>cx.treeLen)this.scheduleWork();if(update.docChanged||update.selectionSet){if(this.view.hasFocus)this.chunkBudget+=50;this.scheduleWork()}this.checkAsyncSchedule(cx)}scheduleWork(){if(this.working)return;let{state:state}=this.view,field=state.field(Language.state);if(field.tree!=field.context.tree||!field.context.isDone(state.doc.length))this.working=requestIdle(this.work)}work(deadline){this.working=null;let now=Date.now();if(this.chunkEnd<now&&(this.chunkEnd<0||this.view.hasFocus)){this.chunkEnd=now+3e4;this.chunkBudget=3e3}if(this.chunkBudget<=0)return;let{state:state,viewport:{to:vpTo}}=this.view,field=state.field(Language.state);if(field.tree==field.context.tree&&field.context.isDone(vpTo+1e5))return;let endTime=Date.now()+Math.min(this.chunkBudget,100,deadline&&!isInputPending?Math.max(25,deadline.timeRemaining()-5):1e9);let viewportFirst=field.context.treeLen<vpTo&&state.doc.length>vpTo+1e3;let done=field.context.work(()=>isInputPending&&isInputPending()||Date.now()>endTime,vpTo+(viewportFirst?0:1e5));this.chunkBudget-=Date.now()-now;if(done||this.chunkBudget<=0){field.context.takeTree();this.view.dispatch({effects:Language.setState.of(new LanguageState(field.context))})}if(this.chunkBudget>0&&!(done&&!viewportFirst))this.scheduleWork();this.checkAsyncSchedule(field.context)}checkAsyncSchedule(cx){if(cx.scheduleOn){this.workScheduled++;cx.scheduleOn.then(()=>this.scheduleWork()).catch(err=>logException(this.view.state,err)).then(()=>this.workScheduled--);cx.scheduleOn=null}}destroy(){if(this.working)this.working()}isWorking(){return!!(this.working||this.workScheduled>0)}},{eventHandlers:{focus(){this.scheduleWork()}}});const language=Facet.define({combine(languages){return languages.length?languages[0]:null},enables:language=>[Language.state,parseWorker,EditorView.contentAttributes.compute([language],state=>{let lang=state.facet(language);return lang&&lang.name?{"data-language":lang.name}:{}})]});const indentUnit=Facet.define({combine:values=>{if(!values.length)return" ";let unit=values[0];if(!unit||/\S/.test(unit)||Array.from(unit).some(e=>e!=unit[0]))throw new Error("Invalid indent unit: "+JSON.stringify(values[0]));return unit}});function getIndentUnit(state){let unit=state.facet(indentUnit);return unit.charCodeAt(0)==9?state.tabSize*unit.length:unit.length}const indentNodeProp=new NodeProp;class HighlightStyle{constructor(specs,options){this.specs=specs;let modSpec;function def(spec){let cls=StyleModule.newName();(modSpec||(modSpec=Object.create(null)))["."+cls]=spec;return cls}const all=typeof options.all=="string"?options.all:options.all?def(options.all):undefined;const scopeOpt=options.scope;this.scope=scopeOpt instanceof Language?type=>type.prop(languageDataProp)==scopeOpt.data:scopeOpt?type=>type==scopeOpt:undefined;this.style=tagHighlighter(specs.map(style=>({tag:style.tag,class:style.class||def(Object.assign({},style,{tag:null}))})),{all:all}).style;this.module=modSpec?new StyleModule(modSpec):null;this.themeType=options.themeType}static define(specs,options){return new HighlightStyle(specs,options||{})}}function countCol(string,end,tabSize,startIndex=0,startValue=0){if(end==null){end=string.search(/[^\s\u00a0]/);if(end==-1)end=string.length}let n=startValue;for(let i=startIndex;i<end;i++){if(string.charCodeAt(i)==9)n+=tabSize-n%tabSize;else n++}return n}class StringStream{constructor(string,tabSize,indentUnit,overrideIndent){this.string=string;this.tabSize=tabSize;this.indentUnit=indentUnit;this.overrideIndent=overrideIndent;this.pos=0;this.start=0;this.lastColumnPos=0;this.lastColumnValue=0}eol(){return this.pos>=this.string.length}sol(){return this.pos==0}peek(){return this.string.charAt(this.pos)||undefined}next(){if(this.pos<this.string.length)return this.string.charAt(this.pos++)}eat(match){let ch=this.string.charAt(this.pos);let ok;if(typeof match=="string")ok=ch==match;else ok=ch&&(match instanceof RegExp?match.test(ch):match(ch));if(ok){++this.pos;return ch}}eatWhile(match){let start=this.pos;while(this.eat(match)){}return this.pos>start}eatSpace(){let start=this.pos;while(/[\s\u00a0]/.test(this.string.charAt(this.pos)))++this.pos;return this.pos>start}skipToEnd(){this.pos=this.string.length}skipTo(ch){let found=this.string.indexOf(ch,this.pos);if(found>-1){this.pos=found;return true}}backUp(n){this.pos-=n}column(){if(this.lastColumnPos<this.start){this.lastColumnValue=countCol(this.string,this.start,this.tabSize,this.lastColumnPos,this.lastColumnValue);this.lastColumnPos=this.start}return this.lastColumnValue}indentation(){var _a;return(_a=this.overrideIndent)!==null&&_a!==void 0?_a:countCol(this.string,null,this.tabSize)}match(pattern,consume,caseInsensitive){if(typeof pattern=="string"){let cased=str=>caseInsensitive?str.toLowerCase():str;let substr=this.string.substr(this.pos,pattern.length);if(cased(substr)==cased(pattern)){if(consume!==false)this.pos+=pattern.length;return true}else return null}else{let match=this.string.slice(this.pos).match(pattern);if(match&&match.index>0)return null;if(match&&consume!==false)this.pos+=match[0].length;return match}}current(){return this.string.slice(this.start,this.pos)}}function fullParser(spec){return{name:spec.name||"",token:spec.token,blankLine:spec.blankLine||(()=>{}),startState:spec.startState||(()=>true),copyState:spec.copyState||defaultCopyState,indent:spec.indent||(()=>null),languageData:spec.languageData||{},tokenTable:spec.tokenTable||noTokens,mergeTokens:spec.mergeTokens!==false}}function defaultCopyState(state){if(typeof state!="object")return state;let newState={};for(let prop in state){let val=state[prop];newState[prop]=val instanceof Array?val.slice():val}return newState}const IndentedFrom=new WeakMap;class StreamLanguage extends Language{constructor(parser){let data=defineLanguageFacet(parser.languageData);let p=fullParser(parser),self;let impl=new class extends Parser{createParse(input,fragments,ranges){return new Parse(self,input,fragments,ranges)}};super(data,impl,[],parser.name);this.topNode=docID(data,this);self=this;this.streamParser=p;this.stateAfter=new NodeProp({perNode:true});this.tokenTable=parser.tokenTable?new TokenTable(p.tokenTable):defaultTokenTable}static define(spec){return new StreamLanguage(spec)}getIndent(cx){let from=undefined;let{overrideIndentation:overrideIndentation}=cx.options;if(overrideIndentation){from=IndentedFrom.get(cx.state);if(from!=null&&from<cx.pos-1e4)from=undefined}let start=findState(this,cx.node.tree,cx.node.from,cx.node.from,from!==null&&from!==void 0?from:cx.pos),statePos,state;if(start){state=start.state;statePos=start.pos+1}else{state=this.streamParser.startState(cx.unit);statePos=cx.node.from}if(cx.pos-statePos>1e4)return null;while(statePos<cx.pos){let line=cx.state.doc.lineAt(statePos),end=Math.min(cx.pos,line.to);if(line.length){let indentation=overrideIndentation?overrideIndentation(line.from):-1;let stream=new StringStream(line.text,cx.state.tabSize,cx.unit,indentation<0?undefined:indentation);while(stream.pos<end-line.from)readToken(this.streamParser.token,stream,state)}else{this.streamParser.blankLine(state,cx.unit)}if(end==cx.pos)break;statePos=line.to+1}let line=cx.lineAt(cx.pos);if(overrideIndentation&&from==null)IndentedFrom.set(cx.state,line.from);return this.streamParser.indent(state,/^\s*(.*)/.exec(line.text)[1],cx)}get allowsNesting(){return false}}function findState(lang,tree,off,startPos,before){let state=off>=startPos&&off+tree.length<=before&&tree.prop(lang.stateAfter);if(state)return{state:lang.streamParser.copyState(state),pos:off+tree.length};for(let i=tree.children.length-1;i>=0;i--){let child=tree.children[i],pos=off+tree.positions[i];let found=child instanceof Tree&&pos<before&&findState(lang,child,pos,startPos,before);if(found)return found}return null}function cutTree(lang,tree,from,to,inside){if(inside&&from<=0&&to>=tree.length)return tree;if(!inside&&from==0&&tree.type==lang.topNode)inside=true;for(let i=tree.children.length-1;i>=0;i--){let pos=tree.positions[i],child=tree.children[i],inner;if(pos<to&&child instanceof Tree){if(!(inner=cutTree(lang,child,from-pos,to-pos,inside)))break;return!inside?inner:new Tree(tree.type,tree.children.slice(0,i).concat(inner),tree.positions.slice(0,i+1),pos+inner.length)}}return null}function findStartInFragments(lang,fragments,startPos,endPos,editorState){for(let f of fragments){let from=f.from+(f.openStart?25:0),to=f.to-(f.openEnd?25:0);let found=from<=startPos&&to>startPos&&findState(lang,f.tree,0-f.offset,startPos,to),tree;if(found&&found.pos<=endPos&&(tree=cutTree(lang,f.tree,startPos+f.offset,found.pos+f.offset,false)))return{state:found.state,tree:tree}}return{state:lang.streamParser.startState(editorState?getIndentUnit(editorState):4),tree:Tree.empty}}class Parse{constructor(lang,input,fragments,ranges){this.lang=lang;this.input=input;this.fragments=fragments;this.ranges=ranges;this.stoppedAt=null;this.chunks=[];this.chunkPos=[];this.chunk=[];this.chunkReused=undefined;this.rangeIndex=0;this.to=ranges[ranges.length-1].to;let context=ParseContext.get(),from=ranges[0].from;let{state:state,tree:tree}=findStartInFragments(lang,fragments,from,this.to,context===null||context===void 0?void 0:context.state);this.state=state;this.parsedPos=this.chunkStart=from+tree.length;for(let i=0;i<tree.children.length;i++){this.chunks.push(tree.children[i]);this.chunkPos.push(tree.positions[i])}if(context&&this.parsedPos<context.viewport.from-1e5&&ranges.some(r=>r.from<=context.viewport.from&&r.to>=context.viewport.from)){this.state=this.lang.streamParser.startState(getIndentUnit(context.state));context.skipUntilInView(this.parsedPos,context.viewport.from);this.parsedPos=context.viewport.from}this.moveRangeIndex()}advance(){let context=ParseContext.get();let parseEnd=this.stoppedAt==null?this.to:Math.min(this.to,this.stoppedAt);let end=Math.min(parseEnd,this.chunkStart+512);if(context)end=Math.min(end,context.viewport.to);while(this.parsedPos<end)this.parseLine(context);if(this.chunkStart<this.parsedPos)this.finishChunk();if(this.parsedPos>=parseEnd)return this.finish();if(context&&this.parsedPos>=context.viewport.to){context.skipUntilInView(this.parsedPos,parseEnd);return this.finish()}return null}stopAt(pos){this.stoppedAt=pos}lineAfter(pos){let chunk=this.input.chunk(pos);if(!this.input.lineChunks){let eol=chunk.indexOf("\n");if(eol>-1)chunk=chunk.slice(0,eol)}else if(chunk=="\n"){chunk=""}return pos+chunk.length<=this.to?chunk:chunk.slice(0,this.to-pos)}nextLine(){let from=this.parsedPos,line=this.lineAfter(from),end=from+line.length;for(let index=this.rangeIndex;;){let rangeEnd=this.ranges[index].to;if(rangeEnd>=end)break;line=line.slice(0,rangeEnd-(end-line.length));index++;if(index==this.ranges.length)break;let rangeStart=this.ranges[index].from;let after=this.lineAfter(rangeStart);line+=after;end=rangeStart+after.length}return{line:line,end:end}}skipGapsTo(pos,offset,side){for(;;){let end=this.ranges[this.rangeIndex].to,offPos=pos+offset;if(side>0?end>offPos:end>=offPos)break;let start=this.ranges[++this.rangeIndex].from;offset+=start-end}return offset}moveRangeIndex(){while(this.ranges[this.rangeIndex].to<this.parsedPos)this.rangeIndex++}emitToken(id,from,to,offset){let size=4;if(this.ranges.length>1){offset=this.skipGapsTo(from,offset,1);from+=offset;let len0=this.chunk.length;offset=this.skipGapsTo(to,offset,-1);to+=offset;size+=this.chunk.length-len0}let last=this.chunk.length-4;if(this.lang.streamParser.mergeTokens&&size==4&&last>=0&&this.chunk[last]==id&&this.chunk[last+2]==from)this.chunk[last+2]=to;else this.chunk.push(id,from,to,size);return offset}parseLine(context){let{line:line,end:end}=this.nextLine(),offset=0,{streamParser:streamParser}=this.lang;let stream=new StringStream(line,context?context.state.tabSize:4,context?getIndentUnit(context.state):2);if(stream.eol()){streamParser.blankLine(this.state,stream.indentUnit)}else{while(!stream.eol()){let token=readToken(streamParser.token,stream,this.state);if(token)offset=this.emitToken(this.lang.tokenTable.resolve(token),this.parsedPos+stream.start,this.parsedPos+stream.pos,offset);if(stream.start>1e4)break}}this.parsedPos=end;this.moveRangeIndex();if(this.parsedPos<this.to)this.parsedPos++}finishChunk(){let tree=Tree.build({buffer:this.chunk,start:this.chunkStart,length:this.parsedPos-this.chunkStart,nodeSet:nodeSet,topID:0,maxBufferLength:512,reused:this.chunkReused});tree=new Tree(tree.type,tree.children,tree.positions,tree.length,[[this.lang.stateAfter,this.lang.streamParser.copyState(this.state)]]);this.chunks.push(tree);this.chunkPos.push(this.chunkStart-this.ranges[0].from);this.chunk=[];this.chunkReused=undefined;this.chunkStart=this.parsedPos}finish(){return new Tree(this.lang.topNode,this.chunks,this.chunkPos,this.parsedPos-this.ranges[0].from).balance()}}function readToken(token,stream,state){stream.start=stream.pos;for(let i=0;i<10;i++){let result=token(stream,state);if(stream.pos>stream.start)return result}throw new Error("Stream parser failed to advance stream.")}const noTokens=Object.create(null);const typeArray=[NodeType.none];const nodeSet=new NodeSet(typeArray);const warned=[];const byTag=Object.create(null);const defaultTable=Object.create(null);for(let[legacyName,name]of[["variable","variableName"],["variable-2","variableName.special"],["string-2","string.special"],["def","variableName.definition"],["tag","tagName"],["attribute","attributeName"],["type","typeName"],["builtin","variableName.standard"],["qualifier","modifier"],["error","invalid"],["header","heading"],["property","propertyName"]])defaultTable[legacyName]=createTokenType(noTokens,name);class TokenTable{constructor(extra){this.extra=extra;this.table=Object.assign(Object.create(null),defaultTable)}resolve(tag){return!tag?0:this.table[tag]||(this.table[tag]=createTokenType(this.extra,tag))}}const defaultTokenTable=new TokenTable(noTokens);function warnForPart(part,msg){if(warned.indexOf(part)>-1)return;warned.push(part);console.warn(msg)}function createTokenType(extra,tagStr){let tags$1=[];for(let name of tagStr.split(" ")){let found=[];for(let part of name.split(".")){let value=extra[part]||tags[part];if(!value){warnForPart(part,`Unknown highlighting tag ${part}`)}else if(typeof value=="function"){if(!found.length)warnForPart(part,`Modifier ${part} used at start of tag`);else found=found.map(value)}else{if(found.length)warnForPart(part,`Tag ${part} used as modifier`);else found=Array.isArray(value)?value:[value]}}for(let tag of found)tags$1.push(tag)}if(!tags$1.length)return 0;let name=tagStr.replace(/ /g,"_"),key=name+" "+tags$1.map(t=>t.id);let known=byTag[key];if(known)return known.id;let type=byTag[key]=NodeType.define({id:typeArray.length,name:name,props:[styleTags({[name]:tags$1})]});typeArray.push(type);return type.id}function docID(data,lang){let type=NodeType.define({id:typeArray.length,name:"Document",props:[languageDataProp.add(()=>data),indentNodeProp.add(()=>cx=>lang.getIndent(cx))],top:true});typeArray.push(type);return type}({rtl:Decoration.mark({class:"cm-iso",inclusive:true,attributes:{dir:"rtl"},bidiIsolate:Direction.RTL}),ltr:Decoration.mark({class:"cm-iso",inclusive:true,attributes:{dir:"ltr"},bidiIsolate:Direction.LTR})});const fslDeprecated=Tag.defineModifier("fslDeprecated");const STRUCTURAL_KEYWORDS=new Set(["state","start_state","end_state","active_state","terminal_state","hooked_state","action","transition","validation","configuration","graph","editor","hooks","property","required","default"]);const PROPERTY_KEYWORDS=new Set(["machine_name","machine_version","machine_author","machine_license","machine_comment","machine_contributor","machine_definition","machine_language","machine_reference","npm_name","fsl_version","graph_layout","start_states","end_states","failed_outputs","allows_override","allow_islands","edge_color","theme","flow","dot_preamble","default_size","label","color","shape","corners","linestyle","image","url","background-color","text-color","border-color","edge-color","line-style","stochastic_run_count","panels"]);const DEPRECATED_KEYWORDS=new Set(["graph_bg_color"]);const ENUM_KEYWORDS=new Set(["true","false","none","default","modern","ocean","bold","dot","circo","fdp","neato","twopi","up","right","down","left","solid","dotted","dashed","regular","rounded","lined","MIT"]);const DEPRECATED_TOKEN="fslDeprecatedKeyword";const ARROWS=/^(?:<-=>|<-~>|<=->|<=~>|<~->|<~=>|<->|<=>|<~>|->|<-|=>|<=|~>|<~|↔|←|→|⇔|⇐|⇒|↮|↚|↛)/;const COMPARATORS=/^(?:>=|<=|>|<)/;const ATOM_START=/[0-9a-zA-Z._!$^*?,\u0080-\uFFFF]/;const ATOM_BODY=/[0-9a-zA-Z.+_^()*&$#@!?,\u0080-\uFFFF]/;const fslStreamParser={name:"fsl",startState:()=>({inBlockComment:false}),token(stream,state){if(state.inBlockComment){while(!stream.eol()){if(stream.match("*/")){state.inBlockComment=false;return"comment"}stream.next()}return"comment"}if(stream.eatSpace()){return null}if(stream.match("//")){stream.skipToEnd();return"comment"}if(stream.match("/*")){state.inBlockComment=true;return"comment"}if(stream.match(/^"(?:\\.|[^"\\])*"?/)){return"string"}if(stream.match(/^'(?:\\.|[^'\\])*'?/)){return"labelName"}if(stream.match(ARROWS)){return"operator"}if(stream.match(COMPARATORS)){return"operator"}if(stream.match(/^\d+(?:\.\d+)*/)){return"number"}if(stream.match(/^&[A-Za-z_]\w*/)){return"variableName.special"}const ch=stream.peek();if(ATOM_START.test(ch)){let tok="";let next=stream.peek();while(next!==void 0){if(ATOM_BODY.test(next)){tok+=stream.next()}else if(next==="-"&&ATOM_BODY.test(stream.string.slice(stream.pos+1,stream.pos+2))){tok+=stream.next()}else{break}next=stream.peek()}if(DEPRECATED_KEYWORDS.has(tok)){return DEPRECATED_TOKEN}if(STRUCTURAL_KEYWORDS.has(tok)){return"keyword"}if(PROPERTY_KEYWORDS.has(tok)){return"propertyName"}if(ENUM_KEYWORDS.has(tok)){return"atom"}return"variableName"}if(stream.match(/^[\[\]{}()]/)){return"bracket"}if(stream.match(/^[;:,|]/)){return"punctuation"}stream.next();return null},tokenTable:{[DEPRECATED_TOKEN]:fslDeprecated(tags.propertyName)},languageData:{commentTokens:{line:"//",block:{open:"/*",close:"*/"}}}};StreamLanguage.define(fslStreamParser);HighlightStyle.define([{tag:fslDeprecated(tags.propertyName),textDecoration:"line-through",opacity:"0.6"}]);function plan_walk(machine){const edges=machine.list_edges();const main=edges.filter(e=>e.main_path);if(main.length>0){const seen=new Set;const out2=[];let current=machine.state();while(!seen.has(current)){seen.add(current);out2.push(current);const next=main.find(e=>e.from===current);if(next===void 0){break}current=next.to}return out2}const out=[];for(const e of edges){if(out[out.length-1]!==e.from){out.push(e.from)}out.push(e.to)}return out}function packed_over_white(rgba,pixel){const a=rgba[pixel*4+3]/255;const r=Math.round(rgba[pixel*4]*a+255*(1-a));const g=Math.round(rgba[pixel*4+1]*a+255*(1-a));const b=Math.round(rgba[pixel*4+2]*a+255*(1-a));return r<<16|g<<8|b}function quantize(rgba,max_colors=256){if(rgba.length%4!==0){throw new JssmError(void 0,"quantize: rgba length must be a multiple of 4")}if(max_colors<2||max_colors>256){throw new JssmError(void 0,"quantize: max_colors must be 2..256")}const pixel_count=rgba.length/4;const packed=new Uint32Array(pixel_count);const histogram=new Map;for(let i=0;i<pixel_count;++i){const key=packed_over_white(rgba,i);packed[i]=key;histogram.set(key,(histogram.get(key)??0)+1)}const distinct=[...histogram.keys()];if(distinct.length<=max_colors){const index_of=new Map;const palette=new Uint8Array(distinct.length*3);distinct.forEach((key,i)=>{index_of.set(key,i);palette[i*3]=key>>16&255;palette[i*3+1]=key>>8&255;palette[i*3+2]=key&255});const indices=new Uint8Array(pixel_count);for(let i=0;i<pixel_count;++i){indices[i]=index_of.get(packed[i])}return{palette:palette,palette_count:distinct.length,indices:indices}}return median_cut(packed,histogram,max_colors)}const CHANNELS=[key=>key>>16&255,key=>key>>8&255,key=>key&255];function median_cut(packed,histogram,max_colors){const boxes=[[...histogram.keys()]];while(boxes.length<max_colors){let best_box=-1,best_range=-1,best_channel=0;boxes.forEach((box2,bi)=>{if(box2.length<2){return}CHANNELS.forEach((ch2,ci)=>{let lo=256,hi=-1;for(const key of box2){const v=ch2(key);if(v<lo){lo=v}if(v>hi){hi=v}}if(hi-lo>best_range){best_range=hi-lo;best_box=bi;best_channel=ci}})});const box=boxes[best_box];const ch=CHANNELS[best_channel];box.sort((a,b)=>ch(a)-ch(b));const total=box.reduce((sum,key)=>sum+histogram.get(key),0);let acc=0,split=1;for(let i=0;i<box.length-1;++i){acc+=histogram.get(box[i]);if(acc*2>=total){split=i+1;break}}boxes.splice(best_box,1,box.slice(0,split),box.slice(split))}const palette=new Uint8Array(boxes.length*3);const index_of=new Map;boxes.forEach((box,bi)=>{let r=0,g=0,b=0,n=0;for(const key of box){const count=histogram.get(key);r+=(key>>16&255)*count;g+=(key>>8&255)*count;b+=(key&255)*count;n+=count;index_of.set(key,bi)}palette[bi*3]=Math.round(r/n);palette[bi*3+1]=Math.round(g/n);palette[bi*3+2]=Math.round(b/n)});const indices=new Uint8Array(packed.length);for(let i=0;i<packed.length;++i){indices[i]=index_of.get(packed[i])}return{palette:palette,palette_count:boxes.length,indices:indices}}function lzw_encode(indices,min_code_size){const clear=1<<min_code_size;const eoi=clear+1;let next_code=eoi+1;let code_size=min_code_size+1;let dict=new Map;const bytes=[];let bit_acc=0,bit_count=0;const emit=code=>{bit_acc|=code<<bit_count;bit_count+=code_size;while(bit_count>=8){bytes.push(bit_acc&255);bit_acc>>=8;bit_count-=8}};emit(clear);let prefix=indices[0];for(let i=1;i<indices.length;++i){const k=indices[i];const key=prefix<<8|k;const hit=dict.get(key);if(hit!==void 0){prefix=hit;continue}emit(prefix);if(next_code<4096){dict.set(key,next_code);next_code+=1;if(next_code-1===1<<code_size){code_size+=1}}else{emit(clear);dict=new Map;next_code=eoi+1;code_size=min_code_size+1}prefix=k}emit(prefix);emit(eoi);if(bit_count>0){bytes.push(bit_acc&255)}return new Uint8Array(bytes)}function encode_gif(frames,opts={}){if(frames.length===0){throw new JssmError(void 0,"encode_gif: at least one frame is required")}const{width:width,height:height}=frames[0];for(const f of frames){if(f.width!==width||f.height!==height){throw new JssmError(void 0,`encode_gif: frame dimensions differ (${f.width}x${f.height} vs ${width}x${height})`)}if(f.rgba.length!==4*f.width*f.height){throw new JssmError(void 0,"encode_gif: rgba length does not match stated dimensions")}}const delay_cs=opts.delay_cs??70;const loop=opts.loop??0;const combined=new Uint8Array(frames.reduce((sum,f)=>sum+f.rgba.length,0));let pos=0;for(const f of frames){combined.set(f.rgba,pos);pos+=f.rgba.length}const quantized=quantize(combined,256);const gct_bits=Math.max(1,Math.ceil(Math.log2(Math.max(2,quantized.palette_count))));const gct_size=1<<gct_bits;const min_code_size=Math.max(2,gct_bits);const map_to_palette=rgba=>{const n=rgba.length/4;const out=new Uint8Array(n);const cache=new Map;for(let i=0;i<n;++i){const key=packed_over_white(rgba,i);const hit=cache.get(key);if(hit!==void 0){out[i]=hit;continue}const r=key>>16&255;const g=key>>8&255;const b=key&255;let best=0,best_d=Infinity;for(let p=0;p<quantized.palette_count;++p){const dr=r-quantized.palette[p*3];const dg=g-quantized.palette[p*3+1];const db=b-quantized.palette[p*3+2];const d=dr*dr+dg*dg+db*db;if(d<best_d){best_d=d;best=p}}cache.set(key,best);out[i]=best}return out};const bytes=[];const push_u16=v=>{bytes.push(v&255,v>>8&255)};bytes.push(71,73,70,56,57,97);push_u16(width);push_u16(height);bytes.push(128|112|gct_bits-1);bytes.push(0,0);for(let p=0;p<gct_size;++p){if(p<quantized.palette_count){bytes.push(quantized.palette[p*3],quantized.palette[p*3+1],quantized.palette[p*3+2])}else{bytes.push(0,0,0)}}bytes.push(33,255,11);bytes.push(..."NETSCAPE2.0".split("").map(c=>c.charCodeAt(0)));bytes.push(3,1);push_u16(loop);bytes.push(0);for(let fi=0;fi<frames.length;++fi){bytes.push(33,249,4,4);push_u16(delay_cs);bytes.push(0,0);bytes.push(44);push_u16(0);push_u16(0);push_u16(width);push_u16(height);bytes.push(0);const indices=map_to_palette(frames[fi].rgba);const packed=lzw_encode(indices,min_code_size);bytes.push(min_code_size);for(let at=0;at<packed.length;at+=255){const chunk=packed.slice(at,at+255);bytes.push(chunk.length,...chunk)}bytes.push(0)}bytes.push(59);return new Uint8Array(bytes)}async function render_fence_gif(source,opts={}){const machine=sm`${source}`;const max_frames=opts.max_frames??64;const walk=plan_walk(machine).slice(0,max_frames);const base_svg=await fsl_to_svg_string(source);const highlight=opts.highlight_fill??"#ff9930";const scale=opts.scale??100;const frames=[];for(const state of walk){const patched=patch_state_fill(base_svg,machine.display_text(state),highlight);const raster=await rasterizeRgba(patched,{scale:scale});frames.push({rgba:raster.rgba,width:raster.width,height:raster.height})}return encode_gif(frames,{delay_cs:opts.delay_cs??70,loop:opts.loop??0})}function wrap_gif_error(e){if(e instanceof RasterizationUnsupportedError){throw e}throw new RenderError(`GIF render failed: ${e.message}`)}async function render(fsl,opts){switch(opts.target){case"svg":return{target:"svg",kind:"text",content:await svgTarget(fsl)};case"dot":return{target:"dot",kind:"text",content:await dotTarget(fsl)};case"html":return{target:"html",kind:"text",content:await htmlTarget(fsl)};case"png":return{target:"png",kind:"raster",buffer:await pngTarget(fsl,{width:opts.width,height:opts.height,scale:opts.scale})};case"jpeg":return{target:"jpeg",kind:"raster",buffer:await jpegTarget(fsl,{width:opts.width,height:opts.height,scale:opts.scale,quality:opts.quality})};case"gif":try{return{target:"gif",kind:"raster",buffer:await render_fence_gif(fsl,{scale:opts.scale,delay_cs:opts.delay,max_frames:opts.maxFrames})}}catch(e){wrap_gif_error(e)}default:throw new RenderError(`unknown target: ${String(opts.target)}`)}}async function renderSet(inputs,opts){return Promise.all(inputs.map(async(fsl,index)=>{try{const result=await render(fsl,opts);return{ok:true,index:index,result:result}}catch(e){return{ok:false,index:index,error:e}}}))}function parseFslArgs(argv,spec){const positional=[];const flags={};const shortMap={};for(const[name,fs]of Object.entries(spec.flags)){if(fs.short)shortMap[fs.short]=name}const isBoolean=name=>spec.flags[name]?.boolean===true;const flagType=name=>{const fs=spec.flags[name];return fs.type??"string"};const coerce=(name,raw)=>{const t=flagType(name);if(t==="number"){const n=Number(raw);if(Number.isNaN(n)){throw new Error(`flag --${name} requires a number, got: ${raw}`)}return n}const fs=spec.flags[name];if(fs.enum&&!fs.enum.includes(raw)){throw new Error(`flag --${name} value '${raw}' not in: ${fs.enum.join(", ")}`)}return raw};let i=0;let positionalOnly=false;while(i<argv.length){const a=argv[i];if(positionalOnly){positional.push(a);i++;continue}if(a==="--"){positionalOnly=true;i++;continue}if(a==="-"){positional.push(a);i++;continue}if(a.startsWith("--")){const eq=a.indexOf("=");const name=eq>=0?a.slice(2,eq):a.slice(2);if(!(name in spec.flags))throw new Error(`unknown flag: --${name}`);if(isBoolean(name)){flags[name]=true;i++}else if(eq>=0){flags[name]=coerce(name,a.slice(eq+1));i++}else{if(i+1>=argv.length)throw new Error(`flag --${name} requires a value`);flags[name]=coerce(name,argv[i+1]);i+=2}continue}if(a.startsWith("-")&&a.length>1){const short=a[1];const name=shortMap[short];if(!name)throw new Error(`unknown flag: -${short}`);if(isBoolean(name)){flags[name]=true;if(a.length>2)throw new Error(`combined short flags not supported: ${a}`);i++}else if(a.length>2){flags[name]=coerce(name,a.slice(2));i++}else{if(i+1>=argv.length)throw new Error(`flag -${short} requires a value`);flags[name]=coerce(name,argv[i+1]);i+=2}continue}positional.push(a);i++}for(const[name,fs]of Object.entries(spec.flags)){if(flags[name]===void 0&&fs.default!==void 0){flags[name]=fs.default}}const helpText=()=>{const lines=[];lines.push("Usage:");lines.push(" "+spec.usage);lines.push("");lines.push("Options:");for(const[name,fs]of Object.entries(spec.flags)){const short=fs.short?`-${fs.short}, `:" ";const longPart=`--${name}`;const arg=fs.boolean?"":fs.enum?` ${fs.enum.join("|")}`:fs.type==="number"?" N":" VALUE";const defStr=fs.default!==void 0?` (default: ${fs.default})`:"";lines.push(` ${short}${longPart}${arg}${defStr}`)}return lines.join("\n")};return{positional:positional,flags:flags,helpText:helpText}}exports.RasterizationUnsupportedError=RasterizationUnsupportedError;exports.RenderError=RenderError;exports.parseFslArgs=parseFslArgs;exports.render=render;exports.renderSet=renderSet;