aboutsummaryrefslogtreecommitdiffstats
path: root/FMark/js
diff options
context:
space:
mode:
authorps-george <george.punter15@imperial.ac.uk>2018-03-12 13:27:15 +0000
committerGitHub <noreply@github.com>2018-03-12 13:27:15 +0000
commit47d951b6ba1658808ad20779b52cee3053a61642 (patch)
tree3250b734cad11c0957c7afccdef061044da3fe72 /FMark/js
parent130c78fa4994dd09c2855dc729ad6fd7564b62c8 (diff)
downloadFMark-47d951b6ba1658808ad20779b52cee3053a61642.tar.gz
FMark-47d951b6ba1658808ad20779b52cee3053a61642.zip
Hopefully fix empty lines/whitespace issue (#94)
* Hopefully fix empty lines/whitespace issue * making property test PTest because Expecto crashes sometimes (think this is an issue with Expecto)
Diffstat (limited to 'FMark/js')
-rw-r--r--FMark/js/fmark.js71
-rw-r--r--FMark/js/fmark.js.map2
2 files changed, 43 insertions, 30 deletions
diff --git a/FMark/js/fmark.js b/FMark/js/fmark.js
index a01394b..f057456 100644
--- a/FMark/js/fmark.js
+++ b/FMark/js/fmark.js
@@ -3356,13 +3356,13 @@ function bind(f, result) {
/* unused harmony export charMap */
/* unused harmony export $7C$CharTok$7C$_$7C$ */
/* harmony export (immutable) */ __webpack_exports__["e"] = mapTok;
-/* harmony export (immutable) */ __webpack_exports__["i"] = strAllToks;
+/* harmony export (immutable) */ __webpack_exports__["j"] = strAllToks;
/* harmony export (immutable) */ __webpack_exports__["d"] = mapLang;
-/* harmony export (immutable) */ __webpack_exports__["j"] = xOnwards;
-/* harmony export (immutable) */ __webpack_exports__["g"] = sOnwards;
-/* unused harmony export removeChars */
+/* harmony export (immutable) */ __webpack_exports__["k"] = xOnwards;
+/* harmony export (immutable) */ __webpack_exports__["h"] = sOnwards;
+/* harmony export (immutable) */ __webpack_exports__["g"] = removeChars;
/* unused harmony export removeWhitespace */
-/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "h", function() { return sharedLog; });
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "i", function() { return sharedLog; });
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__nuget_packages_fable_core_1_3_1_fable_core_Map__ = __webpack_require__(11);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__nuget_packages_fable_core_1_3_1_fable_core_CurriedLambda__ = __webpack_require__(4);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__nuget_packages_fable_core_1_3_1_fable_core_List__ = __webpack_require__(0);
@@ -6407,8 +6407,8 @@ function parseCode(toks) {
}, parseCode(toks.tail));
}
} else {
- __WEBPACK_IMPORTED_MODULE_2__Shared_fs__["h" /* sharedLog */].Warn(null, Object(__WEBPACK_IMPORTED_MODULE_3__nuget_packages_fable_core_1_3_1_fable_core_String__["g" /* toText */])(Object(__WEBPACK_IMPORTED_MODULE_3__nuget_packages_fable_core_1_3_1_fable_core_String__["b" /* printf */])("%A"))(toks));
- return new __WEBPACK_IMPORTED_MODULE_0__nuget_packages_fable_core_1_3_1_fable_core_Result__["b" /* default */](0, ["\\`", Object(__WEBPACK_IMPORTED_MODULE_2__Shared_fs__["j" /* xOnwards */])(1, toks)]);
+ __WEBPACK_IMPORTED_MODULE_2__Shared_fs__["i" /* sharedLog */].Warn(null, Object(__WEBPACK_IMPORTED_MODULE_3__nuget_packages_fable_core_1_3_1_fable_core_String__["g" /* toText */])(Object(__WEBPACK_IMPORTED_MODULE_3__nuget_packages_fable_core_1_3_1_fable_core_String__["b" /* printf */])("%A"))(toks));
+ return new __WEBPACK_IMPORTED_MODULE_0__nuget_packages_fable_core_1_3_1_fable_core_Result__["b" /* default */](0, ["\\`", Object(__WEBPACK_IMPORTED_MODULE_2__Shared_fs__["k" /* xOnwards */])(1, toks)]);
}
}
function parseInLineElements(toks) {
@@ -6420,7 +6420,7 @@ function parseInLineElements(toks) {
var activePatternResult1182 = Object(__WEBPACK_IMPORTED_MODULE_4__ParserHelperFuncs_fs__["e" /* $7C$MatchSym$7C$_$7C$ */])(new __WEBPACK_IMPORTED_MODULE_5__Types_fs__["o" /* Token */](30), toks_1);
if (activePatternResult1182 != null) {
- return [new __WEBPACK_IMPORTED_MODULE_1__nuget_packages_fable_core_1_3_1_fable_core_List__["c" /* default */](new __WEBPACK_IMPORTED_MODULE_5__Types_fs__["c" /* InlineElement */](0, new __WEBPACK_IMPORTED_MODULE_5__Types_fs__["j" /* TFrmtedString */](3, Object(__WEBPACK_IMPORTED_MODULE_2__Shared_fs__["i" /* strAllToks */])(Object(__WEBPACK_IMPORTED_MODULE_6__nuget_packages_fable_core_1_3_1_fable_core_Option__["c" /* getValue */])(activePatternResult1182)[0]))), currentLine), Object(__WEBPACK_IMPORTED_MODULE_6__nuget_packages_fable_core_1_3_1_fable_core_Option__["c" /* getValue */])(activePatternResult1182)[1]];
+ return [new __WEBPACK_IMPORTED_MODULE_1__nuget_packages_fable_core_1_3_1_fable_core_List__["c" /* default */](new __WEBPACK_IMPORTED_MODULE_5__Types_fs__["c" /* InlineElement */](0, new __WEBPACK_IMPORTED_MODULE_5__Types_fs__["j" /* TFrmtedString */](3, Object(__WEBPACK_IMPORTED_MODULE_2__Shared_fs__["j" /* strAllToks */])(Object(__WEBPACK_IMPORTED_MODULE_6__nuget_packages_fable_core_1_3_1_fable_core_Option__["c" /* getValue */])(activePatternResult1182)[0]))), currentLine), Object(__WEBPACK_IMPORTED_MODULE_6__nuget_packages_fable_core_1_3_1_fable_core_Option__["c" /* getValue */])(activePatternResult1182)[1]];
} else {
var activePatternResult1180 = Object(__WEBPACK_IMPORTED_MODULE_4__ParserHelperFuncs_fs__["a" /* $7C$MatchEm$7C$_$7C$ */])(toks_1);
@@ -6445,7 +6445,7 @@ function parseInLineElements(toks) {
}()), Object(__WEBPACK_IMPORTED_MODULE_6__nuget_packages_fable_core_1_3_1_fable_core_Option__["c" /* getValue */])(activePatternResult1180)[1]];
} else {
var str = Object(__WEBPACK_IMPORTED_MODULE_2__Shared_fs__["e" /* mapTok */])(Object(__WEBPACK_IMPORTED_MODULE_7__nuget_packages_fable_core_1_3_1_fable_core_Seq__["h" /* item */])(0, toks_1));
- return [new __WEBPACK_IMPORTED_MODULE_1__nuget_packages_fable_core_1_3_1_fable_core_List__["c" /* default */](new __WEBPACK_IMPORTED_MODULE_5__Types_fs__["c" /* InlineElement */](0, new __WEBPACK_IMPORTED_MODULE_5__Types_fs__["j" /* TFrmtedString */](2, str)), currentLine), Object(__WEBPACK_IMPORTED_MODULE_2__Shared_fs__["j" /* xOnwards */])(1, toks_1)];
+ return [new __WEBPACK_IMPORTED_MODULE_1__nuget_packages_fable_core_1_3_1_fable_core_List__["c" /* default */](new __WEBPACK_IMPORTED_MODULE_5__Types_fs__["c" /* InlineElement */](0, new __WEBPACK_IMPORTED_MODULE_5__Types_fs__["j" /* TFrmtedString */](2, str)), currentLine), Object(__WEBPACK_IMPORTED_MODULE_2__Shared_fs__["k" /* xOnwards */])(1, toks_1)];
}
}
};
@@ -6575,7 +6575,7 @@ function parseItem(rawToks) {
if (activePatternResult1211 != null) {
return new __WEBPACK_IMPORTED_MODULE_0__nuget_packages_fable_core_1_3_1_fable_core_Result__["b" /* default */](0, [parseParagraph(Object(__WEBPACK_IMPORTED_MODULE_6__nuget_packages_fable_core_1_3_1_fable_core_Option__["c" /* getValue */])(activePatternResult1211)[0]), Object(__WEBPACK_IMPORTED_MODULE_6__nuget_packages_fable_core_1_3_1_fable_core_Option__["c" /* getValue */])(activePatternResult1211)[1]]);
} else {
- return new __WEBPACK_IMPORTED_MODULE_0__nuget_packages_fable_core_1_3_1_fable_core_Result__["b" /* default */](1, Object(__WEBPACK_IMPORTED_MODULE_2__Shared_fs__["i" /* strAllToks */])(toks));
+ return new __WEBPACK_IMPORTED_MODULE_0__nuget_packages_fable_core_1_3_1_fable_core_Result__["b" /* default */](1, Object(__WEBPACK_IMPORTED_MODULE_2__Shared_fs__["g" /* removeChars */])(Object(__WEBPACK_IMPORTED_MODULE_1__nuget_packages_fable_core_1_3_1_fable_core_List__["f" /* ofArray */])(["[", "]"]), Object(__WEBPACK_IMPORTED_MODULE_3__nuget_packages_fable_core_1_3_1_fable_core_String__["g" /* toText */])(Object(__WEBPACK_IMPORTED_MODULE_3__nuget_packages_fable_core_1_3_1_fable_core_String__["b" /* printf */])("Parse item did not match: %A"))(toks)));
}
}
}
@@ -6584,22 +6584,35 @@ function parseItem(rawToks) {
}
}
function parseItemList(toks) {
- var matchValue = toks.tail == null;
+ var matchValue = [toks.tail == null, !Object(__WEBPACK_IMPORTED_MODULE_7__nuget_packages_fable_core_1_3_1_fable_core_Seq__["e" /* exists */])(function (_arg1) {
+ var $var2 = _arg1.tag === 2 ? [0] : _arg1.tag === 32 ? [0] : [1];
- if (matchValue) {
- return new __WEBPACK_IMPORTED_MODULE_0__nuget_packages_fable_core_1_3_1_fable_core_Result__["b" /* default */](0, [new __WEBPACK_IMPORTED_MODULE_1__nuget_packages_fable_core_1_3_1_fable_core_List__["c" /* default */](), null]);
- } else {
- return Object(__WEBPACK_IMPORTED_MODULE_0__nuget_packages_fable_core_1_3_1_fable_core_Result__["a" /* bind */])(function (tupledArg) {
- var matchValue_1 = tupledArg[1].tail == null;
+ switch ($var2[0]) {
+ case 0:
+ return false;
- if (matchValue_1) {
- return new __WEBPACK_IMPORTED_MODULE_0__nuget_packages_fable_core_1_3_1_fable_core_Result__["b" /* default */](0, [Object(__WEBPACK_IMPORTED_MODULE_1__nuget_packages_fable_core_1_3_1_fable_core_List__["f" /* ofArray */])([tupledArg[0]]), null]);
- } else {
- return Object(__WEBPACK_IMPORTED_MODULE_0__nuget_packages_fable_core_1_3_1_fable_core_Result__["c" /* map */])(function (tupledArg_1) {
- return [new __WEBPACK_IMPORTED_MODULE_1__nuget_packages_fable_core_1_3_1_fable_core_List__["c" /* default */](tupledArg[0], tupledArg_1[0]), tupledArg_1[1]];
- }, parseItemList(tupledArg[1]));
- }
- }, parseItem(toks));
+ case 1:
+ return true;
+ }
+ }, toks)];
+ var $var3 = matchValue[0] ? [1] : matchValue[1] ? [1] : [0];
+
+ switch ($var3[0]) {
+ case 0:
+ return Object(__WEBPACK_IMPORTED_MODULE_0__nuget_packages_fable_core_1_3_1_fable_core_Result__["a" /* bind */])(function (tupledArg) {
+ var matchValue_1 = tupledArg[1].tail == null;
+
+ if (matchValue_1) {
+ return new __WEBPACK_IMPORTED_MODULE_0__nuget_packages_fable_core_1_3_1_fable_core_Result__["b" /* default */](0, [Object(__WEBPACK_IMPORTED_MODULE_1__nuget_packages_fable_core_1_3_1_fable_core_List__["f" /* ofArray */])([tupledArg[0]]), null]);
+ } else {
+ return Object(__WEBPACK_IMPORTED_MODULE_0__nuget_packages_fable_core_1_3_1_fable_core_Result__["c" /* map */])(function (tupledArg_1) {
+ return [new __WEBPACK_IMPORTED_MODULE_1__nuget_packages_fable_core_1_3_1_fable_core_List__["c" /* default */](tupledArg[0], tupledArg_1[0]), tupledArg_1[1]];
+ }, parseItemList(tupledArg[1]));
+ }
+ }, parseItem(toks));
+
+ case 1:
+ return new __WEBPACK_IMPORTED_MODULE_0__nuget_packages_fable_core_1_3_1_fable_core_Result__["b" /* default */](0, [new __WEBPACK_IMPORTED_MODULE_1__nuget_packages_fable_core_1_3_1_fable_core_List__["c" /* default */](), null]);
}
}
function parse(toks) {
@@ -7140,7 +7153,7 @@ function _MatchEm___(toks) {
return Object(__WEBPACK_IMPORTED_MODULE_6__nuget_packages_fable_core_1_3_1_fable_core_CurriedLambda__["b" /* partialApply */])(attachInlineEle, [frontLiteral, null])([Object(__WEBPACK_IMPORTED_MODULE_2__nuget_packages_fable_core_1_3_1_fable_core_List__["a" /* append */])(content, Object(__WEBPACK_IMPORTED_MODULE_2__nuget_packages_fable_core_1_3_1_fable_core_List__["f" /* ofArray */])([toks_1.head])), new __WEBPACK_IMPORTED_MODULE_2__nuget_packages_fable_core_1_3_1_fable_core_List__["c" /* default */]()]);
case 4:
- return Object(__WEBPACK_IMPORTED_MODULE_6__nuget_packages_fable_core_1_3_1_fable_core_CurriedLambda__["b" /* partialApply */])(endFinder, [Object(__WEBPACK_IMPORTED_MODULE_2__nuget_packages_fable_core_1_3_1_fable_core_List__["a" /* append */])(content, Object(__WEBPACK_IMPORTED_MODULE_2__nuget_packages_fable_core_1_3_1_fable_core_List__["f" /* ofArray */])([Object(__WEBPACK_IMPORTED_MODULE_5__nuget_packages_fable_core_1_3_1_fable_core_Seq__["h" /* item */])(0, toks_1)]))])(Object(__WEBPACK_IMPORTED_MODULE_4__Shared_fs__["j" /* xOnwards */])(1, toks_1));
+ return Object(__WEBPACK_IMPORTED_MODULE_6__nuget_packages_fable_core_1_3_1_fable_core_CurriedLambda__["b" /* partialApply */])(endFinder, [Object(__WEBPACK_IMPORTED_MODULE_2__nuget_packages_fable_core_1_3_1_fable_core_List__["a" /* append */])(content, Object(__WEBPACK_IMPORTED_MODULE_2__nuget_packages_fable_core_1_3_1_fable_core_List__["f" /* ofArray */])([Object(__WEBPACK_IMPORTED_MODULE_5__nuget_packages_fable_core_1_3_1_fable_core_Seq__["h" /* item */])(0, toks_1)]))])(Object(__WEBPACK_IMPORTED_MODULE_4__Shared_fs__["k" /* xOnwards */])(1, toks_1));
}
}
};
@@ -7168,7 +7181,7 @@ function _MatchEm___(toks) {
return Object(__WEBPACK_IMPORTED_MODULE_6__nuget_packages_fable_core_1_3_1_fable_core_CurriedLambda__["b" /* partialApply */])(attachInlineEle, [null, null])([Object(__WEBPACK_IMPORTED_MODULE_2__nuget_packages_fable_core_1_3_1_fable_core_List__["a" /* append */])(content_1, Object(__WEBPACK_IMPORTED_MODULE_2__nuget_packages_fable_core_1_3_1_fable_core_List__["f" /* ofArray */])([toks_2.head])), $var10[1]]);
case 3:
- return Object(__WEBPACK_IMPORTED_MODULE_6__nuget_packages_fable_core_1_3_1_fable_core_CurriedLambda__["b" /* partialApply */])(endFinder_1, [Object(__WEBPACK_IMPORTED_MODULE_2__nuget_packages_fable_core_1_3_1_fable_core_List__["a" /* append */])(content_1, Object(__WEBPACK_IMPORTED_MODULE_2__nuget_packages_fable_core_1_3_1_fable_core_List__["f" /* ofArray */])([Object(__WEBPACK_IMPORTED_MODULE_5__nuget_packages_fable_core_1_3_1_fable_core_Seq__["h" /* item */])(0, toks_2)]))])(Object(__WEBPACK_IMPORTED_MODULE_4__Shared_fs__["j" /* xOnwards */])(1, toks_2));
+ return Object(__WEBPACK_IMPORTED_MODULE_6__nuget_packages_fable_core_1_3_1_fable_core_CurriedLambda__["b" /* partialApply */])(endFinder_1, [Object(__WEBPACK_IMPORTED_MODULE_2__nuget_packages_fable_core_1_3_1_fable_core_List__["a" /* append */])(content_1, Object(__WEBPACK_IMPORTED_MODULE_2__nuget_packages_fable_core_1_3_1_fable_core_List__["f" /* ofArray */])([Object(__WEBPACK_IMPORTED_MODULE_5__nuget_packages_fable_core_1_3_1_fable_core_Seq__["h" /* item */])(0, toks_2)]))])(Object(__WEBPACK_IMPORTED_MODULE_4__Shared_fs__["k" /* xOnwards */])(1, toks_2));
}
}
};
@@ -7722,7 +7735,7 @@ function transformTable(table) {
}, Object(__WEBPACK_IMPORTED_MODULE_7__nuget_packages_fable_core_1_3_1_fable_core_CurriedLambda__["b" /* partialApply */])(makeRow, [false])(Object(__WEBPACK_IMPORTED_MODULE_7__nuget_packages_fable_core_1_3_1_fable_core_CurriedLambda__["b" /* partialApply */])(alignCells, [alignments])(parseRow(defaultCellU, x)))), s);
};
- return joinErrorList(Object(__WEBPACK_IMPORTED_MODULE_5__nuget_packages_fable_core_1_3_1_fable_core_List__["h" /* reverse */])(Object(__WEBPACK_IMPORTED_MODULE_6__nuget_packages_fable_core_1_3_1_fable_core_Seq__["f" /* fold */])(parseAlignPrepend, Object(__WEBPACK_IMPORTED_MODULE_5__nuget_packages_fable_core_1_3_1_fable_core_List__["f" /* ofArray */])([header]), Object(__WEBPACK_IMPORTED_MODULE_8__Shared_fs__["j" /* xOnwards */])(2, table))));
+ return joinErrorList(Object(__WEBPACK_IMPORTED_MODULE_5__nuget_packages_fable_core_1_3_1_fable_core_List__["h" /* reverse */])(Object(__WEBPACK_IMPORTED_MODULE_6__nuget_packages_fable_core_1_3_1_fable_core_Seq__["f" /* fold */])(parseAlignPrepend, Object(__WEBPACK_IMPORTED_MODULE_5__nuget_packages_fable_core_1_3_1_fable_core_List__["f" /* ofArray */])([header]), Object(__WEBPACK_IMPORTED_MODULE_8__Shared_fs__["k" /* xOnwards */])(2, table))));
}
function tryEval_(maxRefs, map, e) {
@@ -8701,8 +8714,8 @@ function nextToken(state, s) {
if (activePatternResult743 != null) {
return [[new __WEBPACK_IMPORTED_MODULE_1__Types_fs__["o" /* Token */](1, Object(__WEBPACK_IMPORTED_MODULE_7__nuget_packages_fable_core_1_3_1_fable_core_Option__["c" /* getValue */])(activePatternResult743)[0]), Object(__WEBPACK_IMPORTED_MODULE_7__nuget_packages_fable_core_1_3_1_fable_core_Option__["c" /* getValue */])(activePatternResult743)[2]], state];
} else {
- __WEBPACK_IMPORTED_MODULE_6__Shared_fs__["h" /* sharedLog */].Warn(null)(Object(__WEBPACK_IMPORTED_MODULE_8__nuget_packages_fable_core_1_3_1_fable_core_String__["g" /* toText */])(Object(__WEBPACK_IMPORTED_MODULE_8__nuget_packages_fable_core_1_3_1_fable_core_String__["b" /* printf */])("Unrecognised character: %A"))(matchValue[0]));
- return [[new __WEBPACK_IMPORTED_MODULE_1__Types_fs__["o" /* Token */](1, Object(__WEBPACK_IMPORTED_MODULE_5__LexerShared_fs__["f" /* toString */])(matchValue[0][0])), Object(__WEBPACK_IMPORTED_MODULE_6__Shared_fs__["g" /* sOnwards */])(1, matchValue[0])], state];
+ __WEBPACK_IMPORTED_MODULE_6__Shared_fs__["i" /* sharedLog */].Warn(null)(Object(__WEBPACK_IMPORTED_MODULE_8__nuget_packages_fable_core_1_3_1_fable_core_String__["g" /* toText */])(Object(__WEBPACK_IMPORTED_MODULE_8__nuget_packages_fable_core_1_3_1_fable_core_String__["b" /* printf */])("Unrecognised character: %A"))(matchValue[0]));
+ return [[new __WEBPACK_IMPORTED_MODULE_1__Types_fs__["o" /* Token */](1, Object(__WEBPACK_IMPORTED_MODULE_5__LexerShared_fs__["f" /* toString */])(matchValue[0][0])), Object(__WEBPACK_IMPORTED_MODULE_6__Shared_fs__["h" /* sOnwards */])(1, matchValue[0])], state];
}
}
}
diff --git a/FMark/js/fmark.js.map b/FMark/js/fmark.js.map
index e7f7019..87009d7 100644
--- a/FMark/js/fmark.js.map
+++ b/FMark/js/fmark.js.map
@@ -1 +1 @@
-{"version":3,"sources":["webpack:///webpack/universalModuleDefinition","webpack:///webpack/bootstrap b91ccf83e5419159516b","webpack:///./src/Common/FMark.fs","webpack:///./src/FMarkFable/FMarkFable.fs","webpack:///src/Common/Types.fs","webpack:///src/Common/Shared.fs","webpack:///./src/Common/MarkdownGen/MarkdownGen.fs","webpack:///./src/Common/Lexer/Preprocessor.fs","webpack:///./src/Common/Markalc/Markalc.fs","webpack:///src/Common/Logger/Logger.fs","webpack:///src/Common/Markalc/MarkalcShared.fs","webpack:///src/Common/Lexer/LexerShared.fs","webpack:///src/FMarkFable/FMarkFable.fs","webpack:///src/Common/FMark.fs","webpack:///src/Common/Parser/Parser.fs","webpack:///src/Common/Parser/ParserHelperFuncs.fs","webpack:///src/Common/Markalc/Markalc.fs","webpack:///src/Common/Markalc/Expression.fs","webpack:///./src/Common/Markalc/Expression.fs","webpack:///src/Common/Lexer/Lexer.fs","webpack:///src/Common/Lexer/Preprocessor.fs","webpack:///src/Common/HTMLGen/HTMLGen.fs","webpack:///src/Common/HTMLGen/HTMLGenHelpers.fs","webpack:///src/Common/MarkdownGen/MarkdownGen.fs"],"names":["append","xs","ys","seqFold","acc","x","reverse","choose","f","r","y","getValue","collect","concat","filter","where","initialize","n","Error","i","map","mapIndexed","indexed","partition","lacc","racc","replicate","singleton","slice","lower","upper","noLower","noUpper","unzip","seqFoldBack","xy","unzip3","xyz","groupBy","seqToList","seqMap","k","mapGroupBy","splitAt","index","last","first","Array","tail","head","ofArray","Enumerator","iter","cur","next","current","value","done","getEnumerator","o","GetEnumerator","Symbol","iterator","toIterator","en","MoveNext","Current","__failIfNone","res","toList","foldBack","ofList","delay","unfold","length","firstDone","iters","average","count","sum","reduce","averageBy","output","innerIter","hasFinished","compareWith","nonZero","tryFind","map2","empty","enumerateWhile","cond","enumerateThenFinally","finalFn","err","it","enumerateUsing","disp","work","isDisposed","disposeOnce","Dispose","exactlyOne","fst","snd","except","itemsToExclude","source","exclusionItems","from","testIsNotInExclusionItems","element","some","excludedItem","equals","exists","exists2","cur1","cur2","iter1","iter2","fold","isArray","ArrayBuffer","isView","arr","fold2","foldBack2","ar1","ar2","forAll","forAll2","tryHead","initializeInfinite","tryItem","j","item","iterate","_","iterate2","iterateIndexed","iterateIndexed2","isEmpty","tryLast","mapIndexed2","map3","zs","iter3","cur3","chunkBySize","size","result","arrayChunkBySize","mapFold","transform","push","mapFoldBack","max","compare","maxBy","min","minBy","pairwise","skip","scan","permute","arrayPermute","rangeStep","step","rangeChar","String","fromCharCode","charCodeAt","range","readOnly","reduceBack","ar","seed","scanBack","skipWhile","hasPassed","sortWith","sort","sumBy","take","truncate","takeWhile","defaultValue","find","tryFindBack","findBack","tryFindIndex","findIndex","tryFindIndexBack","findIndexBack","tryPick","pick","zip","zip3","z","types","Map","setType","fullName","cons","set","getType","get","reflection","NonDeclaredType","kind","definition","generics","other","equalsRecords","Any","Unit","Option","t","FableArray","isTypedArray","def","genArg","Tuple","FableFunction","GenericParam","Interface","makeGeneric","typeDef","genArgs","isGeneric","typ","getDefinition","extendInfo","info","parent","Object","getPrototypeOf","prototype","FSymbol","newInfo","parentInfo","getOwnPropertyNames","forEach","assign","hasInterface","obj","interfaceName","interfaces","indexOf","getPropertyNames","propertyMap","properties","toString","quoteStrings","isObject","Number","Boolean","JSON","stringify","Date","dateToString","ToString","uci","cases","tag","data","join","v","hash","GetHashCode","s","h","len","Equals","byteLength","dv1","DataView","buffer","dv2","getUint8","getTime","comparePrimitives","CompareTo","b1","b2","compareDates","xhash","yhash","keys","key","compareRecords","equalsUnions","compareUnions","createDisposable","createAtom","atom","arguments","CaseRules","None","LowerFirst","isList","type","createObj","fields","caseRule","casesCache","proto","caseInfo","toLowerCase","substr","toPlainJsObj","constructor","target","props","p","prop","getOwnPropertyDescriptor","apply","jsOptions","mutator","opts","round","digits","m","Math","pow","toFixed","floor","e","randomNext","random","applyOperator","operator","getMethod","meth","parseNumber","tryParse","initial","parser","fn","a","exec","parse","unescapeDataString","decodeURIComponent","replace","escapeDataString","encodeURIComponent","escapeUriString","encodeURI","clear","col","splice","CurriedLambda","expectedArgsLength","curried","curriedFn","args","actualArgsLength","restArgs","newLambda","args2","partialApply","lambda","Some","acceptNull","defaultArg","arg","defaultArgWith","defThunk","predicate","fsFormatRegExp","formatRegExp","guidRegex","StringComparison","CurrentCulture","CurrentCultureIgnoreCase","InvariantCulture","InvariantCultureIgnoreCase","Ordinal","OrdinalIgnoreCase","cmp","ic","isIgnoreCase","isOrdinal","toLocaleLowerCase","localeCompare","compareTo","startsWith","str","pattern","indexOfAny","anyOf","startIndex","c","toHex","abs","printf","input","cont","fsFormat","toConsole","console","log","toText","toFail","formatOnce","str2","rep","prefix","flags","pad","precision","format","toPrecision","toExponential","toUpperCase","plusPrefix","parseInt","isNaN","ch","padLeft","once","createPrinter","printer","strCopy","test","match","idx","padSymbol","substring","decs","endsWith","search","lastIndexOf","insert","isNullOrEmpty","isNullOrWhiteSpace","delimiter","xs2","validateGuid","doNotThrow","trimmed","trim","newGuid","b","_convertMapsInitialized","_byteToHex","_hexToByte","initConvertMaps","guidToArray","buf","Uint8Array","oct","arrayToGuid","notSupported","name","toBase64String","inArray","btoa","fromBase64String","b64Encoded","binary","atob","bytes","isRight","padRight","remove","RegExp","escape","getCharAtIndex","split","splitters","removeEmpty","splitters2","splits","reg","lastIndex","side","chars","pred","Result","mapError","bind","base","List","tmp","create","vs","add","countBy","kv","MapTree","tree_sizeAux","sizeAux","tree_size","tree_empty","tree_height","_arg1","tree_isEmpty","tree_mk","l","matchValue","hl","hr","tree_rebalance","t1","t2","t1h","t2h","tree_add","comparer","Compare","tree_find","tree_tryFind","c_1","tree_partition1","acc1","acc2","tree_partitionAux","acc_0","acc_1","acc_2","acc_3","tree_partition","tree_filter1","tree_filterAux","tree_filter","tree_spliceOutSuccessor","kvl","tree_remove","tree_mem","mem","tree_iter","tree_tryPick","matchValue_1","tree_exists","tree_forall","tree_mapi","tree_foldBack","tree_fold","tree_mkFromEnumerator","tree_ofSeq","ie","tree_collapseLHS","stack","listOfArray","tree_mkIterator","started","tree_moveNext","FableMap","m2","seqCompareWith","kvp1","kvp2","tree","oldSize","containsValue","tryGetValue","has","rs","findKey","seqPick","tryFindKey","seqTryPick","Comparer","fromEqualityComparer","OperationCanceledError","setPrototypeOf","Trampoline","callCount","maxTrampolineCallCount","setTimeout","protectedCont","ctx","cancelToken","isCancelled","onCancel","trampoline","incrementAndCheck","hijack","onError","protectedBind","computation","binder","onSuccess","ex","protectedReturn","AsyncBuilder","computation1","computation2","Bind","generator","sequence","body","While","Delay","compensation","catchHandler","ex2","resource","TryFinally","guard","Return","offsetRegex","padWithZeros","offsetToString","offset","isMinus","hours","minutes","toHalfUTCString","date","half","toISOString","d","utc","printOffset","getFullYear","getMonth","getDate","getHours","getMinutes","getSeconds","getMilliseconds","getTimezoneOffset","toISOStringWithOffset","dateWithOffset","toStringWithCustomFormat","getUTCFullYear","getUTCMonth","getUTCDate","getUTCHours","getUTCMinutes","getUTCSeconds","toStringWithOffset","toStringWithKind","toUTCString","toLocaleString","toLocaleDateString","toLocaleTimeString","DateTime","minValue","maxValue","parseRaw","detectUTC","_err","date1","year","month","day","ms","dateValue","UTC","setFullYear","now","utcNow","today","isLeapYear","daysInMonth","toUniversalTime","toLocalTime","timeOfDay","hour","minute","second","millisecond","getUTCMilliseconds","dayOfWeek","getUTCDay","getDay","dayOfYear","_year","_month","_day","ts","addDays","addHours","addMinutes","addSeconds","addMilliseconds","addYears","newMonth","newYear","_daysInMonth","newDay","addMonths","newMonth_","yearOffset","subtract","that","toLongDateString","toDateString","toShortDateString","toLongTimeString","toShortTimeString","d1","d2","xtime","ytime","op_Addition","op_Subtraction","isDaylightSavingTime","jan","jul","isDST","janOffset","julOffset","tOffset","options","unescape","isMatch","matches","global","ignoreCase","multiline","replacement","limit","replacer","undefined","sub1","_matches","sub2","Async","emptyContinuation","createCancellationToken","token","cancel","cancelAfter","isCancellationRequested","startChild","promise","startAsPromise","awaitPromise","fromContinuations","conts","then","catch","cancellationToken","defaultCancellationToken","catchAsync","choice1Of2","choice2Of2","ignore","parallel","computations","Promise","all","w","sleep","millisecondsDueTime","start","startWithContinuations","startImmediate","continuation","exceptionContinuation","cancellationContinuation","resolve","reject","Choice","TargetCons","addRangeInPlace","copyTo","sourceIndex","targetIndex","checkFlags","removeInPlace","setSlice","sortInPlaceBy","dir","bs","cs","ds","ceil","end","getSubArray","fill","QueueCell","message","MailboxQueue","itCell","firstAndLast","MailboxProcessor","messages","tryGet","__processEvents","buildMessage","checkCompletion","reply","mbox","radix","parseRadix","invalidRadix2","invalidRadix8","invalidRadix10","isValid","radix_"],"mappings":"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;;;;;;;;;;;;;;;;AEndI;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAOA;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAEA;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAYA;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAGD;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAMC;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAEA;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAEA;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACD;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAEC;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAEA;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,yCAiCsD;AAAA;AAAsB;AAjC5E;AAAA;AAAA,4BA8BwB;AAAA;AAAC;AA9BzB;AAAA;AAAA,4BAkCwB;AAAA;AAAC;AAlCzB;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAGA;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAGA;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAGA;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAGA;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAEA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAGA;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAqBA;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;;;;;;;;;;;;;;;;;AFjFL;AACA;AACA;;IACqBuN,M;AACjB,oBAAYzN,GAAZ,EAAiBC,IAAjB,EAAuB;AAAA;;AACnB,aAAKD,GAAL,GAAWA,MAAM,CAAjB;AACA,aAAKC,IAAL,GAAYA,IAAZ;AACH;;;;+BACMrD,K,EAAO;AACV,mBAAO,mEAAA+E,CAAa,IAAb,EAAmB/E,KAAnB,CAAP;AACH;;;kCACSA,K,EAAO;AACb,mBAAO,oEAAAgF,CAAc,IAAd,EAAoBhF,KAApB,CAAP;AACH;;aACA,wDAAA0B,CAAQ/B,U;gCAAc;AACnB,mBAAO;AACH8F,sBAAM,oCADH;AAEHtD,4BAAY,CAAC,aAAD,EAAgB,mBAAhB,EAAqC,oBAArC,CAFT;AAGHgB,uBAAO,CAAC,CAAC,IAAD,EAAO,kDAAP,CAAD,EAAc,CAAC,OAAD,EAAU,kDAAV,CAAd;AAHJ,aAAP;AAKH;;;;;;yDAjBgB0N,M;;AAmBd,SAAS9c,GAAT,CAAaZ,CAAb,EAAgB+I,MAAhB,EAAwB;AAC3B,WAAOA,OAAOkH,GAAP,KAAe,CAAf,GAAmB,IAAIyN,MAAJ,CAAW,CAAX,EAAc1d,EAAE+I,OAAOmH,IAAT,CAAd,CAAnB,GAAmDnH,MAA1D;AACH;AACM,SAAS4U,QAAT,CAAkB3d,CAAlB,EAAqB+I,MAArB,EAA6B;AAChC,WAAOA,OAAOkH,GAAP,KAAe,CAAf,GAAmB,IAAIyN,MAAJ,CAAW,CAAX,EAAc1d,EAAE+I,OAAOmH,IAAT,CAAd,CAAnB,GAAmDnH,MAA1D;AACH;AACM,SAAS6U,IAAT,CAAc5d,CAAd,EAAiB+I,MAAjB,EAAyB;AAC5B,WAAOA,OAAOkH,GAAP,KAAe,CAAf,GAAmBjQ,EAAE+I,OAAOmH,IAAT,CAAnB,GAAoCnH,MAA3C;AACH,C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AGlBqC;AAAA;AAAc;AAIhD;AAAA;AAAA,eAAmC;AAAA;AAAY,SAA/C,CAAqB;AAAA,2HAArB,sGAAS;AAAA;AAAQ,aAAjB,QAAqB;AAAA,SAArB;AAAA;AAA+C;AAG/C,eAAW,iHAAM,+DAAN,SAAiB,+DAAjB,SAA4B,+DAA5B,SAAwC,+DAAxC,SAAoD,+DAApD,SAA+D,+DAA/D,SACM,gEADN,UACiB,gEADjB,WACmC,gEADnC,SACmD,gEADnD,UACqE,gEADrE,WAEQ,gEAFR,SAE0B,gEAF1B,UAEuC,gEAFvC,WAEsD,gEAFtD,SAEmE,gEAFnE,SAGM,gEAHN,SAGkB,gEAHlB,SAG6B,gEAH7B,UAGyC,gEAHzC,SAGsD,gEAHtD,SAGkE,gEAHlE,SAIM,gEAJN,SAIkB,gEAJlB,SAI8B,gEAJ9B,SAI0C,gEAJ1C,SAKM,gEALN,SAKwB,gEALxB,SAKoC,gEALpC,SAKgD,gEALhD,SAK8D,gEAL9D,GAAX;AAOA,cAA2C,wGAArB,sGAAS;AAAA;AAAQ,CAAjB,WAAqB;AAAA;AAAA,GAA3C;;AAGA;AAAA;AAAsB;;;AAEb;AACP;;AAAA,QADO,8BACP,EADO;AAAA;AAQE,KAPT,MADO;AAAA;AAAA;AAAA;;AAGK;AAAA,kIAAQ,0HAAR;;AACA;AAAA,kIAAQ,uHAAR;;AACA;AAAA;;AACC;AAAA;;AACG;AAAA;;AAPT;AAAA;AAAA;AAAQ;AAQN;AAIP;AACA;AAAA,qBAAM,WAAN;AAAgB,KAAhB;;AACJ;AAFkB;AAKZ;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAAA;AAAA;;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAI;AAOO;AAAA,QAAG,cAAH,EAA4B;AAAA;AAAS,KAArC,MAA2C;AAAA;AAAE;AAAA;AAC7C;AAAA,QAAG,cAAH,EAA8B;AAAA;AAAS,KAAvC;AAAA;AAAA;AAA+C;AAEpD;AAAsB;AAAA;AAAe,KAAf;;AAC1B;AADuB;AAG1B;AAAA,uBAAY,kIAAZ;AAAgC;AACrC,gBAAY,wEAAZ,C;;;;;;;;;;;;;;AH9DJ;AACA;AACA;AACA;AACA;AACO,SAASrG,OAAT,CAAiBoT,IAAjB,EAAuB+H,IAAvB,EAA6B;AAChC,QAAIje,MAAMie,QAAQ,IAAIC,IAAJ,EAAlB;AACA,SAAK,IAAInd,IAAImV,KAAK5R,MAAL,GAAc,CAA3B,EAA8BvD,KAAK,CAAnC,EAAsCA,GAAtC,EAA2C;AACvCf,cAAM,IAAIke,IAAJ,CAAShI,KAAKnV,CAAL,CAAT,EAAkBf,GAAlB,CAAN;AACH;AACD,WAAOA,GAAP;AACH;;IACoBke,I;AACjB,kBAAYrb,IAAZ,EAAkBD,IAAlB,EAAwB;AAAA;;AACpB,aAAKC,IAAL,GAAYA,IAAZ;AACA,aAAKD,IAAL,GAAYA,IAAZ;AACH;;;;mCACU;AACP,mBAAO,MAAMD,MAAM8D,IAAN,CAAW,IAAX,EAAiBzF,GAAjB,CAAqB,UAACf,CAAD;AAAA,uBAAO,+DAAAwP,CAASxP,CAAT,CAAP;AAAA,aAArB,EAAyCsQ,IAAzC,CAA8C,IAA9C,CAAN,GAA4D,GAAnE;AACH;;;+BACMtQ,C,EAAG;AACN;AACA,gBAAI,SAASA,CAAb,EAAgB;AACZ,uBAAO,IAAP;AACH,aAFD,MAGK;AACD,oBAAMkH,QAAQ,KAAK1D,OAAOC,QAAZ,GAAd;AACA,oBAAM0D,QAAQnH,EAAEwD,OAAOC,QAAT,GAAd;AACA,uBAAO,IAAP,EAAa;AACT,wBAAMuD,OAAOE,MAAMjE,IAAN,EAAb;AACA,wBAAMgE,OAAOE,MAAMlE,IAAN,EAAb;AACA,wBAAI+D,KAAK5D,IAAT,EAAe;AACX,+BAAO6D,KAAK7D,IAAL,GAAY,IAAZ,GAAmB,KAA1B;AACH,qBAFD,MAGK,IAAI6D,KAAK7D,IAAT,EAAe;AAChB,+BAAO,KAAP;AACH,qBAFI,MAGA,IAAI,CAAC,6DAAAyD,CAAOG,KAAK7D,KAAZ,EAAmB8D,KAAK9D,KAAxB,CAAL,EAAqC;AACtC,+BAAO,KAAP;AACH;AACJ;AACJ;AACJ;;;kCACSnD,C,EAAG;AACT;AACA,gBAAI,SAASA,CAAb,EAAgB;AACZ,uBAAO,CAAP;AACH,aAFD,MAGK;AACD,oBAAID,MAAM,CAAV;AACA,oBAAMmH,QAAQ,KAAK1D,OAAOC,QAAZ,GAAd;AACA,oBAAM0D,QAAQnH,EAAEwD,OAAOC,QAAT,GAAd;AACA,uBAAO,IAAP,EAAa;AACT,wBAAMuD,OAAOE,MAAMjE,IAAN,EAAb;AACA,wBAAMgE,OAAOE,MAAMlE,IAAN,EAAb;AACA,wBAAI+D,KAAK5D,IAAT,EAAe;AACX,+BAAO6D,KAAK7D,IAAL,GAAYrD,GAAZ,GAAkB,CAAC,CAA1B;AACH,qBAFD,MAGK,IAAIkH,KAAK7D,IAAT,EAAe;AAChB,+BAAO,CAAP;AACH,qBAFI,MAGA;AACDrD,8BAAM,8DAAA0J,CAAQzC,KAAK7D,KAAb,EAAoB8D,KAAK9D,KAAzB,CAAN;AACA,4BAAIpD,QAAQ,CAAZ,EAAe;AACX,mCAAOA,GAAP;AACH;AACJ;AACJ;AACJ;AACJ;;aAUAyD,OAAOC,Q;gCAAY;AAChB,gBAAIT,MAAM,IAAV;AACA,mBAAO;AACHC,sBAAM,gBAAM;AACR,wBAAMib,MAAMlb,GAAZ;AACAA,0BAAMA,IAAIL,IAAV;AACA,2BAAO,EAAES,MAAM8a,IAAIvb,IAAJ,IAAY,IAApB,EAA0BQ,OAAO+a,IAAItb,IAArC,EAAP;AACH;AALE,aAAP;AAOH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;aACC,wDAAA8L,CAAQ/B,U;gCAAc;AACnB,mBAAO;AACH8F,sBAAM,yCADH;AAEHtD,4BAAY,CAAC,mBAAD,EAAsB,oBAAtB;AAFT,aAAP;AAIH;;;4BAtDY;AACT,gBAAInM,MAAM,IAAV;AACA,gBAAIjD,MAAM,CAAV;AACA,mBAAOiD,IAAIL,IAAJ,IAAY,IAAnB,EAAyB;AACrBK,sBAAMA,IAAIL,IAAV;AACA5C;AACH;AACD,mBAAOA,GAAP;AACH;;;;;;yDAlEgBke,I;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AIZrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAAShc,OAAT,CAAiB9B,CAAjB,EAAoBP,EAApB,EAAwB;AAC3B,QAAMgS,OAAO,EAAb;AACA,QAAM7O,OAAOnD,GAAG4D,OAAOC,QAAV,GAAb;AACA,QAAI1D,MAAMoe,QAAV;AACA,QAAInb,MAAMD,KAAKE,IAAL,EAAV;AACA,WAAO,CAACD,IAAII,IAAZ,EAAkB;AACd,YAAMhB,IAAIjC,EAAE6C,IAAIG,KAAN,CAAV;AACA,YAAMib,KAAKlZ,QAAQ9C,CAAR,EAAWrC,GAAX,CAAX;AACA,YAAIqe,MAAM,IAAV,EAAgB;AACZxM,iBAAKtI,IAAL,CAAUlH,CAAV;AACArC,kBAAMse,IAAIjc,CAAJ,EAAO,CAACY,IAAIG,KAAL,CAAP,EAAoBpD,GAApB,CAAN;AACH,SAHD,MAIK;AACDO,YAAA,iEAAAA,CAAS8d,EAAT,EAAa9U,IAAb,CAAkBtG,IAAIG,KAAtB;AACH;AACDH,cAAMD,KAAKE,IAAL,EAAN;AACH;AACD,WAAO2O,KAAK7Q,GAAL,CAAS,UAACqB,CAAD;AAAA,eAAO,CAACA,CAAD,EAAIrC,IAAI2M,GAAJ,CAAQtK,CAAR,CAAJ,CAAP;AAAA,KAAT,CAAP;AACH;AACM,SAASkc,OAAT,CAAiBne,CAAjB,EAAoBP,EAApB,EAAwB;AAC3B,WAAOqC,QAAQ9B,CAAR,EAAWP,EAAX,EAAemB,GAAf,CAAmB,UAACwd,EAAD;AAAA,eAAQ,CAACA,GAAG,CAAH,CAAD,EAAQA,GAAG,CAAH,EAAMla,MAAd,CAAR;AAAA,KAAnB,CAAP;AACH;AACD,IAAama,OAAb,GACI,iBAAYpO,GAAZ,EAAiBC,IAAjB,EAAuB;AAAA;;AACnB,SAAKD,GAAL,GAAWA,MAAM,CAAjB;AACA,SAAKC,IAAL,GAAYA,IAAZ;AACH,CAJL;AAMA,SAASoO,YAAT,CAAsB1e,GAAtB,EAA2BgU,CAA3B,EAA8B;AAC1B2K,aAAS,OAAO,IAAP,EAAa;AAClB,YAAI3K,EAAE3D,GAAF,KAAU,CAAd,EAAiB;AACb,mBAAOrQ,MAAM,CAAN,GAAU,CAAjB;AACH,SAFD,MAGK,IAAIgU,EAAE3D,GAAF,KAAU,CAAd,EAAiB;AAClBrQ,kBAAM0e,aAAa1e,MAAM,CAAnB,EAAsBgU,EAAE1D,IAAF,CAAO,CAAP,CAAtB,CAAN;AACA0D,gBAAIA,EAAE1D,IAAF,CAAO,CAAP,CAAJ;AACA,qBAASqO,OAAT;AACH,SAJI,MAKA;AACD,mBAAO3e,MAAM,CAAb;AACH;AACJ;AACJ;AACD,SAAS4e,SAAT,CAAmB3e,CAAnB,EAAsB;AAClB,WAAOye,aAAa,CAAb,EAAgBze,CAAhB,CAAP;AACH;AACD,SAAS4e,UAAT,GAAsB;AAClB,WAAO,IAAIJ,OAAJ,CAAY,CAAZ,CAAP;AACH;AACD,SAASK,WAAT,CAAqBC,KAArB,EAA4B;AACxB,WAAOA,MAAM1O,GAAN,KAAc,CAAd,GAAkB,CAAlB,GAAsB0O,MAAM1O,GAAN,KAAc,CAAd,GAAkB0O,MAAMzO,IAAN,CAAW,CAAX,CAAlB,GAAkC,CAA/D;AACH;AACD,SAAS0O,YAAT,CAAsBhL,CAAtB,EAAyB;AACrB,WAAOA,EAAE3D,GAAF,KAAU,CAAV,GAAc,IAAd,GAAqB,KAA5B;AACH;AACD,SAAS4O,OAAT,CAAiBC,CAAjB,EAAoB7c,CAApB,EAAuBmO,CAAvB,EAA0BnQ,CAA1B,EAA6B;AACzB,QAAM8e,aAAaD,EAAE7O,GAAF,KAAU,CAAV,GAAchQ,EAAEgQ,GAAF,KAAU,CAAV,GAAc,CAAd,GAAkB,CAAhC,GAAoC,CAAvD;AACA,YAAQ8O,UAAR;AACI,aAAK,CAAL;AACI,mBAAO,IAAIV,OAAJ,CAAY,CAAZ,EAAe,CAACpc,CAAD,EAAImO,CAAJ,CAAf,CAAP;AACJ,aAAK,CAAL;AACI,gBAAM4O,KAAKN,YAAYI,CAAZ,IAAiB,CAA5B;AACA,gBAAMG,KAAKP,YAAYze,CAAZ,IAAiB,CAA5B;AACA,gBAAM2T,IAAI,CAACoL,KAAKC,EAAL,GAAUA,EAAV,GAAeD,EAAhB,IAAsB,CAAhC;AACA,mBAAO,IAAIX,OAAJ,CAAY,CAAZ,EAAe,CAACpc,CAAD,EAAImO,CAAJ,EAAO0O,CAAP,EAAU7e,CAAV,EAAa2T,IAAI,CAAjB,CAAf,CAAP;AAPR;AASA,UAAM,IAAIlT,KAAJ,CAAU,6BAAV,CAAN;AACH;AACD,SAASwe,cAAT,CAAwBC,EAAxB,EAA4Bld,CAA5B,EAA+BmO,CAA/B,EAAkCgP,EAAlC,EAAsC;AAClC,QAAMC,MAAMX,YAAYS,EAAZ,CAAZ;AACA,QAAMG,MAAMZ,YAAYU,EAAZ,CAAZ;AACA,QAAIE,MAAMD,MAAM,CAAhB,EAAmB;AACf,YAAID,GAAGnP,GAAH,KAAW,CAAf,EAAkB;AACd,gBAAIyO,YAAYU,GAAGlP,IAAH,CAAQ,CAAR,CAAZ,IAA0BmP,MAAM,CAApC,EAAuC;AACnC,oBAAID,GAAGlP,IAAH,CAAQ,CAAR,EAAWD,GAAX,KAAmB,CAAvB,EAA0B;AACtB,2BAAO4O,QAAQA,QAAQM,EAAR,EAAYld,CAAZ,EAAemO,CAAf,EAAkBgP,GAAGlP,IAAH,CAAQ,CAAR,EAAWA,IAAX,CAAgB,CAAhB,CAAlB,CAAR,EAA+CkP,GAAGlP,IAAH,CAAQ,CAAR,EAAWA,IAAX,CAAgB,CAAhB,CAA/C,EAAmEkP,GAAGlP,IAAH,CAAQ,CAAR,EAAWA,IAAX,CAAgB,CAAhB,CAAnE,EAAuF2O,QAAQO,GAAGlP,IAAH,CAAQ,CAAR,EAAWA,IAAX,CAAgB,CAAhB,CAAR,EAA4BkP,GAAGlP,IAAH,CAAQ,CAAR,CAA5B,EAAwCkP,GAAGlP,IAAH,CAAQ,CAAR,CAAxC,EAAoDkP,GAAGlP,IAAH,CAAQ,CAAR,CAApD,CAAvF,CAAP;AACH,iBAFD,MAGK;AACD,0BAAM,IAAIxP,KAAJ,CAAU,WAAV,CAAN;AACH;AACJ,aAPD,MAQK;AACD,uBAAOme,QAAQA,QAAQM,EAAR,EAAYld,CAAZ,EAAemO,CAAf,EAAkBgP,GAAGlP,IAAH,CAAQ,CAAR,CAAlB,CAAR,EAAuCkP,GAAGlP,IAAH,CAAQ,CAAR,CAAvC,EAAmDkP,GAAGlP,IAAH,CAAQ,CAAR,CAAnD,EAA+DkP,GAAGlP,IAAH,CAAQ,CAAR,CAA/D,CAAP;AACH;AACJ,SAZD,MAaK;AACD,kBAAM,IAAIxP,KAAJ,CAAU,WAAV,CAAN;AACH;AACJ,KAjBD,MAkBK;AACD,YAAI2e,MAAMC,MAAM,CAAhB,EAAmB;AACf,gBAAIH,GAAGlP,GAAH,KAAW,CAAf,EAAkB;AACd,oBAAIyO,YAAYS,GAAGjP,IAAH,CAAQ,CAAR,CAAZ,IAA0BoP,MAAM,CAApC,EAAuC;AACnC,wBAAIH,GAAGjP,IAAH,CAAQ,CAAR,EAAWD,GAAX,KAAmB,CAAvB,EAA0B;AACtB,+BAAO4O,QAAQA,QAAQM,GAAGjP,IAAH,CAAQ,CAAR,CAAR,EAAoBiP,GAAGjP,IAAH,CAAQ,CAAR,CAApB,EAAgCiP,GAAGjP,IAAH,CAAQ,CAAR,CAAhC,EAA4CiP,GAAGjP,IAAH,CAAQ,CAAR,EAAWA,IAAX,CAAgB,CAAhB,CAA5C,CAAR,EAAyEiP,GAAGjP,IAAH,CAAQ,CAAR,EAAWA,IAAX,CAAgB,CAAhB,CAAzE,EAA6FiP,GAAGjP,IAAH,CAAQ,CAAR,EAAWA,IAAX,CAAgB,CAAhB,CAA7F,EAAiH2O,QAAQM,GAAGjP,IAAH,CAAQ,CAAR,EAAWA,IAAX,CAAgB,CAAhB,CAAR,EAA4BjO,CAA5B,EAA+BmO,CAA/B,EAAkCgP,EAAlC,CAAjH,CAAP;AACH,qBAFD,MAGK;AACD,8BAAM,IAAI1e,KAAJ,CAAU,WAAV,CAAN;AACH;AACJ,iBAPD,MAQK;AACD,2BAAOme,QAAQM,GAAGjP,IAAH,CAAQ,CAAR,CAAR,EAAoBiP,GAAGjP,IAAH,CAAQ,CAAR,CAApB,EAAgCiP,GAAGjP,IAAH,CAAQ,CAAR,CAAhC,EAA4C2O,QAAQM,GAAGjP,IAAH,CAAQ,CAAR,CAAR,EAAoBjO,CAApB,EAAuBmO,CAAvB,EAA0BgP,EAA1B,CAA5C,CAAP;AACH;AACJ,aAZD,MAaK;AACD,sBAAM,IAAI1e,KAAJ,CAAU,WAAV,CAAN;AACH;AACJ,SAjBD,MAkBK;AACD,mBAAOme,QAAQM,EAAR,EAAYld,CAAZ,EAAemO,CAAf,EAAkBgP,EAAlB,CAAP;AACH;AACJ;AACJ;AACD,SAASG,QAAT,CAAkBC,QAAlB,EAA4Bvd,CAA5B,EAA+BmO,CAA/B,EAAkCwD,CAAlC,EAAqC;AACjC,QAAIA,EAAE3D,GAAF,KAAU,CAAd,EAAiB;AACb,YAAMkI,IAAIqH,SAASC,OAAT,CAAiBxd,CAAjB,EAAoB2R,EAAE1D,IAAF,CAAO,CAAP,CAApB,CAAV;AACA,YAAIiI,IAAI,CAAR,EAAW;AACP,mBAAO,IAAIkG,OAAJ,CAAY,CAAZ,EAAe,CAACpc,CAAD,EAAImO,CAAJ,EAAO,IAAIiO,OAAJ,CAAY,CAAZ,CAAP,EAAuBzK,CAAvB,EAA0B,CAA1B,CAAf,CAAP;AACH,SAFD,MAGK,IAAIuE,MAAM,CAAV,EAAa;AACd,mBAAO,IAAIkG,OAAJ,CAAY,CAAZ,EAAe,CAACpc,CAAD,EAAImO,CAAJ,CAAf,CAAP;AACH;AACD,eAAO,IAAIiO,OAAJ,CAAY,CAAZ,EAAe,CAACpc,CAAD,EAAImO,CAAJ,EAAOwD,CAAP,EAAU,IAAIyK,OAAJ,CAAY,CAAZ,CAAV,EAA0B,CAA1B,CAAf,CAAP;AACH,KATD,MAUK,IAAIzK,EAAE3D,GAAF,KAAU,CAAd,EAAiB;AAClB,YAAMkI,KAAIqH,SAASC,OAAT,CAAiBxd,CAAjB,EAAoB2R,EAAE1D,IAAF,CAAO,CAAP,CAApB,CAAV;AACA,YAAIiI,KAAI,CAAR,EAAW;AACP,mBAAO+G,eAAeK,SAASC,QAAT,EAAmBvd,CAAnB,EAAsBmO,CAAtB,EAAyBwD,EAAE1D,IAAF,CAAO,CAAP,CAAzB,CAAf,EAAoD0D,EAAE1D,IAAF,CAAO,CAAP,CAApD,EAA+D0D,EAAE1D,IAAF,CAAO,CAAP,CAA/D,EAA0E0D,EAAE1D,IAAF,CAAO,CAAP,CAA1E,CAAP;AACH,SAFD,MAGK,IAAIiI,OAAM,CAAV,EAAa;AACd,mBAAO,IAAIkG,OAAJ,CAAY,CAAZ,EAAe,CAACpc,CAAD,EAAImO,CAAJ,EAAOwD,EAAE1D,IAAF,CAAO,CAAP,CAAP,EAAkB0D,EAAE1D,IAAF,CAAO,CAAP,CAAlB,EAA6B0D,EAAE1D,IAAF,CAAO,CAAP,CAA7B,CAAf,CAAP;AACH;AACD,eAAOgP,eAAetL,EAAE1D,IAAF,CAAO,CAAP,CAAf,EAA0B0D,EAAE1D,IAAF,CAAO,CAAP,CAA1B,EAAqC0D,EAAE1D,IAAF,CAAO,CAAP,CAArC,EAAgDqP,SAASC,QAAT,EAAmBvd,CAAnB,EAAsBmO,CAAtB,EAAyBwD,EAAE1D,IAAF,CAAO,CAAP,CAAzB,CAAhD,CAAP;AACH;AACD,WAAO,IAAImO,OAAJ,CAAY,CAAZ,EAAe,CAACpc,CAAD,EAAImO,CAAJ,CAAf,CAAP;AACH;AACD,SAASsP,SAAT,CAAmBF,QAAnB,EAA6Bvd,CAA7B,EAAgC2R,CAAhC,EAAmC;AAC/B,QAAMhQ,MAAM+b,aAAaH,QAAb,EAAuBvd,CAAvB,EAA0B2R,CAA1B,CAAZ;AACA,QAAIhQ,OAAO,IAAX,EAAiB;AACb,cAAM,IAAIlD,KAAJ,CAAU,oBAAoBuB,CAA9B,CAAN;AACH;AACD,WAAO,iEAAA9B,CAASyD,GAAT,CAAP;AACH;AACD,SAAS+b,YAAT,CAAsBH,QAAtB,EAAgCvd,CAAhC,EAAmC2R,CAAnC,EAAsC;AAClC7O,aAAS,OAAO,IAAP,EAAa;AAClB,YAAI6O,EAAE3D,GAAF,KAAU,CAAd,EAAiB;AACb,gBAAMkI,IAAIqH,SAASC,OAAT,CAAiBxd,CAAjB,EAAoB2R,EAAE1D,IAAF,CAAO,CAAP,CAApB,IAAiC,CAA3C;AACA,gBAAIiI,MAAM,CAAV,EAAa;AACT,uBAAO,IAAI,qDAAJ,CAASvE,EAAE1D,IAAF,CAAO,CAAP,CAAT,CAAP;AACH,aAFD,MAGK;AACD,uBAAO,IAAP;AACH;AACJ,SARD,MASK,IAAI0D,EAAE3D,GAAF,KAAU,CAAd,EAAiB;AAClB,gBAAM2P,MAAMJ,SAASC,OAAT,CAAiBxd,CAAjB,EAAoB2R,EAAE1D,IAAF,CAAO,CAAP,CAApB,IAAiC,CAA7C;AACA,gBAAI0P,MAAM,CAAV,EAAa;AACTJ,2BAAWA,QAAX;AACAvd,oBAAIA,CAAJ;AACA2R,oBAAIA,EAAE1D,IAAF,CAAO,CAAP,CAAJ;AACA,yBAASnL,OAAT;AACH,aALD,MAMK,IAAI6a,QAAQ,CAAZ,EAAe;AAChB,uBAAO,IAAI,qDAAJ,CAAShM,EAAE1D,IAAF,CAAO,CAAP,CAAT,CAAP;AACH,aAFI,MAGA;AACDsP,2BAAWA,QAAX;AACAvd,oBAAIA,CAAJ;AACA2R,oBAAIA,EAAE1D,IAAF,CAAO,CAAP,CAAJ;AACA,yBAASnL,OAAT;AACH;AACJ,SAjBI,MAkBA;AACD,mBAAO,IAAP;AACH;AACJ;AACJ;AACD,SAAS8a,eAAT,CAAyBL,QAAzB,EAAmCxf,CAAnC,EAAsCiC,CAAtC,EAAyCmO,CAAzC,EAA4C0P,IAA5C,EAAkDC,IAAlD,EAAwD;AACpD,WAAO/f,EAAEiC,CAAF,EAAKmO,CAAL,IAAU,CAACmP,SAASC,QAAT,EAAmBvd,CAAnB,EAAsBmO,CAAtB,EAAyB0P,IAAzB,CAAD,EAAiCC,IAAjC,CAAV,GAAmD,CAACD,IAAD,EAAOP,SAASC,QAAT,EAAmBvd,CAAnB,EAAsBmO,CAAtB,EAAyB2P,IAAzB,CAAP,CAA1D;AACH;AACD,SAASC,iBAAT,CAA2BR,QAA3B,EAAqCxf,CAArC,EAAwCuQ,CAAxC,EAA2C0P,KAA3C,EAAkDC,KAAlD,EAAyD;AACrD,QAAMtgB,MAAM,CAACqgB,KAAD,EAAQC,KAAR,CAAZ;AACA,QAAI3P,EAAEN,GAAF,KAAU,CAAd,EAAiB;AACb,eAAO4P,gBAAgBL,QAAhB,EAA0Bxf,CAA1B,EAA6BuQ,EAAEL,IAAF,CAAO,CAAP,CAA7B,EAAwCK,EAAEL,IAAF,CAAO,CAAP,CAAxC,EAAmDtQ,IAAI,CAAJ,CAAnD,EAA2DA,IAAI,CAAJ,CAA3D,CAAP;AACH,KAFD,MAGK,IAAI2Q,EAAEN,GAAF,KAAU,CAAd,EAAiB;AAClB,YAAMkQ,QAAQH,kBAAkBR,QAAlB,EAA4Bxf,CAA5B,EAA+BuQ,EAAEL,IAAF,CAAO,CAAP,CAA/B,EAA0CtQ,IAAI,CAAJ,CAA1C,EAAkDA,IAAI,CAAJ,CAAlD,CAAd;AACA,YAAMwgB,QAAQP,gBAAgBL,QAAhB,EAA0Bxf,CAA1B,EAA6BuQ,EAAEL,IAAF,CAAO,CAAP,CAA7B,EAAwCK,EAAEL,IAAF,CAAO,CAAP,CAAxC,EAAmDiQ,MAAM,CAAN,CAAnD,EAA6DA,MAAM,CAAN,CAA7D,CAAd;AACA,eAAOH,kBAAkBR,QAAlB,EAA4Bxf,CAA5B,EAA+BuQ,EAAEL,IAAF,CAAO,CAAP,CAA/B,EAA0CkQ,MAAM,CAAN,CAA1C,EAAoDA,MAAM,CAAN,CAApD,CAAP;AACH;AACD,WAAOxgB,GAAP;AACH;AACD,SAASygB,cAAT,CAAwBb,QAAxB,EAAkCxf,CAAlC,EAAqCuQ,CAArC,EAAwC;AACpC,WAAOyP,kBAAkBR,QAAlB,EAA4Bxf,CAA5B,EAA+BuQ,CAA/B,EAAkCkO,YAAlC,EAAgDA,YAAhD,CAAP;AACH;AACD,SAAS6B,YAAT,CAAsBd,QAAtB,EAAgCxf,CAAhC,EAAmCiC,CAAnC,EAAsCmO,CAAtC,EAAyCxQ,GAAzC,EAA8C;AAC1C,WAAOI,EAAEiC,CAAF,EAAKmO,CAAL,IAAUmP,SAASC,QAAT,EAAmBvd,CAAnB,EAAsBmO,CAAtB,EAAyBxQ,GAAzB,CAAV,GAA0CA,GAAjD;AACH;AACD,SAAS2gB,cAAT,CAAwBf,QAAxB,EAAkCxf,CAAlC,EAAqCuQ,CAArC,EAAwC3Q,GAAxC,EAA6C;AACzC,WAAO2Q,EAAEN,GAAF,KAAU,CAAV,GAAcqQ,aAAad,QAAb,EAAuBxf,CAAvB,EAA0BuQ,EAAEL,IAAF,CAAO,CAAP,CAA1B,EAAqCK,EAAEL,IAAF,CAAO,CAAP,CAArC,EAAgDtQ,GAAhD,CAAd,GAAqE2Q,EAAEN,GAAF,KAAU,CAAV,GACxEsQ,eAAef,QAAf,EAAyBxf,CAAzB,EAA4BuQ,EAAEL,IAAF,CAAO,CAAP,CAA5B,EAAuCoQ,aAAad,QAAb,EAAuBxf,CAAvB,EAA0BuQ,EAAEL,IAAF,CAAO,CAAP,CAA1B,EAAqCK,EAAEL,IAAF,CAAO,CAAP,CAArC,EAAgDqQ,eAAef,QAAf,EAAyBxf,CAAzB,EAA4BuQ,EAAEL,IAAF,CAAO,CAAP,CAA5B,EAAuCtQ,GAAvC,CAAhD,CAAvC,CADwE,GAC+DA,GAD3I;AAEH;AACD,SAAS4gB,WAAT,CAAqBhB,QAArB,EAA+Bxf,CAA/B,EAAkCuQ,CAAlC,EAAqC;AACjC,WAAOgQ,eAAef,QAAf,EAAyBxf,CAAzB,EAA4BuQ,CAA5B,EAA+BkO,YAA/B,CAAP;AACH;AACD,SAASgC,uBAAT,CAAiC7M,CAAjC,EAAoC;AAChC,QAAIA,EAAE3D,GAAF,KAAU,CAAd,EAAiB;AACb,eAAO,CAAC2D,EAAE1D,IAAF,CAAO,CAAP,CAAD,EAAY0D,EAAE1D,IAAF,CAAO,CAAP,CAAZ,EAAuB,IAAImO,OAAJ,CAAY,CAAZ,CAAvB,CAAP;AACH,KAFD,MAGK,IAAIzK,EAAE3D,GAAF,KAAU,CAAd,EAAiB;AAClB,YAAI2D,EAAE1D,IAAF,CAAO,CAAP,EAAUD,GAAV,KAAkB,CAAtB,EAAyB;AACrB,mBAAO,CAAC2D,EAAE1D,IAAF,CAAO,CAAP,CAAD,EAAY0D,EAAE1D,IAAF,CAAO,CAAP,CAAZ,EAAuB0D,EAAE1D,IAAF,CAAO,CAAP,CAAvB,CAAP;AACH,SAFD,MAGK;AACD,gBAAMwQ,MAAMD,wBAAwB7M,EAAE1D,IAAF,CAAO,CAAP,CAAxB,CAAZ;AACA,mBAAO,CAACwQ,IAAI,CAAJ,CAAD,EAASA,IAAI,CAAJ,CAAT,EAAiB7B,QAAQ6B,IAAI,CAAJ,CAAR,EAAgB9M,EAAE1D,IAAF,CAAO,CAAP,CAAhB,EAA2B0D,EAAE1D,IAAF,CAAO,CAAP,CAA3B,EAAsC0D,EAAE1D,IAAF,CAAO,CAAP,CAAtC,CAAjB,CAAP;AACH;AACJ;AACD,UAAM,IAAIxP,KAAJ,CAAU,wCAAV,CAAN;AACH;AACD,SAASigB,WAAT,CAAqBnB,QAArB,EAA+Bvd,CAA/B,EAAkC2R,CAAlC,EAAqC;AACjC,QAAIA,EAAE3D,GAAF,KAAU,CAAd,EAAiB;AACb,YAAMkI,IAAIqH,SAASC,OAAT,CAAiBxd,CAAjB,EAAoB2R,EAAE1D,IAAF,CAAO,CAAP,CAApB,CAAV;AACA,YAAIiI,MAAM,CAAV,EAAa;AACT,mBAAO,IAAIkG,OAAJ,CAAY,CAAZ,CAAP;AACH,SAFD,MAGK;AACD,mBAAOzK,CAAP;AACH;AACJ,KARD,MASK,IAAIA,EAAE3D,GAAF,KAAU,CAAd,EAAiB;AAClB,YAAMkI,MAAIqH,SAASC,OAAT,CAAiBxd,CAAjB,EAAoB2R,EAAE1D,IAAF,CAAO,CAAP,CAApB,CAAV;AACA,YAAIiI,MAAI,CAAR,EAAW;AACP,mBAAO+G,eAAeyB,YAAYnB,QAAZ,EAAsBvd,CAAtB,EAAyB2R,EAAE1D,IAAF,CAAO,CAAP,CAAzB,CAAf,EAAoD0D,EAAE1D,IAAF,CAAO,CAAP,CAApD,EAA+D0D,EAAE1D,IAAF,CAAO,CAAP,CAA/D,EAA0E0D,EAAE1D,IAAF,CAAO,CAAP,CAA1E,CAAP;AACH,SAFD,MAGK,IAAIiI,QAAM,CAAV,EAAa;AACd,gBAAIvE,EAAE1D,IAAF,CAAO,CAAP,EAAUD,GAAV,KAAkB,CAAtB,EAAyB;AACrB,uBAAO2D,EAAE1D,IAAF,CAAO,CAAP,CAAP;AACH,aAFD,MAGK;AACD,oBAAI0D,EAAE1D,IAAF,CAAO,CAAP,EAAUD,GAAV,KAAkB,CAAtB,EAAyB;AACrB,2BAAO2D,EAAE1D,IAAF,CAAO,CAAP,CAAP;AACH,iBAFD,MAGK;AACD,wBAAMqI,QAAQkI,wBAAwB7M,EAAE1D,IAAF,CAAO,CAAP,CAAxB,CAAd;AACA,2BAAO2O,QAAQjL,EAAE1D,IAAF,CAAO,CAAP,CAAR,EAAmBqI,MAAM,CAAN,CAAnB,EAA6BA,MAAM,CAAN,CAA7B,EAAuCA,MAAM,CAAN,CAAvC,CAAP;AACH;AACJ;AACJ,SAbI,MAcA;AACD,mBAAO2G,eAAetL,EAAE1D,IAAF,CAAO,CAAP,CAAf,EAA0B0D,EAAE1D,IAAF,CAAO,CAAP,CAA1B,EAAqC0D,EAAE1D,IAAF,CAAO,CAAP,CAArC,EAAgDyQ,YAAYnB,QAAZ,EAAsBvd,CAAtB,EAAyB2R,EAAE1D,IAAF,CAAO,CAAP,CAAzB,CAAhD,CAAP;AACH;AACJ,KAtBI,MAuBA;AACD,eAAOuO,YAAP;AACH;AACJ;AACD,SAASmC,QAAT,CAAkBpB,QAAlB,EAA4Bvd,CAA5B,EAA+B2R,CAA/B,EAAkC;AAC9BiN,SAAK,OAAO,IAAP,EAAa;AACd,YAAIjN,EAAE3D,GAAF,KAAU,CAAd,EAAiB;AACb,mBAAOuP,SAASC,OAAT,CAAiBxd,CAAjB,EAAoB2R,EAAE1D,IAAF,CAAO,CAAP,CAApB,MAAmC,CAA1C;AACH,SAFD,MAGK,IAAI0D,EAAE3D,GAAF,KAAU,CAAd,EAAiB;AAClB,gBAAMkI,IAAIqH,SAASC,OAAT,CAAiBxd,CAAjB,EAAoB2R,EAAE1D,IAAF,CAAO,CAAP,CAApB,IAAiC,CAA3C;AACA,gBAAIiI,IAAI,CAAR,EAAW;AACPqH,2BAAWA,QAAX;AACAvd,oBAAIA,CAAJ;AACA2R,oBAAIA,EAAE1D,IAAF,CAAO,CAAP,CAAJ;AACA,yBAAS2Q,GAAT;AACH,aALD,MAMK,IAAI1I,MAAM,CAAV,EAAa;AACd,uBAAO,IAAP;AACH,aAFI,MAGA;AACDqH,2BAAWA,QAAX;AACAvd,oBAAIA,CAAJ;AACA2R,oBAAIA,EAAE1D,IAAF,CAAO,CAAP,CAAJ;AACA,yBAAS2Q,GAAT;AACH;AACJ,SAjBI,MAkBA;AACD,mBAAO,KAAP;AACH;AACJ;AACJ;AACD,SAASC,SAAT,CAAmB9gB,CAAnB,EAAsB4T,CAAtB,EAAyB;AACrB,QAAIA,EAAE3D,GAAF,KAAU,CAAd,EAAiB;AACbjQ,UAAE4T,EAAE1D,IAAF,CAAO,CAAP,CAAF,EAAa0D,EAAE1D,IAAF,CAAO,CAAP,CAAb;AACH,KAFD,MAGK,IAAI0D,EAAE3D,GAAF,KAAU,CAAd,EAAiB;AAClB6Q,kBAAU9gB,CAAV,EAAa4T,EAAE1D,IAAF,CAAO,CAAP,CAAb;AACAlQ,UAAE4T,EAAE1D,IAAF,CAAO,CAAP,CAAF,EAAa0D,EAAE1D,IAAF,CAAO,CAAP,CAAb;AACA4Q,kBAAU9gB,CAAV,EAAa4T,EAAE1D,IAAF,CAAO,CAAP,CAAb;AACH;AACJ;AACD,SAAS6Q,YAAT,CAAsB/gB,CAAtB,EAAyB4T,CAAzB,EAA4B;AACxB,QAAIA,EAAE3D,GAAF,KAAU,CAAd,EAAiB;AACb,eAAOjQ,EAAE4T,EAAE1D,IAAF,CAAO,CAAP,CAAF,EAAa0D,EAAE1D,IAAF,CAAO,CAAP,CAAb,CAAP;AACH,KAFD,MAGK,IAAI0D,EAAE3D,GAAF,KAAU,CAAd,EAAiB;AAClB,YAAM8O,aAAagC,aAAa/gB,CAAb,EAAgB4T,EAAE1D,IAAF,CAAO,CAAP,CAAhB,CAAnB;AACA,YAAI6O,cAAc,IAAlB,EAAwB;AACpB,gBAAMiC,eAAehhB,EAAE4T,EAAE1D,IAAF,CAAO,CAAP,CAAF,EAAa0D,EAAE1D,IAAF,CAAO,CAAP,CAAb,CAArB;AACA,gBAAI8Q,gBAAgB,IAApB,EAA0B;AACtB,uBAAOD,aAAa/gB,CAAb,EAAgB4T,EAAE1D,IAAF,CAAO,CAAP,CAAhB,CAAP;AACH,aAFD,MAGK;AACD,oBAAMtM,MAAMod,YAAZ;AACA,uBAAOpd,GAAP;AACH;AACJ,SATD,MAUK;AACD,mBAAOmb,UAAP;AACH;AACJ,KAfI,MAgBA;AACD,eAAO,IAAP;AACH;AACJ;AACD,SAASkC,WAAT,CAAqBjhB,CAArB,EAAwB4T,CAAxB,EAA2B;AACvB,WAAOA,EAAE3D,GAAF,KAAU,CAAV,GAAcjQ,EAAE4T,EAAE1D,IAAF,CAAO,CAAP,CAAF,EAAa0D,EAAE1D,IAAF,CAAO,CAAP,CAAb,CAAd,GAAwC0D,EAAE3D,GAAF,KAAU,CAAV,GAAc,CAACgR,YAAYjhB,CAAZ,EAAe4T,EAAE1D,IAAF,CAAO,CAAP,CAAf,IAC1D,IAD0D,GACnDlQ,EAAE4T,EAAE1D,IAAF,CAAO,CAAP,CAAF,EAAa0D,EAAE1D,IAAF,CAAO,CAAP,CAAb,CADkD,IACvB,IADuB,GAChB+Q,YAAYjhB,CAAZ,EAAe4T,EAAE1D,IAAF,CAAO,CAAP,CAAf,CADE,GAC0B,KADzE;AAEH;AACD,SAASgR,WAAT,CAAqBlhB,CAArB,EAAwB4T,CAAxB,EAA2B;AACvB,WAAOA,EAAE3D,GAAF,KAAU,CAAV,GAAcjQ,EAAE4T,EAAE1D,IAAF,CAAO,CAAP,CAAF,EAAa0D,EAAE1D,IAAF,CAAO,CAAP,CAAb,CAAd,GAAwC0D,EAAE3D,GAAF,KAAU,CAAV,GAAc,CAACiR,YAAYlhB,CAAZ,EAAe4T,EAAE1D,IAAF,CAAO,CAAP,CAAf,IAC1DlQ,EAAE4T,EAAE1D,IAAF,CAAO,CAAP,CAAF,EAAa0D,EAAE1D,IAAF,CAAO,CAAP,CAAb,CAD0D,GAChC,KAD+B,IACtBgR,YAAYlhB,CAAZ,EAAe4T,EAAE1D,IAAF,CAAO,CAAP,CAAf,CADsB,GACM,KADpB,GAC4B,IAD3E;AAEH;AACD,SAASiR,SAAT,CAAmBnhB,CAAnB,EAAsB4T,CAAtB,EAAyB;AACrB,WAAOA,EAAE3D,GAAF,KAAU,CAAV,GAAc,IAAIoO,OAAJ,CAAY,CAAZ,EAAe,CAACzK,EAAE1D,IAAF,CAAO,CAAP,CAAD,EAAYlQ,EAAE4T,EAAE1D,IAAF,CAAO,CAAP,CAAF,EAAa0D,EAAE1D,IAAF,CAAO,CAAP,CAAb,CAAZ,CAAf,CAAd,GAAqE0D,EAAE3D,GAAF,KAAU,CAAV,GACxE,IAAIoO,OAAJ,CAAY,CAAZ,EAAe,CAACzK,EAAE1D,IAAF,CAAO,CAAP,CAAD,EAAYlQ,EAAE4T,EAAE1D,IAAF,CAAO,CAAP,CAAF,EAAa0D,EAAE1D,IAAF,CAAO,CAAP,CAAb,CAAZ,EAAqCiR,UAAUnhB,CAAV,EAAa4T,EAAE1D,IAAF,CAAO,CAAP,CAAb,CAArC,EACXiR,UAAUnhB,CAAV,EAAa4T,EAAE1D,IAAF,CAAO,CAAP,CAAb,CADW,EACc0D,EAAE1D,IAAF,CAAO,CAAP,CADd,CAAf,CADwE,GAE7BuO,YAF/C;AAGH;AACD,SAAS2C,aAAT,CAAuBphB,CAAvB,EAA0B4T,CAA1B,EAA6B/T,CAA7B,EAAgC;AAC5B,WAAO+T,EAAE3D,GAAF,KAAU,CAAV,GAAcjQ,EAAE4T,EAAE1D,IAAF,CAAO,CAAP,CAAF,EAAa0D,EAAE1D,IAAF,CAAO,CAAP,CAAb,EAAwBrQ,CAAxB,CAAd,GAA2C+T,EAAE3D,GAAF,KAAU,CAAV,GAC9CmR,cAAcphB,CAAd,EAAiB4T,EAAE1D,IAAF,CAAO,CAAP,CAAjB,EAA4BlQ,EAAE4T,EAAE1D,IAAF,CAAO,CAAP,CAAF,EAAa0D,EAAE1D,IAAF,CAAO,CAAP,CAAb,EAAwBkR,cAAcphB,CAAd,EAAiB4T,EAAE1D,IAAF,CAAO,CAAP,CAAjB,EAA4BrQ,CAA5B,CAAxB,CAA5B,CAD8C,GACyCA,CAD3F;AAEH;AACD,SAASwhB,SAAT,CAAmBrhB,CAAnB,EAAsBH,CAAtB,EAAyB+T,CAAzB,EAA4B;AACxB,WAAOA,EAAE3D,GAAF,KAAU,CAAV,GAAcjQ,EAAEH,CAAF,EAAK+T,EAAE1D,IAAF,CAAO,CAAP,CAAL,EAAgB0D,EAAE1D,IAAF,CAAO,CAAP,CAAhB,CAAd,GAA2C0D,EAAE3D,GAAF,KAAU,CAAV,GAC9CoR,UAAUrhB,CAAV,EAAaA,EAAEqhB,UAAUrhB,CAAV,EAAaH,CAAb,EAAgB+T,EAAE1D,IAAF,CAAO,CAAP,CAAhB,CAAF,EAA8B0D,EAAE1D,IAAF,CAAO,CAAP,CAA9B,EAAyC0D,EAAE1D,IAAF,CAAO,CAAP,CAAzC,CAAb,EAAkE0D,EAAE1D,IAAF,CAAO,CAAP,CAAlE,CAD8C,GACiCrQ,CADnF;AAEH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASyhB,qBAAT,CAA+B9B,QAA/B,EAAyC5f,GAAzC,EAA8CqU,CAA9C,EAAiD;AAC7C,QAAIpR,MAAMoR,EAAEnR,IAAF,EAAV;AACA,WAAO,CAACD,IAAII,IAAZ,EAAkB;AACdrD,cAAM2f,SAASC,QAAT,EAAmB3c,IAAIG,KAAJ,CAAU,CAAV,CAAnB,EAAiCH,IAAIG,KAAJ,CAAU,CAAV,CAAjC,EAA+CpD,GAA/C,CAAN;AACAiD,cAAMoR,EAAEnR,IAAF,EAAN;AACH;AACD,WAAOlD,GAAP;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS2hB,UAAT,CAAoB/B,QAApB,EAA8BrH,CAA9B,EAAiC;AAC7B,QAAMqJ,KAAKrJ,EAAE9U,OAAOC,QAAT,GAAX;AACA,WAAOge,sBAAsB9B,QAAtB,EAAgCf,YAAhC,EAA8C+C,EAA9C,CAAP;AACH;AACD;AACA;AACA;AACA,SAASC,gBAAT,CAA0BC,KAA1B,EAAiC;AAC7B,QAAIA,MAAMlf,IAAN,IAAc,IAAlB,EAAwB;AACpB,YAAIkf,MAAMjf,IAAN,CAAWwN,GAAX,KAAmB,CAAvB,EAA0B;AACtB,mBAAOyR,KAAP;AACH,SAFD,MAGK,IAAIA,MAAMjf,IAAN,CAAWwN,GAAX,KAAmB,CAAvB,EAA0B;AAC3B,mBAAOwR,iBAAiB,mEAAAE,CAAY,CAChCD,MAAMjf,IAAN,CAAWyN,IAAX,CAAgB,CAAhB,CADgC,EAEhC,IAAImO,OAAJ,CAAY,CAAZ,EAAe,CAACqD,MAAMjf,IAAN,CAAWyN,IAAX,CAAgB,CAAhB,CAAD,EAAqBwR,MAAMjf,IAAN,CAAWyN,IAAX,CAAgB,CAAhB,CAArB,CAAf,CAFgC,EAGhCwR,MAAMjf,IAAN,CAAWyN,IAAX,CAAgB,CAAhB,CAHgC,CAAZ,EAIrBwR,MAAMlf,IAJe,CAAjB,CAAP;AAKH,SANI,MAOA;AACD,mBAAOif,iBAAiBC,MAAMlf,IAAvB,CAAP;AACH;AACJ,KAdD,MAeK;AACD,eAAO,IAAI,2DAAJ,EAAP;AACH;AACJ;AACD,SAASof,eAAT,CAAyBrR,CAAzB,EAA4B;AACxB,WAAO,EAAEmR,OAAOD,iBAAiB,IAAI,2DAAJ,CAASlR,CAAT,EAAY,IAAI,2DAAJ,EAAZ,CAAjB,CAAT,EAAoDsR,SAAS,KAA7D,EAAP;AACH;AACD,SAASC,aAAT,CAAuBnhB,CAAvB,EAA0B;AACtB,aAASoC,OAAT,CAAiBwC,EAAjB,EAAqB;AACjB,YAAIA,GAAGmc,KAAH,CAASlf,IAAT,IAAiB,IAArB,EAA2B;AACvB,mBAAO,IAAP;AACH,SAFD,MAGK,IAAI+C,GAAGmc,KAAH,CAASjf,IAAT,CAAcwN,GAAd,KAAsB,CAA1B,EAA6B;AAC9B,mBAAO,CAAC1K,GAAGmc,KAAH,CAASjf,IAAT,CAAcyN,IAAd,CAAmB,CAAnB,CAAD,EAAwB3K,GAAGmc,KAAH,CAASjf,IAAT,CAAcyN,IAAd,CAAmB,CAAnB,CAAxB,CAAP;AACH;AACD,cAAM,IAAIxP,KAAJ,CAAU,iEAAV,CAAN;AACH;AACD,QAAIC,EAAEkhB,OAAN,EAAe;AACX,YAAIlhB,EAAE+gB,KAAF,CAAQlf,IAAR,IAAgB,IAApB,EAA0B;AACtB,mBAAO,EAAES,MAAM,IAAR,EAAcD,OAAO,IAArB,EAAP;AACH,SAFD,MAGK;AACD,gBAAIrC,EAAE+gB,KAAF,CAAQjf,IAAR,CAAawN,GAAb,KAAqB,CAAzB,EAA4B;AACxBtP,kBAAE+gB,KAAF,GAAUD,iBAAiB9gB,EAAE+gB,KAAF,CAAQlf,IAAzB,CAAV;AACA,uBAAO;AACHS,0BAAMtC,EAAE+gB,KAAF,CAAQlf,IAAR,IAAgB,IADnB;AAEHQ,2BAAOD,QAAQpC,CAAR;AAFJ,iBAAP;AAIH,aAND,MAOK;AACD,sBAAM,IAAID,KAAJ,CAAU,kEAAV,CAAN;AACH;AACJ;AACJ,KAhBD,MAiBK;AACDC,UAAEkhB,OAAF,GAAY,IAAZ;AACA,eAAO;AACH5e,kBAAMtC,EAAE+gB,KAAF,CAAQlf,IAAR,IAAgB,IADnB;AAEHQ,mBAAOD,QAAQpC,CAAR;AAFJ,SAAP;AAIH;AACJ;;IACoBohB,Q;AACjB;AACA,wBAAc;AAAA;;AAAE;AAAS;;;;mCACd;AACP,mBAAO,UAAUxf,MAAM8D,IAAN,CAAW,IAAX,EAAiBzF,GAAjB,CAAqB,UAACf,CAAD;AAAA,uBAAO,+DAAAwP,CAASxP,CAAT,CAAP;AAAA,aAArB,EAAyCsQ,IAAzC,CAA8C,IAA9C,CAAV,GAAgE,GAAvE;AACH;;;+BACM6R,E,EAAI;AACP,mBAAO,KAAK7Q,SAAL,CAAe6Q,EAAf,MAAuB,CAA9B;AACH;;;kCACSA,E,EAAI;AAAA;;AACV,mBAAO,SAASA,EAAT,GAAc,CAAd,GAAkB,iEAAAC,CAAe,UAACC,IAAD,EAAOC,IAAP,EAAgB;AACpD,oBAAMhK,IAAI,MAAKqH,QAAL,CAAcC,OAAd,CAAsByC,KAAK,CAAL,CAAtB,EAA+BC,KAAK,CAAL,CAA/B,CAAV;AACA,uBAAOhK,MAAM,CAAN,GAAUA,CAAV,GAAc,8DAAA7O,CAAQ4Y,KAAK,CAAL,CAAR,EAAiBC,KAAK,CAAL,CAAjB,CAArB;AACH,aAHwB,EAGtB,IAHsB,EAGhBH,EAHgB,CAAzB;AAIH;;aACA3e,OAAOC,Q;gCAAY;AAChB,gBAAM3C,IAAIihB,gBAAgB,KAAKQ,IAArB,CAAV;AACA,mBAAO;AACHtf,sBAAM;AAAA,2BAAMgf,cAAcnhB,CAAd,CAAN;AAAA;AADH,aAAP;AAGH;;;kCACS;AACN,mBAAO,KAAK0C,OAAOC,QAAZ,GAAP;AACH;;;+BACM;AACH,mBAAO,yDAAAtB,CAAO,UAACoc,EAAD;AAAA,uBAAQA,GAAG,CAAH,CAAR;AAAA,aAAP,EAAsB,IAAtB,CAAP;AACH;;;iCACQ;AACL,mBAAO,yDAAApc,CAAO,UAACoc,EAAD;AAAA,uBAAQA,GAAG,CAAH,CAAR;AAAA,aAAP,EAAsB,IAAtB,CAAP;AACH;;;4BACGnc,C,EAAG;AACH,mBAAOyd,UAAU,KAAKF,QAAf,EAAyBvd,CAAzB,EAA4B,KAAKmgB,IAAjC,CAAP;AACH;;;4BACGngB,C,EAAG;AACH,mBAAO2e,SAAS,KAAKpB,QAAd,EAAwBvd,CAAxB,EAA2B,KAAKmgB,IAAhC,CAAP;AACH;AACD;;;;4BACIngB,C,EAAGmO,C,EAAG;AACN,iBAAKgS,IAAL,GAAY7C,SAAS,KAAKC,QAAd,EAAwBvd,CAAxB,EAA2BmO,CAA3B,EAA8B,KAAKgS,IAAnC,CAAZ;AACH;AACD;;;;gCACOngB,C,EAAG;AACN;AACA,gBAAMogB,UAAU7D,UAAU,KAAK4D,IAAf,CAAhB;AACA,iBAAKA,IAAL,GAAYzB,YAAY,KAAKnB,QAAjB,EAA2Bvd,CAA3B,EAA8B,KAAKmgB,IAAnC,CAAZ;AACA,mBAAOC,UAAU7D,UAAU,KAAK4D,IAAf,CAAjB;AACH;AACD;;;;gCACQ;AACJ,iBAAKA,IAAL,GAAY3D,YAAZ;AACH;;aAIA,wDAAAlQ,CAAQ/B,U;gCAAc;AACnB,mBAAO;AACH8F,sBAAM,wCADH;AAEHtD,4BAAY,CAAC,mBAAD,EAAsB,oBAAtB,EAA4C,wCAA5C;AAFT,aAAP;AAIH;;;4BARU;AACP,mBAAOwP,UAAU,KAAK4D,IAAf,CAAP;AACH;;;;;;0EArDgBL,Q;;AA6DrB,SAAS1b,IAAT,CAAcmZ,QAAd,EAAwB4C,IAAxB,EAA8B;AAC1B,QAAMxhB,MAAM,IAAImhB,QAAJ,EAAZ;AACAnhB,QAAIwhB,IAAJ,GAAWA,IAAX;AACAxhB,QAAI4e,QAAJ,GAAeA,YAAY,IAAI,0DAAJ,EAA3B;AACA,WAAO5e,GAAP;AACH;AACM,SAASod,MAAT,CAAgBwD,EAAhB,EAAoBhC,QAApB,EAA8B;AACjCA,eAAWA,YAAY,IAAI,0DAAJ,EAAvB;AACA,WAAOnZ,KAAKmZ,QAAL,EAAegC,KAAKD,WAAW/B,QAAX,EAAqBgC,EAArB,CAAL,GAAgC/C,YAA/C,CAAP;AACH;AACM,SAASP,GAAT,CAAajc,CAAb,EAAgBmO,CAAhB,EAAmBxP,GAAnB,EAAwB;AAC3B,WAAOyF,KAAKzF,IAAI4e,QAAT,EAAmBD,SAAS3e,IAAI4e,QAAb,EAAuBvd,CAAvB,EAA0BmO,CAA1B,EAA6BxP,IAAIwhB,IAAjC,CAAnB,CAAP;AACH;AACM,SAASxF,MAAT,CAAgB5U,IAAhB,EAAsBpH,GAAtB,EAA2B;AAC9B,WAAOyF,KAAKzF,IAAI4e,QAAT,EAAmBmB,YAAY/f,IAAI4e,QAAhB,EAA0BxX,IAA1B,EAAgCpH,IAAIwhB,IAApC,CAAnB,CAAP;AACH;AACM,SAASE,aAAT,CAAuBlS,CAAvB,EAA0BxP,GAA1B,EAA+B;AAClC,WAAO,0DAAAjB,CAAQ,UAACC,GAAD,EAAMqC,CAAN;AAAA,eAAYrC,OAAO,6DAAA8G,CAAO9F,IAAI2L,GAAJ,CAAQtK,CAAR,CAAP,EAAmBmO,CAAnB,CAAnB;AAAA,KAAR,EAAkD,KAAlD,EAAyDxP,IAAI6Q,IAAJ,EAAzD,CAAP;AACH;AACM,SAAS8Q,WAAT,CAAqB3hB,GAArB,EAA0B8Q,GAA1B,EAA+BvG,YAA/B,EAA6C;AAChD,WAAOvK,IAAI4hB,GAAJ,CAAQ9Q,GAAR,IAAe,CAAC,IAAD,EAAO9Q,IAAI2L,GAAJ,CAAQmF,GAAR,CAAP,CAAf,GAAsC,CAAC,KAAD,EAAQvG,YAAR,CAA7C;AACH;AACM,SAASxE,MAAT,CAAgB3G,CAAhB,EAAmBY,GAAnB,EAAwB;AAC3B,WAAOqgB,YAAYjhB,CAAZ,EAAeY,IAAIwhB,IAAnB,CAAP;AACH;AACM,SAAShX,IAAT,CAAcnJ,CAAd,EAAiBrB,GAAjB,EAAsB;AACzB,WAAO8e,UAAU9e,IAAI4e,QAAd,EAAwBvd,CAAxB,EAA2BrB,IAAIwhB,IAA/B,CAAP;AACH;AACM,SAASrd,OAAT,CAAiB9C,CAAjB,EAAoBrB,GAApB,EAAyB;AAC5B,WAAO+e,aAAa/e,IAAI4e,QAAjB,EAA2Bvd,CAA3B,EAA8BrB,IAAIwhB,IAAlC,CAAP;AACH;AACM,SAAS9hB,MAAT,CAAgBN,CAAhB,EAAmBY,GAAnB,EAAwB;AAC3B,WAAOyF,KAAKzF,IAAI4e,QAAT,EAAmBgB,YAAY5f,IAAI4e,QAAhB,EAA0Bxf,CAA1B,EAA6BY,IAAIwhB,IAAjC,CAAnB,CAAP;AACH;AACM,SAASnb,IAAT,CAAcjH,CAAd,EAAiByK,IAAjB,EAAuB7J,GAAvB,EAA4B;AAC/B,WAAOygB,UAAUrhB,CAAV,EAAayK,IAAb,EAAmB7J,IAAIwhB,IAAvB,CAAP;AACH;AACM,SAASte,QAAT,CAAkB9D,CAAlB,EAAqBY,GAArB,EAA0B6J,IAA1B,EAAgC;AACnC,WAAO2W,cAAcphB,CAAd,EAAiBY,IAAIwhB,IAArB,EAA2B3X,IAA3B,CAAP;AACH;AACM,SAAS/C,MAAT,CAAgB1H,CAAhB,EAAmBY,GAAnB,EAAwB;AAC3B,WAAOsgB,YAAYlhB,CAAZ,EAAeY,IAAIwhB,IAAnB,CAAP;AACH;AACM,SAAS9Z,OAAT,CAAiB1H,GAAjB,EAAsB;AACzB,WAAOge,aAAahe,IAAIwhB,IAAjB,CAAP;AACH;AACM,SAASna,OAAT,CAAiBjI,CAAjB,EAAoBY,GAApB,EAAyB;AAC5BkgB,cAAU9gB,CAAV,EAAaY,IAAIwhB,IAAjB;AACH;AACM,SAASxhB,GAAT,CAAaZ,CAAb,EAAgBY,GAAhB,EAAqB;AACxB,WAAOyF,KAAKzF,IAAI4e,QAAT,EAAmB2B,UAAUnhB,CAAV,EAAaY,IAAIwhB,IAAjB,CAAnB,CAAP;AACH;AACM,SAASrhB,SAAT,CAAmBf,CAAnB,EAAsBY,GAAtB,EAA2B;AAC9B,QAAM6hB,KAAKpC,eAAezf,IAAI4e,QAAnB,EAA6Bxf,CAA7B,EAAgCY,IAAIwhB,IAApC,CAAX;AACA,WAAO,CAAC/b,KAAKzF,IAAI4e,QAAT,EAAmBiD,GAAG,CAAH,CAAnB,CAAD,EAA4Bpc,KAAKzF,IAAI4e,QAAT,EAAmBiD,GAAG,CAAH,CAAnB,CAA5B,CAAP;AACH;AACM,SAASC,OAAT,CAAiB1iB,CAAjB,EAAoBY,GAApB,EAAyB;AAC5B,WAAO,0DAAA+hB,CAAQ,UAACvE,EAAD;AAAA,eAAQpe,EAAEoe,GAAG,CAAH,CAAF,EAASA,GAAG,CAAH,CAAT,IAAkB,IAAI,qDAAJ,CAASA,GAAG,CAAH,CAAT,CAAlB,GAAoC,IAA5C;AAAA,KAAR,EAA0Dxd,GAA1D,CAAP;AACH;AACM,SAASgiB,UAAT,CAAoB5iB,CAApB,EAAuBY,GAAvB,EAA4B;AAC/B,WAAO,6DAAAiiB,CAAW,UAACzE,EAAD;AAAA,eAAQpe,EAAEoe,GAAG,CAAH,CAAF,EAASA,GAAG,CAAH,CAAT,IAAkB,IAAI,qDAAJ,CAASA,GAAG,CAAH,CAAT,CAAlB,GAAoC,IAA5C;AAAA,KAAX,EAA6Dxd,GAA7D,CAAP;AACH;AACM,SAASgL,IAAT,CAAc5L,CAAd,EAAiBY,GAAjB,EAAsB;AACzB,QAAMgD,MAAM+H,QAAQ3L,CAAR,EAAWY,GAAX,CAAZ;AACA,QAAIgD,OAAO,IAAX,EAAiB;AACb,eAAO,iEAAAzD,CAASyD,GAAT,CAAP;AACH;AACD,UAAM,IAAIlD,KAAJ,CAAU,eAAV,CAAN;AACH;AACM,SAASiL,OAAT,CAAiB3L,CAAjB,EAAoBY,GAApB,EAAyB;AAC5B,WAAOmgB,aAAa/gB,CAAb,EAAgBY,IAAIwhB,IAApB,CAAP;AACH,C;;;;;;;;;;;;;;ACjmBD;AACA;;IACqBU,Q;AACjB,sBAAY9iB,CAAZ,EAAe;AAAA;;AACX,aAAKyf,OAAL,GAAezf,KAAK,sDAApB;AACH;;;aACA,wDAAAuO,CAAQ/B,U;gCAAc;AACnB,mBAAO,EAAEwC,YAAY,CAAC,kBAAD,CAAd,EAAP;AACH;;;;;;yDANgB8T,Q;;AAQd,SAASC,oBAAT,CAA8BvD,QAA9B,EAAwC;AAC3C;AACA,QAAI,OAAOA,SAASC,OAAhB,KAA4B,UAAhC,EAA4C;AACxC,eAAO,IAAIqD,QAAJ,CAAatD,SAASC,OAAtB,CAAP;AACH,KAFD,MAGK;AACD,eAAO,IAAIqD,QAAJ,CAAa,UAACjjB,CAAD,EAAIK,CAAJ,EAAU;AAC1B,gBAAMqR,QAAQiO,SAASlP,WAAT,CAAqBzQ,CAArB,CAAd;AACA,gBAAM2R,QAAQgO,SAASlP,WAAT,CAAqBpQ,CAArB,CAAd;AACA,gBAAIqR,UAAUC,KAAd,EAAqB;AACjB,uBAAOgO,SAAS9O,MAAT,CAAgB7Q,CAAhB,EAAmBK,CAAnB,IAAwB,CAAxB,GAA4B,CAAC,CAApC;AACH,aAFD,MAGK;AACD,uBAAOqR,QAAQC,KAAR,GAAgB,CAAC,CAAjB,GAAqB,CAA5B;AACH;AACJ,SATM,CAAP;AAUH;AACJ,C;;;;;;;;;;;;;;;;;;;;;;AC3BD,IAAawR,sBAAb;AAAA;;AACI,sCAAc;AAAA;;AAAA,oJACJ,4BADI;;AAEV5U,eAAO6U,cAAP,QAA4BD,uBAAuB1U,SAAnD;AAFU;AAGb;;AAJL;AAAA,EAA4C5N,KAA5C;AAMA,IAAawiB,UAAb;AAAA;AAAA;AAAA,4BACwC;AAChC,mBAAO,IAAP;AACH;AAHL;;AAII,0BAAc;AAAA;;AACV,aAAKC,SAAL,GAAiB,CAAjB;AACH;;AANL;AAAA;AAAA,4CAOwB;AAChB,mBAAO,KAAKA,SAAL,KAAmBD,WAAWE,sBAArC;AACH;AATL;AAAA;AAAA,+BAUWpjB,CAVX,EAUc;AACN,iBAAKmjB,SAAL,GAAiB,CAAjB;AACAE,uBAAWrjB,CAAX,EAAc,CAAd;AACH;AAbL;;AAAA;AAAA;AAeO,SAASsjB,aAAT,CAAuBtjB,CAAvB,EAA0B;AAC7B,WAAO,UAACujB,GAAD,EAAS;AACZ,YAAIA,IAAIC,WAAJ,CAAgBC,WAApB,EAAiC;AAC7BF,gBAAIG,QAAJ,CAAa,IAAIV,sBAAJ,EAAb;AACH,SAFD,MAGK,IAAIO,IAAII,UAAJ,CAAeC,iBAAf,EAAJ,EAAwC;AACzCL,gBAAII,UAAJ,CAAeE,MAAf,CAAsB,YAAM;AACxB,oBAAI;AACA7jB,sBAAEujB,GAAF;AACH,iBAFD,CAGA,OAAOje,GAAP,EAAY;AACRie,wBAAIO,OAAJ,CAAYxe,GAAZ;AACH;AACJ,aAPD;AAQH,SATI,MAUA;AACD,gBAAI;AACAtF,kBAAEujB,GAAF;AACH,aAFD,CAGA,OAAOje,GAAP,EAAY;AACRie,oBAAIO,OAAJ,CAAYxe,GAAZ;AACH;AACJ;AACJ,KAtBD;AAuBH;AACM,SAASye,aAAT,CAAuBC,WAAvB,EAAoCC,MAApC,EAA4C;AAC/C,WAAOX,cAAc,UAACC,GAAD,EAAS;AAC1BS,oBAAY;AACRE,uBAAW,mBAACrkB,CAAD,EAAO;AACd,oBAAI;AACAokB,2BAAOpkB,CAAP,EAAU0jB,GAAV;AACH,iBAFD,CAGA,OAAOY,EAAP,EAAW;AACPZ,wBAAIO,OAAJ,CAAYK,EAAZ;AACH;AACJ,aARO;AASRL,qBAASP,IAAIO,OATL;AAURJ,sBAAUH,IAAIG,QAVN;AAWRF,yBAAaD,IAAIC,WAXT;AAYRG,wBAAYJ,IAAII;AAZR,SAAZ;AAcH,KAfM,CAAP;AAgBH;AACM,SAASS,eAAT,CAAyBphB,KAAzB,EAAgC;AACnC,WAAOsgB,cAAc,UAACC,GAAD;AAAA,eAASA,IAAIW,SAAJ,CAAclhB,KAAd,CAAT;AAAA,KAAd,CAAP;AACH;AACD,IAAaqhB,YAAb;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA,6BACSL,WADT,EACsBC,MADtB,EAC8B;AACtB,mBAAOF,cAAcC,WAAd,EAA2BC,MAA3B,CAAP;AACH;AAHL;AAAA;AAAA,gCAIYK,YAJZ,EAI0BC,YAJ1B,EAIwC;AAChC,mBAAO,KAAKC,IAAL,CAAUF,YAAV,EAAwB;AAAA,uBAAMC,YAAN;AAAA,aAAxB,CAAP;AACH;AANL;AAAA;AAAA,8BAOUE,SAPV,EAOqB;AACb,mBAAOnB,cAAc,UAACC,GAAD;AAAA,uBAASkB,YAAYlB,GAAZ,CAAT;AAAA,aAAd,CAAP;AACH;AATL;AAAA;AAAA,4BAUQmB,QAVR,EAUkBC,IAVlB,EAUwB;AAChB,gBAAM/hB,OAAO8hB,SAASrhB,OAAOC,QAAhB,GAAb;AACA,gBAAIT,MAAMD,KAAKE,IAAL,EAAV;AACA,mBAAO,KAAK8hB,KAAL,CAAW;AAAA,uBAAM,CAAC/hB,IAAII,IAAX;AAAA,aAAX,EAA4B,KAAK4hB,KAAL,CAAW,YAAM;AAChD,oBAAMjhB,MAAM+gB,KAAK9hB,IAAIG,KAAT,CAAZ;AACAH,sBAAMD,KAAKE,IAAL,EAAN;AACA,uBAAOc,GAAP;AACH,aAJkC,CAA5B,CAAP;AAKH;AAlBL;AAAA;AAAA,+BAmBWZ,KAnBX,EAmBkB;AACV,mBAAOohB,gBAAgBphB,KAAhB,CAAP;AACH;AArBL;AAAA;AAAA,mCAsBeghB,WAtBf,EAsB4B;AACpB,mBAAOA,WAAP;AACH;AAxBL;AAAA;AAAA,mCAyBeA,WAzBf,EAyB4Bc,YAzB5B,EAyB0C;AAClC,mBAAOxB,cAAc,UAACC,GAAD,EAAS;AAC1BS,4BAAY;AACRE,+BAAW,mBAACrkB,CAAD,EAAO;AACdilB;AACAvB,4BAAIW,SAAJ,CAAcrkB,CAAd;AACH,qBAJO;AAKRikB,6BAAS,iBAACjkB,CAAD,EAAO;AACZilB;AACAvB,4BAAIO,OAAJ,CAAYjkB,CAAZ;AACH,qBARO;AASR6jB,8BAAU,kBAAC7jB,CAAD,EAAO;AACbilB;AACAvB,4BAAIG,QAAJ,CAAa7jB,CAAb;AACH,qBAZO;AAaR2jB,iCAAaD,IAAIC,WAbT;AAcRG,gCAAYJ,IAAII;AAdR,iBAAZ;AAgBH,aAjBM,CAAP;AAkBH;AA5CL;AAAA;AAAA,gCA6CYK,WA7CZ,EA6CyBe,YA7CzB,EA6CuC;AAC/B,mBAAOzB,cAAc,UAACC,GAAD,EAAS;AAC1BS,4BAAY;AACRE,+BAAWX,IAAIW,SADP;AAERR,8BAAUH,IAAIG,QAFN;AAGRF,iCAAaD,IAAIC,WAHT;AAIRG,gCAAYJ,IAAII,UAJR;AAKRG,6BAAS,iBAACK,EAAD,EAAQ;AACb,4BAAI;AACAY,yCAAaZ,EAAb,EAAiBZ,GAAjB;AACH,yBAFD,CAGA,OAAOyB,GAAP,EAAY;AACRzB,gCAAIO,OAAJ,CAAYkB,GAAZ;AACH;AACJ;AAZO,iBAAZ;AAcH,aAfM,CAAP;AAgBH;AA9DL;AAAA;AAAA,8BA+DUC,QA/DV,EA+DoBhB,MA/DpB,EA+D4B;AACpB,mBAAO,KAAKiB,UAAL,CAAgBjB,OAAOgB,QAAP,CAAhB,EAAkC;AAAA,uBAAMA,SAASpf,OAAT,EAAN;AAAA,aAAlC,CAAP;AACH;AAjEL;AAAA;AAAA,8BAkEUsf,KAlEV,EAkEiBnB,WAlEjB,EAkE8B;AAAA;;AACtB,gBAAImB,OAAJ,EAAa;AACT,uBAAO,KAAKX,IAAL,CAAUR,WAAV,EAAuB;AAAA,2BAAM,OAAKY,KAAL,CAAWO,KAAX,EAAkBnB,WAAlB,CAAN;AAAA,iBAAvB,CAAP;AACH,aAFD,MAGK;AACD,uBAAO,KAAKoB,MAAL,CAAY,KAAK,CAAjB,CAAP;AACH;AACJ;AAzEL;AAAA;AAAA,+BA0EW;AACH,mBAAO9B,cAAc,UAACC,GAAD;AAAA,uBAASA,IAAIW,SAAJ,CAAc,KAAK,CAAnB,CAAT;AAAA,aAAd,CAAP;AACH;AA5EL;;AAAA;AAAA;AA8EO,IAAM/iB,YAAY,IAAIkjB,YAAJ,EAAlB,C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACtIH,kBAOK,wGANL,kLAMK,yNAPL;AASC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAAA;AAGW,yIAGR;AAAyB;AAAA;AAAA,0CAGrB;AAAA,6CAAW,eAAX,EAGA;AAAA,0IAAQ,gHAAR;AAGA,uDAAQ,aAAR;AAAsB,yBANtB;AAAA,qBAHqB;AAAA;AAAK,aAAL;;AAazB;AAAc,SAhBN;AAHL;;AAAN;AAAA;AAAA,mDAsBuB;AAAA;;AAAA,+BAEhB;AAAwF;AAAA;AAAA;AAAA;AAAU,qBAAV;AAAU,iBAAV,GAAxF,4GAAQ,6HAAR,SAAiC;AAAA;AAAA;AAA4C,iBAA5C,EAAjC;AAAkG,aAFlF,MAIhB;AAAiF;AAAA;AAAA;AAAA;AAAU,qBAAV;AAAU,iBAAV,GAAjF,4GAAQ,wHAAR,SAA4B;AAAA;AAAA;AAA4C,iBAA5C,EAA5B;AAA2F;AAAA;AA1BlG;AAAA;AAAA,uCA6BG;AAAA,gBAAG,kBAAH,EACI;AAAQ;AAAR;AAA6B;AAC1B;AA/BV;AAAA;AAAA,4BAkCe;AAAA;;AAAA;AAAA;AAAG,aAAH;AAAG;AAlClB;AAAA;AAAA,4BAmCiB;AAAA;;AAAA;AAAA;AAAkB,aAAlB;AAAkB;AAnCnC;AAAA;AAAA,4BAoCgB;AAAA;;AAAA;AAAA;AAAiB,aAAjB;AAAiB;AApCjC;AAAA;AAAA,4BAqCgB;AAAA;;AAAA;AAAA;AAAoB,aAApB;AAAoB;AArCpC;AAAA;AAAA,4BAsCiB;AAAA;;AAAA;AAAA;AAAkB,aAAlB;AAAkB;AAtCnC;AAAA;AAAA,4BAuCiB;AAAA;;AAAA;AAAA;AAAkB,aAAlB;AAAkB;AAvCnC;;AAAA;AAAA;;AA0CD;AAAK,wIAAL;AAAA;AACC;AAGD;AAAK,wIAAL;AAAA;AACC,C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;APnEE,IAAMgB,cAAc,8BAApB;AACA,SAASC,YAAT,CAAsB3kB,CAAtB,EAAyBuD,MAAzB,EAAiC;AACpC,QAAI4T,MAAMnX,EAAE0O,QAAF,CAAW,EAAX,CAAV;AACA,WAAOyI,IAAI5T,MAAJ,GAAaA,MAApB,EAA4B;AACxB4T,cAAM,MAAMA,GAAZ;AACH;AACD,WAAOA,GAAP;AACH;AACM,SAASyN,cAAT,CAAwBC,MAAxB,EAAgC;AACnC,QAAMC,UAAUD,SAAS,CAAzB;AACAA,aAAS3R,KAAKwE,GAAL,CAASmN,MAAT,CAAT;AACA,QAAME,QAAQ,CAAC,EAAEF,SAAS,OAAX,CAAf;AACA,QAAMG,UAAWH,SAAS,OAAV,GAAqB,KAArC;AACA,WAAO,CAACC,UAAU,GAAV,GAAgB,GAAjB,IACHH,aAAaI,KAAb,EAAoB,CAApB,CADG,GACsB,GADtB,GAEHJ,aAAaK,OAAb,EAAsB,CAAtB,CAFJ;AAGH;AACM,SAASC,eAAT,CAAyBC,IAAzB,EAA+BC,IAA/B,EAAqC;AACxC,QAAMhO,MAAM+N,KAAKE,WAAL,EAAZ;AACA,WAAOD,SAAS,OAAT,GACDhO,IAAIyC,SAAJ,CAAc,CAAd,EAAiBzC,IAAI7I,OAAJ,CAAY,GAAZ,CAAjB,CADC,GAED6I,IAAIyC,SAAJ,CAAczC,IAAI7I,OAAJ,CAAY,GAAZ,IAAmB,CAAjC,EAAoC6I,IAAI5T,MAAJ,GAAa,CAAjD,CAFN;AAGH;AACD,SAAS6hB,WAAT,CAAqBC,CAArB,EAAwBC,GAAxB,EAA6B;AACzB,QAAIA,GAAJ,EAAS;AACL,eAAOD,EAAED,WAAF,EAAP;AACH,KAFD,MAGK;AACD;AACA,YAAMG,cAAcF,EAAEtZ,IAAF,IAAU,IAAV,GAAiB,IAAjB,GAAwBsZ,EAAEtZ,IAAF,KAAW,CAAvD,CAAyD,WAAzD;AACA,eAAO4Y,aAAaU,EAAEG,WAAF,EAAb,EAA8B,CAA9B,IAAmC,GAAnC,GACHb,aAAaU,EAAEI,QAAF,KAAe,CAA5B,EAA+B,CAA/B,CADG,GACiC,GADjC,GAEHd,aAAaU,EAAEK,OAAF,EAAb,EAA0B,CAA1B,CAFG,GAE4B,GAF5B,GAGHf,aAAaU,EAAEM,QAAF,EAAb,EAA2B,CAA3B,CAHG,GAG6B,GAH7B,GAIHhB,aAAaU,EAAEO,UAAF,EAAb,EAA6B,CAA7B,CAJG,GAI+B,GAJ/B,GAKHjB,aAAaU,EAAEQ,UAAF,EAAb,EAA6B,CAA7B,CALG,GAK+B,GAL/B,GAMHlB,aAAaU,EAAES,eAAF,EAAb,EAAkC,CAAlC,CANG,IAOFP,cAAcX,eAAeS,EAAEU,iBAAF,KAAwB,CAAC,KAAxC,CAAd,GAA+D,EAP7D,CAAP;AAQH;AACJ;AACD,SAASC,qBAAT,CAA+BC,cAA/B,EAA+CpB,MAA/C,EAAuD;AACnD,QAAM1N,MAAM8O,eAAeb,WAAf,EAAZ;AACA,WAAOjO,IAAIyC,SAAJ,CAAc,CAAd,EAAiBzC,IAAI5T,MAAJ,GAAa,CAA9B,IAAmCqhB,eAAeC,MAAf,CAA1C;AACH;AACD,SAASqB,wBAAT,CAAkChB,IAAlC,EAAwCvM,MAAxC,EAAgD2M,GAAhD,EAAqD;AACjD,WAAO3M,OAAOpE,OAAP,CAAe,UAAf,EAA2B,UAACkF,KAAD,EAAW;AACzC,YAAInB,MAAMmB,KAAV;AACA,gBAAQA,MAAMG,SAAN,CAAgB,CAAhB,EAAmB,CAAnB,CAAR;AACI,iBAAK,GAAL;AACI,oBAAMra,IAAI+lB,MAAMJ,KAAKiB,cAAL,EAAN,GAA8BjB,KAAKM,WAAL,EAAxC;AACAlN,sBAAMmB,MAAMlW,MAAN,GAAe,CAAf,GAAmBhE,IAAI,GAAvB,GAA6BA,CAAnC;AACA;AACJ,iBAAK,GAAL;AACI+Y,sBAAM,CAACgN,MAAMJ,KAAKkB,WAAL,EAAN,GAA2BlB,KAAKO,QAAL,EAA5B,IAA+C,CAArD;AACA;AACJ,iBAAK,GAAL;AACInN,sBAAMgN,MAAMJ,KAAKmB,UAAL,EAAN,GAA0BnB,KAAKQ,OAAL,EAAhC;AACA;AACJ,iBAAK,GAAL;AACIpN,sBAAMgN,MAAMJ,KAAKoB,WAAL,EAAN,GAA2BpB,KAAKS,QAAL,EAAjC;AACA;AACJ,iBAAK,GAAL;AACI,oBAAM9V,IAAIyV,MAAMJ,KAAKoB,WAAL,EAAN,GAA2BpB,KAAKS,QAAL,EAArC;AACArN,sBAAMzI,IAAI,EAAJ,GAASA,IAAI,EAAb,GAAkBA,CAAxB;AACA;AACJ,iBAAK,GAAL;AACIyI,sBAAMgN,MAAMJ,KAAKqB,aAAL,EAAN,GAA6BrB,KAAKU,UAAL,EAAnC;AACA;AACJ,iBAAK,GAAL;AACItN,sBAAMgN,MAAMJ,KAAKsB,aAAL,EAAN,GAA6BtB,KAAKW,UAAL,EAAnC;AACA;AAvBR;AAyBA,YAAIvN,QAAQmB,KAAR,IAAiBnB,MAAM,EAAvB,IAA6BmB,MAAMlW,MAAN,GAAe,CAAhD,EAAmD;AAC/C+U,kBAAM,MAAMA,GAAZ;AACH;AACD,eAAOA,GAAP;AACH,KA/BM,CAAP;AAgCH;AACM,SAASmO,kBAAT,CAA4BvB,IAA5B,EAAkCvM,MAAlC,EAA0C;AAC7C,QAAM0M,IAAI,IAAIpW,IAAJ,CAASiW,KAAK5U,OAAL,KAAiB4U,KAAKL,MAA/B,CAAV;AACA,QAAI,CAAClM,MAAL,EAAa;AACT,eAAO0M,EAAED,WAAF,GAAgB7Q,OAAhB,CAAwB,OAAxB,EAAiC,EAAjC,EAAqCA,OAArC,CAA6C,cAA7C,EAA6D,GAA7D,IAAoEqQ,eAAeM,KAAKL,MAApB,CAA3E;AACH,KAFD,MAGK,IAAIlM,OAAOpV,MAAP,KAAkB,CAAtB,EAAyB;AAC1B,gBAAQoV,MAAR;AACI,iBAAK,GAAL;AACA,iBAAK,GAAL;AAAU,uBAAOsM,gBAAgBI,CAAhB,EAAmB,OAAnB,CAAP;AACV,iBAAK,GAAL;AACA,iBAAK,GAAL;AAAU,uBAAOJ,gBAAgBI,CAAhB,EAAmB,QAAnB,CAAP;AACV,iBAAK,GAAL;AACA,iBAAK,GAAL;AAAU,uBAAOW,sBAAsBX,CAAtB,EAAyBH,KAAKL,MAA9B,CAAP;AACV;AAAS,sBAAM,IAAI9kB,KAAJ,CAAU,gCAAV,CAAN;AAPb;AASH,KAVI,MAWA;AACD,eAAOmmB,yBAAyBb,CAAzB,EAA4B1M,MAA5B,EAAoC,IAApC,CAAP;AACH;AACJ;AACM,SAAS+N,gBAAT,CAA0BxB,IAA1B,EAAgCvM,MAAhC,EAAwC;AAC3C,QAAM2M,MAAMJ,KAAKnZ,IAAL,KAAc,CAA1B,CAA4B,SAA5B;AACA,QAAI,CAAC4M,MAAL,EAAa;AACT,eAAO2M,MAAMJ,KAAKyB,WAAL,EAAN,GAA2BzB,KAAK0B,cAAL,EAAlC;AACH,KAFD,MAGK,IAAIjO,OAAOpV,MAAP,KAAkB,CAAtB,EAAyB;AAC1B,gBAAQoV,MAAR;AACI,iBAAK,GAAL;AACA,iBAAK,GAAL;AACI,uBAAO2M,MAAML,gBAAgBC,IAAhB,EAAsB,OAAtB,CAAN,GAAuCA,KAAK2B,kBAAL,EAA9C;AACJ,iBAAK,GAAL;AACA,iBAAK,GAAL;AACI,uBAAOvB,MAAML,gBAAgBC,IAAhB,EAAsB,QAAtB,CAAN,GAAwCA,KAAK4B,kBAAL,EAA/C;AACJ,iBAAK,GAAL;AACA,iBAAK,GAAL;AACI,uBAAO1B,YAAYF,IAAZ,EAAkBI,GAAlB,CAAP;AACJ;AACI,sBAAM,IAAIvlB,KAAJ,CAAU,gCAAV,CAAN;AAXR;AAaH,KAdI,MAeA;AACD,eAAOmmB,yBAAyBhB,IAAzB,EAA+BvM,MAA/B,EAAuC2M,GAAvC,CAAP;AACH;AACJ;AACM,SAAS5W,QAAT,CAAkBwW,IAAlB,EAAwBvM,MAAxB,EAAgC;AACnC,WAAOuM,KAAKL,MAAL,IAAe,IAAf,GACD4B,mBAAmBvB,IAAnB,EAAyBvM,MAAzB,CADC,GAED+N,iBAAiBxB,IAAjB,EAAuBvM,MAAvB,CAFN;AAGH;AACc,SAASoO,QAAT,CAAkB1kB,KAAlB,EAAyB0J,IAAzB,EAA+B;AAC1CA,WAAOA,QAAQ,IAAR,GAAe,CAAf,CAAiB,iBAAjB,GAAqCA,IAA5C;AACA,QAAMsZ,IAAI,IAAIpW,IAAJ,CAAS5M,KAAT,CAAV;AACAgjB,MAAEtZ,IAAF,GAASA,OAAO,CAAhB;AACA,WAAOsZ,CAAP;AACH;AACM,SAAS2B,QAAT,GAAoB;AACvB;AACA,WAAOD,SAAS,CAAC,cAAV,EAA0B,CAA1B,CAA4B,iBAA5B,CAAP;AACH;AACM,SAASE,QAAT,GAAoB;AACvB;AACA,WAAOF,SAAS,eAAT,EAA0B,CAA1B,CAA4B,iBAA5B,CAAP;AACH;AACM,SAASG,QAAT,CAAkB/P,GAAlB,EAAuB;AAC1B,QAAI+N,OAAO,IAAIjW,IAAJ,CAASkI,GAAT,CAAX;AACA,QAAI8B,MAAMiM,KAAK5U,OAAL,EAAN,CAAJ,EAA2B;AACvB;AACA,YAAI,8EAA8EkJ,IAA9E,CAAmFrC,GAAnF,CAAJ,EAA6F;AACzF,gBAAMkO,IAAI,IAAIpW,IAAJ,EAAV;AACAiW,mBAAO,IAAIjW,IAAJ,CAASoW,EAAEG,WAAF,KAAkB,GAAlB,IAAyBH,EAAEI,QAAF,KAAe,CAAxC,IAA6C,GAA7C,GAAmDJ,EAAEK,OAAF,EAAnD,GAAiE,GAAjE,GAAuEvO,GAAhF,CAAP;AACH,SAHD,MAIK;AACD,kBAAM,IAAIpX,KAAJ,CAAU,iCAAV,CAAN;AACH;AACJ;AACD,WAAOmlB,IAAP;AACH;AACM,SAAS9Q,KAAT,CAAe+C,GAAf,EAAuC;AAAA,QAAnBgQ,SAAmB,uEAAP,KAAO;;AAC1C,QAAMjC,OAAOgC,SAAS/P,GAAT,CAAb;AACA,QAAM0N,SAASH,YAAYvQ,IAAZ,CAAiBgD,GAAjB,CAAf;AACA;AACA;AACA,QAAMpL,OAAO8Y,UAAU,IAAV,GACNsC,aAAatC,OAAO,CAAP,MAAc,GAA3B,GAAiC,CAAjC,CAAmC,SAAnC,GAA+C,CADzC,CAC2C,WAD3C,GAEP,CAFN,CAEQ,iBAFR;AAGA,WAAOkC,SAAS7B,KAAK5U,OAAL,EAAT,EAAyBvE,IAAzB,CAAP;AACH;AACM,SAAS+H,QAAT,CAAkBrE,CAAlB,EAAqB;AACxB,QAAI;AACA,eAAO,CAAC,IAAD,EAAO2E,MAAM3E,CAAN,CAAP,CAAP;AACH,KAFD,CAGA,OAAO2X,IAAP,EAAa;AACT,eAAO,CAAC,KAAD,EAAQJ,UAAR,CAAP;AACH;AACJ;AACM,SAASnC,MAAT,CAAgBK,IAAhB,EAAsB;AACzB,QAAMmC,QAAQnC,IAAd;AACA,WAAO,OAAOmC,MAAMxC,MAAb,KAAwB,QAAxB,GACDwC,MAAMxC,MADL,GAEAK,KAAKnZ,IAAL,KAAc,CAAd,CAAgB;AAAhB,MACG,CADH,GACOmZ,KAAKa,iBAAL,KAA2B,CAAC,KAH1C;AAIH;AACM,SAAS1I,MAAT,CAAgBiK,IAAhB,EAAsBC,KAAtB,EAA6BC,GAA7B,EAAqE;AAAA,QAAnC3X,CAAmC,uEAA/B,CAA+B;AAAA,QAA5BoD,CAA4B,uEAAxB,CAAwB;AAAA,QAArBrD,CAAqB,uEAAjB,CAAiB;AAAA,QAAd6X,EAAc,uEAAT,CAAS;AAAA,QAAN1b,IAAM;;AACxE,QAAM2b,YAAY3b,SAAS,CAAT,CAAW;AAAX,MACZkD,KAAK0Y,GAAL,CAASL,IAAT,EAAeC,QAAQ,CAAvB,EAA0BC,GAA1B,EAA+B3X,CAA/B,EAAkCoD,CAAlC,EAAqCrD,CAArC,EAAwC6X,EAAxC,CADY,GAEZ,IAAIxY,IAAJ,CAASqY,IAAT,EAAeC,QAAQ,CAAvB,EAA0BC,GAA1B,EAA+B3X,CAA/B,EAAkCoD,CAAlC,EAAqCrD,CAArC,EAAwC6X,EAAxC,EAA4CnX,OAA5C,EAFN;AAGA,QAAI2I,MAAMyO,SAAN,CAAJ,EAAsB;AAClB,cAAM,IAAI3nB,KAAJ,CAAU,kDAAV,CAAN;AACH;AACD,QAAMmlB,OAAO6B,SAASW,SAAT,EAAoB3b,IAApB,CAAb;AACA,QAAIub,QAAQ,EAAZ,EAAgB;AACZpC,aAAK0C,WAAL,CAAiBN,IAAjB,EAAuBC,QAAQ,CAA/B,EAAkCC,GAAlC;AACH;AACD,WAAOtC,IAAP;AACH;AACM,SAAS2C,GAAT,GAAe;AAClB,WAAOd,SAAS9X,KAAK4Y,GAAL,EAAT,EAAqB,CAArB,CAAuB,WAAvB,CAAP;AACH;AACM,SAASC,MAAT,GAAkB;AACrB,WAAOf,SAAS9X,KAAK4Y,GAAL,EAAT,EAAqB,CAArB,CAAuB,SAAvB,CAAP;AACH;AACM,SAASE,KAAT,GAAiB;AACpB,WAAO7C,KAAK2C,KAAL,CAAP;AACH;AACM,SAASG,UAAT,CAAoBV,IAApB,EAA0B;AAC7B,WAAOA,OAAO,CAAP,KAAa,CAAb,IAAkBA,OAAO,GAAP,KAAe,CAAjC,IAAsCA,OAAO,GAAP,KAAe,CAA5D;AACH;AACM,SAASW,WAAT,CAAqBX,IAArB,EAA2BC,KAA3B,EAAkC;AACrC,WAAOA,UAAU,CAAV,GACAS,WAAWV,IAAX,IAAmB,EAAnB,GAAwB,EADxB,GAEAC,SAAS,CAAT,GAAcA,QAAQ,CAAR,KAAc,CAAd,GAAkB,EAAlB,GAAuB,EAArC,GAA4CA,QAAQ,CAAR,KAAc,CAAd,GAAkB,EAAlB,GAAuB,EAF1E;AAGH;AACM,SAASW,eAAT,CAAyBhD,IAAzB,EAA+B;AAClC,WAAOA,KAAKnZ,IAAL,KAAc,CAAd,CAAgB,SAAhB,GAA4BmZ,IAA5B,GAAmC6B,SAAS7B,KAAK5U,OAAL,EAAT,EAAyB,CAAzB,CAA2B,SAA3B,CAA1C;AACH;AACM,SAAS6X,WAAT,CAAqBjD,IAArB,EAA2B;AAC9B,WAAOA,KAAKnZ,IAAL,KAAc,CAAd,CAAgB,WAAhB,GAA8BmZ,IAA9B,GAAqC6B,SAAS7B,KAAK5U,OAAL,EAAT,EAAyB,CAAzB,CAA2B,WAA3B,CAA5C;AACH;AACM,SAAS8X,SAAT,CAAmB/C,CAAnB,EAAsB;AACzB,WAAOgD,KAAKhD,CAAL,IAAU,OAAV,GACDiD,OAAOjD,CAAP,IAAY,KADX,GAEDkD,OAAOlD,CAAP,IAAY,IAFX,GAGDmD,YAAYnD,CAAZ,CAHN;AAIH;AACM,SAASH,IAAT,CAAcG,CAAd,EAAiB;AACpB,WAAOhI,OAAOiK,KAAKjC,CAAL,CAAP,EAAgBkC,MAAMlC,CAAN,CAAhB,EAA0BmC,IAAInC,CAAJ,CAA1B,EAAkC,CAAlC,EAAqC,CAArC,EAAwC,CAAxC,EAA2C,CAA3C,EAA8CA,EAAEtZ,IAAhD,CAAP;AACH;AACM,SAASyb,GAAT,CAAanC,CAAb,EAAgB;AACnB,WAAOA,EAAEtZ,IAAF,KAAW,CAAX,CAAa,SAAb,GAAyBsZ,EAAEgB,UAAF,EAAzB,GAA0ChB,EAAEK,OAAF,EAAjD;AACH;AACM,SAAS2C,IAAT,CAAchD,CAAd,EAAiB;AACpB,WAAOA,EAAEtZ,IAAF,KAAW,CAAX,CAAa,SAAb,GAAyBsZ,EAAEiB,WAAF,EAAzB,GAA2CjB,EAAEM,QAAF,EAAlD;AACH;AACM,SAAS6C,WAAT,CAAqBnD,CAArB,EAAwB;AAC3B,WAAOA,EAAEtZ,IAAF,KAAW,CAAX,CAAa,SAAb,GAAyBsZ,EAAEoD,kBAAF,EAAzB,GAAkDpD,EAAES,eAAF,EAAzD;AACH;AACM,SAASwC,MAAT,CAAgBjD,CAAhB,EAAmB;AACtB,WAAOA,EAAEtZ,IAAF,KAAW,CAAX,CAAa,SAAb,GAAyBsZ,EAAEkB,aAAF,EAAzB,GAA6ClB,EAAEO,UAAF,EAApD;AACH;AACM,SAAS2B,KAAT,CAAelC,CAAf,EAAkB;AACrB,WAAO,CAACA,EAAEtZ,IAAF,KAAW,CAAX,CAAa,SAAb,GAAyBsZ,EAAEe,WAAF,EAAzB,GAA2Cf,EAAEI,QAAF,EAA5C,IAA4D,CAAnE;AACH;AACM,SAAS8C,MAAT,CAAgBlD,CAAhB,EAAmB;AACtB,WAAOA,EAAEtZ,IAAF,KAAW,CAAX,CAAa,SAAb,GAAyBsZ,EAAEmB,aAAF,EAAzB,GAA6CnB,EAAEQ,UAAF,EAApD;AACH;AACM,SAASyB,IAAT,CAAcjC,CAAd,EAAiB;AACpB,WAAOA,EAAEtZ,IAAF,KAAW,CAAX,CAAa,SAAb,GAAyBsZ,EAAEc,cAAF,EAAzB,GAA8Cd,EAAEG,WAAF,EAArD;AACH;AACM,SAASkD,SAAT,CAAmBrD,CAAnB,EAAsB;AACzB,WAAOA,EAAEtZ,IAAF,KAAW,CAAX,CAAa,SAAb,GAAyBsZ,EAAEsD,SAAF,EAAzB,GAAyCtD,EAAEuD,MAAF,EAAhD;AACH;AACM,SAASC,SAAT,CAAmBxD,CAAnB,EAAsB;AACzB,QAAMyD,QAAQxB,KAAKjC,CAAL,CAAd;AACA,QAAM0D,SAASxB,MAAMlC,CAAN,CAAf;AACA,QAAI2D,OAAOxB,IAAInC,CAAJ,CAAX;AACA,SAAK,IAAIrlB,IAAI,CAAb,EAAgBA,IAAI+oB,MAApB,EAA4B/oB,GAA5B,EAAiC;AAC7BgpB,gBAAQf,YAAYa,KAAZ,EAAmB9oB,CAAnB,CAAR;AACH;AACD,WAAOgpB,IAAP;AACH;AACM,SAASzL,GAAT,CAAa8H,CAAb,EAAgB4D,EAAhB,EAAoB;AACvB,WAAOlC,SAAS1B,EAAE/U,OAAF,KAAc2Y,EAAvB,EAA2B5D,EAAEtZ,IAA7B,CAAP;AACH;AACM,SAASmd,OAAT,CAAiB7D,CAAjB,EAAoB5V,CAApB,EAAuB;AAC1B,WAAOsX,SAAS1B,EAAE/U,OAAF,KAAcb,IAAI,QAA3B,EAAqC4V,EAAEtZ,IAAvC,CAAP;AACH;AACM,SAASod,QAAT,CAAkB9D,CAAlB,EAAqB5V,CAArB,EAAwB;AAC3B,WAAOsX,SAAS1B,EAAE/U,OAAF,KAAcb,IAAI,OAA3B,EAAoC4V,EAAEtZ,IAAtC,CAAP;AACH;AACM,SAASqd,UAAT,CAAoB/D,CAApB,EAAuB5V,CAAvB,EAA0B;AAC7B,WAAOsX,SAAS1B,EAAE/U,OAAF,KAAcb,IAAI,KAA3B,EAAkC4V,EAAEtZ,IAApC,CAAP;AACH;AACM,SAASsd,UAAT,CAAoBhE,CAApB,EAAuB5V,CAAvB,EAA0B;AAC7B,WAAOsX,SAAS1B,EAAE/U,OAAF,KAAcb,IAAI,IAA3B,EAAiC4V,EAAEtZ,IAAnC,CAAP;AACH;AACM,SAASud,eAAT,CAAyBjE,CAAzB,EAA4B5V,CAA5B,EAA+B;AAClC,WAAOsX,SAAS1B,EAAE/U,OAAF,KAAcb,CAAvB,EAA0B4V,EAAEtZ,IAA5B,CAAP;AACH;AACM,SAASwd,QAAT,CAAkBlE,CAAlB,EAAqB5V,CAArB,EAAwB;AAC3B,QAAM+Z,WAAWjC,MAAMlC,CAAN,CAAjB;AACA,QAAMoE,UAAUnC,KAAKjC,CAAL,IAAU5V,CAA1B;AACA,QAAMia,eAAezB,YAAYwB,OAAZ,EAAqBD,QAArB,CAArB;AACA,QAAMG,SAASzW,KAAKrK,GAAL,CAAS6gB,YAAT,EAAuBlC,IAAInC,CAAJ,CAAvB,CAAf;AACA,WAAOhI,OAAOoM,OAAP,EAAgBD,QAAhB,EAA0BG,MAA1B,EAAkCtB,KAAKhD,CAAL,CAAlC,EAA2CiD,OAAOjD,CAAP,CAA3C,EAAsDkD,OAAOlD,CAAP,CAAtD,EAAiEmD,YAAYnD,CAAZ,CAAjE,EAAiFA,EAAEtZ,IAAnF,CAAP;AACH;AACM,SAAS6d,SAAT,CAAmBvE,CAAnB,EAAsB5V,CAAtB,EAAyB;AAC5B,QAAI+Z,WAAWjC,MAAMlC,CAAN,IAAW5V,CAA1B;AACA,QAAIoa,YAAY,CAAhB;AACA,QAAIC,aAAa,CAAjB;AACA,QAAIN,WAAW,EAAf,EAAmB;AACfK,oBAAYL,WAAW,EAAvB;AACAM,qBAAa5W,KAAKG,KAAL,CAAWmW,WAAW,EAAtB,CAAb;AACAA,mBAAWK,SAAX;AACH,KAJD,MAKK,IAAIL,WAAW,CAAf,EAAkB;AACnBK,oBAAY,KAAKL,WAAW,EAA5B;AACAM,qBAAa5W,KAAKG,KAAL,CAAWmW,WAAW,EAAtB,KAA6BK,cAAc,EAAd,GAAmB,CAAC,CAApB,GAAwB,CAArD,CAAb;AACAL,mBAAWK,SAAX;AACH;AACD,QAAMJ,UAAUnC,KAAKjC,CAAL,IAAUyE,UAA1B;AACA,QAAMJ,eAAezB,YAAYwB,OAAZ,EAAqBD,QAArB,CAArB;AACA,QAAMG,SAASzW,KAAKrK,GAAL,CAAS6gB,YAAT,EAAuBlC,IAAInC,CAAJ,CAAvB,CAAf;AACA,WAAOhI,OAAOoM,OAAP,EAAgBD,QAAhB,EAA0BG,MAA1B,EAAkCtB,KAAKhD,CAAL,CAAlC,EAA2CiD,OAAOjD,CAAP,CAA3C,EAAsDkD,OAAOlD,CAAP,CAAtD,EAAiEmD,YAAYnD,CAAZ,CAAjE,EAAiFA,EAAEtZ,IAAnF,CAAP;AACH;AACM,SAASge,QAAT,CAAkB1E,CAAlB,EAAqB2E,IAArB,EAA2B;AAC9B,WAAO,OAAOA,IAAP,KAAgB,QAAhB,GACDjD,SAAS1B,EAAE/U,OAAF,KAAc0Z,IAAvB,EAA6B3E,EAAEtZ,IAA/B,CADC,GAEDsZ,EAAE/U,OAAF,KAAc0Z,KAAK1Z,OAAL,EAFpB;AAGH;AACM,SAAS2Z,gBAAT,CAA0B5E,CAA1B,EAA6B;AAChC,WAAOA,EAAE6E,YAAF,EAAP;AACH;AACM,SAASC,iBAAT,CAA2B9E,CAA3B,EAA8B;AACjC,WAAOA,EAAEwB,kBAAF,EAAP;AACH;AACM,SAASuD,gBAAT,CAA0B/E,CAA1B,EAA6B;AAChC,WAAOA,EAAEyB,kBAAF,EAAP;AACH;AACM,SAASuD,iBAAT,CAA2BhF,CAA3B,EAA8B;AACjC,WAAOA,EAAEyB,kBAAF,GAAuBvS,OAAvB,CAA+B,YAA/B,EAA6C,EAA7C,CAAP;AACH;AACM,SAASxO,MAAT,CAAgBukB,EAAhB,EAAoBC,EAApB,EAAwB;AAC3B,WAAOD,GAAGha,OAAH,OAAiBia,GAAGja,OAAH,EAAxB;AACH;AACM,SAAS3H,OAAT,CAAiBzJ,CAAjB,EAAoBK,CAApB,EAAuB;AAC1B,QAAMirB,QAAQtrB,EAAEoR,OAAF,EAAd;AACA,QAAMma,QAAQlrB,EAAE+Q,OAAF,EAAd;AACA,WAAOka,UAAUC,KAAV,GAAkB,CAAlB,GAAuBD,QAAQC,KAAR,GAAgB,CAAC,CAAjB,GAAqB,CAAnD;AACH;AACM,IAAMxT,YAAYtO,OAAlB;AACA,SAAS+hB,WAAT,CAAqBxrB,CAArB,EAAwBK,CAAxB,EAA2B;AAC9B,WAAOge,IAAIre,CAAJ,EAAOK,CAAP,CAAP;AACH;AACM,SAASorB,cAAT,CAAwBzrB,CAAxB,EAA2BK,CAA3B,EAA8B;AACjC,WAAOwqB,SAAS7qB,CAAT,EAAYK,CAAZ,CAAP;AACH;AACM,SAASqrB,oBAAT,CAA8B1rB,CAA9B,EAAiC;AACpC,QAAM2rB,MAAM,IAAI5b,IAAJ,CAAS/P,EAAEsmB,WAAF,EAAT,EAA0B,CAA1B,EAA6B,CAA7B,CAAZ;AACA,QAAMsF,MAAM,IAAI7b,IAAJ,CAAS/P,EAAEsmB,WAAF,EAAT,EAA0B,CAA1B,EAA6B,CAA7B,CAAZ;AACA,WAAOuF,MAAMF,IAAI9E,iBAAJ,EAAN,EAA+B+E,IAAI/E,iBAAJ,EAA/B,EAAwD7mB,EAAE6mB,iBAAF,EAAxD,CAAP;AACH;AACD,SAASgF,KAAT,CAAeC,SAAf,EAA0BC,SAA1B,EAAqCC,OAArC,EAA8C;AAC1C,WAAOhY,KAAKrK,GAAL,CAASmiB,SAAT,EAAoBC,SAApB,MAAmCC,OAA1C;AACH,C;;;;;;;;;;;;;;;;AKrVM,SAAS7N,MAAT,CAAgBjG,OAAhB,EAAyB+T,OAAzB,EAAkC;AACrC,QAAI3S,QAAQ,GAAZ;AACAA,aAAS2S,UAAU,CAAV,GAAc,GAAd,GAAoB,EAA7B;AACA3S,aAAS2S,UAAU,CAAV,GAAc,GAAd,GAAoB,EAA7B;AACA,WAAO,IAAIjP,MAAJ,CAAW9E,OAAX,EAAoBoB,KAApB,CAAP;AACH;AACD;AACO,SAAS2D,MAAT,CAAgBhF,GAAhB,EAAqB;AACxB,WAAOA,IAAI5C,OAAJ,CAAY,mCAAZ,EAAiD,MAAjD,CAAP;AACH;AACM,SAAS6W,QAAT,CAAkBjU,GAAlB,EAAuB;AAC1B,WAAOA,IAAI5C,OAAJ,CAAY,uCAAZ,EAAqD,IAArD,CAAP;AACH;AACM,SAAS8W,OAAT,CAAiBlU,GAAjB,EAAsBC,OAAtB,EAA4C;AAAA,QAAb+T,OAAa,uEAAH,CAAG;;AAC/C,QAAIzO,YAAJ;AACAA,UAAMvF,eAAe+E,MAAf,IACCQ,MAAMvF,GAAN,EAAWA,MAAMC,OAAjB,EAA0BsF,IAAIC,SAAJ,GAAgBwO,OAA1C,EAAmDzO,GADpD,IAEAA,MAAMW,OAAOjG,OAAP,EAAgB+T,OAAhB,CAFZ;AAGA,WAAOzO,IAAIlD,IAAJ,CAASrC,GAAT,CAAP;AACH;AACM,SAASsC,KAAT,CAAetC,GAAf,EAAoBC,OAApB,EAA0C;AAAA,QAAb+T,OAAa,uEAAH,CAAG;;AAC7C,QAAIzO,YAAJ;AACAA,UAAMvF,eAAe+E,MAAf,IACCQ,MAAMvF,GAAN,EAAWA,MAAMC,OAAjB,EAA0BsF,IAAIC,SAAJ,GAAgBwO,OAA1C,EAAmDzO,GADpD,IAEAA,MAAMW,OAAOjG,OAAP,EAAgB+T,OAAhB,CAFZ;AAGA,WAAOzO,IAAIvI,IAAJ,CAASgD,GAAT,CAAP;AACH;AACM,SAASmU,OAAT,CAAiBnU,GAAjB,EAAsBC,OAAtB,EAA4C;AAAA,QAAb+T,OAAa,uEAAH,CAAG;;AAC/C,QAAIzO,YAAJ;AACAA,UAAMvF,eAAe+E,MAAf,IACCQ,MAAMvF,GAAN,EAAWA,MAAMC,OAAjB,EAA0BsF,IAAIC,SAAJ,GAAgBwO,OAA1C,EAAmDzO,GADpD,IAEAA,MAAMW,OAAOjG,OAAP,EAAgB+T,OAAhB,CAFZ;AAGA,QAAI,CAACzO,IAAI6O,MAAT,EAAiB;AACb,cAAM,IAAIxrB,KAAJ,CAAU,mBAAV,CAAN,CADa,CACyB;AACzC;AACD,QAAIkT,IAAIyJ,IAAIvI,IAAJ,CAASgD,GAAT,CAAR;AACA,QAAMmU,UAAU,EAAhB;AACA,WAAOrY,MAAM,IAAb,EAAmB;AACfqY,gBAAQ9iB,IAAR,CAAayK,CAAb;AACAA,YAAIyJ,IAAIvI,IAAJ,CAASgD,GAAT,CAAJ;AACH;AACD,WAAOmU,OAAP;AACH;AACM,SAASH,OAAT,CAAiBzO,GAAjB,EAAsB;AACzB,QAAIyO,UAAU,GAAd,CADyB,CACN;AACnBA,eAAWzO,IAAI8O,UAAJ,GAAiB,CAAjB,GAAqB,CAAhC;AACAL,eAAWzO,IAAI+O,SAAJ,GAAgB,CAAhB,GAAoB,CAA/B;AACA,WAAON,OAAP;AACH;AACM,SAAS5W,OAAT,CAAiBmI,GAAjB,EAAsB9E,KAAtB,EAA6B8T,WAA7B,EAA0CC,KAA1C,EAA6D;AAAA,QAAZ9G,MAAY,uEAAH,CAAG;;AAChE,aAAS+G,QAAT,GAAoB;AAChB,YAAI3oB,MAAMqO,UAAU,CAAV,CAAV;AACA,YAAIqa,UAAU,CAAd,EAAiB;AACbA;AACA,gBAAMlS,SAAQ,EAAd;AACA,gBAAM3J,MAAMwB,UAAU/N,MAAtB;AACA,iBAAK,IAAIvD,IAAI,CAAb,EAAgBA,IAAI8P,MAAM,CAA1B,EAA6B9P,GAA7B,EAAkC;AAC9ByZ,uBAAMjR,IAAN,CAAW8I,UAAUtR,CAAV,CAAX;AACH;AACDyZ,mBAAMhY,KAAN,GAAc6P,UAAUxB,MAAM,CAAhB,CAAd;AACA2J,mBAAM7B,KAAN,GAActG,UAAUxB,MAAM,CAAhB,CAAd;AACA7M,kBAAMyoB,YAAYjS,MAAZ,CAAN;AACH;AACD,eAAOxW,GAAP;AACH;AACD,QAAI,OAAOyZ,GAAP,KAAe,QAAnB,EAA6B;AACzB,YAAMU,MAAMV,GAAZ;AACAA,cAAMW,OAAOzF,KAAP,EAAc+T,KAAd,CAAN;AACA/T,gBAAQwF,GAAR;AACAuO,gBAAQE,SAAR;AACH;AACD,QAAI,OAAOH,WAAP,KAAuB,UAA3B,EAAuC;AACnCC,gBAAQA,SAAS,IAAT,GAAgB,CAAC,CAAjB,GAAqBA,KAA7B;AACA,eAAO/T,MAAMgC,SAAN,CAAgB,CAAhB,EAAmBiL,MAAnB,IAA6BjN,MAAMgC,SAAN,CAAgBiL,MAAhB,EAAwBtQ,OAAxB,CAAgCmI,GAAhC,EAAqCkP,QAArC,CAApC;AACH,KAHD,MAIK;AACD;AACAF,sBAAcA,YAAYnX,OAAZ,CAAoB,MAApB,EAA4B,UAAC3E,CAAD;AAAA,mBAAO,IAAP;AAAA,SAA5B,CAAd;AACA,YAAI+b,SAAS,IAAb,EAAmB;AACf,gBAAI1Y,UAAJ;AACA,gBAAM6Y,OAAOlU,MAAMgC,SAAN,CAAgBiL,MAAhB,CAAb;AACA,gBAAMkH,WAAWT,QAAQ5O,GAAR,EAAaoP,IAAb,CAAjB;AACA,gBAAME,OAAOV,QAAQ/nB,MAAR,GAAiBooB,KAAjB,IAA0B1Y,IAAI8Y,SAASJ,QAAQ,CAAjB,CAAJ,EAAyBG,KAAKlS,SAAL,CAAe,CAAf,EAAkB3G,EAAExR,KAAF,GAAUwR,EAAE,CAAF,EAAK1P,MAAjC,CAAnD,IAA+FuoB,IAA5G;AACA,mBAAOlU,MAAMgC,SAAN,CAAgB,CAAhB,EAAmBiL,MAAnB,IAA6BmH,KAAKzX,OAAL,CAAamI,GAAb,EAAkBgP,WAAlB,CAA7B,GACD9T,MAAMgC,SAAN,CAAgBiL,SAASmH,KAAKzoB,MAA9B,CADN;AAEH,SAPD,MAQK;AACD,mBAAOqU,MAAMrD,OAAN,CAAcmI,GAAd,EAAmBgP,WAAnB,CAAP;AACH;AACJ;AACJ;AACM,SAASrP,KAAT,CAAeK,GAAf,EAAoB9E,KAApB,EAA2B+T,KAA3B,EAA8C;AAAA,QAAZ9G,MAAY,uEAAH,CAAG;;AACjD,QAAI,OAAOnI,GAAP,KAAe,QAAnB,EAA6B;AACzB,YAAMU,MAAMV,GAAZ;AACAA,cAAMW,OAAOzF,KAAP,EAAc+T,KAAd,CAAN;AACA/T,gBAAQwF,GAAR;AACAuO,gBAAQE,SAAR;AACH;AACDjU,YAAQA,MAAMgC,SAAN,CAAgBiL,MAAhB,CAAR;AACA,WAAOjN,MAAMyE,KAAN,CAAYK,GAAZ,EAAiBiP,KAAjB,CAAP;AACH,C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACpGD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;IACqBM,K;;;;0EAAAA,K;;AAErB,SAASC,iBAAT,CAA2BhtB,CAA3B,EAA8B;AAC1B;AACH;AACM,SAASitB,uBAAT,CAAiCtW,GAAjC,EAAsC;AACzC,QAAMuW,QAAQ,EAAEtJ,aAAa,KAAf,EAAd;AACA,QAAI,OAAOjN,GAAP,KAAe,QAAnB,EAA6B;AACzB6M,mBAAW,YAAM;AAAE0J,kBAAMtJ,WAAN,GAAoB,IAApB;AAA2B,SAA9C,EAAgDjN,GAAhD;AACH,KAFD,MAGK,IAAI,OAAOA,GAAP,KAAe,SAAnB,EAA8B;AAC/BuW,cAAMtJ,WAAN,GAAoBjN,GAApB;AACH;AACD,WAAOuW,KAAP;AACH;AACM,SAASC,MAAT,CAAgBD,KAAhB,EAAuB;AAC1BA,UAAMtJ,WAAN,GAAoB,IAApB;AACH;AACM,SAASwJ,WAAT,CAAqBF,KAArB,EAA4B3E,EAA5B,EAAgC;AACnC/E,eAAW,YAAM;AAAE0J,cAAMtJ,WAAN,GAAoB,IAApB;AAA2B,KAA9C,EAAgD2E,EAAhD;AACH;AACM,SAAS8E,uBAAT,CAAiCH,KAAjC,EAAwC;AAC3C,WAAOA,SAAS,IAAT,IAAiBA,MAAMtJ,WAA9B;AACH;AACM,SAAS0J,UAAT,CAAoBnJ,WAApB,EAAiC;AACpC,QAAMoJ,UAAUC,eAAerJ,WAAf,CAAhB;AACA;AACA;AACA,WAAO,4EAAAV,CAAc,UAACC,GAAD;AAAA,eAAS,8EAAAa,CAAgBkJ,aAAaF,OAAb,CAAhB,EAAuC7J,GAAvC,CAAT;AAAA,KAAd,CAAP;AACH;AACM,SAAS+J,YAAT,CAAsBna,CAAtB,EAAyB;AAC5B,WAAOoa,kBAAkB,UAACC,KAAD;AAAA,eAAWra,EAAEsa,IAAF,CAAOD,MAAM,CAAN,CAAP,EAAiBE,KAAjB,CAAuB,UAACpoB,GAAD;AAAA,mBAAS,CAACA,eAAe,6EAAf,GAC/DkoB,MAAM,CAAN,CAD+D,GACpDA,MAAM,CAAN,CADmD,EACzCloB,GADyC,CAAT;AAAA,SAAvB,CAAX;AAAA,KAAlB,CAAP;AAEH;AACM,SAASqoB,iBAAT,GAA6B;AAChC,WAAO,4EAAArK,CAAc,UAACC,GAAD;AAAA,eAASA,IAAIW,SAAJ,CAAcX,IAAIC,WAAlB,CAAT;AAAA,KAAd,CAAP;AACH;AACM,IAAMoK,2BAA2B,EAAEnK,aAAa,KAAf,EAAjC;AACA,SAASoK,UAAT,CAAoBnoB,IAApB,EAA0B;AAC7B,WAAO,4EAAA4d,CAAc,UAACC,GAAD,EAAS;AAC1B7d,aAAK;AACDwe,uBAAW,mBAACrkB,CAAD;AAAA,uBAAO0jB,IAAIW,SAAJ,CAAc,mEAAA4J,CAAWjuB,CAAX,CAAd,CAAP;AAAA,aADV;AAEDikB,qBAAS,iBAACK,EAAD;AAAA,uBAAQZ,IAAIW,SAAJ,CAAc,mEAAA6J,CAAW5J,EAAX,CAAd,CAAR;AAAA,aAFR;AAGDT,sBAAUH,IAAIG,QAHb;AAIDF,yBAAaD,IAAIC,WAJhB;AAKDG,wBAAYJ,IAAII;AALf,SAAL;AAOH,KARM,CAAP;AASH;AACM,SAAS4J,iBAAT,CAA2BvtB,CAA3B,EAA8B;AACjC,WAAO,4EAAAsjB,CAAc,UAACC,GAAD;AAAA,eAASvjB,EAAE,CAACujB,IAAIW,SAAL,EAAgBX,IAAIO,OAApB,EAA6BP,IAAIG,QAAjC,CAAF,CAAT;AAAA,KAAd,CAAP;AACH;AACM,SAASsK,MAAT,CAAgBhK,WAAhB,EAA6B;AAChC,WAAO,4EAAAD,CAAcC,WAAd,EAA2B,UAACnkB,CAAD;AAAA,eAAO,8EAAAukB,CAAgB,KAAK,CAArB,CAAP;AAAA,KAA3B,CAAP;AACH;AACM,SAAS6J,QAAT,CAAkBC,YAAlB,EAAgC;AACnC,WAAOZ,aAAaa,QAAQC,GAAR,CAAY,yDAAAxtB,CAAI,UAACytB,CAAD;AAAA,eAAOhB,eAAegB,CAAf,CAAP;AAAA,KAAJ,EAA8BH,YAA9B,CAAZ,CAAb,CAAP;AACH;AACM,SAASI,KAAT,CAAeC,mBAAf,EAAoC;AACvC,WAAO,4EAAAjL,CAAc,UAACC,GAAD,EAAS;AAC1BF,mBAAW;AAAA,mBAAME,IAAIC,WAAJ,CAAgBC,WAAhB,GACXF,IAAIG,QAAJ,CAAa,IAAI,6EAAJ,EAAb,CADW,GAEXH,IAAIW,SAAJ,CAAc,KAAK,CAAnB,CAFK;AAAA,SAAX,EAE6BqK,mBAF7B;AAGH,KAJM,CAAP;AAKH;AACM,SAASC,KAAT,CAAexK,WAAf,EAA4B2J,iBAA5B,EAA+C;AAClD,WAAOc,uBAAuBzK,WAAvB,EAAoC2J,iBAApC,CAAP;AACH;AACM,SAASe,cAAT,CAAwB1K,WAAxB,EAAqC2J,iBAArC,EAAwD;AAC3D,WAAOa,MAAMxK,WAAN,EAAmB2J,iBAAnB,CAAP;AACH;AACM,SAASc,sBAAT,CAAgCzK,WAAhC,EAA6C2K,YAA7C,EAA2DC,qBAA3D,EAAkFC,wBAAlF,EAA4GrL,WAA5G,EAAyH;AAC5H,QAAI,OAAOmL,YAAP,KAAwB,UAA5B,EAAwC;AACpCnL,sBAAcmL,YAAd;AACAA,uBAAe,IAAf;AACH;AACD,QAAMhL,aAAa,IAAI,iEAAJ,EAAnB;AACAK,gBAAY;AACRE,mBAAWyK,eAAeA,YAAf,GAA8B9B,iBADjC;AAER/I,iBAAS8K,wBAAwBA,qBAAxB,GAAgD/B,iBAFjD;AAGRnJ,kBAAUmL,2BAA2BA,wBAA3B,GAAsDhC,iBAHxD;AAIRrJ,qBAAaA,cAAcA,WAAd,GAA4BoK,wBAJjC;AAKRjK;AALQ,KAAZ;AAOH;AACM,SAAS0J,cAAT,CAAwBrJ,WAAxB,EAAqC2J,iBAArC,EAAwD;AAC3D,WAAO,IAAIQ,OAAJ,CAAY,UAACW,OAAD,EAAUC,MAAV;AAAA,eAAqBN,uBAAuBzK,WAAvB,EAAoC8K,OAApC,EAA6CC,MAA7C,EAAqDA,MAArD,EAA6DpB,oBAAoBA,iBAApB,GAAwCC,wBAArG,CAArB;AAAA,KAAZ,CAAP;AACH,C;;;;;;;;;;;;;;;AD/FD;AACA;AACA;AACO,SAASE,UAAT,CAAoB1d,CAApB,EAAuB;AAC1B,WAAO,IAAI4e,MAAJ,CAAW,CAAX,EAAc5e,CAAd,CAAP;AACH;AACM,SAAS2d,UAAT,CAAoB3d,CAApB,EAAuB;AAC1B,WAAO,IAAI4e,MAAJ,CAAW,CAAX,EAAc5e,CAAd,CAAP;AACH;;IACoB4e,M;AACjB,oBAAY/e,GAAZ,EAAiBC,IAAjB,EAAuB;AAAA;;AACnB,aAAKD,GAAL,GAAWA,MAAM,CAAjB;AACA,aAAKC,IAAL,GAAYA,IAAZ;AACH;;;;+BAOMrD,K,EAAO;AACV,mBAAO,mEAAA+E,CAAa,IAAb,EAAmB/E,KAAnB,CAAP;AACH;;;kCACSA,K,EAAO;AACb,mBAAO,oEAAAgF,CAAc,IAAd,EAAoBhF,KAApB,CAAP;AACH;;aACA,wDAAA0B,CAAQ/B,U;gCAAc;AACnB,mBAAO;AACH8F,sBAAM,oCADH;AAEHtD,4BAAY,CAAC,aAAD,EAAgB,mBAAhB,EAAqC,oBAArC,CAFT;AAGHgB,uBAAO,CAAC,CAAC,YAAD,EAAe,kDAAf,CAAD,EAAsB,CAAC,YAAD,EAAe,kDAAf,CAAtB;AAHJ,aAAP;AAKH;;;4BAlBoB;AACjB,mBAAO,KAAKC,GAAL,KAAa,CAAb,GAAiB,KAAKC,IAAtB,GAA6B,IAApC;AACH;;;4BACoB;AACjB,mBAAO,KAAKD,GAAL,KAAa,CAAb,GAAiB,KAAKC,IAAtB,GAA6B,IAApC;AACH;;;;;;yDAVgB8e,M;;;;;;;;;;;;;;;;;;;;;;;ALTd,SAASpuB,GAAT,CAAaZ,CAAb,EAAgBmG,MAAhB,EAAwB8oB,UAAxB,EAAoC;AACvC,QAAMhc,SAAS,IAAIgc,UAAJ,CAAe9oB,OAAOjC,MAAtB,CAAf;AACA,SAAK,IAAIvD,IAAI,CAAb,EAAgBA,IAAIwF,OAAOjC,MAA3B,EAAmCvD,GAAnC,EAAwC;AACpCsS,eAAOtS,CAAP,IAAYX,EAAEmG,OAAOxF,CAAP,CAAF,CAAZ;AACH;AACD,WAAOsS,MAAP;AACH;AACM,SAASpS,UAAT,CAAoBb,CAApB,EAAuBmG,MAAvB,EAA+B8oB,UAA/B,EAA2C;AAC9C,QAAMhc,SAAS,IAAIgc,UAAJ,CAAe9oB,OAAOjC,MAAtB,CAAf;AACA,SAAK,IAAIvD,IAAI,CAAb,EAAgBA,IAAIwF,OAAOjC,MAA3B,EAAmCvD,GAAnC,EAAwC;AACpCsS,eAAOtS,CAAP,IAAYX,EAAEW,CAAF,EAAKwF,OAAOxF,CAAP,CAAL,CAAZ;AACH;AACD,WAAOsS,MAAP;AACH;AACM,SAASnS,OAAT,CAAiBqF,MAAjB,EAAyB;AAC5B,WAAOtF,WAAW,UAACF,CAAD,EAAId,CAAJ;AAAA,eAAU,CAACc,CAAD,EAAId,CAAJ,CAAV;AAAA,KAAX,EAA6BsG,MAA7B,EAAqC5D,KAArC,CAAP;AACH;AACM,SAAS2sB,eAAT,CAAyB7kB,KAAzB,EAAgC5K,EAAhC,EAAoC;AACvC,QAAMmD,OAAOyH,MAAMhH,OAAOC,QAAb,GAAb;AACA,QAAIT,MAAMD,KAAKE,IAAL,EAAV;AACA,WAAO,CAACD,IAAII,IAAZ,EAAkB;AACdxD,WAAG0J,IAAH,CAAQtG,IAAIG,KAAZ;AACAH,cAAMD,KAAKE,IAAL,EAAN;AACH;AACJ;AACM,SAASqsB,MAAT,CAAgBhpB,MAAhB,EAAwBipB,WAAxB,EAAqCnc,MAArC,EAA6Coc,WAA7C,EAA0D/qB,KAA1D,EAAiE;AACpE,WAAOA,OAAP,EAAgB;AACZ2O,eAAOoc,aAAP,IAAwBlpB,OAAOipB,aAAP,CAAxB;AACH;AACJ;AACM,SAASruB,SAAT,CAAmBf,CAAnB,EAAsBP,EAAtB,EAA0B;AAC7B,QAAMC,KAAK,EAAX;AACA,QAAMgJ,KAAK,EAAX;AACA,QAAIX,IAAI,CAAR;AACA,QAAI9F,IAAI,CAAR;AACA,SAAK,IAAItB,IAAI,CAAb,EAAgBA,IAAIlB,GAAGyE,MAAvB,EAA+BvD,GAA/B,EAAoC;AAChC,YAAIX,EAAEP,GAAGkB,CAAH,CAAF,CAAJ,EAAc;AACVjB,eAAGqI,GAAH,IAAUtI,GAAGkB,CAAH,CAAV;AACH,SAFD,MAGK;AACD+H,eAAGzG,GAAH,IAAUxC,GAAGkB,CAAH,CAAV;AACH;AACJ;AACD,WAAO,CAACjB,EAAD,EAAKgJ,EAAL,CAAP;AACH;AACM,SAASmB,OAAT,CAAiB7J,CAAjB,EAAoBP,EAApB,EAAwB;AAC3B;AACA,QAAMC,KAAKD,GAAGmB,GAAH,CAAO;AAAA,eAAM,IAAN;AAAA,KAAP,CAAX;AACA,QAAM0uB,aAAa,IAAI/sB,KAAJ,CAAU9C,GAAGyE,MAAb,CAAnB;AACA,SAAK,IAAIvD,IAAI,CAAb,EAAgBA,IAAIlB,GAAGyE,MAAvB,EAA+BvD,GAA/B,EAAoC;AAChC,YAAMoH,IAAI/H,EAAEW,CAAF,CAAV;AACA,YAAIoH,IAAI,CAAJ,IAASA,KAAKtI,GAAGyE,MAArB,EAA6B;AACzB,kBAAM,IAAIxD,KAAJ,CAAU,yBAAV,CAAN;AACH;AACDhB,WAAGqI,CAAH,IAAQtI,GAAGkB,CAAH,CAAR;AACA2uB,mBAAWvnB,CAAX,IAAgB,CAAhB;AACH;AACD,SAAK,IAAIpH,KAAI,CAAb,EAAgBA,KAAIlB,GAAGyE,MAAvB,EAA+BvD,IAA/B,EAAoC;AAChC,YAAI2uB,WAAW3uB,EAAX,MAAkB,CAAtB,EAAyB;AACrB,kBAAM,IAAID,KAAJ,CAAU,yBAAV,CAAN;AACH;AACJ;AACD,WAAOhB,EAAP;AACH;AACM,SAAS6vB,aAAT,CAAuBvnB,IAAvB,EAA6BvI,EAA7B,EAAiC;AACpC,QAAMkB,IAAIlB,GAAGwP,OAAH,CAAWjH,IAAX,CAAV;AACA,QAAIrH,IAAI,CAAC,CAAT,EAAY;AACRlB,WAAGgW,MAAH,CAAU9U,CAAV,EAAa,CAAb;AACA,eAAO,IAAP;AACH;AACD,WAAO,KAAP;AACH;AACM,SAAS6uB,QAAT,CAAkBvc,MAAlB,EAA0B5R,KAA1B,EAAiCC,KAAjC,EAAwC6E,MAAxC,EAAgD;AACnD,QAAMjC,SAAS,CAAC5C,SAAS2R,OAAO/O,MAAP,GAAgB,CAA1B,IAA+B7C,KAA9C;AACA,QAAI8F,YAAYC,MAAZ,CAAmB6L,MAAnB,KAA8B9M,OAAOjC,MAAP,IAAiBA,MAAnD,EAA2D;AACvD+O,eAAO5G,GAAP,CAAWlG,MAAX,EAAmB9E,KAAnB;AACH,KAFD,MAGK;AACD,aAAK,IAAIV,IAAIU,QAAQ,CAAhB,EAAmB0G,IAAI,CAA5B,EAA+BA,KAAK7D,MAApC,EAA4CvD,KAAKoH,GAAjD,EAAsD;AAClDkL,mBAAOtS,CAAP,IAAYwF,OAAO4B,CAAP,CAAZ;AACH;AACJ;AACJ;AACM,SAAS0nB,aAAT,CAAuBzvB,CAAvB,EAA0BP,EAA1B,EAAuC;AAAA,QAATiwB,GAAS,uEAAH,CAAG;;AAC1C,WAAOjwB,GAAGqL,IAAH,CAAQ,UAACjL,CAAD,EAAIK,CAAJ,EAAU;AACrBL,YAAIG,EAAEH,CAAF,CAAJ;AACAK,YAAIF,EAAEE,CAAF,CAAJ;AACA,eAAO,CAACL,IAAIK,CAAJ,GAAQ,CAAC,CAAT,GAAaL,MAAMK,CAAN,GAAU,CAAV,GAAc,CAA5B,IAAiCwvB,GAAxC;AACH,KAJM,CAAP;AAKH;AACM,SAASjuB,KAAT,CAAehC,EAAf,EAAmB;AACtB,QAAMkwB,KAAK,IAAIptB,KAAJ,CAAU9C,GAAGyE,MAAb,CAAX;AACA,QAAM0rB,KAAK,IAAIrtB,KAAJ,CAAU9C,GAAGyE,MAAb,CAAX;AACA,SAAK,IAAIvD,IAAI,CAAb,EAAgBA,IAAIlB,GAAGyE,MAAvB,EAA+BvD,GAA/B,EAAoC;AAChCgvB,WAAGhvB,CAAH,IAAQlB,GAAGkB,CAAH,EAAM,CAAN,CAAR;AACAivB,WAAGjvB,CAAH,IAAQlB,GAAGkB,CAAH,EAAM,CAAN,CAAR;AACH;AACD,WAAO,CAACgvB,EAAD,EAAKC,EAAL,CAAP;AACH;AACM,SAAShuB,MAAT,CAAgBnC,EAAhB,EAAoB;AACvB,QAAMkwB,KAAK,IAAIptB,KAAJ,CAAU9C,GAAGyE,MAAb,CAAX;AACA,QAAM0rB,KAAK,IAAIrtB,KAAJ,CAAU9C,GAAGyE,MAAb,CAAX;AACA,QAAM2rB,KAAK,IAAIttB,KAAJ,CAAU9C,GAAGyE,MAAb,CAAX;AACA,SAAK,IAAIvD,IAAI,CAAb,EAAgBA,IAAIlB,GAAGyE,MAAvB,EAA+BvD,GAA/B,EAAoC;AAChCgvB,WAAGhvB,CAAH,IAAQlB,GAAGkB,CAAH,EAAM,CAAN,CAAR;AACAivB,WAAGjvB,CAAH,IAAQlB,GAAGkB,CAAH,EAAM,CAAN,CAAR;AACAkvB,WAAGlvB,CAAH,IAAQlB,GAAGkB,CAAH,EAAM,CAAN,CAAR;AACH;AACD,WAAO,CAACgvB,EAAD,EAAKC,EAAL,EAASC,EAAT,CAAP;AACH;AACM,SAAShnB,WAAT,CAAqBC,IAArB,EAA2BrJ,EAA3B,EAA+B;AAClC,QAAIqJ,OAAO,CAAX,EAAc;AACV,cAAM,IAAIpI,KAAJ,CAAU,uDAAV,CAAN;AACH;AACD,QAAIjB,GAAGyE,MAAH,KAAc,CAAlB,EAAqB;AACjB,eAAO,CAAC,EAAD,CAAP;AACH;AACD,QAAM6E,SAAS,EAAf;AACA;AACA,SAAK,IAAIlJ,IAAI,CAAb,EAAgBA,IAAIgU,KAAKic,IAAL,CAAUrwB,GAAGyE,MAAH,GAAY4E,IAAtB,CAApB,EAAiDjJ,GAAjD,EAAsD;AAClD,YAAM2uB,QAAQ3uB,IAAIiJ,IAAlB;AACA,YAAMinB,MAAMvB,QAAQ1lB,IAApB;AACAC,eAAOI,IAAP,CAAY1J,GAAG2B,KAAH,CAASotB,KAAT,EAAgBuB,GAAhB,CAAZ;AACH;AACD,WAAOhnB,MAAP;AACH;AACM,SAASinB,WAAT,CAAqBvwB,EAArB,EAAyByY,UAAzB,EAAqC5T,KAArC,EAA4C;AAC/C,WAAO7E,GAAG2B,KAAH,CAAS8W,UAAT,EAAqBA,aAAa5T,KAAlC,CAAP;AACH;AACM,SAAS2rB,IAAT,CAAchd,MAAd,EAAsBoc,WAAtB,EAAmC/qB,KAAnC,EAA0CtB,KAA1C,EAAiD;AACpDiQ,WAAOgd,IAAP,CAAYjtB,KAAZ,EAAmBqsB,WAAnB,EAAgCA,cAAc/qB,KAA9C;AACH;AACM,SAASnC,OAAT,CAAiBC,KAAjB,EAAwB3C,EAAxB,EAA4B;AAC/B,QAAI2C,QAAQ,CAAZ,EAAe;AACX,cAAM,IAAI1B,KAAJ,CAAU,iCAAV,CAAN;AACH;AACD,QAAI0B,QAAQ3C,GAAGyE,MAAf,EAAuB;AACnB,cAAM,IAAIxD,KAAJ,CAAU,4DAAV,CAAN;AACH;AACD,WAAO,CAACjB,GAAG2B,KAAH,CAAS,CAAT,EAAYgB,KAAZ,CAAD,EAAqB3C,GAAG2B,KAAH,CAASgB,KAAT,CAArB,CAAP;AACH,C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AQvII;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAGA;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAKA;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAIsB;AAAA,oHAAa;AAAA;AAA6C,KAA1D;AAA+D;AAInF;AAAA,WADH,yGAAa;AAAA,eAAkB,sHAAlB;AAAgD,KAA7D,UACG;AAAW;AAId;AACU;AAAA;AAAA,2CACY,2HADZ;;AAAA;AACyB;AAAA;;AADzB;AAAA,0CAGE;AAAA,mJAAc,uGAAd;AAAiB,qBAHnB,MAEU;AAAA;AAAA,iCAAwB,uHAAxB;AAAA;AAAA;AAAwC;;AAFlD;AAAC;AAAA,KAAD;;AAKC;AAAA;AAAA,mCAAG,wBAAH;AAAA,2EACa;AADb;AAAA;AACa;AAAS,aAAT,EADb;;AAAA;AAC0B;AAAA;AAAA;AAAA;;AAD1B;AAAA,oDAGG;AAAA;AAAA,qJAAc,uGAAd;AAAA;AAAiB,qBAHpB,MAEW;AAAA;AAAA;AAAA;AAAA,mCAAuB,kHAAvB;AAAA;AAAA;AAAuC;;AAFlD;AAAA;;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAqB;AAAA,KAArB;;AAIM;AACjB,WACG;AAAA,6BAEgB;AAAA;AAAA;AAAA,+HAAG,mHAAH;AAAqB,SAFrC,MACkB;AAAA;AAAA;AAAA,+HAAM,mHAAN;AAAwB;AACL,KAHxC,mBAAiB,uGAAjB;AAGwC;AAIlC;AAAA,iBAEC;AAAA;AAAE,KAFH;AAAA;AAAA,eAGG,KAHH,EAGY;AAAA,0HAAU,mIAAV;AAAmC,KAH/C,MAIC;AAAA,6HAAO,WAAY,KAAZ,MAAP;AAA4B;AAJ5B;AAOR;AAAA;AAAU;AAIF;AAAA;AAAA;AAAA;AAAA;AAAA;;AAEe;AAAA,YAAG,KAAH,EAAY;AAAA,2HAAC,4GAAD;AAAM,SAAlB,MAAwB;AAAA,2HAAC,4GAAD;AAAM;AAAA,KAA9B;;AAFf,wBAGG,WAHH,EAGc,WAHd;;AAGG;AAAA,6BACc;AAAA,8HAAC,gCAAD;AAAkB,SADhC,MAEW;AAAA,yHAAU;AAAA,uBAAsB;AAAA;AAAM,iBAA5B;AAAA;AAAA;AAAA,aAAV,EAAyC,iBAAzC;AAAyD;AAFhD,KAApB,2BAGW;AAAA,qHAAU;AAAA,mBAAsB;AAAA;AAAM,aAA5B;AAAA;AAAA;AAAA,SAAV,EAAyC,iBAAzC;AAAyD,KAHpE;AAAA;AAAA;AAHE;AAWR;AACI;AAAI,iIAAiB,OAAjB;AACF;;AAAA;AAAA,0BACc,yBADd;AAAA;AAAA;AAAA;AADD,KAAD;;AAKE;AAAA;AAEJ;;AAAA,gBAFI,8BAEJ,EAAiC;AAAA,oBAAY,sKAFzC,oIAEyC,eAAZ;AAAA,wBAF7B,oIAE6B;AAAA;AAA0C,aAA3E,MAFI;AAIJ;;AAAA,oBAJI,8BAIJ,EAAiC;AAAA,wBAAY,sKAJzC,oIAIyC,QAAZ;AAAA,4BAJ7B,oIAI6B;AAAA;AAA+B,iBAAhE,MAJI;AAKJ;;AAAA,wBALI,8BAKJ,EAA8B;AAAA,4BAAY,0KAAZ;AAAA,gCAL1B,oIAK0B;AAAA;AAA2B,qBAAzD,MALI;AAMJ;;AAAA,4BANI,8BAMJ,EAA8B;AAAA,gCAAY,0KAAZ;AAAA,oCAN1B,oIAM0B;AAAA;AAA6B,yBAA3D,MANI;AAOJ;;AAAA,gCAPI,8BAOJ,EAA8B;AAAA,oCAAY,yKAAZ;AAAA,wCAP1B,oIAO0B;AAAA;AAA8B,6BAA5D,MAPI;AAQJ;;AAAA,oCARI,8BAQJ,EAA8B;AAAA,wCAAY,0KAAZ;AAAA,4CAR1B,oIAQ0B;AAAA;AAA2B,iCAAzD,MARI;AASJ;;AAAA,wCATI,8BASJ,EAA8B;AAAA,4CAAY,yKAAZ;AAAA,gDAT1B,oIAS0B;AAAA;AAA0B,qCAAxD,MATI;AAUJ;;AAAA,4CAVI,8BAUJ,EAA8B;AAAA,gDAAY,yKAAZ;AAAA,oDAV1B,oIAU0B;AAAA;AAA2B,yCAAzD,MAVI;AAWJ;;AAAA,gDAXI,8BAWJ,EAA8B;AAAA,oDAAY,0KAAZ;AAAA,wDAX1B,oIAW0B;AAAA;AAA0B,6CAAxD,MAXI;AAYJ;;AAAA,oDAZI,8BAYJ,EAA8B;AAAA,wDAAY,0KAAZ;AAAA,4DAZ1B,oIAY0B;AAAA;AAA0B,iDAAxD,MAZI;AAaJ;;AAAA,wDAbI,8BAaJ,EAA8B;AAAA,4DAAY,0KAAZ;AAAA,gEAb1B,oIAa0B;AAAA;AAA2B,qDAAzD,MAbI;AAcJ;;AAAA,4DAdI,8BAcJ,EAA8B;AAAA,gEAAY,0KAAZ;AAAA,oEAd1B,oIAc0B;AAAA;AAA2B,yDAAzD,MAdI;AAeJ;;AAAA,gEAfI,8BAeJ,EAA8B;AAAA,oEAAY,yKAAZ;AAAA,wEAf1B,oIAe0B;AAAA;AAA2B,6DAAzD,MAfI;AAgBJ;;AAAA,oEAhBI,8BAgBJ,EAA8B;AAAA,wEAAY,0KAAZ;AAAA,4EAhB1B,oIAgB0B;AAAA;AAAyB,iEAAvD,MAhBI;AAiBJ;;AAAA,wEAjBI,8BAiBJ,EAA8B;AAAA,4EAAY,0KAAZ;AAAA,gFAjB1B,oIAiB0B;AAAA;AAA2B,qEAAzD,MAjBI;AAkBJ;;AAAA,4EAlBI,8BAkBJ,EAA8B;AAAA,gFAAY,0KAAZ;AAAA,oFAlB1B,oIAkB0B;AAAA;AAA2B,yEAAzD,MAlBI;AAmBJ;;AAAA,gFAnBI,8BAmBJ,EAA8B;AAAA,oFAAY,0KAAZ;AAAA,wFAnB1B,oIAmB0B;AAAA;AAA2B,6EAAzD,MAnBI;AAqBJ;;AAAA,oFArBI,8BAqBJ,EAA6D;AAAA,wFAAY,sKArBrE,oIAqBqE,QAAZ;AAAA,4FArBzD,oIAqByD;AAAA;AAAgC,iFAA7F,MArBI;AAsBJ;;AAAA,wFAtBI,8BAsBJ,EAA8B;AAAA,4FAAY,yKAAZ;AAAA,gGAtB1B,oIAsB0B;AAAA;AAA0B,qFAAxD,MAtBI;AAuBJ;;AAAA,4FAvBI,8BAuBJ,EAA8B;AAAA,gGAAY,0KAAZ;AAAA,oGAvB1B,oIAuB0B;AAAA;AAA2B,yFAAzD,MAvBI;AAwBJ;;AAAA,gGAxBI,8BAwBJ,EAA8B;AAAA,oGAAY,0KAAZ;AAAA,wGAxB1B,oIAwB0B;AAAA;AAA+B,6FAA7D,MAxBI;AAAA;AAAA,mGA0BC;AAAA,kNAAU,sIAAV;AAAwC;AA1BtC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KAAH;;AA2BW,qHAArB,WAAW,uGAAX,MAAqB;AAjCK;;eAsCN,Y;;AAEpB,aAAS,wEAAT,C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC1FI;AAAI;;AACR,QAAG,SAAH,EAEQ;AAAO,2HAAE;AAAA;AAAA;AAAA;AAA4B,SAA5B,CAAF;AAAP;AAAI,KAFZ;AAAA;AAAA;AADK;AASL;AAAA;AAAqB;AAIrB;AAAA,wHAAc,8GAAd;AAAiB;AAIjB;AAAA;AAAe;;AAST;AAAA;;AAAA,4BAGE;AAAA;AAAA;AAAQ;AAAR,wBACU,4BADV;AAAK,KAHP;AAAA;AAAA;AAAuB;;;AAWzB;AAAc;AAAA,eAEX;AAAuB;AAAA,qCAAc,QAAd;AAAwB,aAAxB;;AAAvB;AAAA;AAAkD,aAAlD;AAAkD,SAAlD,EAFW,CACd,4LADc;AAAC,KAAD;;AAIlB,WAGa;AAAA;AAAoB,KAHjC,CAEG,sGAAW;AAAA;AAAC,KAAZ,MADA,sGAAU;AAAA,eAAuB;AAAA;AAAK,SAA5B;AAAA,KAAV,WACA,CAFH;AAJoB;;AAchB;AACI;AAAK;AAAL,gBACJ,sBADI;AAAE,KAAF;;AAER,WACG;AAAA;AAAA;AAAA;AAA2B,SAA3B;AAA2B,KAA3B,EADH;AAHwB;;;;AASpB;AAAiB;AAAA;AAAA,8BACQ,sCADR;AAAA;AAAA;AAAA;AAET,KAFS;;AAGpB;AAHiB;;;;AAQd;AAAiB;AAAA;AAAA,oBACe,MAAM,kCAAN,CADf,EAC8B,sCAD9B;AAAA;AAAA;AAAA;AAET,KAFS;;AAGpB;AAHiB;;;;AAMK;AAAA;;AACrB;;AAAA,QADqB,8BACrB,EADqB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAQ,SAAR;AAAA;AAAA;AAAQ,KAC7B;AAAA;AAAA;;AADqB;AAAA;AAAA;;AAAA;AAAA;AAAA;AAEZ;;;;;;;;;;;;;;;;;;;;;;;;;;AClFX;AAAA,WAEG,gFAAc,0EAAd,CAFH,CACG,4GADH;AAEqB,C;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACPrB,kBACA;AAAA,WAEG;AAAA;AAAY,KAFf;AAAA,eACG;AAAA;AAAa,SADhB;AAAA;AAAA,EADA;;AAKA;AAAA;AAAA,eAAe;AAAA;AAAqB,SAApC;AAAA;AAAoC;;;AAG9B;AAAA,8HACG,cAAI,mEAAJ,CADH,GACe,eAAgB;AAAA;AAAe,KAA/B,CADf,GAEG,cAAI,mEAAJ,CAFH,GAEmB,eAAgB;AAAA;AAAkB,KAAlC,CAFnB,GAGC,2GAAU,yKAAV,CAHD;AAAM,C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACFN;AAAA;AAAA,kCAC+B;AAAA,mIAAf,sHAAe;AAAE,SADjC,MAIC;AAAA;AAAA,wBACH,4FADG;AAAA,eADH,oBACG;AACoB;AALjB,KAAJ,MAME;AAAA,iFAAqB,2GAAQ,gHAAR,OAArB;AAC4B,kIAApB,6EAAoB;AAAE;AAP5B;AAWN;AACA;AAAA;AAAgB,KAAhB;;AAEM;AACJ,mIAAS,gEAAT;;AAAA,YADI,+BACJ;AAAA,oBAAqC,sGAA+B,wEAAP,wEAAb,uEAD5C,qIAC4C,IAAa,CAAO,CAA/B,cAArC,EADI,qIACJ;AAAA,eADI;AAEJ;;AAAA,gBAFI,+BAEJ,EACM;AAAwD,4GAAZ,wEAA3B,aAAa,uGAAb,EAHnB,qIAGmB,IAA2B,CAAY;AAAxD,wBAUS;AAAA;AAAa,iBAT1B,CAAM;AAAA,sCAJJ,qIAII,KAJJ,qIAII;;AAAA;AAAA,mDAQE;AAAA;AAAe,yBARjB,MAME;AAAA,8IANF,2HAME;AAAkB;AANK,qBAAzB,iCAIE;AAAA,yJAJF,2HAIE;AAAkB,qBAJpB,MAEE;AAAA,0IAFF,2HAEE,iBAFF,2HAEE;AAAqB;AAFE,iBAAzB,EAAN,CADI,EAHF,qIAGE;AAAa,aADnB,MAaM;AAAM,6FAAO,gHAAP;AAAN,wBACJ,8KAAc,4EAAd,eADI,EACqC,+EADrC;AAAG;AAfD;AAAA,KAAJ;;AAkBA;AAAA,iCACE;AAAA;AAAE,SADJ,MAGE;AAAoB;;AAClB,8CACa;AAAA;AAAQ,aADrB,MAIC;AAAA,8GADH,8CACG;AAAe;AALD;AAHf,KAAJ;;AASV,wBAAa,uGAAb;AA9BkC;AAmC9B;AAAgC;AAAA,qHAAC,4BAAD;AAAsC,KAAtC;;AAMjC,+EADA,0GADA;AAA0B;AAA1B;AAAA;AAA4B,SAA5B;AAA4B,KAA5B,EAHH,CAEG,oFADA,yFACA,CAFH,CAIG,CACA;AAN8B;;AAc7B;AACA;AAAA,eACG;AAAA;AAAA;AAAA,mBAEK;AACI;AAAmB;AACC;AACxB;AAFmB,iBAAf;;AAIA;AAAc;AAAA;AAAA;;AAClB,2FAAO,qIAAP;AADe,iBAAX;;AALJ,wBAQqB,oEAAxB,yHAAwB,CARrB;AAAuB;AASd,SAZjB,CAAQ,qGAAR;AAYiB,KAZjB;;AAcF;;AAAA,QADI,+BACJ,EACQ;AACJ,6IAHA,qIAGA;;AAAA,YADI,+BACJ,EAAwB;AAAA;AAAmC,SAA3D;AAAA;AAAA;AADQ,KADZ;AAAA;AAAA;AAf4B;;;AAyB1B;AAAO;AAAP;;AACE;AAAA;AAAA;AAAA;AAEJ;;AAAA,gBAFI,+BAEJ;AAAA;AAAA;AAAA;AAAA;AAFQ;AAAA,KAAJ;AAEJ;;AAAA,YAFI,+BAEJ;AAAA;AAAA;AAAA;AAAA;AAFQ;;AAAJ;AACuE;AAAA,+HAApC,yFAAoC;;AACrC;AAAA;;AAFlC;AAGJ;;AAAA,gBAHI,+BAGJ,EAA2C;AAAA,mIAHvC,qIAGuC,KAHvC,qIAGuC;AAAE,aAA7C,MAHI;AAIJ;;AAAA,oBAJI,+BAIJ,EAEK;AAAA,uIAD6B,oEAA/B,oBALC,qIAKD,IAA+B,CAC7B,EAND,qIAMC;AAAE,iBAFP,MAJI;AAOJ;;AAAA,wBAPI,+BAOJ,EACM;AAAO,uDART,qIAQS;AAER,2IADF,oEAAM,qEATL,qIASK,IAAN,CACE,EAVD,qIAUC;AAFK,qBADV,MAPI;AAWJ;;AAAA,4BAXI,+BAWJ,EACkC;AAAA,+IAA/B,eAZC,qIAYD,IAA+B,EAZ9B,qIAY8B;AAAE,yBADpC,MAE2B;AAAA,8IAAd,4EAAc;AAAK;AAbxB;AAAA;AAAA;;AAAJ;AADE;AAiBF;AAAA;;AAAA,oBACkB;AAAA,2HAAb,uGAAa;AAAE,KADpB,MAIC;AAAA,wHACO;AAAA;;AAAA,8BACsB;AAAA,mIAAjB,yHAAiB;AAAE,aADxB,MAIC;AAAA;AAAA,4BACC,mIADD;AAAA,mBADH,2BACG;AACmB;AALL,SADtB,EADH,eACG;AAOF;AAXkB;AAkBpB;AAAA,oHACO;AAAA,sCAEwD,2GAA7C,2GAAQ,sIAAR,6HAA6C,CAFxD,GACa,wHADb;AAAM,KADb,EADH,mBACG;AAGqE,C;;;;;;;;;;;;;ANrI5E;AACA;AACA;;IACM8tB,S,GACF,mBAAYC,OAAZ,EAAqB;AAAA;;AACjB,SAAKntB,KAAL,GAAamtB,OAAb;AACH,C;;IAECC,Y;;;;;;;4BACED,O,EAAS;AACT,gBAAME,SAAS,IAAIH,SAAJ,CAAcC,OAAd,CAAf;AACA,gBAAI,KAAKG,YAAT,EAAuB;AACnB,qBAAKA,YAAL,CAAkB,CAAlB,EAAqBxtB,IAArB,GAA4ButB,MAA5B;AACA,qBAAKC,YAAL,GAAoB,CAAC,KAAKA,YAAL,CAAkB,CAAlB,CAAD,EAAuBD,MAAvB,CAApB;AACH,aAHD,MAIK;AACD,qBAAKC,YAAL,GAAoB,CAACD,MAAD,EAASA,MAAT,CAApB;AACH;AACJ;;;iCACQ;AACL,gBAAI,KAAKC,YAAT,EAAuB;AACnB,oBAAMttB,QAAQ,KAAKstB,YAAL,CAAkB,CAAlB,EAAqBttB,KAAnC;AACA,oBAAI,KAAKstB,YAAL,CAAkB,CAAlB,EAAqBxtB,IAAzB,EAA+B;AAC3B,yBAAKwtB,YAAL,GAAoB,CAAC,KAAKA,YAAL,CAAkB,CAAlB,EAAqBxtB,IAAtB,EAA4B,KAAKwtB,YAAL,CAAkB,CAAlB,CAA5B,CAApB;AACH,iBAFD,MAGK;AACD,2BAAO,KAAKA,YAAZ;AACH;AACD,uBAAOttB,KAAP;AACH;AACD,mBAAO,KAAK,CAAZ;AACH;;;;;;IAEgButB,gB;AACjB,8BAAY5L,IAAZ,EAAkBgJ,iBAAlB,EAAqC;AAAA;;AACjC,aAAKhJ,IAAL,GAAYA,IAAZ;AACA,aAAKgJ,iBAAL,GAAyBA,qBAAqB,wEAA9C;AACA,aAAK6C,QAAL,GAAgB,IAAIJ,YAAJ,EAAhB;AACH;;;;0CACiB;AACd,gBAAI,KAAKzB,YAAT,EAAuB;AACnB,oBAAM3rB,QAAQ,KAAKwtB,QAAL,CAAcC,MAAd,EAAd;AACA,oBAAIztB,KAAJ,EAAW;AACP,wBAAMwV,OAAO,KAAKmW,YAAlB;AACA,2BAAO,KAAKA,YAAZ;AACAnW,yBAAKxV,KAAL;AACH;AACJ;AACJ;;;gCACO;AACJ0rB,YAAA,sEAAAA,CAAe,KAAK/J,IAAL,CAAU,IAAV,CAAf,EAAgC,KAAKgJ,iBAArC;AACH;;;kCACS;AAAA;;AACN,mBAAO,yEAAAJ,CAAkB,UAACC,KAAD,EAAW;AAChC,oBAAI,MAAKmB,YAAT,EAAuB;AACnB,0BAAM,IAAIjuB,KAAJ,CAAU,kCAAV,CAAN;AACH;AACD,sBAAKiuB,YAAL,GAAoBnB,MAAM,CAAN,CAApB;AACA,sBAAKkD,eAAL;AACH,aANM,CAAP;AAOH;;;6BACIP,O,EAAS;AACV,iBAAKK,QAAL,CAActS,GAAd,CAAkBiS,OAAlB;AACA,iBAAKO,eAAL;AACH;;;0CACiBC,Y,EAAc;AAC5B,gBAAI5nB,eAAJ;AACA,gBAAI4lB,qBAAJ;AACA,qBAASiC,eAAT,GAA2B;AACvB,oBAAI7nB,UAAU4lB,YAAd,EAA4B;AACxBA,iCAAa5lB,MAAb;AACH;AACJ;AACD,gBAAM8nB,QAAQ;AACVA,uBAAO,eAACjtB,GAAD,EAAS;AACZmF,6BAASnF,GAAT;AACAgtB;AACH;AAJS,aAAd;AAMA,iBAAKJ,QAAL,CAActS,GAAd,CAAkByS,aAAaE,KAAb,CAAlB;AACA,iBAAKH,eAAL;AACA,mBAAO,yEAAAnD,CAAkB,UAACC,KAAD,EAAW;AAChCmB,+BAAenB,MAAM,CAAN,CAAf;AACAoD;AACH,aAHM,CAAP;AAIH;;;;;;0EApDgBL,gB;;AAsDd,SAAS/B,KAAT,CAAe7J,IAAf,EAAqBgJ,iBAArB,EAAwC;AAC3C,QAAMmD,OAAO,IAAIP,gBAAJ,CAAqB5L,IAArB,EAA2BgJ,iBAA3B,CAAb;AACAmD,SAAKtC,KAAL;AACA,WAAOsC,IAAP;AACH,C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AOnFI;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAEA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAIK;AAAA;AAAA;;AAAA;AACa;AAAA;AAAA;;AADb;AAAA;AAAA;AAAI;AAAA;AAQP;AAAA,qHADA,sBADA,+GACA,CACA;AAAQ;AAKR;AAAA,kCADA,2BACA;AAAsB;AAKrB;AACA;AAAA,mBAAI,uEAAJ;AAAc,KAAd;;AACJ;AAFkB;AAMlB;AACU;AAAA;AAAA,oDACU,6BADV;;AAAA;AACqB;AAAA,iCAAY,gBAAZ;AAAA;;AADrB;AAAA;AAAA;AAAK;AAAA,KAAL;;AADV,WAIA,qBAJA;AAI2B;AAI3B;AACU;AAAA;AAAA;;AAAA;AACoB;AAAA,iCAAY,uBAAZ;AAAA;;AADpB;AAAA;AAAA;AAAK;AAAA,KAAL;;AADV,WAIA,qBAJA;AAI2B;AAG3B,oBAAgB;AAAW;AAAX;AAAA;AAAmB,KAAnB;AAAmB,CAAnB,GAAhB;AAII;AACM;AAAA,YACG,oHADH;AAAA;AAAA;AAAA;AAAA;AAAG,KAAH;;AAGV;AAJe;AAKf,iBAAa;AAAW;AAAX;AAAA;AAAe,KAAf;AAAe,CAAf,GAAb;AACA,iBAAa;AAAW;AAAX;AAAA;AAAgB,KAAhB;AAAgB,CAAhB,GAAb;AAKA;AACU;AAAA;AAAA;AAAA,wBAGU,+GAHV,EAGoB,uGAHpB;AAAA;AAAA,wBACsB,+GADtB;AAAA,mBAEU;AAAA,uBAAU,sHAAV;AAAA;AAAA;AAAyB;AAF/B;AAAA,KAAJ;;AAIV,oBAAS,uGAAT;AAAgB;AAIhB;AACQ;AAAA;AAAiB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAuC,aAAvC;;AACf;;AAAA,oCAGI;AAAA;AAE2B;AAF3B,2BAGa,4HAHb;AAAA;AAAA;AAAqB,aAHzB,MACsB;AAAA,iIAAlB,uHAAkB;AAAQ;AAFlB;AAAA,KAAd;;AAQR,WACG,wIAAc,uGAAd,EADH;AACmB;AAIf;AACI;AAAY;AACV;AAAA;;AAAA;AAEI;AAAA;;AAAA;AACwB;AAAA,6MAAc,wEAAS,mBAAT,CAAd;;AADxB;AAAA;AAAA;;AAFJ;AAAA;AAAA;AADO,KAAT;;AAUL,qHADA;AAAmB;AAAnB;AAAA;AAAmC,SAAnC;AAAmC,KAAnC,EAFH,WAGG;AAXwB;;AAkBrB;AAAA,oCACO,wHADP;;AAAA;AAEI;AAAA,2IAA4B;AAAA;AAAK,aAAjC;;AAAA;AAAA;AAAA,mBAEE;AAAqB,6IAArB,wHAAqB;AAArB;AAAkB;;AAJxB;AAAA;AAAA;AAAI;;;;AAaJ;AAAA;AAAA;AAAA,WAGE;AAEA;AAAA,kCACI;AAAmB;AAAnB;AAA+B,aADnC,MAGU;AAAA,6CACS,sBAAgB,gEAAhB,CADT;;AAAA;AACoC;AAAA;;AACnC;AAAA,kDAAgB,qHAAhB;AAFD;AAAG;AAEuB,SALpC;;AAMY,2CAAK,uGAAL,EAAe,uGAAf;AACV;AATF,gBAWQ,yHAXR,EAWwC,sBAAZ,4HAAY,CAXxC;AAAgB;AAHd;;;;AAwBN;AAA6B;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAwC,SAAxC;AAAwC,KAAxC;AAC3B;;AAAA;AAAA;AAAA;;AAGE;AAA6D,uGAAX,wEAAnC,4HAAmC,CAAW;;AAEvD;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAGF;AAAA,sCAAW,kHAAoB,qHAApB,CAAX;AAAA;AAAA;;AAEI;AAA2D,sHAAX,wEAAlC,4HAAkC,CAAW;AAC/D,mCAEG,qKAFH,EAAC,kHAAoB,wHAApB,CAAD;;AAIA;AAAA,mCAEG,8JAFH,EAAC,kHAAoB,wHAApB,CAAD,EAAuC,uGAAvC;;AAIA;AAAA,mCACG,oIAAW,kHAAoB,2GAAC,gHAAD,EAApB,CAAX,EADH;AAdE;AAAI;AAAA,aAAJ;;AAgBV,6BAAU,uGAAV;;AArBE;AAAA;;AAwBF;AACU;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAGF;AAAA,wCAAW,oHAAoB,qHAApB,CAAX;AAAA;AAAA;;AAEA;AAAA,mCAEG,sJAFH,EAAC,oHAAoB,wHAApB,CAAD;;AAIA;AAAA,mCACG,sIAAW,oHAAoB,2GAAC,gHAAD,EAApB,CAAX,EADH;AATE;AAAI;AAAA,aAAJ;;AAWV,+BAAU,uGAAV;;AApCE;AAAA;AAAA;AADwB;;;;AA2CxB;AAAA;;AAAA,QACG,eADH,EACW;AAAA;AAAU,KADrB;AAAA;AAAA;AAAkB;;;;AAMJ;AAAA;AAAA,gBACH,8EADG;AAAA;AAAA;AAAA;AAET;;;;AAMX;AACU;AAAA;AAAA;;AAAA;AACW;AAAA,wBAAa,KAAb;AAAA;AAAA;;AADX;AAAA;AAAA;AAAG;AAAA,KAAH;;AAGJ;;AAAA,QACI,cADJ,EAEI;AAAA;AAAA;;AAAA;AAEF;AAAA;AAAA;AAAA,kBAAQ,uBAAR;;AAFE;AAAA;AAAA;AAAW,KAFf;AAAA;AAAA;AAQK;;;;AAIL;AAAA;;AAAA;AAGC;AAAA;;AAHD;AAAA;AAAA;AAAI;;;;AAUJ;AAAA;;AAAA;AAAA;AAAA,oBACsC,mEADtC;;AAAA;AAAA,oBAEgC,mEAFhC;;AAAA;AAAA;AAAA;AAAI;;;;AAQJ;AAAA;;AAAA;AAAA;AACW;;AAAA,gBADX,+BACW;AAAA,6BADX,qIACW;AAAA;AAAA;AAAA;AADP,SAAJ;AAAA;AAAA;AAAI,KAAJ;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAEJ;;AAAA,gBAFI,+BAEJ,EAFI;AAAA;AAAI,aAER;AAAA;AAAA;;AAFI;AAAI;;;;AAQN;AAAa;;AACX;AAAA;AAAA,WADF;AAAA;AAAU;AAAA;;;AAUX;AAAA,uIACO;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAI,KADX;AAGc;AAMb;AACA;AACU;AAAA;AAAA;;AAAA;AACY;AAAA,4BAAkB,KAAlB;AAAA;AAAA;;AADZ;AAAA;AAAA;AAAI;AAAA,SAAJ;;AAGV;AAAuB,KAJvB;;AAMD,uIACK;AAAU;;AACd,YAAG,mBAAH,EADI;AAAA;AAAO,SACX;AAAA;AAAA;AADW,KADZ;AAPqB;;AAoBpB;AAAa;AAAb,sBACG,2BADH,EACoB,2BADpB;;AACG,QACM,oBAAO,iBAAP,QADN,EADH;AAAA;AAAU,KACP;AAAA;AAAA;AADO;;;AAUd;AACU;AAAA;AAAA;AAAA,wBAEU,+GAFV,EAEoB,uGAFpB;AAAA;AAAA,wBACsB,+GADtB;AAAA,mBAIE;AAAY;AAAZ,uBACU,4HADV;AAAA;AAAA;AAAS;AAJP;AAAA,KAAJ;;AAMV,wBAAa,uGAAb;AAAoB,C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACrSnB;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAOD;AAAA,gGAAiB,+DAAjB;AAA0B;AAEd;AAAA,2EAAU,YAAV;AAAiB;AAIzB;AAAe;AAAA;AAAA;AAAA;AAAA;AAAA;AAAC,KAAD;;AAGH;AAAA,6BAEW;AAAA,8HAAU,4KAAV;AAA4E,SAFvF,MACS;AAAA;AAAE;AAC4E,KAFvF;;AAGc;AAAA,2BAEiC;AAAA,8HAAxB,2GAAQ,mHAAR,cAAwB;AAAK,SAFtC;AAAA;AAAA;AAAC,KAAD;;AAGxB;;AAAA,iCAC4B;AAAA,0HAA1B,qHAA0B;AAAE,KAD9B,MAEE;AAAA,oIAAyB,8GAAzB;AAAoC;AAXlC;AAcJ;AAAA,wBAEQ;AAAA;AAAO,KAFf,MACoB;AAAA,0HAAf,qBAAe;AAAE;AADlB;;;;AAMV,mBAAe;AAAA;AAAe,CAAf,CAAf;AACA,gBAAY;AAAA;AAAc,CAAd,CAAZ;AACoB;AAAA;AAAQ;AAAH;AAKzB;AACU;AAAA;AAAA;;AAAA,sCAQQ;AAAA,oBAAG,kBAAH;AAAA;AAAA,uBAAgC;AAAA,iIAAC,oBAAD;AAAsB;AAAA,aAR9D;AAAA,qDACe;AAAA,iIAAC,cAAc,uGAAd,CAAD;AAAsB,iBADrC,MAEe;AAAA;AAA6B,iGAA7B,4GAAQ,uHAAR;AAAA,wBACa,sGAAC,cAAc,uGAAd,CAAD,IADb;AAAA;AAAA;AACyC;AAH3C,aAAb,2CAIe;AAAA;AAA8B,6FAA9B,4GAAQ,uHAAR;AACA,6HAAC,qBAAD;AAA2B,aAL1C,MAMgB;AAAA;AAAA;AAAiC,6FAAjC,4GAAQ,oHAAR;AAAA,oBACa,sGAAC,uBAAD,IADb;AAAA;AAAA;AAC+C;AAPlD;AAAA,KAAb;;AASV,uBAAY,uGAAZ;AAAkB;AACa;AAAA;AAAmC;AAG9D;AAAY;AAAA;AAAwB,KAAxB;;AAOb,qHADU;AAAA,eAAG,cAAH,GAA0B,sGAAC,cAAa,uGAAb,CAAD,IAA1B;AAAqD,KAJlE,CAAM;AAAA;;AAAA;AACY;AAAA;;AACR;AAAA;AAFJ;AAAG,KAAH,EAAN,CAKG;AAPU;AAQb,sBAAkB;AAAA;AAAqB,CAArB,CAAlB;AAGI;AACI;AAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAqD,SAArD;;AAAP,0BAEG,8EAAW,+DAAX,WAFH,EAE8B,2IAF9B;;AAEG;AAAA,+BAG8E;AAAA;AAAK,aAHnF,MACwD;AAAA;AAAK;AADsB,SAAnF,yBAE4H;AAAA,8HAA7G,2GAAQ,gLAAR,QAAmF,oHAAnF,CAA6G;AAAK,SAFjI,MAKQ;AAAA,iJAAe,8EAAW,gEAAX,OAAf;AAAA,iHACgB,iBAAiB,gEAAjB,CADhB;;AAAA;AACoD;AAAA,sIAAV,mEAAU;;AADpD;AAAA,6JAGM,iBAAiB,gEAAjB,CAHN,6CAGM,iBAAiB,gEAAjB,CAHN;;AAAA;AAEuB;AAAA,8IAAT,mEAAS;;AACiB;AAAA,8IAAR,mEAAQ;;AAHxC;AAAA,uDAIe;AAAA,kJAAX,mEAAW;AAAE,6BAJjB,MAKwD;AAAA,kJAApD,2GAAQ,2IAAR,wBAAoD;AAAK;;AAL7D;;AAAA;AAAoC;AAP3C,KAAJ;;AAaU;AAAA;AAAuB,KAAvB;;AAMf,yBADA,0GAHG;AAAA;AAAA;;AAAA;AACY;AAAA;;AACR;AAAA;AAFJ;AAAoB,KAApB,EAGH,CACA;AApBgC;;AAyB/B;AAAA;AAMD,iHAAwB;AAAA;AAAc,KAAtC,EADC;AAAA;AAAkB,KAJtB,CAAO;AAAA;;AAAA,YACE,cADF,EACW;AAAA,mIAAS,yHAAkB,uGAAlB,iBAAT;AAAuD,SADlE,UAEE,cAFF,EAEW;AAAA,8HAAW,cAAX;AAA4B,SAFvC;AAAA;AAAA;AAAyB,KAAzB,EAAP,CAKG;AANQ;;;AAQX,iBAAa;AAAA,wBAAa;AAAA;AAAW,KAAxB;AAAwB,CAAxB,CAAb;AAKI;AAA0B,mCAAb,+GAAa;;AACX;AAAA,6BAA6C;AAAA;AAAO,SAApD,MAAoB;AAAA;AAAU;AAAsB,KAApD;;AAGe,yHAAW;AAAA;AAAK,KAAhB,EAAlB,wIADH,CAA0C,iJAAzC,CAAmB;AAAA;AAAkB,KAArC,aAAD,CACqB;;AAGN;AAAA,qHAAwE,wGAAW;AAAA;AAAK,SAAhB,EAAnB,yIAApD,CAA2B,iJAA3B,4BAAuE,CAAxE;AAA+F,KAA/F;;AAGzB,yBADA,0GADH,yHAA4B,mHAA5B,EAAsC,8EAAtC,CACG,CACA;AAVW;;AAed;AAEQ;AACM;AAAA;AAAA,uLACC,yHADD;;AAAA;AACkB;AAAA,mCAAS,KAAT;;AACjB;AAAA;AAFD;AAAmB,SAAnB;;AAIkB;AAAA;;AAAA,sCAEI;AAAA;AAAG,aAFP,MACO;AAAA;AAAG;AADK,SAAf;;AAG5B,YAAG,WAAH,EAAoB;AAAA;AAAG,SAAvB,MACM;AAAA;;AAAA;AACa;AAAA,oCAAG,2BAAH,EAAqB,2BAArB;;AADb;AAAA;;AAGiB;AAAA;;AACK;AAAA,kIAAY,4IAAZ;;AACA;AAAA,sIAAgB,4IAAhB;;AACA;AAAA;AAAA;AAAA,uBAAU,sGAAU,4IAAV,WAAV;;AACA;AAAA;AAAA;AAAA,uBAAU,sGAAS,4IAAT,WAAV;;AAPtB;AAAA;AAAA;AAAC;AATY,KAAf;;AAkBR;AAAe;;;AACf,cAAU;AAAA;AAAa,CAAb,CAAV;AAII;AAAA;;AAAmD;AAAA;AAAG,KAAH;;AAAvC;AAAA;AAA2C,KAA3C;;AACmB;AAAA;AAA6C,KAA7C;;AAGzB;AAAA;;AAAA;AAAA,oBAEQ,uGAAC,4FAAD,EAAmB,wBAAnB,QAFR,EAEoD,QAFpD;AAAA;AAAA,oBACQ,uGAAC,4FAAD,EAAmB,2CAAnB,QADR,EACyD,QADzD;AAAA;AAA8B,KAA9B;;AAJN;AAAA,gBAQC,UARD,EAQY,sGAAW,4IAAX,wBARZ;AAAA;;AASW;AACC;AAChB,WACG;AAAA;AAEe;AACJ;AAAA;AAAA;;AAGQ;AAAA,iCAEG;AAAA,uBAA+B;AAAA;AAAe,iBAA9C,4GAAkB,QAAjB,2BAAiB,CAAlB;AAA+C,aAFlD,MACC;AAAA;AAAC;AACgD,SAFlD;;AAMf,qHAAU;AAAA;AAAA;AAAY,aAAZ;AAAA,SAAV,EADA,wGADC;AAAA;AAAyB,SAD7B,uGAAU;AAAA;AAAA;AAAA;AAAA,SAAV,WAEG,CACA;AAAgC,KAbvC,uHAAyB,uGAAzB;AAXa;AA+BT;AAAW;AAAA;AAAA;AAAA;AAAA;AAAA;AAAuC,KAAvC;;AACf,WACG;AAAA,iCAE8B,2GAAtB,4BAAsB,CAF9B,GACmB,gHADnB;AAEgC,KAHnC,gBAAgB,sGAAU;AAAA;AAAoB,KAA9B,OAAhB;AADY;AAQT;AAAA,8BADH,sGAAS;AAAA;AAAS,KAAlB,OACG;AAAkB,C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC7KE;AAAA,qHAAvB,2GAAQ,mHAAR,OAAuB;AAAK;AAEvB;AAAA;AAAG;AAER;AAAA,4FAAY,6GAAZ,EAAwB,6GAAxB;AAA+B;AAM/B;AACQ;AAAkB;AAAA;;AAAA;AAAA;AAAA,4BAC2B,6BAD3B;;AAAA;AAAA,4BAEO,iBAFP;;AAAA;AAAA;AAAA;AAGP,SAHO;;AAIK;AAAA;;AAAA;AAAA;AAAA,4BAEF;AAAA;AAAiB,qBAA9B,sBAFe;;AAIhB;AAAoC,iGAApC,4GAAQ,4HAAR;AAAA,4BACc;AAAA;AAAiB,qBAA9B,sBADD;;AAGC;AAAoC,iGAApC,4GAAQ,4HAAR;AAAA,4BACc;AAAA;AAAiB,qBAA9B,sBADD;;AAPe;AAAA;AAAA;AASZ,SATY;;AAUI;AAAA;;AACzB;;AAAA,gBADyB,8BACzB,EADyB;AAAA;AAAA;AACH,wEADG,oIACH;;AAAA,4BADG,8BACH;AAAA,wCADG,oIACH,KADG,oIACH,KADG,oIACH;AAAA;AAAA;AAAA;AADW,qBAAR;AAAA;AAAA;AAAQ,iBAAR;AAAA;AAAA;AAAQ,aACjC;AAAA;AAAA;;AADyB;AAAA;AAAA,4BAC6B,yHAD7B;;AAAA;AAAA;;AAEzB;;AAAA,wBAFyB,8BAEzB,EAFyB;AAAA;AAAA;AAEL,4EAFK,oIAEL;;AAAA,oCAFK,8BAEL;AAAA,gDAFK,oIAEL,KAFK,oIAEL,KAFK,oIAEL;AAAA;AAAA;AAAA;AAFa,6BAAR;AAAA;AAAA;AAAQ,yBAAR;AAAA;AAAA;AAAQ,qBAEjC;AAAA;AAAA;;AAFyB;AAEmB;AAAA,mCAAmB;AAAA,wDAC9C,sGAAqB;AAAA,kHAAX,gFAAW;AAAA,iCAArB,EAAD,mHAAC,CAD8C;AAElD,6BAF+B;;AAFnB;AAKzB;;AAAA,gCALyB,8BAKzB;AAAA,wCAA0B,2GALD,oIAKC,KAA1B,EALyB,oIAKzB;AAAA;AAAA;AAAA;;AALyB;;AAAA;AAMhB,SANgB;;AAQF;AAAA;;AAAA;AAAA;AAClB;;AAAA,wBADkB,8BAClB,EADkB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAQ,iCAAR;AAAA;AAAA;AAAQ,6BAAR;AAAA;AAAA;AAAQ,yBAAR;AAAA;AAAA;AAAQ,qBAC1B;AAAA;AAAA;AAD0B,iBAAR;AAAA;AAAA;AAAQ,aAAR;AAAA;AAAA;;AAAA;AAAA;AAAA,4BAExB,4FAFwB;;AAAA;AAAA;AAAA;AAGlB,SAHkB;;AAIb;;AACA;;AACA;;AACA;;AAEQ;AAClB;;AAAA,gBADkB,8BAClB;AAAA,wBADkB,oIAClB,KADkB,oIAClB;AAAA,mBADkB;AAElB;;AAAA,oBAFkB,8BAElB;AAAA,4BAFkB,oIAElB,KAFkB,oIAElB;AAAA,uBAFkB;AAGlB;;AAAA,wBAHkB,8BAGlB;AAAA,gCAHkB,oIAGlB,KAHkB,oIAGlB;AAAA,2BAHkB;AAIlB;;AAAA,4BAJkB,8BAIlB;AAAA,oCAJkB,oIAIlB,KAJkB,oIAIlB;AAAA;AAAA;AAAA;AACS;AAAA;AAAA;AAAA,SALS;;AAOJ;AACd;;AAAA,gBADc,8BACd;AAAA,wBAAsC,uEAAT,0EADf,oIACe,IAAS,CAAtC,EADc,oIACd;AAAA,mBADc;AAEd;;AAAA,oBAFc,8BAEd;AAAA,4BAFc,oIAEd,KAFc,oIAEd;AAAA,uBAFc;AAId;;AAAA,wBAJc,8BAId;AAAA,gCAAyC,uEAAX,0EAJhB,oIAIgB,IAAW,CAAzC,EAJc,oIAId;AAAA,2BAJc;AAAA;;AAAA;AAAA;AAKN;;AAAA,oCALM,8BAKN,EALM;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAQ,qCAAR;AAAA;AAAA;AAAQ,iCAKd;AAAA;AAAA;AALc,6BAAR;AAAA;AAAA;AAAQ,yBAAR;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAQ;AAMb;AAAA;AAAA,SANK;;AAS8B;AAC5C;;AAAA,gBAD4C,8BAC5C,EACQ;AAAA;;AAAA,oBAFoC,oIAEpC;AACE,gFAHkC,oIAGlC;;AAAA,wBADF,8BACE,EADF;AAAA,4BACiD;AADjD;AAAA;AACiD,mCAHb,oIAGa;AAAK,yBAAL,EADjD;AAAA,0TAFoC,oIAEpC;AAAA;AAAA;AAAA;AAAK,qBACH;AAAA;AAAA;AADG,iBAAL;AAAA;AAAA;;AAAA;AAAA;AAAA,gCAED,sFAJqC,oIAIrC,KAFC;;AAAA;AAAA,gCAFoC,oIAEpC,KAFoC,oIAEpC;AAAA;AAAK,aADb;AAAA;AAAA;AAKS,SANmC;;AAQ9B,wIAAE;AAAA;AAAC,SAAH,EAAK,gEAAL,IAAe;AAAA;AAAE,SAAjB,EAAmB,gEAAnB,IAAyB;AAAA;AAAG,SAA5B,EAA6B,+DAA7B,IAAuC;AAAA;AAAC,SAAxC,EAA0C,gEAA1C,IAAiD;AAAA;AAAC,SAAlD,EAAoD,+DAApD,IAA4D;AAAA;AAAC,SAA7D,EAAgE,+DAAhE;;AACQ;AAAA,yHAAE,6JAAF;AAA+C,SAA/C;;AACb,gJAA4B,wHAA5B;AACM;;AAanB;;AAAA,YADI,8BACJ,EADI;AAAA;AAAI,SACR;AAAA;AAAA;AAvEiB,KAAf;;AAyEF;AA1EN;;AA2EE;;AAAA,QADI,8BACJ,EADI;AAAA;AAAA;AAAA;AAAA;AAAA;AAAa,KACjB;AAAA;AAAA;;AADI;AACmB;AAAA;;AACyB;AAAA,8HAA1C,2GAAQ,qIAAR,OAA0C;AAF5C;AAEiD;AAGjD;AAAA;;AAAA;AAED;AAAA,mBAAqC;AAAA,yCAErB,sHAFqB,GACnB,gHADmB;AAEjB,aAFpB,CAAyB,SAAzB,8FAAyB,CAAzB;;AAGK;AAAA;AALJ;AAAI;AAUJ;AAAA;;AAAA;AACa;AAAA,6BAAG,sBAAH,EAAoB,sBAApB;;AADb;AAAA;;AAAA;AAAA;AAAA;AAAC;AAOP;AAAA,WAEG;AAAA,6BAG4B;AAAA,8HAAjB,uBAAiB;AAAE,SAH9B,MACc;AAAA,0HAAQ,0IAAR;AACA;AAAU;AACM,KALjC,CACG,SADH,yFACG,CADH;AAKiC,C;;;;;;;;AChIrC;AAAA;AACO,SAASrc,QAAT,CAAkBlE,CAAlB,EAAqBwgB,KAArB,EAA4Brc,OAA5B,EAAqC;AACxC,QAAInE,KAAK,IAAT,EAAe;AACX,YAAIwgB,UAAU,EAAd,EAAkB;AACd,gBAAM3gB,IAAI,CAACG,CAAX;AACA,gBAAI,CAACf,OAAOoK,KAAP,CAAaxJ,CAAb,CAAL,EAAsB;AAClB,uBAAO,CAAC,IAAD,EAAOA,CAAP,CAAP;AACH;AACJ;AACJ;AACD,WAAO,CAAC,KAAD,EAAQsE,OAAR,CAAP;AACH;AACM,SAASK,KAAT,CAAexE,CAAf,EAA8B;AAAA,QAAZwgB,KAAY,uEAAJ,EAAI;;AACjC,QAAMlc,IAAIJ,SAASlE,CAAT,EAAYwgB,KAAZ,EAAmB,CAAnB,CAAV;AACA,QAAIlc,EAAE,CAAF,CAAJ,EAAU;AACN,eAAOA,EAAE,CAAF,CAAP;AACH,KAFD,MAGK;AACD;AACA,cAAM,IAAInU,KAAJ,CAAU,2CAAV,CAAN;AACH;AACJ,C;;;;;;;;;;;;AArBD,IAAMswB,aAAa,0CAAnB;AACA,IAAMC,gBAAgB,OAAtB;AACA,IAAMC,gBAAgB,QAAtB;AACA,IAAMC,iBAAiB,QAAvB;AACO,SAASC,OAAT,CAAiB7gB,CAAjB,EAAoBwgB,KAApB,EAA2B;AAC9B,QAAMntB,MAAMotB,WAAWlc,IAAX,CAAgBvE,CAAhB,CAAZ;AACA,QAAI3M,OAAO,IAAX,EAAiB;AACb,YAAImtB,SAAS,IAAb,EAAmB;AACf,oBAAQntB,IAAI,CAAJ,CAAR;AACI,qBAAK,IAAL;AACImtB,4BAAQ,CAAR;AACA;AACJ,qBAAK,IAAL;AACIA,4BAAQ,CAAR;AACA;AACJ,qBAAK,IAAL;AACIA,4BAAQ,EAAR;AACA;AACJ;AACIA,4BAAQ,EAAR;AACA;AAZR;AAcH;AACD,gBAAQA,KAAR;AACI,iBAAK,CAAL;AACI,uBAAOE,cAAc9W,IAAd,CAAmBvW,IAAI,CAAJ,CAAnB,IAA6B,IAA7B,GAAoC,CAACA,GAAD,EAAM,CAAN,CAA3C;AACJ,iBAAK,CAAL;AACI,uBAAOstB,cAAc/W,IAAd,CAAmBvW,IAAI,CAAJ,CAAnB,IAA6B,IAA7B,GAAoC,CAACA,GAAD,EAAM,CAAN,CAA3C;AACJ,iBAAK,EAAL;AACI,uBAAOutB,eAAehX,IAAf,CAAoBvW,IAAI,CAAJ,CAApB,IAA8B,IAA9B,GAAqC,CAACA,GAAD,EAAM,EAAN,CAA5C;AACJ,iBAAK,EAAL;AACI,uBAAO,CAACA,GAAD,EAAM,EAAN,CAAP;AACJ;AACI,sBAAM,IAAIlD,KAAJ,CAAU,eAAV,CAAN;AAVR;AAYH;AACD,WAAO,IAAP;AACH;AACD;AACO,SAAS+T,QAAT,CAAkBlE,CAAlB,EAAqBwgB,KAArB,EAA4Brc,OAA5B,EAAqC;AACxC,QAAMG,IAAIuc,QAAQ7gB,CAAR,EAAWwgB,KAAX,CAAV;AACA,QAAIlc,MAAM,IAAV,EAAgB;AAAA,gCAC2BA,CAD3B;AAAA;AAAA,YACFqE,MADE;AAAA,YACQvF,MADR;AAAA,YACiB0d,MADjB;;AAEZ,YAAMjhB,IAAIuJ,SAAS,CAACT,UAAU,EAAX,IAAiBvF,MAA1B,EAAkC0d,MAAlC,CAAV;AACA,YAAI,CAAC7hB,OAAOoK,KAAP,CAAaxJ,CAAb,CAAL,EAAsB;AAClB,mBAAO,CAAC,IAAD,EAAOA,CAAP,CAAP;AACH;AACJ;AACD,WAAO,CAAC,KAAD,EAAQsE,OAAR,CAAP;AACH;AACM,SAASK,KAAT,CAAexE,CAAf,EAAkBwgB,KAAlB,EAAyB;AAC5B,QAAMlc,IAAIJ,SAASlE,CAAT,EAAYwgB,KAAZ,EAAmB,CAAnB,CAAV;AACA,QAAIlc,EAAE,CAAF,CAAJ,EAAU;AACN,eAAOA,EAAE,CAAF,CAAP;AACH,KAFD,MAGK;AACD,cAAM,IAAInU,KAAJ,CAAU,2CAAV,CAAN;AACH;AACJ,C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACpDI;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAKD,oBAAgB,+OAAhB;;AAOC,yBAAuB;AAAiB;AAAA;AAAO,KAAP;;AAAjB;AAAA;AAAiC,KAAjC;AAAiC,CAAjC,GAAvB;;;;AAGA,uBAAqB;AAAA;AAAuB,CAAvB,CAArB;;;;AAEiB;AAChB;;AAAA,QADgB,8BAChB,EAAkC;AAAA;AAAM,KAAxC,MADgB;AAC2B;;AAAA,YAD3B,8BAC2B,EAAoC;AAAA;AAAM,SAA1C,MAD3B;AAEhB;;AAAA,gBAFgB,8BAEhB,EAAwC;AAAA;AAAG,aAA3C,MAFgB;AAE8B;;AAAA,oBAF9B,8BAE8B,EAA2B;AAAA;AAAC,iBAA5B,MAAyC;AAAA;AAAK;AAAA;AAAA;AAAA;AAAA;;;;AAE7F,uBAAqB;AAAA;AAAuC,CAAvC,CAArB;;;;AAEA,qBAAmB;AAAA;AAA0C,CAA1C,CAAnB;;;;AAEA,wBAAsB;AAAA;AAAgD,CAAhD,CAAtB;;;;AAEA,yBAAuB;AAAA;AAA8C,CAA9C,CAAvB;;;AAIK;AAAA;;AACJ;;AAAA,QADI,8BACJ;AAAA,gBADI,oIACJ;AAAA,WADI;AAAA;;AAEJ;;AAAA,YAFI,8BAEJ,EAFI;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAQ,iBAAR;AAAA;AAAA;AAAQ,aAAR;AAAA;AAAA;AAAQ,SAEZ;AAAA;AAAA;;AAFI;AAAA;AAAA,yBAGD,yEAHC,aAGc,gCAHd;;AAAA;AAAA;;AAIJ;;AAAA,oBAJI,8BAIJ,EAJI;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAQ,yBAAR;AAAA;AAAA;AAAQ,qBAAR;AAAA;AAAA;AAAQ,iBAIZ;AAAA;AAAA;;AAJI;AAKF;AAAA,4BAAG,qBAAH;AAAA,qCACK,yEADL,aACoB,6BAAgB,YAAhB,EADpB;AAAA;AAAA,qCAGK,yEAHL,aAGoB,uCAHpB;AAAA;;AALE;AAAA;;AASJ;;AAAA,4BATI,8BASJ,EATI;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAQ,iCAAR;AAAA;AAAA;AAAQ,6BAAR;AAAA;AAAA;AAAQ,yBASZ;AAAA;AAAA;;AATI;AAUF;AAAA,oCAAG,qBAAH,EACI;AAAA,wCAAG,cAAH;AAAA,iDACK,yEADL,aACoB,iBADpB;AAAA;AAAA,iDAGK,yEAHL,aAGoB,6BAAgB,YAAhB,EAHpB;AAAA;AAGwC,iCAJ5C;AAAA,6CAMK,yEANL,aAMoB,uCANpB;AAAA;;AAVE;AAiBJ;;AAAA,oCAjBI,8BAiBJ;AAAA,6CACG,gEAlBC,oIAkBD,IADH,EAjBI,oIAiBJ;AAAA,uCAjBI;AAAA;;AAmBJ;;AAAA,wCAnBI,8BAmBJ,EAnBI;AAAA;AAAA;AAAA;AAAA;AAAA;AAAQ,qCAmBZ;AAAA;AAAA;;AAnBI;AAAA;AAAA,qDAoBD,yEApBC,aAoBc,uCApBd;;AAAA;AAqBJ;;AAAA,gDArBI,8BAqBJ;AAAA,wDArBI,oIAqBJ;AAAA,mDArBI;AAsBJ;;AAAA,oDAtBI,8BAsBJ;AAAA,6DACsB,gEAvBlB,oIAuBkB,WADtB,EAtBI,oIAsBJ;AAAA,uDAtBI;AAwBJ;;AAAA,wDAxBI,8BAwBJ;AAAA,iEACG,gEAzBC,oIAyBD,IADH,EAxBI,oIAwBJ;AAAA,2DAxBI;AA0BJ,8KAAY,4IAAZ;;AAAA,4DA1BI,8BA0BJ;AAAA,qEACG,gEA3BC,oIA2BD,IADH,EA1BI,oIA0BJ;AAAA,+DAGE;AAA0C,oIAA1C,4GAAQ,wIAAR;AAAA,qEACmB,gEAAlB,2FAAkB,CADnB,EAC6B,sFAD7B;AACkD;AA9BxC;AAAA;AAAA;;AAAR;AAAQ;;AAAR;;AAAA;;AAAA;AAAQ;AAAA;AAkCd;AACU;AAAA,sBACC;AAAA;AAAkB,SADnB,MAGE;AAAoB;AAApB;AAAA;AACJ,mBAAiB,sJAAjB;AADqB;AAHlB,KAAD;;AADV;AAAA;;AAOE;;AAAA,QADI,8BACJ,EADI;AACY,mDADZ,oIACY;;AAAA,YADZ,8BACY,EADZ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAa,SACD;AAAA;AAAA;AADC,KACjB;AAAA;AAAA;;AADI;AAAA;AAAA,oBAEF,uGAFE,EAEE,iCAFF;;AAAA;AAAA;;AAGJ;;AAAA,gBAHI,8BAGJ,EAHI;AAAA;AAAA;AAAA;AAAA;AAAA;AAAa,aAGjB;AAAA;AAAA;;AAHI;AAAA;AAAA,4BAIF,2GAAC,qFAAD,EAAsB,gEAAtB,EAJE,EAI8B,iBAJ9B;;AAAA;AAAA;AAAA,gCAME,uGANF,EAMM,mBAAa,qCAAb,yBANN;AAAA;AAOJ;;AAAA,4BAPI,8BAOJ;AAAA,oCACE,2GAAC,gEAAD,EADF;AAAA;AAAA,oCAG2B,0GAAzB,qBAAmB,uGAAnB,CAAyB,CAH3B;AAAA;AAPiB;;AAAb;;AAAA;AAUsC;AAG7B;AAAA;;AAAA,4BAEX;AAAA;AAAA;AAAA,0HAAC,uEAAD,EAAmB,gEAAnB;AAA2B,KAFhB,8BAIX;AAAA;AAAA,kIAAM,2GAAC,oEAAD,EAAc,gEAAd,EAAN;AAA4B,KAJjB,MAMX;AAAA;AAAG;AANgB;AAUvB;AAAA,WAAiB;AAAA;AAAY,KAA7B,MAAK,iBAAL;AAA6B;AAIzB;AACI;AAAY;AAAZ,gBACJ,uIADI;AAAS,KAAT;;AAER,WAAiC;AAAA;AAAY,KAA7C,2GAAa,uGAAb,EAAiB,iBAAjB;AAHyB,C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AChGxB;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAMA;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAOD;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAGA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAGA,eAAW,kHAAO,YAAP,UAAsB,YAAtB,UAAsC,YAAtC,UACO,YADP,SACuB,YADvB,SACkC,YADlC,SAC6C,YAD7C,UAEO,aAFP,GAAX;AAIA,kBAAc,qHAAU,YAAV,GAAd;;AAG+B;AAAA;;AAAA;AACpB;;AAAA,YADoB,8BACpB;AAAA;AAAA;AAAA;AAAA;AAD4B,KAAR;AAAA;AAAA;;AAAA;AACM;AAAA;;AAC9B;AAAA;AAFwB;AAEX;;;;AAGnB,2BAAyB;AAAiB;AAAA;AAAO,KAAP;;AAAjB;AAAA;AAAiC,KAAjC;AAAiC,CAAjC,GAAzB;;;;AAGA,yBAAuB;AAAA;AAAuB,CAAvB,CAAvB;;;;AAEA,uBAAqB;AAAA;AAA0B,CAA1B,CAArB;;;AAIG;AAAe;AAAA,6BACA;AAAA;AAAI,SADJ,MAGL;AAAA,6BAA0B,8EAA1B;;AAAA,oCACM;AAAA;AAAI,aADV;AAAA;AAAA;AAAuC;AAEpC,KALE;;AAMnB;AANgB;AAWZ;AAA2B;AAA3B;;AAEF;;AAAA,QADI,8BACJ;AAAA,oBADI,oIACJ;AAAA,WADI;AACiB;;AAAA,YADjB,8BACiB;AAAA,wBADjB,oIACiB;AAAA,eADjB;AACoC;;AAAA,gBADpC,8BACoC;AAAA,4BADpC,oIACoC;AAAA;AAAA;AAAA;AADjC;AAAA;;AAAH;AAAA;AAAA;;AAAA;AAGJ;;AAAA,gBAHI,8BAGJ;AAAA,wBACE,aAJE,oIAIF,IADF,EAHI,oIAGJ;AAAA,mBAHI;AAKJ;;AAAA,oBALI,8BAKJ;AAAA,4BACE,aANE,oIAMF,IADF,EALI,oIAKJ;AAAA;AAAA,4BAGsB,aAApB,iFAAoB,CAHtB,EAG+B,wBAH/B;AAAA;AALO;;AAAH;AADU;AAahB;AACU;AAAA;AAAA,8BAEF;AAAA;AAAgB,aAFd,MAIE;AAAO;AAAP,wBACQ,6HADR;AAAA;AAAA;AAAI;AAJH;AAAA,KAAH;;AAMW,qHAArB,WAAW,uGAAX,MAAqB;AAAQ;AAG7B,mBAAe;AAAA,qHAAa;AAAA;AAAQ,KAArB;AAAqB,CAArB,CAAf;;AAGC,kBACG;AAGG;AAAA,uHAAc;AAAA;AAAI,SAAlB,EADA,sGAAe;AAAA;AAAA,SAAf,OACA;AAAmB,KAAnB;;AACP;AAAA;;AAAA;AACE;;AAAA,gBADF,gCACE,EADF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAQ,aACN;AAAA;AAAA;AADM,SAAR;AAAA;AAAA;;AAAA;AAEU;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;;AAFV;AAAA;AAAA;AAKW,KALX;AAJ0B,CAAtB,GADH;;;;AAkBA,kBAGD;AAAyB;AAAA;;AAAA;AAAA;AACN;;AAAA,oBADM,8BACN;AAAA,iDADM,oIACN,KADM,oIACN;AAAA;AAAA;AAAA;AADc,aAAR;AAAA;AAAA;AAAQ,SAAR;AAAA;AAAA;;AAAA;AAAA;AAAA,wBAEX,yHAFW;;AAAA;AAAA;;AAAA;AAAA;AAAA,gCAIX,qHAJW;;AAAA;AAAA;AAAA;;AAAA;AAKV,KALU;;AAQC;AAAA;;AAAA;AACpB;;AAAA,gBADoB,gCACpB;AAAA;AAAA;AAAA;AAAA;AAD4B,SAAR;AAAA;AAAA;;AAAA;AAEZ;AAAA;;AACJ;;AAAA,oBADI,8BACJ,EADI;AAAA;AAAA;AACsB,uEADtB,oIACsB;;AAAA,gCADtB,8BACsB;AAAA,4CADtB,oIACsB,KADtB,oIACsB,KADtB,oIACsB;AAAA;AAAA;AAAA;AADpB,yBAAF;AAAA;AAAA;AAAE,qBAAF;AAAA;AAAA;AAAE,iBACN;AAAA;AAAA;;AADI;AAAA;AAAA,gCAEI,4MAAW;AAAA;AAAC,yBAAZ,0BAFJ;;AAAA;AAGJ;;AAAA,4BAHI,8BAGJ;AAAA,oCACQ,2GAAC,sGAAW;AAAA;AAAC,6BAAZ,MAJL,oIAIK,IAAD,EADR,EAHI,oIAGJ;AAAA;AAAA,oCAGQ,uGAHR;AAAA;;AAHI;;AAFY;AAQD,KARC;;AAS1B;AAAA;;AAAA;AACE;;AAAA,gBADF,gCACE;AAAA;AAAA;AAAA;AAAA;AADM,SAAR;AAAA;AAAA;;AAAA;AAEU;AAAA;;AAAA;AAAA;AACI;;AAAA,4BADJ,8BACI,EADJ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAE,6BAAF;AAAA;AAAA;AAAE,yBACE;AAAA;AAAA;AADF,qBAAF;AAAA;AAAA;AAAE,iBAAF;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAFV;AAKe,KALf;AAKe,CAtBf,GAHC;;;;AA6BgB;AAAA;;AAAA;AACf;;AAAA,YADe,gCACf,EADe;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAQ,aAAR;AAAA;AAAA;AAAQ,SACvB;AAAA;AAAA;AADuB,KAAR;AAAA;AAAA;;AAAA;AAEP;AAAA;;AACJ;;AAAA,gBADI,8BACJ,EADI;AAAA;AACS,4EADT,oIACS;;AAAA,wBADT,gCACS;AAAA,qCADT,oIACS,KADT,oIACS;AAAA;AAAA,qCADT,oIACS,KADT,oIACS;AAAA;AADP,iBAAF;AAAA;AAAA;AAAE,aACN;AAAA;AAAA;;AADI;AAAA;AAAA;;AAAA;AAAA;;AAAA;AAIJ;;AAAA,4BAJI,gCAIJ;AAAA;AAAA;AAAA;AAAA;AAJM,qBAAF;AAAA;AAAA;;AAAA;AAAA;AAAA,+CAMO,uGANP;AAAA;;AAAA;;AAFO;AAAA;AAAA;AASN;;;;AAIM;AAAA;;AAAA;AAAA;AACJ;;AAAA,gBADI,8BACJ,EADI;AAAA;AACY,8DADZ,oIACY;;AAAA,wBADZ,8BACY;AAAA,qCADZ,oIACY;AAAA;AAAA;AAAA;AADJ,iBAAR;AAAA;AAAA;AAAQ,aACZ;AAAA;AAAA;AADY,SAAR;AAAA;AAAA;AAAQ,KAAR;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAGN;;;;AAGK;AAAA;;AAAA;AAAA;AAAA;AACF;;AAAA,oBADE,gCACF;AAAA;AAAA;AAAA;AAAA;AADU,aAAR;AAAA;AAAA;AAAQ,SAAR;AAAA;AAAA;AAAQ,KAAR;AAAA;AAAA;;AAAA;AAEN;AAAA;;AAAA;AAAA;AACS;;AAAA,wBADT,8BACS,EADT;AAAA;AACsB,oFADtB,oIACsB;;AAAA,gCADtB,gCACsB,EADtB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAE,iCAAF;AAAA;AAAA;AAAA;AAAA;AAAE,6BACoB,MADtB;AAAA;AAAA;AAAA;AAAA;AAAE,yBAAF;AAAA;AAAA;AAAE,qBACO;AAAA;AAAA;AADP,iBAAF;AAAA;AAAA;AAAE,aAAF;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAAA;AAAA;AAAA;AAIS;;AAAA,oCAJT,gCAIS,EAJT;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAE,qCAAF;AAAA;AAAA;AAAA;AAAA;AAAE,iCAIO,MAJT;AAAA;AAAA;AAAA;AAAA;AAAE,6BAAF;AAAA;AAAA;AAAE,yBAAF;AAAA;AAAA;AAAE,qBAAF;AAAA;AAAA;;AAAA;AAAA;AAAA,+CAMO,uGANP;;AAAA;AAAA;AAAA;;AAAA;;AAFM;AAAA;AAAA;AAUL;;;;AAIX;AAAA,WAGG;AAAA;AAAc,KAHjB,CAEG,wGADA,sGAAS;AAAA;AAAQ,KAAjB,EADH,+HACG,CACA;AAAA;AAAA,OAFH;AAGiB;;;AAMb;AACA;AACU;AAAA;AAAA,2CAEF;AAAA;AAAiB,iBAFf,MAIF;AAAA,2BAAa,+IAAb;AAAuB;AAJjB,aAAJ;AAAA;AAAA;AAAI,SAAJ;;AAOS,yHAAnB,cAAa,uGAAb,CAAmB;AAAQ,KAR3B;;AAYI;AAAc;AAAA,mBAAgB,+IAAhB;AAAkC,SAAlC;;AACJ,qJAAK;AAAA;AAAS,SAAd;AADV;;AAGF;;AAAA,YADI,8BACJ,EACM;AAAS,sCAAa,YAAb,EAFX,oIAEW,KAA0B,uGAA1B;AACb,wBAAK;AAAA;AAAe,aAApB,EAAqB,UAHnB,oIAGmB,KAHnB,oIAGmB,KAAsB,0HAAtB,CAArB;AADU,SADZ,MADI;AAIJ;;AAAA,gBAJI,8BAIJ,EACE;AAAA,4BAAK;AAAA;AAAiB,iBAAtB,EAAuB,QALrB,oIAKqB,KALrB,oIAKqB,KAAwC,YAAhB,eAAgB,CAAxC,CAAvB,EALE,oIAKF;AAA8E,aADhF,MAJI;AAAA;;AAAA;AAAA;AAAA;AAAA;AAQJ;;AAAA,4BARI,gCAQJ,EARI;AAAA;AAAA;AAAA,wCAQiD;AARjD;AAAA;AAAA;AAQiD;AAAK,qCAAL,EARjD;AAAA;AAAA,2CAQiD;AARjD;AAAA;AAAA;AAQiD;AAAK,qCAAL;AAAA,yEARjD,2HAQiD;AAAA;AAAA;AAAA;AARlC,iCAAf;AAAA;AAAA;AAAe,6BAAf;AAAA,oCAQiD;AARjD;AAAA;AAAA;AAQiD;AAAK,iCAAL,EARjD;AAAA;AAAA;AAAA;AAAA;AAAe,6BAAf;AAAA;AAAA;AAAe,yBAQnB,MARI;AAAA,gCAQiD;AARjD;AAAA;AAAA;AAQiD;AAAK,6BAAL,EARjD;AAAA;AAAA;AAAA;AAAA;AAAe,yBAAf;AAAA;AAAA;AAAe;AAAA,iBAAf;AAAA;AAAA;;AAAA;AAOF;AAAA;AAAA;AAAA,2BAAQ,aAAR;;AAEM;AAAA;;AAAA;AACJ;;AAAA,gCADI,gCACJ,EADI;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAE,iCAAF;AAAA;AAAA;AAAE,6BACN,MADI;AAAA;AAAA;AAAA;AAAA;AAAE,yBAAF;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;;AATJ;AAAA;;AAAA;AAAA;AAAA;AAAA;AAiBJ;;AAAA,oCAjBI,8BAiBJ;AAAA,iDAjBI,oIAiBJ;AAAA;AAAA;AAAA;AAjBmB;AAAA,yBAAf;AAAA;AAAA;;AAAA;AAgBF;AAAA;;AAEA;AAAA;;AAlBE;AAAA,+CAmBQ,uGAnBR;AAAA;;AAAA;AAAe;AAAA;AAFN,KAAX;;AAsBG,6CAAkB,uGAAlB;AACX;AApCe;AA8CX;AAGG;AAAA,uHADA;AAAA;AAAa,SADhB,gIAEG;AAAU,KAAV;;AAIH;AAAA,eACG;AAAyD;AAAA;AAAgB,aAAhB;;AAAzD;AAAA;AAA4E,aAA5E;AAA4E,SAA5E,EADH;AAC+E,KAD/E;;AAKA;AAAA;AAAiC,KAAjC;;AAIA;AAAA;AAAa,KAAb;;AAOI;AACA;AAAA;AAAqC,SAArC;;AAIA;AAAA,uCAAkB,0HAAlB;AAA8C,SAA9C;;AAEE;AAAA,wCAEF;AAAA,uBAIG,oKAJH,CAGG,gKAHH,CAEG,oLAFH,CACG,gKAAgB,uGAAhB,SADH;AAI+B,aAN7B,kCAQE;AAAA;;AACM;;AAAA;AAAA,0JAEF;AAAA,2IAAC,cAFC,6GACE,wHADF,CAED,CAAD;AAAa,qBAFX,MAIF;AAAA;AAAI;AAJa,iBAAf,MAMI;AAAA;AAAA,wDACQ,mCADR;;AAAA;AAEF;AAAA;AAAA;;AAFE;AAAA,sDAMC;AAAA,kJADA,wIADH,0HACG,OAAqB,uGAArB,SADH,qKAEG;AAAQ,6BANT,MAQF;AAAA,mJAAC,oCAAD;AAAe;;AARb;AAAA;AAAe;;AAS7B;AAhBQ,aARN,MA2BF;AAAA,iDAAe,yHAAf;AAAkB;AA3BX,SAAL;AAAA;AAAA;AAPsC,KAAxC;;AAqCL,qHADH,kBAAiB,uGAAjB,EAAoB,sUAApB,EAAqD,sUAArD,CACG;AA5DoB;AAgEvB;AAAA,iHAAqB;AAAA,iCACO,eADP,qBAEQ,SAFR;AAGD,KAHpB;AAG8B;AAI1B;AACM;AAAA;;AAAA,qCAEF;AAAA;AAAQ,SAFN;AAAA,4CAIF;AAAA;AAAQ,aAJN,MAMF;AAAA;AAAG;AANI,SAAL;AAAA;AAAA;AAAK,KAAL;;AAQc,qHAAxB,yGAAY,uGAAZ,QAAwB;AATd;AAaV,WACI;AACM;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAIF;AAAA;;AAJE;AAAA;AAAA;AAAU,KAAV;;AAMV;AAAA,gCAAS;AAAA,4BAAT,aAAS;AAAA,SAAT;AAAA;AAPsB,CAAlB,GADJ;AAWA,iBACA;AAAA,WAAoB;AAAA;AAAc,KAAlC;AAAA;AAAA;AAAQ,SAAR;AAAA;AAAA,EADA;AAKA,qBACA;AAAA,WAAiC;AAAA;AAAY,KAA7C;AAAA;AAAA,6HAAa;AAAA;AAAQ,aAArB;AAAqB,SAArB;AAAA;AAAA,EADA,C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACzTA,cAAU,wEAAV;AAIM;AAAA,wBAEQ;AAAA,eAAO,2FAAP;AAA6B,KAFrC,0BAGQ;AAAA,eAAuB,6FAAvB;AAA+C,KAHvD,0BAIU;AAAA,eAAuB,yFAAvB;AAA2C,KAJrD,MACW;AAAA;AAAG;AADV;AASN;AACA;AAAA,uBACM,gBAE4B,uFAAoB,kIAApB,QAAd,oBAAc,CAF5B,mBAIE;AAAQ;AACZ;AADS,SAAL,EAJF,GACiB,iBAFvB;AAM0C,KAN1C;;AAOJ;AARwB;AAYpB;AACA;AAAA,2BAAY,uBAAZ;AAAkC,KAAlC;;AACJ,WACG,wFADH;AAFyB;AASrB;AAEM;AAAA;AAAG,KAAH;;AAFN;;AAK2C;AAAA;AAAI,KAAJ;;AAA5B;AAAA;AAAiE,KAAjE;;AACF;AACF,yIAAa;AAAA,eAAiB;AAAA;AAAG,SAApB;AAAA,KAAb;;AAEP;AAGQ;AAAU;AACI;AAER;AAKV,0BAAO,2FAAwB,sHAAxB,oBAAP;AARW,SAAP;;AASZ;AAZyB,KAArB;;AAcA;AACA;AAAA,mBAEY;AAAA;AAAQ,aAFpB,CACG,yFADH;AAEoB,SAFpB;;AAGJ;AAJuB,KAAnB;;AAKR,WAGG,4FAHH,CAEI;AAAA,qBAA0B,4FAArB,oBAAL;AAAkD,KAFtD,CAAuB,4FAAvB;AA5B6B;AAoCzB;AACA;AAAA,uBACU,eAEgB,gBAFhB,GAC0C,yFAA1B,4BAF1B;AAIK,KAJL;;AAOc,kBAAG,qBAAG,mEAAH,CAAH;AACd,WACG,4FADH;AATmB;AAgBf;AAAU,wBAAM,uBAAN;AACd,WAEG,4FAFH,CACG,oCADH;AADW;AAOX;AAAc,6CAAsB,oBAAtB;AAClB,WAEG,0FAFH,CACG,uFAAoB,oHAAS,oBAAT,GAApB,cADH;AADS;;AAOH;AAAA;;AAAA;AAIF;AAAA,gBAAG,+BAAH;AAAA;AAAA;AAAA;AAAA;;AAJE;AAAA;AAAA;AAAG;;;AAUL;AACc;AAAA;AAAiB,KAAjB;;AAEd;AAAmB;AAAnB;AAAmC,KAAnC;;AAEA;AAAA;AAAwB,KAAxB;;AAGM;AAAA;;AAAA;AAEF;AAA2C,mCAA3C,4GAAQ,kIAAR;AACmB,2MAAW;AAAmB;AAAnB;AAAwC,iBAAxC,EAAX;AAAnB;;AAGA;AAA6C,mCAA7C,4GAAQ,oIAAR;AACA,uBAAY,8IAAZ;AAPE;AAAU,KAAV;;AAUF;AAAU;AAAA,iCACa;AAAA;AAAC,aADd,MAEC;AAAA;AAAyB;AAAA,SAF1B;;AAKN;AAAU;AAAA,wCAEF;AAAA,sIAAU,yIAAV;AAAyC,iBAFvC,MACM;AAAA,oIAAC,iBAAmB,OAAnB,EAAyB,mBAAzB,CAAD;AAA0D;AACzB,aAFvC;;AAAV;;AAGG,gBACM,iBADN,EAEH;AAAmB;AAAnB;AAAsC,aAFnC,+BAIK;AAAA,uBAAY,wJAAZ;AAA4B,aAJjC,UAKM,iBALN,EAKe;AAAA;AAA4C,aAL3D,MAMA;AAAA,kIAAU,gIAAV;AAAkC;AAT9B,SAAP;;AAUR;AAfW,KAAP;;AAmBJ;AAAA,YAC0C,iBAD1C;AAAA,oBAGiC,iJAA1B,uFAHP;AAAA,mBAKyC,oBALzC;AAAA,oBAOW,qJADH,qEAAW,6DAAU,mEAAV,EAAsB,2GAAC,qFAAD,EAAtB,SAAX,EANR;AAAA,mBASyC,sBATzC,EAUO;AAAyC,+BAAzC,4GAAQ,2HAAR;AAAA,oBAC0B,iJAA1B,uFADA;AACmD,SAX1D,UAayC,oBAbzC;AAAA,oBAckC,0IAAiB,eAAjB,UAA1B,uFAdR;AAAA;AAAA;AAAA;AAeQ,KAfR;;AAkBA;AACQ;AAAa;AAAA,qCACI;AAAA,+FAAW;AAAkB;AAAlB;AAA8C,qBAA9C,EAAX;AAA0D,iBAD9D;AAAA;AAAA;AAEL,aAFK;;AAId,6HADH,qHACG;AAJW,SAAV;;AAKS,mIAAU,2BAAV;AAAjB;AAAuD,KANvD;;AAaD,mBAJH,QAEa;AAAiB;AAAjB;AAAqC,KAFlD,8GAAgB;AAAmB;AAAnB,4EAAgC,mEAAhC;AAAmC,KAAnC,EAAhB,yBAIG;AApE+B;AAoG9B;AACM;AAAA;AAAA;AAAA;AAAA;AAAA;AAAI,KAAJ;;AAGV;AAJwB;AASpB;AACA;AAAA,sBACM;AAAA;AACW;AAAA;;AACJ;AAAA,2BAAuB,wFAAvB;;AACS;AAAA,qHAAuB,wHAAc,iFAAd,GAAvB;;AACN;AAAA;;AACJ;AAAA;;AACE;AAAA;;AACU;AAAA;;AACF;AAAA;;AACf;AAAA,sIAAQ,mIAAR;AATD;AAAI,SAAJ,EADN;AAU2C,KAV3C;;AAWJ;AAZoB,C;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC9NnB;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAMD;AAAA;AAAoC;AAKhC;AACuC;AAAA;AAAqB,KAArB;;AAC3C;AAFe;AAQX;AAAA;AACM;;AAAA;AAAA;AAAA,WAGE;AACA;AAAA,0BACM;AAAA;;AAAA;AAAA;AAAA;;AAGF;AAAA,sCACG,eAAH,cACK,kCAFL;AAHE;AAAa,aAAb,EADN;AAMwC,SANxC;;AAOJ;AARiC;;AASzC,sDAEE,eAAqB,oBAArB,KAFF;AAbW;AAkBe;AAAA;AAAuB;AAAvB;AAAA;AAA+B,SAA/B;AAA+B,KAA/B;AAA+B,C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACnCzD,aAAS,wEAAT;AAII;AAAa;AAKjB,sHAAQ,oHAAR;AALQ;AASF;AAAA,wBAEQ;AAAA;AAAgB,KAFxB,0BAG+B;AAAA,8BAAtB,2BAAsB;AAAa,KAH5C,0BAIgC;AAAA,6BAAtB,2BAAsB;AAAY,KAJ5C,MACW;AAAA;AAAG;AADV;;AASN;AAAc;AAAA;AAAY,KAAZ;;AACC;AAAA;AAAY,KAAZ;;AAEf;AAAA,uBACM,gBAEe,iCAAD,GAA+B,wBAF7C,mBAG0C,2GAAQ,iHAAR,CAAvB,2BAAD,GAA4C,wBAH9D,GACiB,gBAFvB;AAIuF,KAJvF;;AAKJ,4HAAqB,2GAAQ,gHAAR,IAArB;AARe;;;AASf,uBAAmB;AAAA;AAAoB,CAApB,CAAnB;AAII;AACA;AAAA,2BAAY,sBAAZ;AAAiC,KAAjC;;AACJ;AAFyB;AAQrB;AAEM;AAAA;AAAG,KAAH;;AAFN;;AAK2C;AAAA;AAAI,KAAJ;;AAA5B;AAAA;AAAiE,KAAjE;;AACF;AACF,yIAAa;AAAA,eAAiB;AAAA;AAAG,SAApB;AAAA,KAAb;;AAEP;AAGI;AAAA,mBASuB;AAAA;AAAwB,aAT/C,CAAM,aAEI,4GAFJ,GAQF,8BARJ;AASgD,SAThD;;AAWR,qHAAW,gJAAX;AAdkC,KAA9B;;AAiBA;AACA;AAAA,4BAAO,4BAAP;AAAsC,SAAtC;;AACJ,qHAAW,iJAAX;AAFgC,KAA5B;;AAGa;AACA;AACrB,wCACG,6BADH,GAEE,wBAFF;AA/B6B;AAqCzB;AACQ;AAAA;AAAA,oBAAY,gBAAZ,EAAsB,gBAAtB;AAAA;;AACE,0BAOgB;AAAA;AAAsB,SAPtC,MACgB;AAAA,2BAClB;AAAA,6BAGO,0FADH,2GAAQ,wHAAR,EAAsB,wHAAtB,oBACG,CAHP,GAIK,2GAAQ,sHAAR,EAAoB,wHAApB,MAJL;AAIqD,aALnC;AAK+C;AAPxD,KAAT;;AAYE,qCAAG,mEAAH;AAbV,WAcA,sGAAW,4IAAgB,cAAhB,EAAX,yBAdA;AAAmC;AAqBnC;AAAA,WACG,mOAAQ,qHAAR,IAAmB,gIAAnB,EADH,CAAC,mCAAD;AAC8C;AAI9C;AACA;AAAA,sBACM;AAAA;AACW;AAAA;;AACJ;AAAA;;AACS;AAAA,2CAAgB,8GAAhB;;AACN;AAAA;;AACJ;AAAA,2BAAY,2GAAQ,kHAAR,CAAZ;;AACE;AAAA;;AAEP;AAAA,sIAAQ,mIAAR;AARD;AAAI,SAAJ,EADN;AAS2C,KAT3C;;AAUJ;AAXoB,C","file":"fmark.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"fmark\"] = factory();\n\telse\n\t\troot[\"fmark\"] = factory();\n})(this, function() {\nreturn \n\n\n// WEBPACK FOOTER //\n// webpack/universalModuleDefinition"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, {\n \t\t\t\tconfigurable: false,\n \t\t\t\tenumerable: true,\n \t\t\t\tget: getter\n \t\t\t});\n \t\t}\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 22);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap b91ccf83e5419159516b","export function map(f, source, TargetCons) {\n const target = new TargetCons(source.length);\n for (let i = 0; i < source.length; i++) {\n target[i] = f(source[i]);\n }\n return target;\n}\nexport function mapIndexed(f, source, TargetCons) {\n const target = new TargetCons(source.length);\n for (let i = 0; i < source.length; i++) {\n target[i] = f(i, source[i]);\n }\n return target;\n}\nexport function indexed(source) {\n return mapIndexed((i, x) => [i, x], source, Array);\n}\nexport function addRangeInPlace(range, xs) {\n const iter = range[Symbol.iterator]();\n let cur = iter.next();\n while (!cur.done) {\n xs.push(cur.value);\n cur = iter.next();\n }\n}\nexport function copyTo(source, sourceIndex, target, targetIndex, count) {\n while (count--) {\n target[targetIndex++] = source[sourceIndex++];\n }\n}\nexport function partition(f, xs) {\n const ys = [];\n const zs = [];\n let j = 0;\n let k = 0;\n for (let i = 0; i < xs.length; i++) {\n if (f(xs[i])) {\n ys[j++] = xs[i];\n }\n else {\n zs[k++] = xs[i];\n }\n }\n return [ys, zs];\n}\nexport function permute(f, xs) {\n // Keep the type of the array\n const ys = xs.map(() => null);\n const checkFlags = new Array(xs.length);\n for (let i = 0; i < xs.length; i++) {\n const j = f(i);\n if (j < 0 || j >= xs.length) {\n throw new Error(\"Not a valid permutation\");\n }\n ys[j] = xs[i];\n checkFlags[j] = 1;\n }\n for (let i = 0; i < xs.length; i++) {\n if (checkFlags[i] !== 1) {\n throw new Error(\"Not a valid permutation\");\n }\n }\n return ys;\n}\nexport function removeInPlace(item, xs) {\n const i = xs.indexOf(item);\n if (i > -1) {\n xs.splice(i, 1);\n return true;\n }\n return false;\n}\nexport function setSlice(target, lower, upper, source) {\n const length = (upper || target.length - 1) - lower;\n if (ArrayBuffer.isView(target) && source.length <= length) {\n target.set(source, lower);\n }\n else {\n for (let i = lower | 0, j = 0; j <= length; i++, j++) {\n target[i] = source[j];\n }\n }\n}\nexport function sortInPlaceBy(f, xs, dir = 1) {\n return xs.sort((x, y) => {\n x = f(x);\n y = f(y);\n return (x < y ? -1 : x === y ? 0 : 1) * dir;\n });\n}\nexport function unzip(xs) {\n const bs = new Array(xs.length);\n const cs = new Array(xs.length);\n for (let i = 0; i < xs.length; i++) {\n bs[i] = xs[i][0];\n cs[i] = xs[i][1];\n }\n return [bs, cs];\n}\nexport function unzip3(xs) {\n const bs = new Array(xs.length);\n const cs = new Array(xs.length);\n const ds = new Array(xs.length);\n for (let i = 0; i < xs.length; i++) {\n bs[i] = xs[i][0];\n cs[i] = xs[i][1];\n ds[i] = xs[i][2];\n }\n return [bs, cs, ds];\n}\nexport function chunkBySize(size, xs) {\n if (size < 1) {\n throw new Error(\"The input must be positive. parameter name: chunkSize\");\n }\n if (xs.length === 0) {\n return [[]];\n }\n const result = [];\n // add each chunk to the result\n for (let x = 0; x < Math.ceil(xs.length / size); x++) {\n const start = x * size;\n const end = start + size;\n result.push(xs.slice(start, end));\n }\n return result;\n}\nexport function getSubArray(xs, startIndex, count) {\n return xs.slice(startIndex, startIndex + count);\n}\nexport function fill(target, targetIndex, count, value) {\n target.fill(value, targetIndex, targetIndex + count);\n}\nexport function splitAt(index, xs) {\n if (index < 0) {\n throw new Error(\"The input must be non-negative.\");\n }\n if (index > xs.length) {\n throw new Error(\"The input sequence has an insufficient number of elements.\");\n }\n return [xs.slice(0, index), xs.slice(index)];\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/Common/FMark.fs","import { permute as arrayPermute } from \"./Array\";\nimport { chunkBySize as arrayChunkBySize } from \"./Array\";\nimport List from \"./ListClass\";\nimport { getValue, Some } from \"./Option\";\nimport { compare, equals } from \"./Util\";\nexport class Enumerator {\n constructor(iter) {\n this.iter = iter;\n }\n MoveNext() {\n const cur = this.iter.next();\n this.current = cur.value;\n return !cur.done;\n }\n get Current() { return this.current; }\n get get_Current() { return this.current; }\n Reset() {\n throw new Error(\"JS iterators cannot be reset\");\n }\n Dispose() { return; }\n}\nexport function getEnumerator(o) {\n return typeof o.GetEnumerator === \"function\"\n ? o.GetEnumerator() : new Enumerator(o[Symbol.iterator]());\n}\nexport function toIterator(en) {\n return {\n next() {\n return en.MoveNext()\n ? { done: false, value: en.Current }\n : { done: true, value: null };\n },\n };\n}\nfunction __failIfNone(res) {\n if (res == null) {\n throw new Error(\"Seq did not contain any matching element\");\n }\n return getValue(res);\n}\nexport function toList(xs) {\n return foldBack((x, acc) => new List(x, acc), xs, new List());\n}\nexport function ofList(xs) {\n return delay(() => unfold((x) => x.tail != null ? [x.head, x.tail] : null, xs));\n}\nexport function ofArray(xs) {\n return delay(() => unfold((i) => i < xs.length ? [xs[i], i + 1] : null, 0));\n}\nexport function append(xs, ys) {\n return delay(() => {\n let firstDone = false;\n const i = xs[Symbol.iterator]();\n let iters = [i, null];\n return unfold(() => {\n let cur;\n if (!firstDone) {\n cur = iters[0].next();\n if (!cur.done) {\n return [cur.value, iters];\n }\n else {\n firstDone = true;\n iters = [null, ys[Symbol.iterator]()];\n }\n }\n cur = iters[1].next();\n return !cur.done ? [cur.value, iters] : null;\n }, iters);\n });\n}\nexport function average(xs) {\n let count = 1;\n const sum = reduce((acc, x) => {\n count++;\n return acc + x;\n }, xs);\n return sum / count;\n}\nexport function averageBy(f, xs) {\n let count = 1;\n const sum = reduce((acc, x) => {\n count++;\n return (count === 2 ? f(acc) : acc) + f(x);\n }, xs);\n return sum / count;\n}\nexport function concat(xs) {\n return delay(() => {\n const iter = xs[Symbol.iterator]();\n let output = { value: null };\n return unfold((innerIter) => {\n let hasFinished = false;\n while (!hasFinished) {\n if (innerIter == null) {\n const cur = iter.next();\n if (!cur.done) {\n innerIter = cur.value[Symbol.iterator]();\n }\n else {\n hasFinished = true;\n }\n }\n else {\n const cur = innerIter.next();\n if (!cur.done) {\n output = { value: cur.value };\n hasFinished = true;\n }\n else {\n innerIter = null;\n }\n }\n }\n return innerIter != null && output != null ? [output.value, innerIter] : null;\n }, null);\n });\n}\nexport function collect(f, xs) {\n return concat(map(f, xs));\n}\nexport function choose(f, xs) {\n return delay(() => unfold((iter) => {\n let cur = iter.next();\n while (!cur.done) {\n const y = f(cur.value);\n if (y != null) {\n return [getValue(y), iter];\n }\n cur = iter.next();\n }\n return null;\n }, xs[Symbol.iterator]()));\n}\nexport function compareWith(f, xs, ys) {\n const nonZero = tryFind((i) => i !== 0, map2((x, y) => f(x, y), xs, ys));\n return nonZero != null ? getValue(nonZero) : count(xs) - count(ys);\n}\nexport function delay(f) {\n return {\n [Symbol.iterator]: () => f()[Symbol.iterator](),\n };\n}\nexport function empty() {\n return unfold(() => void 0);\n}\nexport function enumerateWhile(cond, xs) {\n return concat(unfold(() => cond() ? [xs, true] : null));\n}\nexport function enumerateThenFinally(xs, finalFn) {\n return delay(() => {\n let iter;\n try {\n iter = xs[Symbol.iterator]();\n }\n catch (err) {\n return void 0;\n }\n finally {\n finalFn();\n }\n return unfold((it) => {\n try {\n const cur = it.next();\n return !cur.done ? [cur.value, it] : null;\n }\n catch (err) {\n return void 0;\n }\n finally {\n finalFn();\n }\n }, iter);\n });\n}\nexport function enumerateUsing(disp, work) {\n let isDisposed = false;\n const disposeOnce = () => {\n if (!isDisposed) {\n isDisposed = true;\n disp.Dispose();\n }\n };\n try {\n return enumerateThenFinally(work(disp), disposeOnce);\n }\n catch (err) {\n return void 0;\n }\n finally {\n disposeOnce();\n }\n}\nexport function exactlyOne(xs) {\n const iter = xs[Symbol.iterator]();\n const fst = iter.next();\n if (fst.done) {\n throw new Error(\"Seq was empty\");\n }\n const snd = iter.next();\n if (!snd.done) {\n throw new Error(\"Seq had multiple items\");\n }\n return fst.value;\n}\nexport function except(itemsToExclude, source) {\n const exclusionItems = Array.from(itemsToExclude);\n const testIsNotInExclusionItems = (element) => !exclusionItems.some((excludedItem) => equals(excludedItem, element));\n return filter(testIsNotInExclusionItems, source);\n}\nexport function exists(f, xs) {\n let cur;\n for (const iter = xs[Symbol.iterator]();;) {\n cur = iter.next();\n if (cur.done) {\n break;\n }\n if (f(cur.value)) {\n return true;\n }\n }\n return false;\n}\nexport function exists2(f, xs, ys) {\n let cur1;\n let cur2;\n for (const iter1 = xs[Symbol.iterator](), iter2 = ys[Symbol.iterator]();;) {\n cur1 = iter1.next();\n cur2 = iter2.next();\n if (cur1.done || cur2.done) {\n break;\n }\n if (f(cur1.value, cur2.value)) {\n return true;\n }\n }\n return false;\n}\nexport function filter(f, xs) {\n return delay(() => unfold((iter) => {\n let cur = iter.next();\n while (!cur.done) {\n if (f(cur.value)) {\n return [cur.value, iter];\n }\n cur = iter.next();\n }\n return null;\n }, xs[Symbol.iterator]()));\n}\nexport function where(f, xs) {\n return filter(f, xs);\n}\nexport function fold(f, acc, xs) {\n if (Array.isArray(xs) || ArrayBuffer.isView(xs)) {\n return xs.reduce(f, acc);\n }\n else {\n let cur;\n for (let i = 0, iter = xs[Symbol.iterator]();; i++) {\n cur = iter.next();\n if (cur.done) {\n break;\n }\n acc = f(acc, cur.value, i);\n }\n return acc;\n }\n}\nexport function foldBack(f, xs, acc) {\n const arr = Array.isArray(xs) || ArrayBuffer.isView(xs) ? xs : Array.from(xs);\n for (let i = arr.length - 1; i >= 0; i--) {\n acc = f(arr[i], acc, i);\n }\n return acc;\n}\nexport function fold2(f, acc, xs, ys) {\n const iter1 = xs[Symbol.iterator]();\n const iter2 = ys[Symbol.iterator]();\n let cur1;\n let cur2;\n for (let i = 0;; i++) {\n cur1 = iter1.next();\n cur2 = iter2.next();\n if (cur1.done || cur2.done) {\n break;\n }\n acc = f(acc, cur1.value, cur2.value, i);\n }\n return acc;\n}\nexport function foldBack2(f, xs, ys, acc) {\n const ar1 = Array.isArray(xs) || ArrayBuffer.isView(xs) ? xs : Array.from(xs);\n const ar2 = Array.isArray(ys) || ArrayBuffer.isView(ys) ? ys : Array.from(ys);\n for (let i = ar1.length - 1; i >= 0; i--) {\n acc = f(ar1[i], ar2[i], acc, i);\n }\n return acc;\n}\nexport function forAll(f, xs) {\n return fold((acc, x) => acc && f(x), true, xs);\n}\nexport function forAll2(f, xs, ys) {\n return fold2((acc, x, y) => acc && f(x, y), true, xs, ys);\n}\nexport function tryHead(xs) {\n const iter = xs[Symbol.iterator]();\n const cur = iter.next();\n return cur.done ? null : new Some(cur.value);\n}\nexport function head(xs) {\n return __failIfNone(tryHead(xs));\n}\nexport function initialize(n, f) {\n return delay(() => unfold((i) => i < n ? [f(i), i + 1] : null, 0));\n}\nexport function initializeInfinite(f) {\n return delay(() => unfold((i) => [f(i), i + 1], 0));\n}\nexport function tryItem(i, xs) {\n if (i < 0) {\n return null;\n }\n if (Array.isArray(xs) || ArrayBuffer.isView(xs)) {\n return i < xs.length ? new Some(xs[i]) : null;\n }\n for (let j = 0, iter = xs[Symbol.iterator]();; j++) {\n const cur = iter.next();\n if (cur.done) {\n break;\n }\n if (j === i) {\n return new Some(cur.value);\n }\n }\n return null;\n}\nexport function item(i, xs) {\n return __failIfNone(tryItem(i, xs));\n}\nexport function iterate(f, xs) {\n fold((_, x) => f(x), null, xs);\n}\nexport function iterate2(f, xs, ys) {\n fold2((_, x, y) => f(x, y), null, xs, ys);\n}\nexport function iterateIndexed(f, xs) {\n fold((_, x, i) => f(i, x), null, xs);\n}\nexport function iterateIndexed2(f, xs, ys) {\n fold2((_, x, y, i) => f(i, x, y), null, xs, ys);\n}\nexport function isEmpty(xs) {\n const i = xs[Symbol.iterator]();\n return i.next().done;\n}\nexport function tryLast(xs) {\n try {\n return new Some(reduce((_, x) => x, xs));\n }\n catch (err) {\n return null;\n }\n}\nexport function last(xs) {\n return __failIfNone(tryLast(xs));\n}\n// A export function 'length' method causes problems in JavaScript -- https://github.com/Microsoft/TypeScript/issues/442\nexport function count(xs) {\n return Array.isArray(xs) || ArrayBuffer.isView(xs)\n ? xs.length\n : fold((acc, x) => acc + 1, 0, xs);\n}\nexport function map(f, xs) {\n return delay(() => unfold((iter) => {\n const cur = iter.next();\n return !cur.done ? [f(cur.value), iter] : null;\n }, xs[Symbol.iterator]()));\n}\nexport function mapIndexed(f, xs) {\n return delay(() => {\n let i = 0;\n return unfold((iter) => {\n const cur = iter.next();\n return !cur.done ? [f(i++, cur.value), iter] : null;\n }, xs[Symbol.iterator]());\n });\n}\nexport function indexed(xs) {\n return mapIndexed((i, x) => [i, x], xs);\n}\nexport function map2(f, xs, ys) {\n return delay(() => {\n const iter1 = xs[Symbol.iterator]();\n const iter2 = ys[Symbol.iterator]();\n return unfold(() => {\n const cur1 = iter1.next();\n const cur2 = iter2.next();\n return !cur1.done && !cur2.done ? [f(cur1.value, cur2.value), null] : null;\n });\n });\n}\nexport function mapIndexed2(f, xs, ys) {\n return delay(() => {\n let i = 0;\n const iter1 = xs[Symbol.iterator]();\n const iter2 = ys[Symbol.iterator]();\n return unfold(() => {\n const cur1 = iter1.next();\n const cur2 = iter2.next();\n return !cur1.done && !cur2.done ? [f(i++, cur1.value, cur2.value), null] : null;\n });\n });\n}\nexport function map3(f, xs, ys, zs) {\n return delay(() => {\n const iter1 = xs[Symbol.iterator]();\n const iter2 = ys[Symbol.iterator]();\n const iter3 = zs[Symbol.iterator]();\n return unfold(() => {\n const cur1 = iter1.next();\n const cur2 = iter2.next();\n const cur3 = iter3.next();\n return !cur1.done && !cur2.done && !cur3.done ? [f(cur1.value, cur2.value, cur3.value), null] : null;\n });\n });\n}\nexport function chunkBySize(size, xs) {\n const result = arrayChunkBySize(size, Array.from(xs));\n return ofArray(result.map(ofArray));\n}\nexport function mapFold(f, acc, xs, transform) {\n const result = [];\n let r;\n let cur;\n for (let i = 0, iter = xs[Symbol.iterator]();; i++) {\n cur = iter.next();\n if (cur.done) {\n break;\n }\n [r, acc] = f(acc, cur.value);\n result.push(r);\n }\n return transform !== void 0 ? [transform(result), acc] : [result, acc];\n}\nexport function mapFoldBack(f, xs, acc, transform) {\n const arr = Array.isArray(xs) || ArrayBuffer.isView(xs) ? xs : Array.from(xs);\n const result = [];\n let r;\n for (let i = arr.length - 1; i >= 0; i--) {\n [r, acc] = f(arr[i], acc);\n result.push(r);\n }\n return transform !== void 0 ? [transform(result), acc] : [result, acc];\n}\nexport function max(xs) {\n return reduce((acc, x) => compare(acc, x) === 1 ? acc : x, xs);\n}\nexport function maxBy(f, xs) {\n return reduce((acc, x) => compare(f(acc), f(x)) === 1 ? acc : x, xs);\n}\nexport function min(xs) {\n return reduce((acc, x) => compare(acc, x) === -1 ? acc : x, xs);\n}\nexport function minBy(f, xs) {\n return reduce((acc, x) => compare(f(acc), f(x)) === -1 ? acc : x, xs);\n}\nexport function pairwise(xs) {\n return skip(2, scan((last, next) => [last[1], next], [0, 0], xs));\n}\nexport function permute(f, xs) {\n return ofArray(arrayPermute(f, Array.from(xs)));\n}\nexport function rangeStep(first, step, last) {\n if (step === 0) {\n throw new Error(\"Step cannot be 0\");\n }\n return delay(() => unfold((x) => step > 0 && x <= last || step < 0 && x >= last ? [x, x + step] : null, first));\n}\nexport function rangeChar(first, last) {\n return delay(() => unfold((x) => x <= last ? [x, String.fromCharCode(x.charCodeAt(0) + 1)] : null, first));\n}\nexport function range(first, last) {\n return rangeStep(first, 1, last);\n}\nexport function readOnly(xs) {\n return map((x) => x, xs);\n}\nexport function reduce(f, xs) {\n if (Array.isArray(xs) || ArrayBuffer.isView(xs)) {\n return xs.reduce(f);\n }\n const iter = xs[Symbol.iterator]();\n let cur = iter.next();\n if (cur.done) {\n throw new Error(\"Seq was empty\");\n }\n let acc = cur.value;\n while (true) {\n cur = iter.next();\n if (cur.done) {\n break;\n }\n acc = f(acc, cur.value);\n }\n return acc;\n}\nexport function reduceBack(f, xs) {\n const ar = Array.isArray(xs) || ArrayBuffer.isView(xs) ? xs : Array.from(xs);\n if (ar.length === 0) {\n throw new Error(\"Seq was empty\");\n }\n let acc = ar[ar.length - 1];\n for (let i = ar.length - 2; i >= 0; i--) {\n acc = f(ar[i], acc, i);\n }\n return acc;\n}\nexport function replicate(n, x) {\n return initialize(n, () => x);\n}\nexport function reverse(xs) {\n const ar = Array.isArray(xs) || ArrayBuffer.isView(xs) ? xs.slice(0) : Array.from(xs);\n return ofArray(ar.reverse());\n}\nexport function scan(f, seed, xs) {\n return delay(() => {\n const iter = xs[Symbol.iterator]();\n return unfold((acc) => {\n if (acc == null) {\n return [seed, seed];\n }\n const cur = iter.next();\n if (!cur.done) {\n acc = f(acc, cur.value);\n return [acc, acc];\n }\n return void 0;\n }, null);\n });\n}\nexport function scanBack(f, xs, seed) {\n return reverse(scan((acc, x) => f(x, acc), seed, reverse(xs)));\n}\nexport function singleton(y) {\n return unfold((x) => x != null ? [x, null] : null, y);\n}\nexport function skip(n, xs) {\n return {\n [Symbol.iterator]: () => {\n const iter = xs[Symbol.iterator]();\n for (let i = 1; i <= n; i++) {\n if (iter.next().done) {\n throw new Error(\"Seq has not enough elements\");\n }\n }\n return iter;\n },\n };\n}\nexport function skipWhile(f, xs) {\n return delay(() => {\n let hasPassed = false;\n return filter((x) => hasPassed || (hasPassed = !f(x)), xs);\n });\n}\nexport function sortWith(f, xs) {\n const ys = Array.from(xs);\n return ofArray(ys.sort(f));\n}\nexport function sum(xs) {\n return fold((acc, x) => acc + x, 0, xs);\n}\nexport function sumBy(f, xs) {\n return fold((acc, x) => acc + f(x), 0, xs);\n}\nexport function tail(xs) {\n const iter = xs[Symbol.iterator]();\n const cur = iter.next();\n if (cur.done) {\n throw new Error(\"Seq was empty\");\n }\n return {\n [Symbol.iterator]: () => iter,\n };\n}\nexport function take(n, xs, truncate = false) {\n return delay(() => {\n const iter = xs[Symbol.iterator]();\n return unfold((i) => {\n if (i < n) {\n const cur = iter.next();\n if (!cur.done) {\n return [cur.value, i + 1];\n }\n if (!truncate) {\n throw new Error(\"Seq has not enough elements\");\n }\n }\n return void 0;\n }, 0);\n });\n}\nexport function truncate(n, xs) {\n return take(n, xs, true);\n}\nexport function takeWhile(f, xs) {\n return delay(() => {\n const iter = xs[Symbol.iterator]();\n return unfold((i) => {\n const cur = iter.next();\n if (!cur.done && f(cur.value)) {\n return [cur.value, null];\n }\n return void 0;\n }, 0);\n });\n}\nexport function tryFind(f, xs, defaultValue) {\n for (let i = 0, iter = xs[Symbol.iterator]();; i++) {\n const cur = iter.next();\n if (cur.done) {\n break;\n }\n if (f(cur.value, i)) {\n return new Some(cur.value);\n }\n }\n return defaultValue === void 0 ? null : new Some(defaultValue);\n}\nexport function find(f, xs) {\n return __failIfNone(tryFind(f, xs));\n}\nexport function tryFindBack(f, xs, defaultValue) {\n const arr = Array.isArray(xs) || ArrayBuffer.isView(xs) ? xs.slice(0) : Array.from(xs);\n return tryFind(f, arr.reverse(), defaultValue);\n}\nexport function findBack(f, xs) {\n return __failIfNone(tryFindBack(f, xs));\n}\nexport function tryFindIndex(f, xs) {\n for (let i = 0, iter = xs[Symbol.iterator]();; i++) {\n const cur = iter.next();\n if (cur.done) {\n break;\n }\n if (f(cur.value, i)) {\n return i;\n }\n }\n return null;\n}\nexport function findIndex(f, xs) {\n return __failIfNone(tryFindIndex(f, xs));\n}\nexport function tryFindIndexBack(f, xs) {\n const arr = Array.isArray(xs) || ArrayBuffer.isView(xs) ? xs.slice(0) : Array.from(xs);\n for (let i = arr.length - 1; i >= 0; i--) {\n if (f(arr[i], i)) {\n return i;\n }\n }\n return null;\n}\nexport function findIndexBack(f, xs) {\n return __failIfNone(tryFindIndexBack(f, xs));\n}\nexport function tryPick(f, xs) {\n for (let i = 0, iter = xs[Symbol.iterator]();; i++) {\n const cur = iter.next();\n if (cur.done) {\n break;\n }\n const y = f(cur.value, i);\n if (y != null) {\n return y;\n }\n }\n return null;\n}\nexport function pick(f, xs) {\n return __failIfNone(tryPick(f, xs));\n}\nexport function unfold(f, fst) {\n return {\n [Symbol.iterator]: () => {\n // Capture a copy of the first value in the closure\n // so the sequence is restarted every time, see #1230\n let acc = fst;\n return {\n next: () => {\n const res = f(acc);\n if (res != null) {\n acc = res[1];\n return { done: false, value: res[0] };\n }\n return { done: true };\n },\n };\n },\n };\n}\nexport function zip(xs, ys) {\n return map2((x, y) => [x, y], xs, ys);\n}\nexport function zip3(xs, ys, zs) {\n return map3((x, y, z) => [x, y, z], xs, ys, zs);\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/FMarkFable/FMarkFable.fs","module Types\r\n\r\ntype Language =\r\n | Python\r\n | FSharp\r\n | CPP\r\n | C\r\n | Empty\r\n\r\ntype ID = FtID of int | RefID of string\r\n\r\ntype Token =\r\n | CODEBLOCK of string * Language\r\n | LITERAL of string\r\n | WHITESPACE of size: int\r\n | NUMBER of string\r\n | HASH | PIPE | EQUAL | MINUS | PLUS | ASTERISK | DOT | COMMA\r\n | DASTERISK | TASTERISK | UNDERSCORE | DUNDERSCORE | TUNDERSCORE | TILDE | DTILDE\r\n | TTILDE | LSBRA | RSBRA | LBRA | RBRA | BSLASH | SLASH | LABRA | RABRA | LCBRA\r\n | RCBRA | BACKTICK | EXCLAMATION | ENDLINE | COLON | CARET | PERCENT | SEMICOLON\r\n | HEADER of int\r\n | FOOTER of ID\r\n\r\ntype TFrmtedString =\r\n | Strong of InlineElement list | Emphasis of InlineElement list\r\n | Literal of string | Code of string\r\nand InlineElement =\r\n | FrmtedString of TFrmtedString\r\n | Link of HyperText: TFrmtedString * URL: string\r\n | Picture of Alt: string * URL: string\r\ntype TLine = InlineElement list\r\n\r\ntype THeader = {HeaderName: TLine; Level: int}\r\n\r\ntype Ttoc = {MaxDepth: int; HeaderLst: THeader list}\r\n\r\ntype TListType = | UL | OL\r\ntype TList = {ListType: TListType; ListItem: TListItem list; Depth: int}\r\nand TListItem = NestedList of TList | StringItem of TLine\r\n\r\ntype Alignment = Centre | Right | Left | NoAlign\r\n\r\ntype Cell =\r\n | Contents of Token list * Header: bool * Align:Alignment\r\n\r\ntype Row =\r\n | Cells of Cell list * Header:bool\r\n\r\ntype PCell =\r\n | CellLine of TLine * Header: bool * Align:Alignment\r\n\r\ntype PRow =\r\n | PCells of PCell list * Header:bool\r\n\r\ntype RefFrmt = IEEE | Harvard | Chicago\r\ntype RefType = Book | Website\r\n// date support for access later\r\ntype Ref = {Cat: RefType option; Author: Token list option; Title: Token list option;\r\n Year: int option; URL: string option; Access: Token list option}\r\n\r\ntype ParsedObj =\r\n | CodeBlock of string * Language\r\n | Header of THeader\r\n | ContentTable of Ttoc\r\n | List of TList\r\n | Paragraph of TLine list\r\n | Quote of TLine\r\n | Table of PRow list\r\n | PreTable of Content: Token list list\r\n | Footnote of ID * TLine\r\n\r\ntype Cell with \r\n member c.GetToks = match c with \r\n | Contents(toks,_,_) -> toks\r\n member c.ReplaceTokens t = match c with \r\n | Contents(_,head,align) -> Contents(t,head,align)\r\n member c.GetHead = match c with \r\n | Contents(_,head,_) -> head\r\n member c.GetParams = match c with \r\n | Contents(toks,head,align) -> toks,head,align\r\n\r\ntype OutFormat = HTML | Markdown\n\n\n// WEBPACK FOOTER //\n// src/Common/Types.fs","module Shared\r\n\r\nopen Types\r\nopen Logger\r\n\r\n// Helpers\r\n\r\n/// Inverse the values in a tuple\r\nlet invTuple (a, b) = b, a\r\n\r\n/// Try to find a key in a map, return Some value when it is found, otherwise it\r\n/// returns None\r\nlet mapTryFind k (map: Map<'a, 'b>) = map.TryFind(k)\r\n\r\n/// Try find key in a list\r\nlet listTryFind s =\r\n List.map invTuple >> Map.ofList >> mapTryFind s\r\n\r\n/// The list of characters used in the parser\r\nlet charList = [\"#\", HASH; \"|\", PIPE; \"=\", EQUAL; \"-\", MINUS; \"+\", PLUS; \"*\", ASTERISK\r\n \".\", DOT; \"**\", DASTERISK; \"***\", TASTERISK; \"_\", UNDERSCORE; \"__\", DUNDERSCORE\r\n \"___\", TUNDERSCORE; \"~\", TILDE; \"~~\", DTILDE; \"~~~\", TTILDE; \"[\", LSBRA\r\n \"]\", RSBRA; \"(\", LBRA; \")\", RBRA; @\"\\\", BSLASH; \"/\", SLASH; \"<\", LABRA\r\n \">\", RABRA; \"{\", LCBRA; \"}\", RCBRA; \"`\", BACKTICK;\r\n \"!\", EXCLAMATION; \":\", COLON; \"^\", CARET; \"%\", PERCENT; \",\", COMMA]\r\n\r\nlet charMap = charList |> List.map invTuple |> Map.ofList\r\n\r\nlet (|CharTok|_|) tok =\r\n mapTryFind tok charMap\r\n\r\nlet mapTok = function\r\n | CharTok s -> s\r\n | CODEBLOCK _ -> \"CODEBLOCK\"\r\n | FOOTER _ -> sprintf \"FOOTER found\"\r\n | HEADER n -> sprintf \"HEADER %d\" n\r\n | NUMBER s -> s\r\n | LITERAL s -> s\r\n | WHITESPACE n -> String.replicate n \" \"\r\n | _ -> \"\\n\"\r\n\r\n/// turn all tokens into string\r\nlet strAllToks toks =\r\n let pacMan str tok =\r\n str + mapTok tok\r\n List.fold pacMan \"\" toks\r\n\r\nlet mapLang lang =\r\n match lang with\r\n | Python -> \"python\"\r\n | FSharp -> \"fsharp\"\r\n | CPP -> \"cpp\"\r\n | C -> \"c\"\r\n | Empty -> \"\"\r\n\r\nlet xOnwards x lst = if List.length lst > x then lst.[x..] else []\r\nlet sOnwards s str = if String.length str > s then str.[s..] else \"\"\r\nlet removeChars lst s =\r\n let folder (s:string) x = s.Replace(x,\"\")\r\n List.fold folder s lst\r\nlet removeWhitespace (s:string) = \r\n s |> removeChars [\"\\n\";\"\\t\";\"\\r\";\" \"]\r\nlet sharedLog = Logger(LogLevel.WARNING)\r\n\n\n\n// WEBPACK FOOTER //\n// src/Common/Shared.fs","import Comparer from \"./Comparer\";\nimport List from \"./ListClass\";\nimport { ofArray as listOfArray } from \"./ListClass\";\nimport { getValue, Some } from \"./Option\";\nimport { map as seqMap } from \"./Seq\";\nimport { fold as seqFold } from \"./Seq\";\nimport { pick as seqPick } from \"./Seq\";\nimport { tryPick as seqTryPick } from \"./Seq\";\nimport { compareWith as seqCompareWith } from \"./Seq\";\nimport FSymbol from \"./Symbol\";\nimport { toString } from \"./Util\";\nimport { equals } from \"./Util\";\nimport { compare } from \"./Util\";\n// ----------------------------------------------\n// These functions belong to Seq.ts but are\n// implemented here to prevent cyclic dependencies\nexport function groupBy(f, xs) {\n const keys = [];\n const iter = xs[Symbol.iterator]();\n let acc = create();\n let cur = iter.next();\n while (!cur.done) {\n const k = f(cur.value);\n const vs = tryFind(k, acc);\n if (vs == null) {\n keys.push(k);\n acc = add(k, [cur.value], acc);\n }\n else {\n getValue(vs).push(cur.value);\n }\n cur = iter.next();\n }\n return keys.map((k) => [k, acc.get(k)]);\n}\nexport function countBy(f, xs) {\n return groupBy(f, xs).map((kv) => [kv[0], kv[1].length]);\n}\nexport class MapTree {\n constructor(tag, data) {\n this.tag = tag | 0;\n this.data = data;\n }\n}\nfunction tree_sizeAux(acc, m) {\n sizeAux: while (true) {\n if (m.tag === 1) {\n return acc + 1 | 0;\n }\n else if (m.tag === 2) {\n acc = tree_sizeAux(acc + 1, m.data[2]);\n m = m.data[3];\n continue sizeAux;\n }\n else {\n return acc | 0;\n }\n }\n}\nfunction tree_size(x) {\n return tree_sizeAux(0, x);\n}\nfunction tree_empty() {\n return new MapTree(0);\n}\nfunction tree_height(_arg1) {\n return _arg1.tag === 1 ? 1 : _arg1.tag === 2 ? _arg1.data[4] : 0;\n}\nfunction tree_isEmpty(m) {\n return m.tag === 0 ? true : false;\n}\nfunction tree_mk(l, k, v, r) {\n const matchValue = l.tag === 0 ? r.tag === 0 ? 0 : 1 : 1;\n switch (matchValue) {\n case 0:\n return new MapTree(1, [k, v]);\n case 1:\n const hl = tree_height(l) | 0;\n const hr = tree_height(r) | 0;\n const m = (hl < hr ? hr : hl) | 0;\n return new MapTree(2, [k, v, l, r, m + 1]);\n }\n throw new Error(\"internal error: Map.tree_mk\");\n}\nfunction tree_rebalance(t1, k, v, t2) {\n const t1h = tree_height(t1);\n const t2h = tree_height(t2);\n if (t2h > t1h + 2) {\n if (t2.tag === 2) {\n if (tree_height(t2.data[2]) > t1h + 1) {\n if (t2.data[2].tag === 2) {\n return tree_mk(tree_mk(t1, k, v, t2.data[2].data[2]), t2.data[2].data[0], t2.data[2].data[1], tree_mk(t2.data[2].data[3], t2.data[0], t2.data[1], t2.data[3]));\n }\n else {\n throw new Error(\"rebalance\");\n }\n }\n else {\n return tree_mk(tree_mk(t1, k, v, t2.data[2]), t2.data[0], t2.data[1], t2.data[3]);\n }\n }\n else {\n throw new Error(\"rebalance\");\n }\n }\n else {\n if (t1h > t2h + 2) {\n if (t1.tag === 2) {\n if (tree_height(t1.data[3]) > t2h + 1) {\n if (t1.data[3].tag === 2) {\n return tree_mk(tree_mk(t1.data[2], t1.data[0], t1.data[1], t1.data[3].data[2]), t1.data[3].data[0], t1.data[3].data[1], tree_mk(t1.data[3].data[3], k, v, t2));\n }\n else {\n throw new Error(\"rebalance\");\n }\n }\n else {\n return tree_mk(t1.data[2], t1.data[0], t1.data[1], tree_mk(t1.data[3], k, v, t2));\n }\n }\n else {\n throw new Error(\"rebalance\");\n }\n }\n else {\n return tree_mk(t1, k, v, t2);\n }\n }\n}\nfunction tree_add(comparer, k, v, m) {\n if (m.tag === 1) {\n const c = comparer.Compare(k, m.data[0]);\n if (c < 0) {\n return new MapTree(2, [k, v, new MapTree(0), m, 2]);\n }\n else if (c === 0) {\n return new MapTree(1, [k, v]);\n }\n return new MapTree(2, [k, v, m, new MapTree(0), 2]);\n }\n else if (m.tag === 2) {\n const c = comparer.Compare(k, m.data[0]);\n if (c < 0) {\n return tree_rebalance(tree_add(comparer, k, v, m.data[2]), m.data[0], m.data[1], m.data[3]);\n }\n else if (c === 0) {\n return new MapTree(2, [k, v, m.data[2], m.data[3], m.data[4]]);\n }\n return tree_rebalance(m.data[2], m.data[0], m.data[1], tree_add(comparer, k, v, m.data[3]));\n }\n return new MapTree(1, [k, v]);\n}\nfunction tree_find(comparer, k, m) {\n const res = tree_tryFind(comparer, k, m);\n if (res == null) {\n throw new Error(\"key not found: \" + k);\n }\n return getValue(res);\n}\nfunction tree_tryFind(comparer, k, m) {\n tryFind: while (true) {\n if (m.tag === 1) {\n const c = comparer.Compare(k, m.data[0]) | 0;\n if (c === 0) {\n return new Some(m.data[1]);\n }\n else {\n return null;\n }\n }\n else if (m.tag === 2) {\n const c_1 = comparer.Compare(k, m.data[0]) | 0;\n if (c_1 < 0) {\n comparer = comparer;\n k = k;\n m = m.data[2];\n continue tryFind;\n }\n else if (c_1 === 0) {\n return new Some(m.data[1]);\n }\n else {\n comparer = comparer;\n k = k;\n m = m.data[3];\n continue tryFind;\n }\n }\n else {\n return null;\n }\n }\n}\nfunction tree_partition1(comparer, f, k, v, acc1, acc2) {\n return f(k, v) ? [tree_add(comparer, k, v, acc1), acc2] : [acc1, tree_add(comparer, k, v, acc2)];\n}\nfunction tree_partitionAux(comparer, f, s, acc_0, acc_1) {\n const acc = [acc_0, acc_1];\n if (s.tag === 1) {\n return tree_partition1(comparer, f, s.data[0], s.data[1], acc[0], acc[1]);\n }\n else if (s.tag === 2) {\n const acc_2 = tree_partitionAux(comparer, f, s.data[3], acc[0], acc[1]);\n const acc_3 = tree_partition1(comparer, f, s.data[0], s.data[1], acc_2[0], acc_2[1]);\n return tree_partitionAux(comparer, f, s.data[2], acc_3[0], acc_3[1]);\n }\n return acc;\n}\nfunction tree_partition(comparer, f, s) {\n return tree_partitionAux(comparer, f, s, tree_empty(), tree_empty());\n}\nfunction tree_filter1(comparer, f, k, v, acc) {\n return f(k, v) ? tree_add(comparer, k, v, acc) : acc;\n}\nfunction tree_filterAux(comparer, f, s, acc) {\n return s.tag === 1 ? tree_filter1(comparer, f, s.data[0], s.data[1], acc) : s.tag === 2 ?\n tree_filterAux(comparer, f, s.data[3], tree_filter1(comparer, f, s.data[0], s.data[1], tree_filterAux(comparer, f, s.data[2], acc))) : acc;\n}\nfunction tree_filter(comparer, f, s) {\n return tree_filterAux(comparer, f, s, tree_empty());\n}\nfunction tree_spliceOutSuccessor(m) {\n if (m.tag === 1) {\n return [m.data[0], m.data[1], new MapTree(0)];\n }\n else if (m.tag === 2) {\n if (m.data[2].tag === 0) {\n return [m.data[0], m.data[1], m.data[3]];\n }\n else {\n const kvl = tree_spliceOutSuccessor(m.data[2]);\n return [kvl[0], kvl[1], tree_mk(kvl[2], m.data[0], m.data[1], m.data[3])];\n }\n }\n throw new Error(\"internal error: Map.spliceOutSuccessor\");\n}\nfunction tree_remove(comparer, k, m) {\n if (m.tag === 1) {\n const c = comparer.Compare(k, m.data[0]);\n if (c === 0) {\n return new MapTree(0);\n }\n else {\n return m;\n }\n }\n else if (m.tag === 2) {\n const c = comparer.Compare(k, m.data[0]);\n if (c < 0) {\n return tree_rebalance(tree_remove(comparer, k, m.data[2]), m.data[0], m.data[1], m.data[3]);\n }\n else if (c === 0) {\n if (m.data[2].tag === 0) {\n return m.data[3];\n }\n else {\n if (m.data[3].tag === 0) {\n return m.data[2];\n }\n else {\n const input = tree_spliceOutSuccessor(m.data[3]);\n return tree_mk(m.data[2], input[0], input[1], input[2]);\n }\n }\n }\n else {\n return tree_rebalance(m.data[2], m.data[0], m.data[1], tree_remove(comparer, k, m.data[3]));\n }\n }\n else {\n return tree_empty();\n }\n}\nfunction tree_mem(comparer, k, m) {\n mem: while (true) {\n if (m.tag === 1) {\n return comparer.Compare(k, m.data[0]) === 0;\n }\n else if (m.tag === 2) {\n const c = comparer.Compare(k, m.data[0]) | 0;\n if (c < 0) {\n comparer = comparer;\n k = k;\n m = m.data[2];\n continue mem;\n }\n else if (c === 0) {\n return true;\n }\n else {\n comparer = comparer;\n k = k;\n m = m.data[3];\n continue mem;\n }\n }\n else {\n return false;\n }\n }\n}\nfunction tree_iter(f, m) {\n if (m.tag === 1) {\n f(m.data[0], m.data[1]);\n }\n else if (m.tag === 2) {\n tree_iter(f, m.data[2]);\n f(m.data[0], m.data[1]);\n tree_iter(f, m.data[3]);\n }\n}\nfunction tree_tryPick(f, m) {\n if (m.tag === 1) {\n return f(m.data[0], m.data[1]);\n }\n else if (m.tag === 2) {\n const matchValue = tree_tryPick(f, m.data[2]);\n if (matchValue == null) {\n const matchValue_1 = f(m.data[0], m.data[1]);\n if (matchValue_1 == null) {\n return tree_tryPick(f, m.data[3]);\n }\n else {\n const res = matchValue_1;\n return res;\n }\n }\n else {\n return matchValue;\n }\n }\n else {\n return null;\n }\n}\nfunction tree_exists(f, m) {\n return m.tag === 1 ? f(m.data[0], m.data[1]) : m.tag === 2 ? (tree_exists(f, m.data[2]) ?\n true : f(m.data[0], m.data[1])) ? true : tree_exists(f, m.data[3]) : false;\n}\nfunction tree_forall(f, m) {\n return m.tag === 1 ? f(m.data[0], m.data[1]) : m.tag === 2 ? (tree_forall(f, m.data[2]) ?\n f(m.data[0], m.data[1]) : false) ? tree_forall(f, m.data[3]) : false : true;\n}\nfunction tree_mapi(f, m) {\n return m.tag === 1 ? new MapTree(1, [m.data[0], f(m.data[0], m.data[1])]) : m.tag === 2 ?\n new MapTree(2, [m.data[0], f(m.data[0], m.data[1]), tree_mapi(f, m.data[2]),\n tree_mapi(f, m.data[3]), m.data[4]]) : tree_empty();\n}\nfunction tree_foldBack(f, m, x) {\n return m.tag === 1 ? f(m.data[0], m.data[1], x) : m.tag === 2 ?\n tree_foldBack(f, m.data[2], f(m.data[0], m.data[1], tree_foldBack(f, m.data[3], x))) : x;\n}\nfunction tree_fold(f, x, m) {\n return m.tag === 1 ? f(x, m.data[0], m.data[1]) : m.tag === 2 ?\n tree_fold(f, f(tree_fold(f, x, m.data[2]), m.data[0], m.data[1]), m.data[3]) : x;\n}\n// function tree_foldFromTo(\n// comparer: IComparer<any>, lo: any, hi: any,\n// f: (k:any, v: any, acc: any) => any, m: MapTree, x: any): any {\n// if (m.tag === 1) {\n// var cLoKey = comparer.Compare(lo, m.data[0]);\n// var cKeyHi = comparer.Compare(m.data[0], hi);\n// var x_1 = (cLoKey <= 0 ? cKeyHi <= 0 : false) ? f(m.data[0], m.data[1], x) : x;\n// return x_1;\n// } else if (m.tag === 2) {\n// var cLoKey = comparer.Compare(lo, m.data[0]);\n// var cKeyHi = comparer.Compare(m.data[0], hi);\n// var x_1 = cLoKey < 0 ? tree_foldFromTo(comparer, lo, hi, f, m.data[2], x) : x;\n// var x_2 = (cLoKey <= 0 ? cKeyHi <= 0 : false) ? f(m.data[0], m.data[1], x_1) : x_1;\n// var x_3 = cKeyHi < 0 ? tree_foldFromTo(comparer, lo, hi, f, m.data[3], x_2) : x_2;\n// return x_3;\n// }\n// return x;\n// }\n// function tree_foldSection(\n// comparer: IComparer<any>, lo: any, hi: any,\n// f: (k: any, v: any, acc: any) => any, m: MapTree, x: any) {\n// return comparer.Compare(lo, hi) === 1 ? x : tree_foldFromTo(comparer, lo, hi, f, m, x);\n// }\n// function tree_loop(m: MapTree, acc: any): List<[any,any]> {\n// return m.tag === 1\n// ? new List([m.data[0], m.data[1]], acc)\n// : m.tag === 2\n// ? tree_loop(m.data[2], new List([m.data[0], m.data[1]], tree_loop(m.data[3], acc)))\n// : acc;\n// }\n// function tree_toList(m: MapTree) {\n// return tree_loop(m, new List());\n// }\n// function tree_toArray(m: MapTree) {\n// return Array.from(tree_toList(m));\n// }\n// function tree_ofList(comparer: IComparer<any>, l: List<[any,any]>) {\n// return Seq.fold((acc: MapTree, tupledArg: [any, any]) => {\n// return tree_add(comparer, tupledArg[0], tupledArg[1], acc);\n// }, tree_empty(), l);\n// }\nfunction tree_mkFromEnumerator(comparer, acc, e) {\n let cur = e.next();\n while (!cur.done) {\n acc = tree_add(comparer, cur.value[0], cur.value[1], acc);\n cur = e.next();\n }\n return acc;\n}\n// function tree_ofArray(comparer: IComparer<any>, arr: ArrayLike<[any,any]>) {\n// var res = tree_empty();\n// for (var i = 0; i <= arr.length - 1; i++) {\n// res = tree_add(comparer, arr[i][0], arr[i][1], res);\n// }\n// return res;\n// }\nfunction tree_ofSeq(comparer, c) {\n const ie = c[Symbol.iterator]();\n return tree_mkFromEnumerator(comparer, tree_empty(), ie);\n}\n// function tree_copyToArray(s: MapTree, arr: ArrayLike<any>, i: number) {\n// tree_iter((x, y) => { arr[i++] = [x, y]; }, s);\n// }\nfunction tree_collapseLHS(stack) {\n if (stack.tail != null) {\n if (stack.head.tag === 1) {\n return stack;\n }\n else if (stack.head.tag === 2) {\n return tree_collapseLHS(listOfArray([\n stack.head.data[2],\n new MapTree(1, [stack.head.data[0], stack.head.data[1]]),\n stack.head.data[3],\n ], stack.tail));\n }\n else {\n return tree_collapseLHS(stack.tail);\n }\n }\n else {\n return new List();\n }\n}\nfunction tree_mkIterator(s) {\n return { stack: tree_collapseLHS(new List(s, new List())), started: false };\n}\nfunction tree_moveNext(i) {\n function current(it) {\n if (it.stack.tail == null) {\n return null;\n }\n else if (it.stack.head.tag === 1) {\n return [it.stack.head.data[0], it.stack.head.data[1]];\n }\n throw new Error(\"Please report error: Map iterator, unexpected stack for current\");\n }\n if (i.started) {\n if (i.stack.tail == null) {\n return { done: true, value: null };\n }\n else {\n if (i.stack.head.tag === 1) {\n i.stack = tree_collapseLHS(i.stack.tail);\n return {\n done: i.stack.tail == null,\n value: current(i),\n };\n }\n else {\n throw new Error(\"Please report error: Map iterator, unexpected stack for moveNext\");\n }\n }\n }\n else {\n i.started = true;\n return {\n done: i.stack.tail == null,\n value: current(i),\n };\n }\n}\nexport default class FableMap {\n /** Do not call, use Map.create instead. */\n constructor() { return; }\n ToString() {\n return \"map [\" + Array.from(this).map((x) => toString(x)).join(\"; \") + \"]\";\n }\n Equals(m2) {\n return this.CompareTo(m2) === 0;\n }\n CompareTo(m2) {\n return this === m2 ? 0 : seqCompareWith((kvp1, kvp2) => {\n const c = this.comparer.Compare(kvp1[0], kvp2[0]);\n return c !== 0 ? c : compare(kvp1[1], kvp2[1]);\n }, this, m2);\n }\n [Symbol.iterator]() {\n const i = tree_mkIterator(this.tree);\n return {\n next: () => tree_moveNext(i),\n };\n }\n entries() {\n return this[Symbol.iterator]();\n }\n keys() {\n return seqMap((kv) => kv[0], this);\n }\n values() {\n return seqMap((kv) => kv[1], this);\n }\n get(k) {\n return tree_find(this.comparer, k, this.tree);\n }\n has(k) {\n return tree_mem(this.comparer, k, this.tree);\n }\n /** Mutating method */\n set(k, v) {\n this.tree = tree_add(this.comparer, k, v, this.tree);\n }\n /** Mutating method */\n delete(k) {\n // TODO: Is calculating the size twice is more performant than calling tree_mem?\n const oldSize = tree_size(this.tree);\n this.tree = tree_remove(this.comparer, k, this.tree);\n return oldSize > tree_size(this.tree);\n }\n /** Mutating method */\n clear() {\n this.tree = tree_empty();\n }\n get size() {\n return tree_size(this.tree);\n }\n [FSymbol.reflection]() {\n return {\n type: \"Microsoft.FSharp.Collections.FSharpMap\",\n interfaces: [\"System.IEquatable\", \"System.IComparable\", \"System.Collections.Generic.IDictionary\"],\n };\n }\n}\nfunction from(comparer, tree) {\n const map = new FableMap();\n map.tree = tree;\n map.comparer = comparer || new Comparer();\n return map;\n}\nexport function create(ie, comparer) {\n comparer = comparer || new Comparer();\n return from(comparer, ie ? tree_ofSeq(comparer, ie) : tree_empty());\n}\nexport function add(k, v, map) {\n return from(map.comparer, tree_add(map.comparer, k, v, map.tree));\n}\nexport function remove(item, map) {\n return from(map.comparer, tree_remove(map.comparer, item, map.tree));\n}\nexport function containsValue(v, map) {\n return seqFold((acc, k) => acc || equals(map.get(k), v), false, map.keys());\n}\nexport function tryGetValue(map, key, defaultValue) {\n return map.has(key) ? [true, map.get(key)] : [false, defaultValue];\n}\nexport function exists(f, map) {\n return tree_exists(f, map.tree);\n}\nexport function find(k, map) {\n return tree_find(map.comparer, k, map.tree);\n}\nexport function tryFind(k, map) {\n return tree_tryFind(map.comparer, k, map.tree);\n}\nexport function filter(f, map) {\n return from(map.comparer, tree_filter(map.comparer, f, map.tree));\n}\nexport function fold(f, seed, map) {\n return tree_fold(f, seed, map.tree);\n}\nexport function foldBack(f, map, seed) {\n return tree_foldBack(f, map.tree, seed);\n}\nexport function forAll(f, map) {\n return tree_forall(f, map.tree);\n}\nexport function isEmpty(map) {\n return tree_isEmpty(map.tree);\n}\nexport function iterate(f, map) {\n tree_iter(f, map.tree);\n}\nexport function map(f, map) {\n return from(map.comparer, tree_mapi(f, map.tree));\n}\nexport function partition(f, map) {\n const rs = tree_partition(map.comparer, f, map.tree);\n return [from(map.comparer, rs[0]), from(map.comparer, rs[1])];\n}\nexport function findKey(f, map) {\n return seqPick((kv) => f(kv[0], kv[1]) ? new Some(kv[0]) : null, map);\n}\nexport function tryFindKey(f, map) {\n return seqTryPick((kv) => f(kv[0], kv[1]) ? new Some(kv[0]) : null, map);\n}\nexport function pick(f, map) {\n const res = tryPick(f, map);\n if (res != null) {\n return getValue(res);\n }\n throw new Error(\"key not found\");\n}\nexport function tryPick(f, map) {\n return tree_tryPick(f, map.tree);\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/Common/MarkdownGen/MarkdownGen.fs","import FSymbol from \"./Symbol\";\nimport { Any } from \"./Util\";\nimport { compareUnions, equalsUnions } from \"./Util\";\nexport function choice1Of2(v) {\n return new Choice(0, v);\n}\nexport function choice2Of2(v) {\n return new Choice(1, v);\n}\nexport default class Choice {\n constructor(tag, data) {\n this.tag = tag | 0;\n this.data = data;\n }\n get valueIfChoice1() {\n return this.tag === 0 ? this.data : null;\n }\n get valueIfChoice2() {\n return this.tag === 1 ? this.data : null;\n }\n Equals(other) {\n return equalsUnions(this, other);\n }\n CompareTo(other) {\n return compareUnions(this, other);\n }\n [FSymbol.reflection]() {\n return {\n type: \"Microsoft.FSharp.Core.FSharpChoice\",\n interfaces: [\"FSharpUnion\", \"System.IEquatable\", \"System.IComparable\"],\n cases: [[\"Choice1Of2\", Any], [\"Choice2Of2\", Any]],\n };\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/Common/Lexer/Preprocessor.fs","import { defaultCancellationToken } from \"./Async\";\nimport { fromContinuations } from \"./Async\";\nimport { startImmediate } from \"./Async\";\nclass QueueCell {\n constructor(message) {\n this.value = message;\n }\n}\nclass MailboxQueue {\n add(message) {\n const itCell = new QueueCell(message);\n if (this.firstAndLast) {\n this.firstAndLast[1].next = itCell;\n this.firstAndLast = [this.firstAndLast[0], itCell];\n }\n else {\n this.firstAndLast = [itCell, itCell];\n }\n }\n tryGet() {\n if (this.firstAndLast) {\n const value = this.firstAndLast[0].value;\n if (this.firstAndLast[0].next) {\n this.firstAndLast = [this.firstAndLast[0].next, this.firstAndLast[1]];\n }\n else {\n delete this.firstAndLast;\n }\n return value;\n }\n return void 0;\n }\n}\nexport default class MailboxProcessor {\n constructor(body, cancellationToken) {\n this.body = body;\n this.cancellationToken = cancellationToken || defaultCancellationToken;\n this.messages = new MailboxQueue();\n }\n __processEvents() {\n if (this.continuation) {\n const value = this.messages.tryGet();\n if (value) {\n const cont = this.continuation;\n delete this.continuation;\n cont(value);\n }\n }\n }\n start() {\n startImmediate(this.body(this), this.cancellationToken);\n }\n receive() {\n return fromContinuations((conts) => {\n if (this.continuation) {\n throw new Error(\"Receive can only be called once!\");\n }\n this.continuation = conts[0];\n this.__processEvents();\n });\n }\n post(message) {\n this.messages.add(message);\n this.__processEvents();\n }\n postAndAsyncReply(buildMessage) {\n let result;\n let continuation;\n function checkCompletion() {\n if (result && continuation) {\n continuation(result);\n }\n }\n const reply = {\n reply: (res) => {\n result = res;\n checkCompletion();\n },\n };\n this.messages.add(buildMessage(reply));\n this.__processEvents();\n return fromContinuations((conts) => {\n continuation = conts[0];\n checkCompletion();\n });\n }\n}\nexport function start(body, cancellationToken) {\n const mbox = new MailboxProcessor(body, cancellationToken);\n mbox.start();\n return mbox;\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/Common/Markalc/Markalc.fs","module Logger\r\n\r\nopen System\r\n\r\ntype LogLevel =\r\n | DEBUG=0\r\n | INFO=1\r\n | WARNING=2\r\n | ERROR=3\r\n | FATAL=4\r\n\r\nlet logLevelStr =\r\n [\r\n LogLevel.DEBUG, \"DEBUG\"\r\n LogLevel.INFO, \"INFO\"\r\n LogLevel.WARNING, \"WARNING\"\r\n LogLevel.ERROR, \"ERROR\"\r\n LogLevel.FATAL, \"FATAL\"\r\n ] |> Map.ofList\r\n\r\ntype Logger(logLevel) =\r\n\r\n // create the mailbox processor\r\n let agent = MailboxProcessor.Start(fun inbox -> \r\n\r\n // the message processing function\r\n let rec messageLoop () = async {\r\n\r\n // read a message\r\n let! msg = inbox.Receive()\r\n\r\n // write it to the log\r\n printfn \"%s\" msg\r\n\r\n // loop to top\r\n return! messageLoop ()\r\n }\r\n\r\n // start the loop\r\n messageLoop ()\r\n )\r\n\r\n let postStr pType msg = function\r\n | Some l ->\r\n sprintf \"%s [%s] (%d) %s\" pType (DateTime.Now.ToString(\"yyyy-MM-dd HH:mm:ss\")) l msg |> agent.Post\r\n | _ ->\r\n sprintf \"%s [%s] %s\" pType (DateTime.Now.ToString(\"yyyy-MM-dd HH:mm:ss\")) msg |> agent.Post\r\n\r\n let log t l msg =\r\n if t >= logLevel then\r\n postStr logLevelStr.[t] msg l\r\n else ()\r\n\r\n // Public API\r\n member __.Log = log\r\n member __.Debug = log LogLevel.DEBUG\r\n member __.Info = log LogLevel.INFO\r\n member __.Warn = log LogLevel.WARNING\r\n member __.Error = log LogLevel.ERROR\r\n member __.Fatal = log LogLevel.FATAL\r\n\r\nlet logPass line log s =\r\n s |> log line\r\n s\r\n\r\nlet logPassN log s =\r\n s |> log None\r\n s\r\n\n\n\n// WEBPACK FOOTER //\n// src/Common/Logger/Logger.fs","module MarkalcShared\r\nopen Types\r\nopen System.Text.RegularExpressions\r\nopen Logger\r\n\r\ntype CellReference = \r\n RowCol of Row:uint32*Col:uint32\r\n\r\ntype Operand =\r\n | CellRef of CellReference\r\n | Integer of int\r\n | Float of float\r\n\r\ntype Expr =\r\n | BinExp of (float->float->float)*Expr*Expr\r\n | Op of Operand\r\n | CommaFunction of string*(Expr list)\r\nlet whitespaceFilter lst = List.filter (function | WHITESPACE(_) -> false | _ -> true) lst\r\n// Count number of delim in token list\r\nlet countDelim delim tokList =\r\n List.filter (function | d when d = delim -> true | _ -> false) tokList \r\n |> List.length\r\n\r\n// return everything before and after the first/last delimeter searched for, error if delim not found\r\nlet delimSplit last delim t =\r\n let rec delimSplitFirst' delim before t =\r\n match t with\r\n | d :: after when d = delim -> Ok (before,after) // If delim then token list, return d and everything after the delim\r\n | x :: after -> delimSplitFirst' delim (x::before) after // If non-PIPE token then token list, recurse adding the tokens to the before list\r\n | [] -> Error (before,[]) // Did not find delimeter\r\n let rec delimSplitLast' delim before t =\r\n match (t, countDelim delim t) with\r\n | d :: after,1 when d = delim -> Ok (before,after)\r\n | x :: after,_ -> delimSplitLast' delim (x::before) after\r\n | [],_ -> Error (before,[])\r\n let searchFunc = if last then delimSplitLast' else delimSplitFirst'\r\n searchFunc delim [] t\r\n |> function\r\n | Error(before,a) -> Error(List.rev before,a)\r\n | Ok (before,a) -> Ok(List.rev before,a)\r\n\r\n/// Helper function to copy a list i times\r\nlet rec listCopies i lst =\r\n match i with\r\n | 1 -> lst\r\n | 0 -> []\r\n | x when x < 0 -> failwithf \"Negative argument: %A\" x\r\n | _ -> lst @ (listCopies (i-1) lst)\r\n\r\nlet unfoldTuple3 func (a,b,c) =\r\n func a b c\r\n\r\n// Take in two cell refs and return a list of all refs inbetween or None if invalid e.g. diagonal\r\nlet cellRange (p1,p2) = \r\n match (p1,p2) with\r\n | (RowCol(p1r,p1c),RowCol(p2r,p2c)) ->\r\n let genList a b = if a<b then [a..b] else [b..a]\r\n match p1r = p2r, p1c = p2c with\r\n | true,true -> Some [RowCol (p1r,p1c)]\r\n | true,false -> (List.map ((fun i -> (p1r,i)) >> RowCol) (genList p1c p2c)) |> Some\r\n | false,true -> (List.map ((fun i -> (i,p1c)) >> RowCol) (genList p1r p2r)) |> Some\r\n | false,false -> None\r\n\r\n// Quick parser to generate tokenise string one row at a time\r\nlet simpleLex txt = \r\n let (|RegexMatch|_|) r txt =\r\n let m = Regex.Match (txt,\"^\"+r)\r\n match m.Success with\r\n | true -> (m.Value, txt.Substring(m.Value.Length)) |> Some\r\n | false -> None\r\n let rec simpleLex' a txt =\r\n match txt with\r\n // Whitespace\r\n | RegexMatch \"[\\\\s]+\" (m,after) -> simpleLex' (WHITESPACE(m.Length)::a) after\r\n // Contents for expression evaluation\r\n | RegexMatch \"[0-9]+\" (m,after) -> simpleLex' (NUMBER(m)::a) after\r\n | RegexMatch \"\\\\^\" (_,after) -> simpleLex' (CARET::a) after\r\n | RegexMatch \"\\\\%\" (_,after) -> simpleLex' (PERCENT::a) after\r\n | RegexMatch \"\\\\*\" (_,after) -> simpleLex' (ASTERISK::a) after\r\n | RegexMatch \"\\\\/\" (_,after) -> simpleLex' (SLASH::a) after\r\n | RegexMatch \"\\\\+\" (_,after) -> simpleLex' (PLUS::a) after\r\n | RegexMatch \"\\\\-\" (_,after) -> simpleLex' (MINUS::a) after\r\n | RegexMatch \"\\\\(\" (_,after) -> simpleLex' (LBRA::a) after\r\n | RegexMatch \"\\\\)\" (_,after) -> simpleLex' (RBRA::a) after\r\n | RegexMatch \"\\\\[\" (_,after) -> simpleLex' (LSBRA::a) after\r\n | RegexMatch \"\\\\]\" (_,after) -> simpleLex' (RSBRA::a) after\r\n | RegexMatch \"\\\\=\" (_,after) -> simpleLex' (EQUAL::a) after\r\n | RegexMatch \"\\\\.\" (_,after) -> simpleLex' (DOT::a) after\r\n | RegexMatch \"\\\\,\" (_,after) -> simpleLex' (COMMA::a) after\r\n | RegexMatch \"\\\\{\" (_,after) -> simpleLex' (LCBRA::a) after\r\n | RegexMatch \"\\\\}\" (_,after) -> simpleLex' (RCBRA::a) after\r\n // Contents for table recognition\r\n | RegexMatch \"[a-zA-z]+[0-9]*( [a-zA-z]+[0-9]*)*\" (m,after) -> simpleLex' (LITERAL(m)::a) after\r\n | RegexMatch \"\\\\|\" (_,after) -> simpleLex' (PIPE::a) after\r\n | RegexMatch \"\\\\:\" (_,after) -> simpleLex' (COLON::a) after\r\n | RegexMatch \"\\\\;\" (_,after) -> simpleLex' (SEMICOLON::a) after\r\n | \"\" -> a\r\n | _ -> failwithf \"Unexpected character: %A\" txt\r\n simpleLex' [] txt |> List.rev\r\n\r\n// Experimental Lexr for tokenising from entire table string\r\n// let stringLex (txt:string)=\r\n// List.map simpleLex (Array.toList (txt.Split(\"\\n\")))\r\nlet lexY (x,y,z) = x,y|>simpleLex,z\r\n\r\nlet logger = Logger(LogLevel.INFO)\n\n\n// WEBPACK FOOTER //\n// src/Common/Markalc/MarkalcShared.fs","module LexerShared\r\n\r\nopen System\r\nopen System.Text.RegularExpressions\r\n\r\n// --------------------------------------------------\r\n// Helpers\r\n// --------------------------------------------------\r\n\r\n/// Take the first element of a tuple of size 3\r\nlet takeFirst (a, _, _) = a\r\n\r\n/// Match a regular expression Return Some (m,grps) where m is the match string,\r\n/// grps is the list of match groups (if any) return None on no match\r\nlet strRegexMatch (regex: string) (str: string) =\r\n let m = Regex(regex).Match(str)\r\n if m.Success\r\n then\r\n let mLst = [ for x in m.Groups -> x.Value ]\r\n Some (List.head mLst, List.tail mLst)\r\n else None\r\n\r\n/// Checks if a string starts with another string\r\nlet strStartsWith (value: string) (str: string) =\r\n str.StartsWith(value)\r\n\r\n/// Convert a single character to a string\r\nlet toString (c: char) =\r\n String.Concat [c]\r\n\r\n/// Replace a every occurence of one string in the string s by another\r\nlet strReplace (o: string) (n: string) (s: string) =\r\n s.Replace(o, n)\r\n\r\n// --------------------------------------------------\r\n// Shared\r\n// --------------------------------------------------\r\n\r\n/// Active Pattern to match a string with a regex pattern, returns the matched string\r\n/// together with the groups in a list and the rest of the string\r\nlet (|RegexMatch|_|) regex str =\r\n match strRegexMatch regex str with\r\n | None -> None\r\n | Some (m, grp) ->\r\n let lchar = String.length m\r\n Some (m, grp, str.[lchar..])\r\n\r\n/// Create a regular expression for a literal that matches everything except the\r\n/// characters defined in charList\r\nlet literalString charList =\r\n\r\n /// Escapes every special regex character in a string given to it\r\n let addEscape (c, _) =\r\n [\"\\\\\"; \".\"; \"^\"; \"$\"; \"*\"; \"+\"; \"-\"; \"?\"; \"(\"; \")\"; \"[\"; \"]\"; \"{\"; \"}\"; \"|\"; \"/\"]\r\n |> List.fold (fun st n -> strReplace n (\"\\\\\"+n) st) c\r\n\r\n charList\r\n |> List.map (addEscape >> (fun a -> a+\"|\"))\r\n |> List.fold (+) \"\"\r\n |> (fun c -> \"^.+?(?=\\\\s|\"+c+\"$)\")\r\n\r\n/// Tests if a string starts with any of the characters in charList,\r\n/// and returns the match after passing it through the retLastMatch\r\n/// function, that will be used in a fold operation with None as a starting\r\n/// value\r\nlet (|CharMatch|_|) retLastMatch a charList (str: string) =\r\n let testStartWith (c, t) =\r\n let ch = a + c\r\n strStartsWith ch str, ch, t\r\n List.map testStartWith charList\r\n |> List.fold retLastMatch None\r\n\r\n/// Checks if a string starts with a character defined in charList, and returns the DU value\r\n/// associated with it\r\nlet (|Character|_|) charList (str: string) =\r\n let retLastMatch i = function\r\n | true, c, t -> Some (t, str.[String.length c..])\r\n | _ -> i\r\n (|CharMatch|_|) retLastMatch \"\" charList str\r\n\r\n/// Checks if a string starts with an escaped char of any character in charList, and returns it\r\n/// by passing the text of the last matched value to a constructor 'tType'\r\nlet (|EscapedChar|_|) tType charList (str: string) =\r\n let retLastMatch i = function\r\n | true, (c: string), _ -> Some (tType c.[1..], str.[String.length c..])\r\n | _ -> i\r\n (|CharMatch|_|) retLastMatch \"\\\\\" charList str\r\n\r\n/// Match a single group with a regex\r\nlet (|GroupMatch|_|) str = function\r\n | RegexMatch str (m, [t], r) -> Some t\r\n | _ -> None\r\n\n\n\n// WEBPACK FOOTER //\n// src/Common/Lexer/LexerShared.fs","module Main\r\nopen System\r\nopen Fable.Core\r\nopen Fable.Core.JsInterop\r\nopen Fable.Import.Browser\r\nopen Types\r\nopen FMark\r\n\r\nlet processMarkdownString str =\r\n str\r\n |> Array.toList\r\n |> processString HTML\r\n\n\n\n// WEBPACK FOOTER //\n// src/FMarkFable/FMarkFable.fs","module FMark\r\n\r\nopen Types\r\n\r\nlet preLexParse = \r\n Preprocessor.preprocessList\r\n >> Lexer.lexList\r\n >> Parser.parse\r\nlet processString' formatFunc =\r\n preLexParse >> Result.map formatFunc\r\n\r\nlet processString format =\r\n match format with\r\n | f when f = HTML -> processString' (HTMLGen.strBody)\r\n | f when f = Markdown -> processString' (MarkdownGen.mdBody)\r\n | _ -> failwithf \"Invalid format type generated, this should not be possible.\"\r\n\n\n\n// WEBPACK FOOTER //\n// src/Common/FMark.fs","module Parser\r\nopen Types\r\nopen Shared\r\nopen ParserHelperFuncs \r\n\r\n// helper functions\r\n\r\n\r\n/// parse inline code\r\nlet rec parseCode toks =\r\n match toks with\r\n | BACKTICK::_ -> (\"\", toks.[1..]) |> Ok\r\n | tok::toks' ->\r\n parseCode toks'\r\n |> Result.map (fun (str, tks) ->\r\n mapTok tok + str, tks )\r\n | e -> sharedLog.Warn None (sprintf \"%A\" e)\r\n (\"\\\\`\", xOnwards 1 toks) |> Ok\r\n\r\n/// parse inline text, including links and pictures, terminates when nothing left\r\nlet parseInLineElements toks =\r\n let attachInlineEle front back ele =\r\n [front;ele;back]\r\n let rec parseInLineElements' currentLine toks =\r\n match toks with\r\n | MatchSym BACKTICK (content, rtks) -> (content|> strAllToks|> Code|> FrmtedString )::currentLine, rtks\r\n | MatchEm (content, rtks, frontLiteral, backLiteral) ->\r\n let inlineContent = (parseInLines [] content |> Emphasis |> FrmtedString)\r\n match frontLiteral, backLiteral with\r\n | Some fl, Some bl ->\r\n [bl;inlineContent;fl]\r\n | Some fl, None ->\r\n [inlineContent;fl]\r\n | None, Some bl ->\r\n [bl;inlineContent]\r\n | None, None ->\r\n [inlineContent]\r\n |> (fun x -> x@currentLine), rtks\r\n | _ ->\r\n let str = mapTok toks.[0]\r\n FrmtedString (Literal str)::currentLine, xOnwards 1 toks\r\n and parseInLines currentLine toks =\r\n match toks with\r\n | [] -> []\r\n | _ ->\r\n let (newLine, retoks) = parseInLineElements' currentLine toks\r\n match retoks with\r\n | [] -> newLine |> List.rev\r\n | _ ->\r\n parseInLines newLine retoks\r\n |> combineLiterals\r\n parseInLines [] toks\r\n\r\n/// parse a paragraph which counts for contents in `<p>`\r\n/// parseParagraph eats 2>= ENDLINEs\r\nlet parseParagraph toks =\r\n let parseParagraph' lines tokLine = (parseInLineElements tokLine) :: lines\r\n toks\r\n |> trimENDLINEs\r\n |> cutIntoLines\r\n |> List.fold parseParagraph' []\r\n |> List.rev\r\n |> Paragraph\r\n\r\n/// match table start sequence\r\n/// return table rows, terminates when [] or two continuous ENDLINEs\r\n/// start sequence:\r\n/// something in first line, at least one '|' and three '-' in second line\r\nlet (|MatchTable|_|) toks =\r\n // transform table rows into Table or Pretable depending if valid table.\r\n let tableTransform (rows,rtks) =\r\n rows |> Markalc.parseEvaluateTable\r\n |> function\r\n | Ok(rows) -> \r\n let toPCellList (cell:Cell) = \r\n let toks,head,align = (cell.GetParams) \r\n let pCellLine = toks |> parseInLineElements\r\n CellLine(pCellLine,head,align)\r\n let toPRow row = \r\n let clst, rHead = row |> function | Cells(clst',rHead') -> clst',rHead'\r\n PCells(List.map toPCellList clst, rHead)// Create PRows\r\n // For each row, unpack into Cell list\r\n (List.map toPRow rows |> Table,rtks) |> Some\r\n | Error(_)-> None\r\n match toks with\r\n | MatchTableHead rtks ->\r\n match rtks with\r\n | MatchTableFormater _ -> cutTableRows toks |> tableTransform\r\n | _ -> None\r\n | _ -> None\r\n\r\n/// parse supported `ParsedObj`s, turn them into a list\r\n/// assuming each item start at the beginning of the line\r\n/// the returned token head does not have 2>= ENDLINE\r\nlet rec parseItem (rawToks: Token list) : Result<ParsedObj * Token list, string> =\r\n let toks = deleteLeadingENDLINEs rawToks\r\n match toks with\r\n | CODEBLOCK (content, lang) :: toks' -> (CodeBlock(content, lang), toks') |> Ok\r\n | MatchListOpSpace _ -> \"Lists todo\" |> Error\r\n | MatchTable (rows, rtks) -> (rows, rtks) |> Ok\r\n | MatchQuote (content, rtks) ->\r\n (parseInLineElements content |> Quote , rtks)\r\n |> Ok\r\n | MatchHeader (level, content, rtks) ->\r\n let line = parseInLineElements content\r\n (Header{HeaderName=line; Level=level}, rtks)\r\n |> Ok\r\n | PickoutParagraph (par, retoks) ->\r\n (parseParagraph par, retoks) |> Ok\r\n | _ -> toks |> strAllToks |> Error\r\n\r\nand parseItemList toks : Result<ParsedObj list * option<Token list>, string> =\r\n match List.isEmpty toks with\r\n | true -> ([], None) |> Ok\r\n | false -> \r\n parseItem toks\r\n |> Result.bind (fun (pobj, re) ->\r\n match List.isEmpty re with\r\n | true -> ([pobj], None) |> Ok\r\n | false ->\r\n parseItemList re\r\n |> Result.map(fun (pobjs, re') ->\r\n pobj::pobjs, re' )\r\n )\r\n\r\n/// top-level Parser, which the user should use\r\n/// `parse` will either return result monad with either `ParsedObj list` or a string of Error message.\r\n/// Unparsed Tokens will be in the returned in the Error message.\r\nlet parse toks =\r\n parseItemList toks\r\n |> Result.bind (fun (pobjs, retoks) ->\r\n match retoks with\r\n | None -> pobjs |> Ok\r\n | Some retoks -> sprintf \"Some unparsed tokens: %A\" retoks |> Error)\r\n\n\n\n// WEBPACK FOOTER //\n// src/Common/Parser/Parser.fs","module ParserHelperFuncs\r\nopen Types\r\nopen Shared\r\nopen System.Threading\r\n\r\nlet SPACE = \" \"\r\nlet NOSTRING = \"\"\r\n\r\ntype TEmphasis = UNDER | STAR // underscore and asterisk\r\n\r\ntype ParagraphState = {Par: Token list; ReToks: Token list; ParMatched: bool}\r\n\r\n/// delete leading ENDLINEs and retur the rest\r\nlet rec deleteLeadingENDLINEs toks =\r\n match toks with\r\n | ENDLINE:: tks -> deleteLeadingENDLINEs tks\r\n | _ -> toks\r\n\r\nlet deleteTrailingENDLINEs toks =\r\n toks\r\n |> List.rev\r\n |> deleteLeadingENDLINEs\r\n |> List.rev\r\n\r\nlet trimENDLINEs toks =\r\n toks\r\n |> deleteLeadingENDLINEs\r\n |> deleteTrailingENDLINEs\r\n\r\n/// convert all Tokens into a single string\r\n/// see mapTok for Token mapping\r\nlet stringAllTokens toks =\r\n let matchTok i tok =\r\n i + mapTok tok\r\n List.fold matchTok \"\" toks\r\n\r\n/// count subsquent and continuous Tokens\r\nlet countToks (tok: Token) toks =\r\n let rec countToks' (n, toks') =\r\n match toks' with\r\n | t:: rtks when t = tok -> countToks' (n+1, rtks)\r\n | _ -> n, toks'\r\n countToks' (0, toks) |> fst\r\n\r\n/// count leading continuous spaces\r\nlet countSpaces toks =\r\n let rec countToks' (n, toks') =\r\n match toks' with\r\n | WHITESPACE no:: rtks -> countToks' (n+no, rtks)\r\n | _ -> n, toks'\r\n countToks' (0, toks) |> fst\r\n\r\n/// count leading continuoues ENDLINEs\r\nlet countNewLines = countToks (ENDLINE)\r\n\r\n/// count all pipes in a line\r\nlet countDelim delim toks =\r\n let counter tok =\r\n match tok with\r\n | t when t =delim ->1\r\n | _ -> 0\r\n List.sumBy counter toks\r\nlet countPipes = countDelim PIPE\r\nlet countMinus = countDelim MINUS\r\n\r\n/// first element is the line\r\n/// second element is remaining tokens\r\nlet cutFirstLine toks =\r\n let rec cutLine' line rtks =\r\n match rtks with\r\n | ENDLINE:: rtks -> line |> List.rev, rtks\r\n | tok:: rtks -> cutLine' (tok::line) rtks\r\n | [] -> line |> List.rev, []\r\n cutLine' [] toks\r\n\r\n/// process token list into lines of tokens, no ENDLINE in the end\r\nlet cutIntoLines toks =\r\n let rec cutIntoLines' tokLines toks =\r\n let endlineSpliter = function | ENDLINE -> true | _ -> false\r\n match List.tryFindIndex endlineSpliter toks with\r\n | None -> toks::tokLines |> List.rev\r\n | Some idx ->\r\n match List.splitAt idx toks with\r\n | (tokLine, retoks) ->\r\n let tokLineNoEL = tokLine |> deleteTrailingENDLINEs\r\n cutIntoLines' (tokLineNoEL::tokLines) retoks.Tail\r\n toks\r\n |> cutIntoLines' []\r\n\r\n/// combine adjacent FrmtedString(Literal \"something\")\r\nlet combineLiterals line =\r\n let combiner line inlineEle =\r\n let doNothing = inlineEle::line\r\n match List.head line with\r\n | FrmtedString (Literal l) ->\r\n match inlineEle with\r\n | FrmtedString (Literal s) -> FrmtedString (Literal (l+s)) :: line.Tail\r\n | _ -> doNothing\r\n | _ -> doNothing\r\n line\r\n |> List.tail\r\n |> List.fold combiner [List.head line]\r\n |> List.rev\r\n\r\n\r\n/// match start and end symbol for formatting\r\n/// return the match content, w/o the symbols\r\n/// and the rest tokens\r\nlet (|MatchSym|_|) sym toks =\r\n match toks with\r\n | t::tl when t = sym ->\r\n match List.tryFindIndex (fun s -> s=sym) (List.tail toks) with\r\n | Some idx ->\r\n let (content, restTks) = List.splitAt idx tl\r\n (content, List.tail restTks) |> Some\r\n | None -> None\r\n | _ -> None\r\n\r\n/// match paragraph\r\n/// return paragraph contents, w/o trailing ENDLINE,\r\n/// and the rest tokens, w/o leading ENDLINE\r\nlet (|PickoutParagraph|_|) toks =\r\n match toks with\r\n | [] -> None\r\n | _ ->\r\n let folder state tok =\r\n let {Par=par;ReToks=reToks;ParMatched=matched} = state\r\n if matched then\r\n {state with ReToks=tok::reToks}\r\n else\r\n match tok with\r\n | ENDLINE when List.head par = ENDLINE -> {Par=List.tail par;ReToks=reToks;ParMatched=true}\r\n | _ -> {state with Par=tok::par}\r\n let initState = {Par=[];ReToks=[];ParMatched=false}\r\n match List.fold folder initState toks with\r\n | {Par=par;ReToks=reToks} ->\r\n (par |> List.rev, reToks |> List.rev |> deleteLeadingENDLINEs) |> Some\r\n\r\n\r\n\r\n/// match underscore and asterisk emphasis start squence\r\n/// match underscore and asterisk emphasis end sequence\r\n/// return content of emphasis, the rest of line,\r\n/// and the necessary edge InlineElement\r\n/// e.g. ` _i_`, the edge InlineElements are `Some(FrmtedString(Literal \" \"))` and `None`\r\nlet (|MatchEm|_|) toks =\r\n let attachInlineEle front back = Option.map (fun (x,y) -> x,y,front,back)\r\n match toks with\r\n | WHITESPACE _:: UNDERSCORE:: WHITESPACE _:: _ -> None // not em\r\n | WHITESPACE frontWhite:: UNDERSCORE:: potential ->\r\n let frontLiteral = String.replicate frontWhite \" \" |> Literal |> FrmtedString |> Some\r\n let rec endFinder content toks =\r\n match toks with\r\n | [] -> None\r\n | WHITESPACE _:: UNDERSCORE:: WHITESPACE _:: rtks -> // keep finding\r\n endFinder (List.append content toks.[0..2]) rtks\r\n | _:: UNDERSCORE:: WHITESPACE backWhite:: rtks ->\r\n let backLiteral = String.replicate backWhite \" \" |> Literal |> FrmtedString |> Some\r\n (List.append content [List.head toks], rtks)\r\n |> Some\r\n |> attachInlineEle frontLiteral backLiteral\r\n | _::[UNDERSCORE] ->\r\n (List.append content [List.head toks], [])\r\n |> Some\r\n |> attachInlineEle frontLiteral None\r\n | _ ->\r\n xOnwards 1 toks\r\n |> endFinder (List.append content [toks.[0]])\r\n endFinder [] potential\r\n | ASTERISK:: WHITESPACE _:: _ -> None // not asterisk em\r\n | ASTERISK:: potential ->\r\n let rec endFinder content toks =\r\n match toks with\r\n | [] -> None\r\n | WHITESPACE _:: ASTERISK:: rtks -> // keep finding\r\n endFinder (List.append content toks.[0..1]) rtks\r\n | _:: ASTERISK:: rtks ->\r\n (List.append content [List.head toks], rtks)\r\n |> Some\r\n |> attachInlineEle None None\r\n | _ ->\r\n xOnwards 1 toks\r\n |> endFinder (List.append content [toks.[0]])\r\n endFinder [] potential\r\n | _ -> None\r\n\r\n/// match new paragraph sequence\r\n/// return Token list after EDNLINEs\r\nlet (|MatchNewParagraph|_|) toks =\r\n match countNewLines toks with\r\n | n when n>=2 -> toks.[n..] |> Some\r\n | _ -> None\r\n\r\n/// turn head Token into string\r\n/// return head Token string and tail Token list\r\nlet (|MatchMapTok|_|) = function\r\n | tok:: toks -> (mapTok tok, toks) |> Some\r\n | _ -> None\r\n\r\n/// match hashes\r\n/// returns no of hashes, the first non-WHITESPACE token list\r\n/// and the tokens in next lines\r\nlet (|MatchHeader|_|) toks =\r\n let rec countHashes n tks =\r\n match tks with\r\n | HASH:: tks' -> countHashes (n+1) tks'\r\n | _ -> n\r\n match countHashes 0 toks with\r\n | no when no > 0 ->\r\n match toks.[no..] with\r\n | WHITESPACE _ :: toks' ->\r\n toks'|> cutFirstLine\r\n |> (fun (f,s) -> no, f,s)\r\n |> Some // omit whitespace\r\n | _ -> None\r\n | _ -> None\r\n\r\n/// match quote\r\nlet (|MatchQuote|_|) toks =\r\n match toks with\r\n | RABRA:: rtks ->\r\n rtks\r\n |> cutFirstLine\r\n |> Some\r\n | _ -> None\r\n\r\n/// match list begin sequence w/o spaces\r\n/// return list type and Token list after start sequence\r\nlet (|MatchList|_|) toks =\r\n match toks with\r\n | NUMBER _:: DOT:: WHITESPACE _:: toks' -> (OL, toks') |> Some\r\n | ASTERISK:: WHITESPACE _:: toks' -> (UL, toks') |> Some\r\n | _ -> None\r\n\r\n/// match list begin sequence with optional spaces\r\n/// return list type and Token list after start sequence\r\nlet (|MatchListOpSpace|_|) toks =\r\n match toks with\r\n | WHITESPACE _:: MatchList content -> content |> Some\r\n | MatchList content -> content |> Some\r\n | _ -> None\r\n\r\n/// return the next line\r\n/// next line is seperated by 1 ENDLINE\r\nlet (|MatchTableHead|_|) toks =\r\n let line, rtks = cutFirstLine toks\r\n match line with\r\n | [] -> None\r\n | _ -> rtks |> Some\r\n\r\n/// take one PIPE\r\n/// return the rest |> Some\r\n/// otherwise, None\r\nlet pipeMatch oToks =\r\n oToks\r\n |> Option.bind (fun toks ->\r\n match toks with\r\n | PIPE:: rtks -> Some rtks\r\n | _ -> None )\r\n\r\n/// take all leading subsequent MINUSes\r\n/// return the rest Tokens |> Some\r\n/// otherwise, None\r\nlet minusMatch oToks =\r\n let takeAwayMinuses toks =\r\n let rec takeAwayMinuses' n toks =\r\n match toks with\r\n | MINUS:: rtks -> takeAwayMinuses' (n+1) rtks\r\n | _ -> n, toks\r\n takeAwayMinuses' 0 toks\r\n oToks\r\n |> Option.bind (fun toks ->\r\n let n, rtks = toks |> takeAwayMinuses \r\n if n>0 then\r\n Some rtks\r\n else\r\n None\r\n )\r\n\r\n/// match the table formater line\r\n/// the table formater is usually the second line of a table\r\n/// return the rest Tokens |> Some\r\n/// otherwise, None\r\nlet (|MatchTableFormater|_|) toks =\r\n let line, rtks = cutFirstLine toks\r\n match (countPipes line, countMinus line) with\r\n | (p,m) when p>0 && m>2 -> Some(rtks)\r\n | _ -> None\r\n\r\n/// cut Tokens into Token list list for Table parsing\r\n/// terminates when [] or two continuous ENDLINEs\r\n/// return Token list list,\r\n/// remaining Token list\r\nlet cutTableRows toks =\r\n let rec cutTableRow' rows toks =\r\n match toks with\r\n | ENDLINE:: rtks -> rows |> List.rev, rtks // one endline followed by another\r\n | [] -> rows |> List.rev, []\r\n | _ ->\r\n let row, rtks = cutFirstLine toks\r\n cutTableRow' (row::rows) rtks\r\n cutTableRow' [] toks\r\n\n\n\n// WEBPACK FOOTER //\n// src/Common/Parser/ParserHelperFuncs.fs","module Markalc\r\n\r\nopen Types\r\nopen Shared\r\nopen MarkalcShared\r\nopen Expression\r\nopen Logger\r\n\r\ntype MapContents =\r\n | MapTok of Cell\r\n | MapExp of Expr * Cell\r\n\r\n// ################### HELPER FUNCTIONS ###################\r\n/// Return everything (before,after) the first PIPE token\r\nlet pipeSplit toks = \r\n delimSplit false PIPE toks\r\n// Turn float into token\r\nlet toToken x = NUMBER(x|>string)\r\n/// Transform Result<Ok,Error> list into Result<Ok list, Error>\r\nlet joinErrorList lst =\r\n // Filter the list\r\n let filt x = match x with\r\n | Error(_) -> true\r\n | Ok(_) -> false\r\n let unpackOks = function\r\n | Ok(x') -> x'\r\n | Error(y) -> failwithf \"After filtering, there were still Error monads in the list %A.\" y\r\n let combineErrors s x = match x with\r\n | Ok(_) -> s // This should never be matched in this usage.\r\n | Error(x') -> sprintf \"%A %A\" x' s |> Error\r\n match List.filter filt lst with\r\n | [] -> List.map unpackOks lst |> Ok // If the list is empty there are no errors\r\n | x -> List.fold combineErrors (Error \"\") x\r\n// Lift first argument to result world\r\nlet liftFirstArg func arg1 arg2 =\r\n match arg1 with\r\n | Ok(x) -> func x arg2 |> Ok\r\n | Error(x) -> Error x\r\n\r\n// ####################### CONSTRUCT CELL HELPERS ###################\r\nlet makeCellU header tokens = (tokens,header)\r\nlet defaultCellU = makeCellU false\r\nlet headCellU = makeCellU true\r\nlet alignCell alignment cellU = Contents (fst cellU, snd cellU, alignment)\r\n\r\n// ###################### PARSE TABLE ROWS #####################\r\n// Parse a line into a list of cells\r\nlet parsePipesD debug constructCell (row:Token list) =\r\n let rec parsePipes' a row =\r\n match pipeSplit row with\r\n | Ok([],[]) -> (constructCell []):: a\r\n | Ok([],after) -> sprintf \"empty, %A\" after |> logger.Debug None\r\n parsePipes' ((constructCell [])::a) after // If before is empty and after is not, empty cell\r\n | Ok(before,[]) -> sprintf \"%A, empty\" before |> logger.Debug None\r\n (constructCell before) :: a // If after is empty, add before and stop\r\n | Ok(before,after) -> sprintf \"%A, %A\" before after |> logger.Debug None\r\n parsePipes' ((constructCell before) :: a) after\r\n | Error(_) -> if List.isEmpty row then a else (constructCell row)::a // If there is content, add it\r\n parsePipes' [] row\r\nlet parsePipes constructCell row = parsePipesD false constructCell row /// TOGGLE DEBUG MODE\r\n/// Parse an ordinary row\r\nlet parseRow constructCell row =\r\n let parseRow' = parsePipes constructCell\r\n // If its the first pipe and there's nothing before it, remove it\r\n match row with\r\n | PIPE :: row' -> parseRow' row'\r\n | row' -> parseRow' row'\r\n // If the list only contains one item, add an empty cell on the end (empty cells now added later on...)\r\n |> (fun x -> if List.length x = 1 then (constructCell[])::x else x) \r\n |> List.rev\r\nlet parseDefaultRow = parseRow defaultCellU\r\n/// Parse the second row of the table which defines number of columns and alignment\r\nlet parseAlignRow (row:Token list) = \r\n let getAlignment (toks: Token list) =\r\n let filt = function | COLON -> true | MINUS -> true | _ -> false \r\n // Check it has at least three dashes\r\n match (countDelim MINUS toks < 3, List.filter filt toks |> List.length <> List.length toks) with\r\n | (true,false) -> \"Less than 3 dashes for table format\" |> Error \r\n | (false,true) -> sprintf \"Invalid characters in table format, expecting only : or - \\n%A\\n%A\" toks (List.filter filt toks) |> Error\r\n | (true,true) -> \"Less than 3 dashes for table format and invalid characters\" |> Error \r\n | (false,false) ->\r\n match (List.rev toks, countDelim COLON toks) with\r\n | (COLON :: _, 2) when List.head toks = COLON -> Centre |> Ok\r\n | (COLON :: _, 1) -> Right |> Ok\r\n | (_,1) when List.head toks = COLON -> Left |> Ok\r\n | (_,0) -> NoAlign |> Ok\r\n | (_,x) -> sprintf \"\\':\\'s in wrong position %A, %A\" toks x |> Error\r\n let parseAlign' = parsePipes getAlignment\r\n // Ignore the first pipe if there is nothing before it\r\n match whitespaceFilter row with\r\n | PIPE :: row' -> parseAlign' row'\r\n | row' -> parseAlign' row'\r\n |> List.rev\r\n |> joinErrorList\r\n\r\n// ################ BUSINESS END ###############\r\n/// Function which takes a parsed row (list of unalignedcells) and the list of alignments, and will create Cells\r\nlet alignCells' alignList (cells:(Token list * bool) list) =\r\n let lengths = (List.length alignList, List.length cells)\r\n match (fst lengths - snd lengths) with\r\n | x when x > 0 -> cells @ (List.replicate x ([], List.head cells |> snd)) // If alignList longer than cells, fill in with blank cells\r\n | x when x < 0 -> cells.[0..((fst lengths)-1)]// If cells longer than alignList, ignore the extra cells\r\n | _ -> cells\r\n |> (List.zip alignList)\r\n |> List.map (fun (a,uc) -> alignCell a uc)\r\n\r\nlet alignCells = liftFirstArg alignCells'\r\n/// Separate list of tokens into cells with alignment and header/not-header\r\nlet transformTable (table:Token list list) =\r\n // Deal with first two rows of format: header1 | header2 | header3\r\n // Second row tells us how many columns and correct alignment\r\n let alignments = table.[1] |> parseAlignRow\r\n let makeRow head = function | Ok(x) -> Ok(x,head) | Error(e) -> Error e\r\n\r\n let header = (List.head table |> parseRow headCellU |> alignCells alignments) \r\n |> makeRow true |> (Result.map Cells)\r\n\r\n // Fold parse normal row for the rest of the table\r\n let parseAlignPrepend s x = (parseRow defaultCellU x |> alignCells alignments |> makeRow false |> (Result.map Cells)) :: s\r\n List.fold parseAlignPrepend [header] (xOnwards 2 table)\r\n |> List.rev\r\n |> joinErrorList\r\n\r\n// Try to evaluate expression, set maxRefs to number of CellRefs before assuming circular reference\r\nlet tryEval' maxRefs map e =\r\n // Evaluate expression\r\n let rec evalExp r map e =\r\n // Evaluate cell reference\r\n let evalCellRef ref = \r\n match Map.tryFind ref map with\r\n | Some(MapExp(e2,_)) -> evalExp (r+1) map e2\r\n | _ -> nan // invalid reference\r\n // Apply f over list of cell references between two cells\r\n let rangeFunc f x y = match cellRange (x,y) with\r\n | Some(l) -> f l\r\n | None -> nan\r\n if r > maxRefs then nan else // Return nan if too many recursive calls, probably circular reference\r\n match e with\r\n | BinExp(f,x,y) -> f (evalExp r map x) (evalExp r map y)\r\n | Op (Float(x)) -> x\r\n | Op (CellRef(ref)) -> evalCellRef ref\r\n | CommaFunction(\"SUM\",l) -> List.sumBy (evalExp r map) l\r\n | CommaFunction(\"AVG\",l) -> List.averageBy (evalExp r map) l\r\n | CommaFunction(\"MIN\",l) -> List.min (List.map (evalExp r map) l)\r\n | CommaFunction(\"MAX\",l) -> List.max (List.map(evalExp r map) l)\r\n | _ -> 11.0\r\n evalExp 0 map e\r\nlet tryEval = tryEval' 1000\r\n/// Evaluate all expressions inside a cell list list, leave non-expression cells as they are\r\n/// No invalid expressions should be matched.\r\nlet evaluateCellList (rowList:Row list) = \r\n let rowUnpack = List.collect (function | Cells(l,_) -> [l])\r\n let makeRow (cellList:Cell list) = Cells(cellList, (List.head cellList).GetHead)\r\n // Iterate over table, must know \"where am I?\" for each cell\r\n let innerFold row (s:(CellReference*MapContents) list*uint32) (cell:Cell) =\r\n match parseExpression (cell.GetToks) with\r\n | Ok(ex) -> (RowCol(row,snd s),MapExp (ex,cell)) :: (fst s), snd s + 1u // Expression found, put it into the map!\r\n | Error(t) -> (RowCol(row,snd s),MapTok (cell)) :: fst s, snd s + 1u // No expression, ignore\r\n let outerFold (s:uint32*((CellReference*MapContents)list*uint32)) cells =\r\n (fst s + 1u,List.fold (innerFold (fst s)) (fst(snd s),0u) cells)\r\n let cellList = rowUnpack rowList\r\n let rowLength = List.length (List.head cellList)\r\n List.fold outerFold (0u,([],0u)) cellList \r\n |> function \r\n | (_,(expRefList,_)) -> \r\n let expList = List.rev expRefList\r\n let map = Map.ofList expList\r\n // Iterate over list, evaluate expression for each MapExp then convert into Token list\r\n // convert MapContents from MapExp to MapTok (?)\r\n let expListEval = function\r\n | MapTok(c) -> c\r\n | MapExp(e,c) -> [tryEval map e |> toToken] |> (c.ReplaceTokens)\r\n List.map (snd >> expListEval) expList\r\n |> (Seq.chunkBySize rowLength) \r\n |> Seq.toList \r\n |> List.map (Array.toList>>makeRow)\r\n\r\n/// Top level function\r\n/// Parse tokens into cell list list with all Expressions evaluated.\r\n/// Return: Result(OK(Cell list list), Error(toks))\r\nlet parseEvaluateTable (toks:Token list list) = \r\n // Transform Token list list into Cell list list\r\n let endlFilt = function | ENDLINE -> false | _ -> true\r\n transformTable (List.map (List.filter endlFilt) toks)\r\n |> function\r\n | Error(_) -> toks |> Error // If there are any errors just return the unchanged Token list list\r\n | Ok(x) -> evaluateCellList x |> Ok // Else return Ok and Cell list list\r\n\r\nlet lexParseEvaluate toks = \r\n List.map simpleLex toks\r\n |> parseEvaluateTable\r\n\n\n\n// WEBPACK FOOTER //\n// src/Common/Markalc/Markalc.fs","/// This module should parse tokens into an expression\r\nmodule Expression\r\n\r\nopen MarkalcShared\r\nopen Types\r\n\r\n(* SUPPORTED OPERATIONS:\r\nBinaryExpressions (in order of precedence): \r\n % - Modulo\r\n ^ - To the power\r\n * - Multiply\r\n / - Divide\r\n + - Add\r\n - - Subtract\r\n*)\r\n// HELPER FUNCTIONS\r\nlet makeFloat i d = \r\n sprintf \"%A.%A\" i d |> float\r\nlet makeInt (i:string) =\r\n i |> int\r\nlet makeCellReference (row:string,col:string) =\r\n RowCol(row|>uint32,col|>uint32)\r\n// [row=3,col=2]\r\n// ]2=col,3=row[\r\n// [row=3,col=2] [3,42]\r\n/// EXPRESSION PARSER\r\nlet parseExp toks = \r\n let rec (|Expression|_|) (toks:Token list) =\r\n let (|NumberPat|_|) = function\r\n | NUMBER(i) :: DOT :: NUMBER(d) :: after -> (makeFloat i d, after) |> Some\r\n | NUMBER(i) :: after -> (makeInt i |> float, after) |> Some\r\n | _ -> None\r\n let rec (|CellRefPat|_|) = function\r\n | RSBRA :: NUMBER(col) :: COMMA :: NUMBER(row) :: LSBRA :: after \r\n -> ((row,col) |> makeCellReference,after) |> Some\r\n | RSBRA :: NUMBER(row) :: EQUAL :: LITERAL(\"row\") :: COMMA :: NUMBER(col) :: EQUAL :: LITERAL(\"col\") :: LSBRA :: after \r\n -> sprintf \"Row:%A, Col:%A\" row col |> logger.Debug None\r\n ((row,col) |> makeCellReference,after) |> Some\r\n | RSBRA :: NUMBER(col) :: EQUAL :: LITERAL(\"col\") :: COMMA :: NUMBER(row) :: EQUAL :: LITERAL(\"row\") :: LSBRA :: after \r\n -> sprintf \"Row:%A, Col:%A\" row col |> logger.Debug None\r\n ((row,col) |> makeCellReference,after) |> Some\r\n | _ -> None\r\n let rec (|ExpressionList|_|) = function\r\n | Expression(exp,COMMA::ExpressionList(exps,after)) -> (exp::exps,after) |> Some\r\n | CellRefPat(x,COLON::CellRefPat(y,after)) -> cellRange (x,y) |> function\r\n | Some lst -> (List.map (CellRef >> Op) lst,after) |> Some\r\n | _ -> None\r\n | Expression(exp,after) -> ([exp],after) |> Some\r\n | _ -> None\r\n // DEFINE FUNCTIONS\r\n let funcConstruct funcname = function\r\n | RCBRA :: ExpressionList (lst,LCBRA::LITERAL(funcname)::after) ->\r\n (CommaFunction(funcname,lst),after) |> Some\r\n | _ -> None\r\n let (|Sum|_|) = funcConstruct \"SUM\"\r\n let (|Avg|_|) = funcConstruct \"AVG\"\r\n let (|Min|_|) = funcConstruct \"MIN\"\r\n let (|Max|_|) = funcConstruct \"MAX\"\r\n \r\n let (|FunctionPat|_|) = function\r\n | Sum (x,after) -> (x,after) |> Some\r\n | Avg (x,after) -> (x,after) |> Some\r\n | Min (x,after) -> (x,after) |> Some\r\n | Max (x,after) -> (x,after) |> Some\r\n | _ -> None\r\n\r\n let (|BasePat|_|) = function\r\n | NumberPat (x,after) -> (x |> Float |> Op,after) |> Some\r\n | FunctionPat (x,after) -> (x,after) |> Some\r\n // Parsing in reverse so right and left brackets swapped\r\n | CellRefPat (x,after) -> (x |> CellRef |> Op,after) |> Some\r\n | RBRA :: Expression (x,LBRA::after) -> (x,after) |> Some\r\n | _ -> None\r\n // Active pattern to construct precedence-aware active patterns; descends recursively until highest precedence match.\r\n // Quirk: Returns right-associative results, so parsing in reverse to get left-associativity.\r\n let rec (|HOFPat|_|) (|PrevPat|_|) op (t:Token) = function\r\n | PrevPat (exp1, after) -> \r\n match after with\r\n | x :: (HOFPat (|PrevPat|_|) op t (exp2, after')) when x = t -> \r\n (BinExp (op, exp2, exp1), after') |> Some // exp1 and exp2 swapped because parsing in reverse\r\n | _ -> (exp1, after) |> Some\r\n | _ -> None\r\n // Build precendence and normal binary operators\r\n let patPrecedence = [(%),PERCENT;( **),CARET;(*),ASTERISK;(/),SLASH;(-),MINUS;( + ),PLUS]\r\n let constructPatterns s x = ((|HOFPat|_|) (List.head s) (fst x) (snd x))::s\r\n let patterns = List.fold constructPatterns [(|BasePat|_|)] patPrecedence\r\n let (|FirstPat|_|) = List.head patterns\r\n\r\n // Unary operators, only negative number so far. Doesn't work.\r\n // let (|UnaryOperators|_|) = function\r\n // | FirstPat (exp1, after) ->\r\n // match after with\r\n // // Negative Numbers\r\n // | NumberPat(x,MINUS::after') -> (-x |> Float |> Op,after') |> Some\r\n // // ... Could have more patterns here.\r\n // | _ -> (exp1,after) |> Some\r\n // | _ -> None\r\n\r\n match toks with\r\n | FirstPat x -> Some x\r\n | _ -> None\r\n match List.rev toks with \r\n | Expression (exp,[]) -> Ok exp\r\n | _ -> sprintf \"Not valid expression %A\" toks |> Error\r\n\r\nlet parseExpression toks = \r\n match toks with\r\n | EQUAL :: tail -> \r\n whitespaceFilter tail |> parseExp |> function\r\n | Error(e) -> Error toks\r\n | Ok(x) -> Ok x\r\n | toks -> Error toks\r\n\r\n// ################## TEST FUNCTIONS ####################\r\n// Recursively evaluate expression AST. CellRef will need access to whole table, this is used to test everything else\r\nlet rec evalExpTest e = \r\n match e with\r\n | BinExp(f,x,y) -> f (evalExpTest(x)) (evalExpTest(y))\r\n | Op (Float(x)) -> x\r\n | _ -> 13.0\r\n\r\n// Test evaluation without table\r\nlet parseExpTest (toks:Token list) =\r\n whitespaceFilter toks // Remove whitespace\r\n |> parseExp\r\n |> function\r\n | Error(e) -> printfn \"Error parsing expression: %A\" e\r\n Error toks \r\n | Ok(x) -> evalExpTest x |> Ok\n\n\n// WEBPACK FOOTER //\n// src/Common/Markalc/Expression.fs","const parseRadix = /^\\s*([\\+\\-])?(0[xob])?([0-9a-fA-F]+)\\s*$/;\nconst invalidRadix2 = /[^01]/;\nconst invalidRadix8 = /[^0-7]/;\nconst invalidRadix10 = /[^0-9]/;\nexport function isValid(s, radix) {\n const res = parseRadix.exec(s);\n if (res != null) {\n if (radix == null) {\n switch (res[2]) {\n case \"0b\":\n radix = 2;\n break;\n case \"0o\":\n radix = 8;\n break;\n case \"0x\":\n radix = 16;\n break;\n default:\n radix = 10;\n break;\n }\n }\n switch (radix) {\n case 2:\n return invalidRadix2.test(res[3]) ? null : [res, 2];\n case 8:\n return invalidRadix8.test(res[3]) ? null : [res, 8];\n case 10:\n return invalidRadix10.test(res[3]) ? null : [res, 10];\n case 16:\n return [res, 16];\n default:\n throw new Error(\"Invalid Base.\");\n }\n }\n return null;\n}\n// TODO does this perfectly match the .NET behavior ?\nexport function tryParse(s, radix, initial) {\n const a = isValid(s, radix);\n if (a !== null) {\n const [[, prefix, , digits], radix_] = a;\n const v = parseInt((prefix || \"\") + digits, radix_);\n if (!Number.isNaN(v)) {\n return [true, v];\n }\n }\n return [false, initial];\n}\nexport function parse(s, radix) {\n const a = tryParse(s, radix, 0);\n if (a[0]) {\n return a[1];\n }\n else {\n throw new Error(\"Input string was not in a correct format.\");\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/Common/Markalc/Expression.fs","module Lexer\r\n\r\nopen Types\r\nopen Shared\r\nopen LexerShared\r\n\r\ntype LexerState =\r\n | Normal\r\n | InCodeBlock of content: string * Language\r\n | InHTMLTag of tag: string * depth: int\r\n\r\nlet htmlSingleton = [\r\n \"area\"; \"base\"; \"br\"; \"col\"; \"command\"; \"embed\"; \"hr\"; \"img\"; \"input\"\r\n \"keygen\"; \"link\"; \"meta\"; \"param\"; \"source\"; \"track\"; \"wbr\"\r\n]\r\n\r\n/// An escaped char tokenizer, which identifies the escaped characters and returns them\r\n/// as a literal instead, without the leading '\\'\r\nlet (|EscapedCharTok|_|) = (|EscapedChar|_|) LITERAL charList\r\n\r\n/// Returns the Token type of the identifier token\r\nlet (|CharacterTok|_|) = (|Character|_|) charList\r\n\r\nlet (|MatchLang|_|) = function\r\n | RegexMatch \"(p|P)ython\" _ -> Some Python | RegexMatch \"F#|fsharp|f#\" _ -> Some FSharp\r\n | RegexMatch \"(C|c)(\\\\+\\\\+|pp)\" _ -> Some CPP | RegexMatch \"C|c\" _ -> Some C | _ -> Some Empty\r\n\r\nlet (|HTMLStartTag|_|) = (|RegexMatch|_|) \"^<([a-zA-Z]+)\\\\s*.*?>\"\r\n\r\nlet (|HTMLEndTag|_|) = (|RegexMatch|_|) \"^<\\\\/([a-zA-Z]+)\\\\s*.*?>\"\r\n\r\nlet (|HTMLSingleton|_|) = (|RegexMatch|_|) \"^<([a-zA-Z]+)\\\\s*.*?(?:\\\\/>|>)\"\r\n\r\nlet (|CodeBlockStart|_|) = (|GroupMatch|_|) \"^```+\\\\s*([a-zA-Z0-9+\\\\-_]*)\"\r\n\r\n/// Returns the next Token of a string\r\nlet nextToken state s =\r\n match s, state with\r\n | EscapedCharTok n, _ -> n, state\r\n | HTMLStartTag (s, [t], r), Normal ->\r\n (LITERAL s, r), InHTMLTag (t, 1)\r\n | HTMLStartTag (s, [t], r), InHTMLTag (tag, d) ->\r\n if t = tag then\r\n (LITERAL s, r), InHTMLTag (tag, d+1)\r\n else\r\n (LITERAL s, r), InHTMLTag (tag, d)\r\n | HTMLEndTag (s, [t], r), InHTMLTag (tag, d) ->\r\n if t = tag then\r\n if d = 1 then\r\n (LITERAL s, r), Normal\r\n else\r\n (LITERAL s, r), InHTMLTag (tag, d-1)\r\n else\r\n (LITERAL s, r), InHTMLTag (tag, d)\r\n | HTMLSingleton (s, _, r), _ ->\r\n (LITERAL s, r), state\r\n | RegexMatch \".*?(?=<)\" (s, _, r), InHTMLTag (t, d) ->\r\n (LITERAL s, r), InHTMLTag (t, d)\r\n | CharacterTok n, _ -> n, state\r\n | RegexMatch @\"^\\s+\" (m, _, s), _ ->\r\n (String.length m |> WHITESPACE, s), state\r\n | RegexMatch \"^[0-9]+\" (m, _, s), _->\r\n (NUMBER m, s), state\r\n | RegexMatch (literalString charList) (m, _, s), _ ->\r\n (LITERAL m, s), state\r\n | s, _ ->\r\n sprintf \"Unrecognised character: %A\" s |> sharedLog.Warn None\r\n (toString s.[0] |> LITERAL, (sOnwards 1 s)), state\r\n\r\n/// Lexes a whole string and returns the result as a Token list\r\nlet lexS state source =\r\n let rec lexS' state s tokList =\r\n match s with\r\n | \"\"-> ENDLINE :: tokList\r\n | _ ->\r\n let (nt, st'), nstate = nextToken state s\r\n nt :: tokList |> lexS' nstate st'\r\n match source, state with\r\n | CodeBlockStart (MatchLang lang), Normal ->\r\n [], InCodeBlock (\"\", lang)\r\n | RegexMatch \"^```+\" _, InCodeBlock (s, lang) ->\r\n [CODEBLOCK (s, lang); ENDLINE], Normal\r\n | _, InCodeBlock (s, lang) ->\r\n [], InCodeBlock (s+source+\"\\n\", lang)\r\n | RegexMatch @\"^\\s*$\" _, _ ->\r\n [ENDLINE], state\r\n | _ ->\r\n lexS' state source [] |> List.rev, state\r\n\r\n/// Return the correct token if it is not close properly at the end\r\nlet returnTokens = function\r\n | _, InCodeBlock (s, l) ->\r\n [CODEBLOCK (s, l); ENDLINE]\r\n | tok, InHTMLTag (str, _) ->\r\n tok @ [LITERAL str; ENDLINE]\r\n | tok, _ ->\r\n tok\r\n\r\n/// Lex a single string\r\nlet lex s =\r\n lexS Normal s |> returnTokens\r\n\r\n/// Lexes a list of strings and returns the Token list\r\nlet lexList strl =\r\n let f (flist, state) nstr =\r\n let (lst, st) = lexS state nstr\r\n flist @ lst, st\r\n List.fold f ([], Normal) strl |> returnTokens\r\n\n\n\n// WEBPACK FOOTER //\n// src/Common/Lexer/Lexer.fs","module Preprocessor\r\n\r\nopen System\r\n\r\nopen Shared\r\nopen LexerShared\r\n\r\n/// Token type for the preprocessor macros\r\ntype Token =\r\n | LITERAL of string\r\n | MACRO | OPENDEF | CLOSEDEF | OPENEVAL | CLOSEEVAL | LBRA | RBRA\r\n | SEMICOLON | ENDLINE | BSLASH\r\n\r\n/// Type of the parser elements\r\ntype Parser =\r\n | MacroDefinition of Macro\r\n | MacroSubstitution of Sub\r\n | ParseText of content: string\r\n | ParseNewLine\r\n\r\n/// Type for a macro\r\nand Macro = {Name: string; Args: string list; Body: Parser list}\r\n\r\n/// Type for a substitution\r\nand Sub = {Name: string; Args: string list; Raw: string}\r\n\r\n/// Character list for the preprocessor\r\nlet charList = [\"{%\", OPENDEF; \"%}\", CLOSEDEF; \"{{\", OPENEVAL\r\n \"}}\", CLOSEEVAL; \"(\", LBRA; \")\", RBRA; \";\", SEMICOLON;\r\n \"\\\\\", BSLASH]\r\n\r\nlet keywordList = [\"macro\", MACRO]\r\n\r\n/// Check if a LITERAL is exclusively whitespace \r\nlet (|WhiteSpace|NonWhiteSpace|) = function\r\n | LITERAL (RegexMatch @\"^\\s*$\" _) -> WhiteSpace\r\n | _ -> NonWhiteSpace\r\n\r\n/// Matches all the escapable characters that are defined in charList\r\nlet (|EscapedCharParse|_|) = (|EscapedChar|_|) LITERAL charList\r\n\r\n/// Matches all the special characters that are defined in charList\r\nlet (|CharacterParse|_|) = (|Character|_|) charList\r\n\r\nlet (|KeywordParse|_|) = (|Character|_|) keywordList\r\n\r\n/// Converts a token list to a string\r\nlet tokToString tList =\r\n let tokString st = function\r\n | LITERAL l -> st+l\r\n | t ->\r\n match charList @ keywordList |> listTryFind t with\r\n | Some s -> st+s\r\n | _ -> st\r\n List.fold tokString \"\" tList\r\n\r\n/// Retrieves the next token from a string and returns it, together\r\n/// with the rest of the string\r\nlet nextToken str =\r\n let literalMatch = charList |> literalString\r\n match str with\r\n | EscapedCharParse n | CharacterParse n | KeywordParse n ->\r\n n\r\n | RegexMatch @\"^\\s+\" (m, _, r) ->\r\n LITERAL m, r\r\n | RegexMatch literalMatch (m, _, r) ->\r\n LITERAL m, r\r\n | _ ->\r\n toString str.[0] |> LITERAL, str.[1..]\r\n\r\n/// Tokenizes a string and return it as a list of tokens\r\nlet tokenize str =\r\n let rec pTokenize' tList str =\r\n match str with\r\n | \"\" ->\r\n ENDLINE :: tList\r\n | _ ->\r\n let t, r = nextToken str\r\n pTokenize' (t :: tList) r\r\n pTokenize' [] str |> List.rev\r\n\r\n/// Tokenizes a list of strings and returns them as a single list of tokens\r\nlet tokenizeList = List.collect tokenize\r\n\r\n/// Returns if the start of the list of tokens matches a keyword\r\nlet (|KeyWord|_|) =\r\n let listCheckExists t list =\r\n list\r\n |> List.map (fun (_, c) -> c)\r\n |> List.exists ((=) t)\r\n function\r\n | WhiteSpace :: a :: tl | a :: tl ->\r\n match listCheckExists a keywordList with\r\n | true -> Some (a, tl)\r\n | _ -> None\r\n | _ -> None\r\n\r\n/// Checks if the Token list matches an argument list, which could be one of the\r\n/// following:\r\n/// (arg1; arg2)\r\n/// (arg 1; arg 2)\r\n/// (arg1)\r\n/// ()\r\nlet (|ArgList|_|) =\r\n /// Matches if there is a list of literals, and returns all of them until it reaches\r\n /// a Token that is not a literal\r\n let rec (|NameList|_|) = function\r\n | LITERAL n :: NameList (nList, r) ->\r\n Some (n :: nList, r)\r\n | LITERAL n :: r ->\r\n Some ([n], r)\r\n | _ -> None\r\n\r\n /// Matches a semicolon separated list of Literal lists\r\n let rec (|ParamList|_|) = function\r\n | WhiteSpace :: tl | tl ->\r\n match tl with\r\n | NameList (n, SEMICOLON :: ParamList (lst, r)) ->\r\n Some (List.fold (+) \"\" n :: lst, r)\r\n | NameList (n, r) ->\r\n Some ([List.fold (+) \"\" n], r)\r\n | _ ->\r\n Some ([], tl)\r\n function\r\n | WhiteSpace :: tl | tl ->\r\n match tl with\r\n | LBRA :: ParamList (nl, RBRA :: tl) ->\r\n Some (nl, tl)\r\n | _ -> None\r\n\r\n/// Matches a literal, which will be the name of the function, which can be followed by\r\n/// an argument list\r\nlet (|Function|_|) = function\r\n | WhiteSpace :: LITERAL n :: tl ->\r\n match tl with\r\n | ArgList (nl, WhiteSpace :: tl)\r\n | ArgList (nl, tl) ->\r\n Some (n, nl, tl)\r\n | WhiteSpace :: t\r\n | t ->\r\n Some (n, [], t)\r\n | _ -> None\r\n\r\n/// Matches the start syntax for a macro, the closing CLOSEDEF can be on a differen line and\r\n/// after a Parse list, so that is matched in the parse function\r\nlet (|MacroDef|_|) = function\r\n | OPENDEF :: KeyWord (MACRO, Function f) ->\r\n Some f\r\n | _ -> None\r\n\r\n/// Matches an evaluation of a macro\r\nlet (|EvalDef|_|) = function\r\n | OPENEVAL :: WhiteSpace :: tl | OPENEVAL :: tl ->\r\n match tl with\r\n | LITERAL n :: ArgList (nl, WhiteSpace :: CLOSEEVAL :: tl)\r\n | LITERAL n :: ArgList (nl, CLOSEEVAL :: tl) ->\r\n Some (n, nl, tl)\r\n | LITERAL n :: WhiteSpace :: CLOSEEVAL :: tl\r\n | LITERAL n :: CLOSEEVAL :: tl ->\r\n Some (n, [], tl)\r\n | _ -> None\r\n | _ -> None\r\n\r\n/// Matches a special character or keyword\r\nlet (|SChar|_|) tok =\r\n charList @ keywordList\r\n |> List.map invTuple\r\n |> Map.ofList\r\n |> mapTryFind tok\r\n\r\n/// Parses a Token list into a Parser list\r\nlet parse tList =\r\n\r\n /// Returns the raw token list for a macro evaluation\r\n let getRaw list =\r\n let rec getRaw' list curr =\r\n match list with\r\n | CLOSEEVAL :: _ ->\r\n CLOSEEVAL :: curr\r\n | a :: tl ->\r\n a :: curr |> getRaw' tl\r\n | _ ->\r\n curr\r\n getRaw' list [] |> List.rev\r\n\r\n /// The recursive part of the parser, which build the Parser list\r\n let rec parse' endToken tList pList =\r\n let pRec f c tl = f c :: pList |> parse' endToken tl\r\n let recText = pRec ParseText\r\n match tList, endToken with\r\n | MacroDef (a, b, tl), _ ->\r\n let p, tl' = parse' (Some CLOSEDEF) tl []\r\n pRec MacroDefinition {Name=a; Args=b; Body=List.rev p} tl'\r\n | EvalDef (n, args, tl), _ ->\r\n pRec MacroSubstitution {Name=n; Args=args; Raw=getRaw tList |> tokToString} tl\r\n | ENDLINE :: tl, _ ->\r\n pRec id ParseNewLine tl\r\n | WhiteSpace :: a :: tl, Some e | a :: tl, Some e when e = a ->\r\n match tl with\r\n | WhiteSpace :: ENDLINE :: b\r\n | WhiteSpace :: b\r\n | ENDLINE :: b\r\n | b ->\r\n pList, b\r\n | LITERAL f :: tl, _ ->\r\n recText f tl\r\n | SChar c :: tl, _ ->\r\n recText c tl\r\n | _ -> pList, []\r\n let p, _ = parse' None tList []\r\n List.rev p\r\n\r\n/// Evaluates and strips macros from the markdown, and also evaluates macro substitutions\r\n/// by seeing which macros are in scope or if the substitution is a parameter.\r\n/// This supports shadowing of previously defined macros, and scopes can be defined\r\n/// by declaring a macro inside another macro\r\nlet evaluate pList =\r\n\r\n /// Makes an empty parmeter list for the current parameters, so that they\r\n /// are not substituted\r\n let makeEmptyParam args: Map<string, string option> =\r\n List.replicate (List.length args) None\r\n |> List.zip args\r\n |> Map.ofList\r\n\r\n /// Add a parameter to a parameter map\r\n let addParam p (macro: Macro) args =\r\n List.zip macro.Args args\r\n |> List.fold (fun (s: Map<string, string option>) (a, b) -> s.Add(a, Some b)) p\r\n\r\n /// Make a Macro record type\r\n let makeMacro n args p =\r\n {Name = n; Args = args; Body = p}\r\n\r\n /// Adds an element to a map with key k and value v\r\n let mapAdd (map: Map<'a, 'b>) k v =\r\n map.Add(k, v)\r\n\r\n /// Evaluates and creates a new simplified Parser list with all the macros stripped\r\n /// and substitutions evaluated\r\n let rec evalulate' pList newPList param (scope: Map<string, Macro>) =\r\n\r\n /// Function for use with different currying that the original\r\n let evalulateInv' pList newPList scope param =\r\n evalulate' pList newPList param scope\r\n\r\n /// Evaluate without adding any values to the param or scope maps\r\n let evalulate'' pList list =\r\n evalulate' pList (list @ newPList) param scope\r\n\r\n match pList with\r\n | MacroDefinition {Name=n; Args=args; Body=p} :: tl ->\r\n makeEmptyParam args\r\n |> evalulateInv' p [] scope\r\n |> makeMacro n args\r\n |> mapAdd scope n\r\n |> evalulate' tl newPList param\r\n | MacroSubstitution {Name=n; Args=args; Raw=raw} as ms :: tl ->\r\n let eval =\r\n match param.TryFind n with\r\n | Some (Some x) ->\r\n [ParseText x]\r\n | Some _ ->\r\n [ms]\r\n | _ ->\r\n match scope.TryFind n with\r\n | Some m when List.isEmpty args ->\r\n m.Body\r\n | Some m ->\r\n addParam param m args\r\n |> evalulateInv' m.Body [] scope\r\n |> List.rev\r\n | _ ->\r\n [ParseText raw]\r\n evalulate'' tl eval\r\n\r\n | p :: tl ->\r\n evalulate'' tl [p]\r\n | _ -> newPList\r\n evalulate' pList [] Map.empty<string, string option> Map.empty<string, Macro>\r\n |> List.rev\r\n\r\n/// Converts a Parser list to a string\r\nlet parserToString pList =\r\n List.fold (fun st -> function\r\n | ParseText x -> st+x\r\n | ParseNewLine -> st+\"\\n\"\r\n | _ -> st) \"\" pList\r\n\r\n/// Converts a Parser list to a list of strings without any newlines\r\nlet toStringList pList =\r\n let f st n =\r\n match st, n with\r\n | _, ParseNewLine ->\r\n \"\" :: st\r\n | a :: b, ParseText t ->\r\n a+t :: b\r\n | _, ParseText t ->\r\n [t]\r\n | _ -> st\r\n List.fold f [] pList |> List.rev\r\n\r\n/// perform the parsing, evaluation, while stripping the last endline which is redundant\r\n/// as it was added by the tokenizer\r\nlet pETS =\r\n let stripLastEndline l =\r\n match List.rev l with\r\n | [ParseNewLine] as e ->\r\n e\r\n | ParseNewLine :: r ->\r\n List.rev r\r\n | _ -> l\r\n parse >> evaluate >> stripLastEndline\r\n\r\n/// Preprocess a string and output a string with the macro evaluated\r\nlet preprocess =\r\n tokenize >> pETS >> parserToString\r\n\r\n/// Preprocess a list of strings which is returned as a list of strings with the\r\n/// macro evaluated\r\nlet preprocessList =\r\n List.collect tokenize >> pETS >> toStringList\r\n\n\n\n// WEBPACK FOOTER //\n// src/Common/Lexer/Preprocessor.fs","module HTMLGen\r\n\r\nopen Types\r\nopen Shared\r\nopen Logger\r\nopen HTMLGenHelpers\r\n\r\nlet dLogger = Logger(LogLevel.WARNING)\r\n\r\n/// convert TFrmtedString to string, with HTML tags where necessary\r\nlet rec strFStr fStr =\r\n match fStr with\r\n | Literal str -> str\r\n | Code str -> str |> attachSimpleTag \"code\"\r\n | Strong a -> strInlineElements a |> attachSimpleTag \"strong\"\r\n | Emphasis e -> strInlineElements e |> attachSimpleTag \"em\"\r\n\r\n/// convert InlineElement list to string, with HTML tags where necessary\r\n/// not tail recursive because the code looks cleaner this way\r\nand strInlineElements eles =\r\n let convertHtml pStr ele =\r\n pStr +\r\n match ele with\r\n | FrmtedString fStr -> strFStr fStr\r\n | Link (ht, url) -> strFStr ht |> attachHTMLTag (\"a\", [(\"href\", url)], true)\r\n | Picture (alt, url) ->\r\n let attrs = [(\"src\", url); (\"alt\", alt)]\r\n attachHTMLTag (\"img\", attrs, false) \"\"\r\n List.fold convertHtml \"\" eles\r\n\r\n/// process Markdown paragraph\r\nlet strParagraph lines =\r\n let folder pLinesStr line =\r\n pLinesStr + strInlineElements line\r\n List.fold folder \"\" lines\r\n |> attachSimpleTag \"p\"\r\n\r\n\r\n/// process Markdown Table\r\nlet strTable (rows: PRow list) =\r\n // filter out table header\r\n let containHeader (row: PRow) =\r\n //let PCells(_, isHeader) = row\r\n match row with\r\n | PCells(_, isHeader) ->\r\n isHeader\r\n let takeoutCells = List.map (fun pRow -> match pRow with | PCells(cells,_) -> cells)\r\n let headerRows = List.filter (containHeader) rows |> takeoutCells\r\n let bodyRows = List.filter (containHeader >> not) rows |> takeoutCells\r\n let foldCells row =\r\n let cellsFolder pStr cell =\r\n match cell with\r\n | CellLine(line, isHeader, align) ->\r\n let tagName = if isHeader then \"th\" else \"td\"\r\n let cellContent = strInlineElements line\r\n let alignAttr =\r\n match align with\r\n | Centre -> (\"align\", \"center\")\r\n | Right -> (\"align\", \"right\")\r\n | Left -> (\"align\", \"left\")\r\n | NoAlign -> (\"\",\"\")\r\n pStr + attachHTMLTag (tagName, [alignAttr], true) cellContent\r\n List.fold cellsFolder \"\" row\r\n let foldRows rows =\r\n let rowsFolder pStr row =\r\n foldCells row\r\n |> attachSimpleTag \"tr\"\r\n |> fun s -> pStr + s\r\n List.fold rowsFolder \"\" rows\r\n foldRows headerRows |> attachSimpleTag \"thead\"\r\n |> fun s ->\r\n s + (foldRows bodyRows |> attachSimpleTag \"tbody\")\r\n |> attachSimpleTag \"table\"\r\n\r\n\r\n/// recursively process a list\r\nlet rec strList list =\r\n let strListItem pStr li =\r\n pStr + (\r\n match li with\r\n | StringItem(line) -> strInlineElements line |> attachSimpleTag \"li\"\r\n | NestedList(list) -> strList list\r\n )\r\n match list with\r\n | {ListType=lt; ListItem=liS} ->\r\n let listTag = if lt=UL then \"ul\" else \"ol\"\r\n List.fold strListItem \"\" liS\r\n |> attachSimpleTag listTag\r\n\r\n/// process header\r\nlet strHeader header =\r\n match header with\r\n | {HeaderName=line;Level=lv} ->\r\n let tagName = \"h\" + string(lv)\r\n line\r\n |> strInlineElements\r\n |> attachSimpleTag tagName\r\n\r\n/// process inline footnotes\r\nlet strInlineFootnote fnId =\r\n let idStr = match fnId with | FtID i -> string i | RefID s -> string s\r\n idStr\r\n |> attachHTMLTag (\"a\", [\"href\", \"#footnote-\"+idStr], true)\r\n |> attachSimpleTag \"sup\"\r\n\r\n\r\nlet (|MatchHeaderAndSubHeader|_|) hds =\r\n match hds with\r\n | fstHd::sndHd::_ ->\r\n let {Level=fstLv} = fstHd\r\n let {Level=sndLv} =sndHd\r\n if sndLv > fstLv then (List.head hds, List.tail hds) |> Some else None\r\n | _ -> None\r\n\r\n/// process table of contents\r\n\r\nlet strToC (toc:Ttoc) =\r\n let displaySingleHeader headerName =\r\n headerName |> strInlineElements // can insert unique id for linking\r\n let appendListItem s i =\r\n {s with ListItem = i::(s.ListItem)}\r\n let fstAppendListItem s i = \r\n appendListItem (fst s) i\r\n let appendToNested (s:TList) appendee =\r\n // if List.head fst s is a nested list, append to that list\r\n match s.ListItem with\r\n | NestedList(l)::tail -> \r\n sprintf \"Append to nested: %A\" appendee |> dLogger.Debug None\r\n {s with ListItem = NestedList({l with ListItem = appendee::l.ListItem})::tail}\r\n // otherwise if the latest element on the list isn't a nested list, just append\r\n | _ ->\r\n sprintf \"Create nested with: %A\" appendee |> dLogger.Debug None \r\n appendee |> appendListItem s\r\n \r\n let appendToNestedD n (s:TList) appendee =\r\n let getNest = function \r\n | NestedList(l) -> l \r\n | _ -> failwith \"Invalid depth.\"\r\n \r\n let rec appendToNestedD' n s =\r\n let recurse = function\r\n | head::tail -> ((appendToNestedD' (n-1) (head |> getNest)).ListItem)@tail\r\n | [] -> failwithf \"List shouldn't be empty: %A\" s\r\n match (n,s) with\r\n | (n,s) when n > 0 ->\r\n {s with ListItem = recurse s.ListItem}\r\n\r\n | (0,s) -> (appendee |> appendToNested s)\r\n | (n,_) when n < 0 -> failwith \"Negative depth, shouldn't happen.\"\r\n | _ -> failwithf \"n is: %i, s is: %A\" n s\r\n appendToNestedD' n s\r\n\r\n // Maybe convert header list into a list item\r\n let fold (s:(TList*int)) =\r\n function\r\n | {HeaderName=headerName; Level=lv} when lv = 1\r\n // If header has depth 1, put it in the main list\r\n -> StringItem(headerName) |> fstAppendListItem s,lv\r\n // If lv is > previous level, create nested list\r\n | {HeaderName=headerName; Level=lv} when lv > snd s\r\n -> NestedList({ListType=OL;ListItem=[StringItem(headerName)];Depth=snd s})\r\n |> appendToNestedD 0 (fst s), lv\r\n // Append to current nested list\r\n | {HeaderName=headerName; Level=lv} when lv = snd s\r\n -> sprintf \"Append: %A %i\" headerName lv |> dLogger.Debug None\r\n StringItem(headerName) |> appendToNested (fst s),lv\r\n \r\n | {HeaderName=headerName; Level=lv} when lv < snd s\r\n -> StringItem(headerName) |> appendToNestedD (lv-2) (fst s),lv\r\n | _ -> s\r\n \r\n let rec revList (l:TList) =\r\n let rec revListItemList (li:TListItem list) =\r\n let revRecurse = function \r\n | NestedList(l)->NestedList({l with ListItem=(revListItemList l.ListItem)})\r\n | l -> l\r\n List.map revRecurse li\r\n |> List.rev\r\n {l with ListItem=List.rev (revListItemList l.ListItem)}\r\n\r\n //sprintf \"%A\" (toc.HeaderLst) |> dLogger.Debug None\r\n List.fold fold ({Depth=1; ListItem=[]; ListType=OL},1) (toc.HeaderLst)\r\n |> fst\r\n |> (fun l -> {l with ListItem=List.rev l.ListItem})\r\n |> revList\r\n |> strList\r\n // For each header in the list, print it out as a list element\r\n //let folder' maxLv s (header:THeader) =\r\n // // match header with\r\n // // | {HeaderName=str; Level=headerLv}\r\n\r\n // \"\"\r\n //let folder = folder' (toc.MaxDepth)\r\n //List.fold folder \"\" toc.HeaderLst\r\n\r\n //let rec tocMany currentLv maxLv headers pStr =\r\n // match headers with\r\n // | {HeaderName=headerName; Level=headerLv}::rHds ->\r\n // match headerLv with\r\n // | hlv when hlv = currentLv ->\r\n // match headers with\r\n // | MatchHeaderAndSubHeader (fstHd, rHds) ->\r\n // let (cStr, rHds) =\r\n // match fstHd |> strInlineElements |> tocMany currentLv+1 maxLv rHds with\r\n // | Ok (cStr, rHds) -> (cStr, rHds)\r\n // | Error\r\n // //pStr + (\r\n // \r\n // // |> attachSimpleTag \"li\")\r\n // \r\n // | _ -> pStr + (headerName |> strInlineElements) |> tocMany currentLv maxLv rHds |> Ok\r\n // | hlv when hlv \r\n\r\n\r\n\r\n/// gather footnotes for end of page display\r\nlet gatherFootnotes pObjs =\r\n let footnotesFilter pObj =\r\n match pObj with\r\n | Footnote _ -> true\r\n | _ -> false\r\n List.filter footnotesFilter pObjs\r\n\r\n\r\n/// process HTML body part\r\nlet strBody pObjs =\r\n let folder pStr pObj =\r\n pStr +\r\n match pObj with\r\n | Paragraph p -> strParagraph p\r\n | Quote q -> strInlineElements q |> attachSimpleTag \"q\"\r\n | CodeBlock (c, l) -> attachHTMLTag (\"code\", [(\"language\", mapLang l)], true) c\r\n | Table rows -> strTable rows\r\n | List l -> strList l\r\n | Header h -> strHeader h\r\n | Footnote (fnId, _) -> strInlineFootnote fnId\r\n | ContentTable toc -> strToC toc\r\n | _ -> sprintf \"%A is not implemented\" pObj\r\n List.fold folder \"\" pObjs\r\n\r\n\n\n\n// WEBPACK FOOTER //\n// src/Common/HTMLGen/HTMLGen.fs","module HTMLGenHelpers\r\n\r\nopen Types\r\n\r\ntype TagStyle = INLINE | NonInline of indentStr: string\r\n\r\n\r\n/// concat attributeName and value\r\n/// with quotes\r\nlet toAttr attributeName value =\r\n attributeName + \"=\\\"\" + value + \"\\\"\"\r\n\r\n/// convert (attributeName, value) list to string list\r\n/// ready for inserting into HTML tag\r\nlet toAttrs attrs =\r\n let mapper attr =\r\n match attr with | (attrName, value) -> toAttr attrName value\r\n List.map mapper attrs\r\n\r\n/// atach HTML tag to a given string, both start and end tag\r\n/// inline style does not insert newline after start tag and before end tag\r\n/// non-inline style will have indent set to desired string\r\nlet attachHTMLTag (tagName, attributes: list<string * string>, needCloseTag) (content: string) =\r\n let attrStr =\r\n match List.isEmpty attributes with\r\n | true -> \"\"\r\n | false ->\r\n let attrFolder pStr attrNameValue =\r\n pStr +\r\n match attrNameValue with\r\n | (\"\",\"\") -> \"\"\r\n | (attrName, value) ->\r\n \" \" + // space before attribute\r\n if value = \"\" then attrName\r\n else attrName + \"=\\\"\" + value + \"\\\"\"\r\n List.fold attrFolder \"\" attributes\r\n \"<\" + tagName + attrStr + \">\"\r\n + content\r\n + if needCloseTag then \"</\" + tagName + \">\" else \"\"\r\n\r\n/// attach (tagName,noAttr,closeTag)\r\nlet attachSimpleTag tagName = attachHTMLTag (tagName,[],true)\r\n\n\n\n// WEBPACK FOOTER //\n// src/Common/HTMLGen/HTMLGenHelpers.fs","module MarkdownGen\r\n\r\nopen Types\r\nopen Shared\r\nopen Logger\r\n\r\nlet logger = Logger(LogLevel.INFO)\r\n\r\n// retunr string surrounded by pat\r\nlet surround pat str =\r\n let pat2 = match pat with\r\n | \"(\" -> \")\"\r\n | \"[\" -> \"]\"\r\n | \"{\" -> \"}\"\r\n | _ -> pat\r\n sprintf \"%s%s%s\" pat str pat2\r\n\r\n/// convert TFrmtedString to string\r\nlet rec mdFStr fStr =\r\n match fStr with\r\n | Literal str -> str\r\n | Code str -> surround \"`\" str\r\n | Strong a -> mdInlineElements a |> surround \"**\"\r\n | Emphasis e -> mdInlineElements e |> surround \"*\"\r\n\r\n/// convert InlineElement list to string, with HTML tags where necessary\r\n/// not tail recursive because the code looks cleaner this way\r\nand mdInlineElements' b eles =\r\n let braSurround = surround \"(\"\r\n let sbraSurround = surround \"[\"\r\n let convertMd pStr ele =\r\n pStr +\r\n match ele with\r\n | FrmtedString fStr -> mdFStr fStr\r\n | Link (ht, url) -> (mdFStr ht |> sbraSurround) + (url |> braSurround)\r\n | Picture (alt, url) -> (alt |> sbraSurround |> sprintf \"!%s\" ) + (url |> braSurround)\r\n List.fold convertMd (sprintf \"%s\" b) eles\r\nand mdInlineElements = mdInlineElements' \"\"\r\n\r\n/// process Markdown paragraph\r\nlet mdParagraph lines =\r\n let folder pLinesStr line =\r\n pLinesStr + mdInlineElements line\r\n List.fold folder \"\" lines\r\n + \"\\n\\n\"\r\n\r\n/// process Markdown Table\r\nlet mdTable (rows: PRow list) =\r\n // filter out table header\r\n let containHeader (row: PRow) =\r\n //let PCells(_, isHeader) = row\r\n match row with\r\n | PCells(_, isHeader) ->\r\n isHeader\r\n let takeoutCells = List.map (fun pRow -> match pRow with | PCells(cells,_) -> cells)\r\n let headerRows = List.filter (containHeader) rows |> takeoutCells\r\n let bodyRows = List.filter (containHeader >> not) rows |> takeoutCells\r\n let foldCells alignRow row =\r\n let cellsFolder alignRow pStr cell =\r\n match cell with\r\n | CellLine(line, _, align) ->\r\n match alignRow with\r\n | true ->\r\n match align with\r\n | Centre -> \":---:\"\r\n | Right -> \"---:\"\r\n | Left -> \":---\"\r\n | NoAlign -> \"---\"\r\n | false ->\r\n mdInlineElements line\r\n |> (fun cellContent -> pStr + cellContent + \"|\")\r\n \r\n List.fold (cellsFolder alignRow) \"|\" row\r\n \r\n let foldRows alignRow rows =\r\n let rowsFolder alignRow pStr row =\r\n pStr + (foldCells alignRow) row + \"\\n\"\r\n List.fold (rowsFolder alignRow) \"\" rows\r\n let foldNormalRows = foldRows false\r\n let foldAlignRow = foldCells true\r\n foldNormalRows headerRows\r\n + (headerRows |> List.head |> foldAlignRow)\r\n + foldNormalRows bodyRows + \"\\n\\n\"\r\n\r\n/// recursively process a list\r\nlet rec mdList list =\r\n let mdListItem ord tab (pStr,pCount) li =\r\n let retFold s = pStr + s, pCount + 1;\r\n match li with\r\n | StringItem(line) -> mdInlineElements line |> (fun s -> \r\n if ord \r\n then \r\n sprintf \"%s%i. %s\\n\" (String.replicate tab \"\\t\") pCount s\r\n |> logPassN logger.Debug\r\n else sprintf \"%s- %s\\n\" (String.replicate tab \"\\t\") s) |> retFold\r\n | NestedList(list) -> mdList list |> retFold\r\n \r\n match list with\r\n | {ListType=lt; ListItem=liS; Depth=d} ->\r\n let ord = lt=OL\r\n List.fold (mdListItem ord (d-1)) (\"\",1) liS\r\n |> fst\r\n\r\n/// process header\r\nlet mdHeader header =\r\n match header with\r\n | {HeaderName=line;Level=lv} ->\r\n (line |> mdInlineElements)\r\n |> sprintf \"%s %s\\n\" (String.replicate lv \"#\") \r\n\r\n/// process HTML body part\r\nlet mdBody pObjs =\r\n let folder pStr pObj =\r\n pStr +\r\n match pObj with\r\n | Paragraph p -> mdParagraph p\r\n | Quote q -> mdInlineElements' \">\" q\r\n | CodeBlock (c, l) -> surround \"```\" (mapLang l + \"\\n\" + c + \"\\n\")\r\n | Table rows -> mdTable rows\r\n | List l -> mdList l |> sprintf \"%s\\n\"\r\n | Header h -> mdHeader h\r\n //| Footnote (fnId, _) -> mdInlineFootnote fnId\r\n | _ -> sprintf \"%A is not implemented\" pObj\r\n List.fold folder \"\" pObjs\r\n\r\n\r\n\r\n\n\n\n// WEBPACK FOOTER //\n// src/Common/MarkdownGen/MarkdownGen.fs"],"sourceRoot":""} \ No newline at end of file
+{"version":3,"sources":["webpack:///webpack/universalModuleDefinition","webpack:///webpack/bootstrap cc89ae3cf1223118a841","webpack:///./src/Common/FMark.fs","webpack:///./src/FMarkFable/FMarkFable.fs","webpack:///src/Common/Types.fs","webpack:///src/Common/Shared.fs","webpack:///./src/Common/HTMLGen/HTMLGen.fs","webpack:///./src/Common/Lexer/LexerShared.fs","webpack:///./src/Common/Markalc/Markalc.fs","webpack:///src/Common/Logger/Logger.fs","webpack:///./src/Common/Parser/Parser.fs","webpack:///src/Common/Markalc/MarkalcShared.fs","webpack:///src/Common/Lexer/LexerShared.fs","webpack:///src/FMarkFable/FMarkFable.fs","webpack:///src/Common/FMark.fs","webpack:///src/Common/Parser/Parser.fs","webpack:///src/Common/Parser/ParserHelperFuncs.fs","webpack:///src/Common/Markalc/Markalc.fs","webpack:///src/Common/Markalc/Expression.fs","webpack:///./src/Common/Markalc/Expression.fs","webpack:///src/Common/Lexer/Lexer.fs","webpack:///src/Common/Lexer/Preprocessor.fs","webpack:///src/Common/HTMLGen/HTMLGen.fs","webpack:///src/Common/HTMLGen/HTMLGenHelpers.fs","webpack:///src/Common/MarkdownGen/MarkdownGen.fs"],"names":["append","xs","ys","seqFold","acc","x","reverse","choose","f","r","y","getValue","collect","concat","filter","where","initialize","n","Error","i","map","mapIndexed","indexed","partition","lacc","racc","replicate","singleton","slice","lower","upper","noLower","noUpper","unzip","seqFoldBack","xy","unzip3","xyz","groupBy","seqToList","seqMap","k","mapGroupBy","splitAt","index","last","first","Array","tail","head","ofArray","Enumerator","iter","cur","next","current","value","done","getEnumerator","o","GetEnumerator","Symbol","iterator","toIterator","en","MoveNext","Current","__failIfNone","res","toList","foldBack","ofList","delay","unfold","length","firstDone","iters","average","count","sum","reduce","averageBy","output","innerIter","hasFinished","compareWith","nonZero","tryFind","map2","empty","enumerateWhile","cond","enumerateThenFinally","finalFn","err","it","enumerateUsing","disp","work","isDisposed","disposeOnce","Dispose","exactlyOne","fst","snd","except","itemsToExclude","source","exclusionItems","from","testIsNotInExclusionItems","element","some","excludedItem","equals","exists","exists2","cur1","cur2","iter1","iter2","fold","isArray","ArrayBuffer","isView","arr","fold2","foldBack2","ar1","ar2","forAll","forAll2","tryHead","initializeInfinite","tryItem","j","item","iterate","_","iterate2","iterateIndexed","iterateIndexed2","isEmpty","tryLast","mapIndexed2","map3","zs","iter3","cur3","chunkBySize","size","result","arrayChunkBySize","mapFold","transform","push","mapFoldBack","max","compare","maxBy","min","minBy","pairwise","skip","scan","permute","arrayPermute","rangeStep","step","rangeChar","String","fromCharCode","charCodeAt","range","readOnly","reduceBack","ar","seed","scanBack","skipWhile","hasPassed","sortWith","sort","sumBy","take","truncate","takeWhile","defaultValue","find","tryFindBack","findBack","tryFindIndex","findIndex","tryFindIndexBack","findIndexBack","tryPick","pick","zip","zip3","z","types","Map","setType","fullName","cons","set","getType","get","reflection","NonDeclaredType","kind","definition","generics","other","equalsRecords","Any","Unit","Option","t","FableArray","isTypedArray","def","genArg","Tuple","FableFunction","GenericParam","Interface","makeGeneric","typeDef","genArgs","isGeneric","typ","getDefinition","extendInfo","info","parent","Object","getPrototypeOf","prototype","FSymbol","newInfo","parentInfo","getOwnPropertyNames","forEach","assign","hasInterface","obj","interfaceName","interfaces","indexOf","getPropertyNames","propertyMap","properties","toString","quoteStrings","isObject","Number","Boolean","JSON","stringify","Date","dateToString","ToString","uci","cases","tag","data","join","v","hash","GetHashCode","s","h","len","Equals","byteLength","dv1","DataView","buffer","dv2","getUint8","getTime","comparePrimitives","CompareTo","b1","b2","compareDates","xhash","yhash","keys","key","compareRecords","equalsUnions","compareUnions","createDisposable","createAtom","atom","arguments","CaseRules","None","LowerFirst","isList","type","createObj","fields","caseRule","casesCache","proto","caseInfo","toLowerCase","substr","toPlainJsObj","constructor","target","props","p","prop","getOwnPropertyDescriptor","apply","jsOptions","mutator","opts","round","digits","m","Math","pow","toFixed","floor","e","randomNext","random","applyOperator","operator","getMethod","meth","parseNumber","tryParse","initial","parser","fn","a","exec","parse","unescapeDataString","decodeURIComponent","replace","escapeDataString","encodeURIComponent","escapeUriString","encodeURI","clear","col","splice","CurriedLambda","expectedArgsLength","curried","curriedFn","args","actualArgsLength","restArgs","newLambda","args2","partialApply","lambda","Some","acceptNull","defaultArg","arg","defaultArgWith","defThunk","predicate","fsFormatRegExp","formatRegExp","guidRegex","StringComparison","CurrentCulture","CurrentCultureIgnoreCase","InvariantCulture","InvariantCultureIgnoreCase","Ordinal","OrdinalIgnoreCase","cmp","ic","isIgnoreCase","isOrdinal","toLocaleLowerCase","localeCompare","compareTo","startsWith","str","pattern","indexOfAny","anyOf","startIndex","c","toHex","abs","printf","input","cont","fsFormat","toConsole","console","log","toText","toFail","formatOnce","str2","rep","prefix","flags","pad","precision","format","toPrecision","toExponential","toUpperCase","plusPrefix","parseInt","isNaN","ch","padLeft","once","createPrinter","printer","strCopy","test","match","idx","padSymbol","substring","decs","endsWith","search","lastIndexOf","insert","isNullOrEmpty","isNullOrWhiteSpace","delimiter","xs2","validateGuid","doNotThrow","trimmed","trim","newGuid","b","_convertMapsInitialized","_byteToHex","_hexToByte","initConvertMaps","guidToArray","buf","Uint8Array","oct","arrayToGuid","notSupported","name","toBase64String","inArray","btoa","fromBase64String","b64Encoded","binary","atob","bytes","isRight","padRight","remove","RegExp","escape","getCharAtIndex","split","splitters","removeEmpty","splitters2","splits","reg","lastIndex","side","chars","pred","Result","mapError","bind","base","List","tmp","create","vs","add","countBy","kv","MapTree","tree_sizeAux","sizeAux","tree_size","tree_empty","tree_height","_arg1","tree_isEmpty","tree_mk","l","matchValue","hl","hr","tree_rebalance","t1","t2","t1h","t2h","tree_add","comparer","Compare","tree_find","tree_tryFind","c_1","tree_partition1","acc1","acc2","tree_partitionAux","acc_0","acc_1","acc_2","acc_3","tree_partition","tree_filter1","tree_filterAux","tree_filter","tree_spliceOutSuccessor","kvl","tree_remove","tree_mem","mem","tree_iter","tree_tryPick","matchValue_1","tree_exists","tree_forall","tree_mapi","tree_foldBack","tree_fold","tree_mkFromEnumerator","tree_ofSeq","ie","tree_collapseLHS","stack","listOfArray","tree_mkIterator","started","tree_moveNext","FableMap","m2","seqCompareWith","kvp1","kvp2","tree","oldSize","containsValue","tryGetValue","has","rs","findKey","seqPick","tryFindKey","seqTryPick","Comparer","fromEqualityComparer","OperationCanceledError","setPrototypeOf","Trampoline","callCount","maxTrampolineCallCount","setTimeout","protectedCont","ctx","cancelToken","isCancelled","onCancel","trampoline","incrementAndCheck","hijack","onError","protectedBind","computation","binder","onSuccess","ex","protectedReturn","AsyncBuilder","computation1","computation2","Bind","generator","sequence","body","While","Delay","compensation","catchHandler","ex2","resource","TryFinally","guard","Return","offsetRegex","padWithZeros","offsetToString","offset","isMinus","hours","minutes","toHalfUTCString","date","half","toISOString","d","utc","printOffset","getFullYear","getMonth","getDate","getHours","getMinutes","getSeconds","getMilliseconds","getTimezoneOffset","toISOStringWithOffset","dateWithOffset","toStringWithCustomFormat","getUTCFullYear","getUTCMonth","getUTCDate","getUTCHours","getUTCMinutes","getUTCSeconds","toStringWithOffset","toStringWithKind","toUTCString","toLocaleString","toLocaleDateString","toLocaleTimeString","DateTime","minValue","maxValue","parseRaw","detectUTC","_err","date1","year","month","day","ms","dateValue","UTC","setFullYear","now","utcNow","today","isLeapYear","daysInMonth","toUniversalTime","toLocalTime","timeOfDay","hour","minute","second","millisecond","getUTCMilliseconds","dayOfWeek","getUTCDay","getDay","dayOfYear","_year","_month","_day","ts","addDays","addHours","addMinutes","addSeconds","addMilliseconds","addYears","newMonth","newYear","_daysInMonth","newDay","addMonths","newMonth_","yearOffset","subtract","that","toLongDateString","toDateString","toShortDateString","toLongTimeString","toShortTimeString","d1","d2","xtime","ytime","op_Addition","op_Subtraction","isDaylightSavingTime","jan","jul","isDST","janOffset","julOffset","tOffset","options","unescape","isMatch","matches","global","ignoreCase","multiline","replacement","limit","replacer","undefined","sub1","_matches","sub2","Async","emptyContinuation","createCancellationToken","token","cancel","cancelAfter","isCancellationRequested","startChild","promise","startAsPromise","awaitPromise","fromContinuations","conts","then","catch","cancellationToken","defaultCancellationToken","catchAsync","choice1Of2","choice2Of2","ignore","parallel","computations","Promise","all","w","sleep","millisecondsDueTime","start","startWithContinuations","startImmediate","continuation","exceptionContinuation","cancellationContinuation","resolve","reject","Choice","TargetCons","addRangeInPlace","copyTo","sourceIndex","targetIndex","checkFlags","removeInPlace","setSlice","sortInPlaceBy","dir","bs","cs","ds","ceil","end","getSubArray","fill","QueueCell","message","MailboxQueue","itCell","firstAndLast","MailboxProcessor","messages","tryGet","__processEvents","buildMessage","checkCompletion","reply","mbox","radix","parseRadix","invalidRadix2","invalidRadix8","invalidRadix10","isValid","radix_"],"mappings":"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;;;;;;;;;;;;;;;;AEndI;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAOA;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAEA;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAYA;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAGD;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAMC;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAEA;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAEA;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA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","file":"fmark.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"fmark\"] = factory();\n\telse\n\t\troot[\"fmark\"] = factory();\n})(this, function() {\nreturn \n\n\n// WEBPACK FOOTER //\n// webpack/universalModuleDefinition"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, {\n \t\t\t\tconfigurable: false,\n \t\t\t\tenumerable: true,\n \t\t\t\tget: getter\n \t\t\t});\n \t\t}\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 22);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap cc89ae3cf1223118a841","export function map(f, source, TargetCons) {\n const target = new TargetCons(source.length);\n for (let i = 0; i < source.length; i++) {\n target[i] = f(source[i]);\n }\n return target;\n}\nexport function mapIndexed(f, source, TargetCons) {\n const target = new TargetCons(source.length);\n for (let i = 0; i < source.length; i++) {\n target[i] = f(i, source[i]);\n }\n return target;\n}\nexport function indexed(source) {\n return mapIndexed((i, x) => [i, x], source, Array);\n}\nexport function addRangeInPlace(range, xs) {\n const iter = range[Symbol.iterator]();\n let cur = iter.next();\n while (!cur.done) {\n xs.push(cur.value);\n cur = iter.next();\n }\n}\nexport function copyTo(source, sourceIndex, target, targetIndex, count) {\n while (count--) {\n target[targetIndex++] = source[sourceIndex++];\n }\n}\nexport function partition(f, xs) {\n const ys = [];\n const zs = [];\n let j = 0;\n let k = 0;\n for (let i = 0; i < xs.length; i++) {\n if (f(xs[i])) {\n ys[j++] = xs[i];\n }\n else {\n zs[k++] = xs[i];\n }\n }\n return [ys, zs];\n}\nexport function permute(f, xs) {\n // Keep the type of the array\n const ys = xs.map(() => null);\n const checkFlags = new Array(xs.length);\n for (let i = 0; i < xs.length; i++) {\n const j = f(i);\n if (j < 0 || j >= xs.length) {\n throw new Error(\"Not a valid permutation\");\n }\n ys[j] = xs[i];\n checkFlags[j] = 1;\n }\n for (let i = 0; i < xs.length; i++) {\n if (checkFlags[i] !== 1) {\n throw new Error(\"Not a valid permutation\");\n }\n }\n return ys;\n}\nexport function removeInPlace(item, xs) {\n const i = xs.indexOf(item);\n if (i > -1) {\n xs.splice(i, 1);\n return true;\n }\n return false;\n}\nexport function setSlice(target, lower, upper, source) {\n const length = (upper || target.length - 1) - lower;\n if (ArrayBuffer.isView(target) && source.length <= length) {\n target.set(source, lower);\n }\n else {\n for (let i = lower | 0, j = 0; j <= length; i++, j++) {\n target[i] = source[j];\n }\n }\n}\nexport function sortInPlaceBy(f, xs, dir = 1) {\n return xs.sort((x, y) => {\n x = f(x);\n y = f(y);\n return (x < y ? -1 : x === y ? 0 : 1) * dir;\n });\n}\nexport function unzip(xs) {\n const bs = new Array(xs.length);\n const cs = new Array(xs.length);\n for (let i = 0; i < xs.length; i++) {\n bs[i] = xs[i][0];\n cs[i] = xs[i][1];\n }\n return [bs, cs];\n}\nexport function unzip3(xs) {\n const bs = new Array(xs.length);\n const cs = new Array(xs.length);\n const ds = new Array(xs.length);\n for (let i = 0; i < xs.length; i++) {\n bs[i] = xs[i][0];\n cs[i] = xs[i][1];\n ds[i] = xs[i][2];\n }\n return [bs, cs, ds];\n}\nexport function chunkBySize(size, xs) {\n if (size < 1) {\n throw new Error(\"The input must be positive. parameter name: chunkSize\");\n }\n if (xs.length === 0) {\n return [[]];\n }\n const result = [];\n // add each chunk to the result\n for (let x = 0; x < Math.ceil(xs.length / size); x++) {\n const start = x * size;\n const end = start + size;\n result.push(xs.slice(start, end));\n }\n return result;\n}\nexport function getSubArray(xs, startIndex, count) {\n return xs.slice(startIndex, startIndex + count);\n}\nexport function fill(target, targetIndex, count, value) {\n target.fill(value, targetIndex, targetIndex + count);\n}\nexport function splitAt(index, xs) {\n if (index < 0) {\n throw new Error(\"The input must be non-negative.\");\n }\n if (index > xs.length) {\n throw new Error(\"The input sequence has an insufficient number of elements.\");\n }\n return [xs.slice(0, index), xs.slice(index)];\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/Common/FMark.fs","import { permute as arrayPermute } from \"./Array\";\nimport { chunkBySize as arrayChunkBySize } from \"./Array\";\nimport List from \"./ListClass\";\nimport { getValue, Some } from \"./Option\";\nimport { compare, equals } from \"./Util\";\nexport class Enumerator {\n constructor(iter) {\n this.iter = iter;\n }\n MoveNext() {\n const cur = this.iter.next();\n this.current = cur.value;\n return !cur.done;\n }\n get Current() { return this.current; }\n get get_Current() { return this.current; }\n Reset() {\n throw new Error(\"JS iterators cannot be reset\");\n }\n Dispose() { return; }\n}\nexport function getEnumerator(o) {\n return typeof o.GetEnumerator === \"function\"\n ? o.GetEnumerator() : new Enumerator(o[Symbol.iterator]());\n}\nexport function toIterator(en) {\n return {\n next() {\n return en.MoveNext()\n ? { done: false, value: en.Current }\n : { done: true, value: null };\n },\n };\n}\nfunction __failIfNone(res) {\n if (res == null) {\n throw new Error(\"Seq did not contain any matching element\");\n }\n return getValue(res);\n}\nexport function toList(xs) {\n return foldBack((x, acc) => new List(x, acc), xs, new List());\n}\nexport function ofList(xs) {\n return delay(() => unfold((x) => x.tail != null ? [x.head, x.tail] : null, xs));\n}\nexport function ofArray(xs) {\n return delay(() => unfold((i) => i < xs.length ? [xs[i], i + 1] : null, 0));\n}\nexport function append(xs, ys) {\n return delay(() => {\n let firstDone = false;\n const i = xs[Symbol.iterator]();\n let iters = [i, null];\n return unfold(() => {\n let cur;\n if (!firstDone) {\n cur = iters[0].next();\n if (!cur.done) {\n return [cur.value, iters];\n }\n else {\n firstDone = true;\n iters = [null, ys[Symbol.iterator]()];\n }\n }\n cur = iters[1].next();\n return !cur.done ? [cur.value, iters] : null;\n }, iters);\n });\n}\nexport function average(xs) {\n let count = 1;\n const sum = reduce((acc, x) => {\n count++;\n return acc + x;\n }, xs);\n return sum / count;\n}\nexport function averageBy(f, xs) {\n let count = 1;\n const sum = reduce((acc, x) => {\n count++;\n return (count === 2 ? f(acc) : acc) + f(x);\n }, xs);\n return sum / count;\n}\nexport function concat(xs) {\n return delay(() => {\n const iter = xs[Symbol.iterator]();\n let output = { value: null };\n return unfold((innerIter) => {\n let hasFinished = false;\n while (!hasFinished) {\n if (innerIter == null) {\n const cur = iter.next();\n if (!cur.done) {\n innerIter = cur.value[Symbol.iterator]();\n }\n else {\n hasFinished = true;\n }\n }\n else {\n const cur = innerIter.next();\n if (!cur.done) {\n output = { value: cur.value };\n hasFinished = true;\n }\n else {\n innerIter = null;\n }\n }\n }\n return innerIter != null && output != null ? [output.value, innerIter] : null;\n }, null);\n });\n}\nexport function collect(f, xs) {\n return concat(map(f, xs));\n}\nexport function choose(f, xs) {\n return delay(() => unfold((iter) => {\n let cur = iter.next();\n while (!cur.done) {\n const y = f(cur.value);\n if (y != null) {\n return [getValue(y), iter];\n }\n cur = iter.next();\n }\n return null;\n }, xs[Symbol.iterator]()));\n}\nexport function compareWith(f, xs, ys) {\n const nonZero = tryFind((i) => i !== 0, map2((x, y) => f(x, y), xs, ys));\n return nonZero != null ? getValue(nonZero) : count(xs) - count(ys);\n}\nexport function delay(f) {\n return {\n [Symbol.iterator]: () => f()[Symbol.iterator](),\n };\n}\nexport function empty() {\n return unfold(() => void 0);\n}\nexport function enumerateWhile(cond, xs) {\n return concat(unfold(() => cond() ? [xs, true] : null));\n}\nexport function enumerateThenFinally(xs, finalFn) {\n return delay(() => {\n let iter;\n try {\n iter = xs[Symbol.iterator]();\n }\n catch (err) {\n return void 0;\n }\n finally {\n finalFn();\n }\n return unfold((it) => {\n try {\n const cur = it.next();\n return !cur.done ? [cur.value, it] : null;\n }\n catch (err) {\n return void 0;\n }\n finally {\n finalFn();\n }\n }, iter);\n });\n}\nexport function enumerateUsing(disp, work) {\n let isDisposed = false;\n const disposeOnce = () => {\n if (!isDisposed) {\n isDisposed = true;\n disp.Dispose();\n }\n };\n try {\n return enumerateThenFinally(work(disp), disposeOnce);\n }\n catch (err) {\n return void 0;\n }\n finally {\n disposeOnce();\n }\n}\nexport function exactlyOne(xs) {\n const iter = xs[Symbol.iterator]();\n const fst = iter.next();\n if (fst.done) {\n throw new Error(\"Seq was empty\");\n }\n const snd = iter.next();\n if (!snd.done) {\n throw new Error(\"Seq had multiple items\");\n }\n return fst.value;\n}\nexport function except(itemsToExclude, source) {\n const exclusionItems = Array.from(itemsToExclude);\n const testIsNotInExclusionItems = (element) => !exclusionItems.some((excludedItem) => equals(excludedItem, element));\n return filter(testIsNotInExclusionItems, source);\n}\nexport function exists(f, xs) {\n let cur;\n for (const iter = xs[Symbol.iterator]();;) {\n cur = iter.next();\n if (cur.done) {\n break;\n }\n if (f(cur.value)) {\n return true;\n }\n }\n return false;\n}\nexport function exists2(f, xs, ys) {\n let cur1;\n let cur2;\n for (const iter1 = xs[Symbol.iterator](), iter2 = ys[Symbol.iterator]();;) {\n cur1 = iter1.next();\n cur2 = iter2.next();\n if (cur1.done || cur2.done) {\n break;\n }\n if (f(cur1.value, cur2.value)) {\n return true;\n }\n }\n return false;\n}\nexport function filter(f, xs) {\n return delay(() => unfold((iter) => {\n let cur = iter.next();\n while (!cur.done) {\n if (f(cur.value)) {\n return [cur.value, iter];\n }\n cur = iter.next();\n }\n return null;\n }, xs[Symbol.iterator]()));\n}\nexport function where(f, xs) {\n return filter(f, xs);\n}\nexport function fold(f, acc, xs) {\n if (Array.isArray(xs) || ArrayBuffer.isView(xs)) {\n return xs.reduce(f, acc);\n }\n else {\n let cur;\n for (let i = 0, iter = xs[Symbol.iterator]();; i++) {\n cur = iter.next();\n if (cur.done) {\n break;\n }\n acc = f(acc, cur.value, i);\n }\n return acc;\n }\n}\nexport function foldBack(f, xs, acc) {\n const arr = Array.isArray(xs) || ArrayBuffer.isView(xs) ? xs : Array.from(xs);\n for (let i = arr.length - 1; i >= 0; i--) {\n acc = f(arr[i], acc, i);\n }\n return acc;\n}\nexport function fold2(f, acc, xs, ys) {\n const iter1 = xs[Symbol.iterator]();\n const iter2 = ys[Symbol.iterator]();\n let cur1;\n let cur2;\n for (let i = 0;; i++) {\n cur1 = iter1.next();\n cur2 = iter2.next();\n if (cur1.done || cur2.done) {\n break;\n }\n acc = f(acc, cur1.value, cur2.value, i);\n }\n return acc;\n}\nexport function foldBack2(f, xs, ys, acc) {\n const ar1 = Array.isArray(xs) || ArrayBuffer.isView(xs) ? xs : Array.from(xs);\n const ar2 = Array.isArray(ys) || ArrayBuffer.isView(ys) ? ys : Array.from(ys);\n for (let i = ar1.length - 1; i >= 0; i--) {\n acc = f(ar1[i], ar2[i], acc, i);\n }\n return acc;\n}\nexport function forAll(f, xs) {\n return fold((acc, x) => acc && f(x), true, xs);\n}\nexport function forAll2(f, xs, ys) {\n return fold2((acc, x, y) => acc && f(x, y), true, xs, ys);\n}\nexport function tryHead(xs) {\n const iter = xs[Symbol.iterator]();\n const cur = iter.next();\n return cur.done ? null : new Some(cur.value);\n}\nexport function head(xs) {\n return __failIfNone(tryHead(xs));\n}\nexport function initialize(n, f) {\n return delay(() => unfold((i) => i < n ? [f(i), i + 1] : null, 0));\n}\nexport function initializeInfinite(f) {\n return delay(() => unfold((i) => [f(i), i + 1], 0));\n}\nexport function tryItem(i, xs) {\n if (i < 0) {\n return null;\n }\n if (Array.isArray(xs) || ArrayBuffer.isView(xs)) {\n return i < xs.length ? new Some(xs[i]) : null;\n }\n for (let j = 0, iter = xs[Symbol.iterator]();; j++) {\n const cur = iter.next();\n if (cur.done) {\n break;\n }\n if (j === i) {\n return new Some(cur.value);\n }\n }\n return null;\n}\nexport function item(i, xs) {\n return __failIfNone(tryItem(i, xs));\n}\nexport function iterate(f, xs) {\n fold((_, x) => f(x), null, xs);\n}\nexport function iterate2(f, xs, ys) {\n fold2((_, x, y) => f(x, y), null, xs, ys);\n}\nexport function iterateIndexed(f, xs) {\n fold((_, x, i) => f(i, x), null, xs);\n}\nexport function iterateIndexed2(f, xs, ys) {\n fold2((_, x, y, i) => f(i, x, y), null, xs, ys);\n}\nexport function isEmpty(xs) {\n const i = xs[Symbol.iterator]();\n return i.next().done;\n}\nexport function tryLast(xs) {\n try {\n return new Some(reduce((_, x) => x, xs));\n }\n catch (err) {\n return null;\n }\n}\nexport function last(xs) {\n return __failIfNone(tryLast(xs));\n}\n// A export function 'length' method causes problems in JavaScript -- https://github.com/Microsoft/TypeScript/issues/442\nexport function count(xs) {\n return Array.isArray(xs) || ArrayBuffer.isView(xs)\n ? xs.length\n : fold((acc, x) => acc + 1, 0, xs);\n}\nexport function map(f, xs) {\n return delay(() => unfold((iter) => {\n const cur = iter.next();\n return !cur.done ? [f(cur.value), iter] : null;\n }, xs[Symbol.iterator]()));\n}\nexport function mapIndexed(f, xs) {\n return delay(() => {\n let i = 0;\n return unfold((iter) => {\n const cur = iter.next();\n return !cur.done ? [f(i++, cur.value), iter] : null;\n }, xs[Symbol.iterator]());\n });\n}\nexport function indexed(xs) {\n return mapIndexed((i, x) => [i, x], xs);\n}\nexport function map2(f, xs, ys) {\n return delay(() => {\n const iter1 = xs[Symbol.iterator]();\n const iter2 = ys[Symbol.iterator]();\n return unfold(() => {\n const cur1 = iter1.next();\n const cur2 = iter2.next();\n return !cur1.done && !cur2.done ? [f(cur1.value, cur2.value), null] : null;\n });\n });\n}\nexport function mapIndexed2(f, xs, ys) {\n return delay(() => {\n let i = 0;\n const iter1 = xs[Symbol.iterator]();\n const iter2 = ys[Symbol.iterator]();\n return unfold(() => {\n const cur1 = iter1.next();\n const cur2 = iter2.next();\n return !cur1.done && !cur2.done ? [f(i++, cur1.value, cur2.value), null] : null;\n });\n });\n}\nexport function map3(f, xs, ys, zs) {\n return delay(() => {\n const iter1 = xs[Symbol.iterator]();\n const iter2 = ys[Symbol.iterator]();\n const iter3 = zs[Symbol.iterator]();\n return unfold(() => {\n const cur1 = iter1.next();\n const cur2 = iter2.next();\n const cur3 = iter3.next();\n return !cur1.done && !cur2.done && !cur3.done ? [f(cur1.value, cur2.value, cur3.value), null] : null;\n });\n });\n}\nexport function chunkBySize(size, xs) {\n const result = arrayChunkBySize(size, Array.from(xs));\n return ofArray(result.map(ofArray));\n}\nexport function mapFold(f, acc, xs, transform) {\n const result = [];\n let r;\n let cur;\n for (let i = 0, iter = xs[Symbol.iterator]();; i++) {\n cur = iter.next();\n if (cur.done) {\n break;\n }\n [r, acc] = f(acc, cur.value);\n result.push(r);\n }\n return transform !== void 0 ? [transform(result), acc] : [result, acc];\n}\nexport function mapFoldBack(f, xs, acc, transform) {\n const arr = Array.isArray(xs) || ArrayBuffer.isView(xs) ? xs : Array.from(xs);\n const result = [];\n let r;\n for (let i = arr.length - 1; i >= 0; i--) {\n [r, acc] = f(arr[i], acc);\n result.push(r);\n }\n return transform !== void 0 ? [transform(result), acc] : [result, acc];\n}\nexport function max(xs) {\n return reduce((acc, x) => compare(acc, x) === 1 ? acc : x, xs);\n}\nexport function maxBy(f, xs) {\n return reduce((acc, x) => compare(f(acc), f(x)) === 1 ? acc : x, xs);\n}\nexport function min(xs) {\n return reduce((acc, x) => compare(acc, x) === -1 ? acc : x, xs);\n}\nexport function minBy(f, xs) {\n return reduce((acc, x) => compare(f(acc), f(x)) === -1 ? acc : x, xs);\n}\nexport function pairwise(xs) {\n return skip(2, scan((last, next) => [last[1], next], [0, 0], xs));\n}\nexport function permute(f, xs) {\n return ofArray(arrayPermute(f, Array.from(xs)));\n}\nexport function rangeStep(first, step, last) {\n if (step === 0) {\n throw new Error(\"Step cannot be 0\");\n }\n return delay(() => unfold((x) => step > 0 && x <= last || step < 0 && x >= last ? [x, x + step] : null, first));\n}\nexport function rangeChar(first, last) {\n return delay(() => unfold((x) => x <= last ? [x, String.fromCharCode(x.charCodeAt(0) + 1)] : null, first));\n}\nexport function range(first, last) {\n return rangeStep(first, 1, last);\n}\nexport function readOnly(xs) {\n return map((x) => x, xs);\n}\nexport function reduce(f, xs) {\n if (Array.isArray(xs) || ArrayBuffer.isView(xs)) {\n return xs.reduce(f);\n }\n const iter = xs[Symbol.iterator]();\n let cur = iter.next();\n if (cur.done) {\n throw new Error(\"Seq was empty\");\n }\n let acc = cur.value;\n while (true) {\n cur = iter.next();\n if (cur.done) {\n break;\n }\n acc = f(acc, cur.value);\n }\n return acc;\n}\nexport function reduceBack(f, xs) {\n const ar = Array.isArray(xs) || ArrayBuffer.isView(xs) ? xs : Array.from(xs);\n if (ar.length === 0) {\n throw new Error(\"Seq was empty\");\n }\n let acc = ar[ar.length - 1];\n for (let i = ar.length - 2; i >= 0; i--) {\n acc = f(ar[i], acc, i);\n }\n return acc;\n}\nexport function replicate(n, x) {\n return initialize(n, () => x);\n}\nexport function reverse(xs) {\n const ar = Array.isArray(xs) || ArrayBuffer.isView(xs) ? xs.slice(0) : Array.from(xs);\n return ofArray(ar.reverse());\n}\nexport function scan(f, seed, xs) {\n return delay(() => {\n const iter = xs[Symbol.iterator]();\n return unfold((acc) => {\n if (acc == null) {\n return [seed, seed];\n }\n const cur = iter.next();\n if (!cur.done) {\n acc = f(acc, cur.value);\n return [acc, acc];\n }\n return void 0;\n }, null);\n });\n}\nexport function scanBack(f, xs, seed) {\n return reverse(scan((acc, x) => f(x, acc), seed, reverse(xs)));\n}\nexport function singleton(y) {\n return unfold((x) => x != null ? [x, null] : null, y);\n}\nexport function skip(n, xs) {\n return {\n [Symbol.iterator]: () => {\n const iter = xs[Symbol.iterator]();\n for (let i = 1; i <= n; i++) {\n if (iter.next().done) {\n throw new Error(\"Seq has not enough elements\");\n }\n }\n return iter;\n },\n };\n}\nexport function skipWhile(f, xs) {\n return delay(() => {\n let hasPassed = false;\n return filter((x) => hasPassed || (hasPassed = !f(x)), xs);\n });\n}\nexport function sortWith(f, xs) {\n const ys = Array.from(xs);\n return ofArray(ys.sort(f));\n}\nexport function sum(xs) {\n return fold((acc, x) => acc + x, 0, xs);\n}\nexport function sumBy(f, xs) {\n return fold((acc, x) => acc + f(x), 0, xs);\n}\nexport function tail(xs) {\n const iter = xs[Symbol.iterator]();\n const cur = iter.next();\n if (cur.done) {\n throw new Error(\"Seq was empty\");\n }\n return {\n [Symbol.iterator]: () => iter,\n };\n}\nexport function take(n, xs, truncate = false) {\n return delay(() => {\n const iter = xs[Symbol.iterator]();\n return unfold((i) => {\n if (i < n) {\n const cur = iter.next();\n if (!cur.done) {\n return [cur.value, i + 1];\n }\n if (!truncate) {\n throw new Error(\"Seq has not enough elements\");\n }\n }\n return void 0;\n }, 0);\n });\n}\nexport function truncate(n, xs) {\n return take(n, xs, true);\n}\nexport function takeWhile(f, xs) {\n return delay(() => {\n const iter = xs[Symbol.iterator]();\n return unfold((i) => {\n const cur = iter.next();\n if (!cur.done && f(cur.value)) {\n return [cur.value, null];\n }\n return void 0;\n }, 0);\n });\n}\nexport function tryFind(f, xs, defaultValue) {\n for (let i = 0, iter = xs[Symbol.iterator]();; i++) {\n const cur = iter.next();\n if (cur.done) {\n break;\n }\n if (f(cur.value, i)) {\n return new Some(cur.value);\n }\n }\n return defaultValue === void 0 ? null : new Some(defaultValue);\n}\nexport function find(f, xs) {\n return __failIfNone(tryFind(f, xs));\n}\nexport function tryFindBack(f, xs, defaultValue) {\n const arr = Array.isArray(xs) || ArrayBuffer.isView(xs) ? xs.slice(0) : Array.from(xs);\n return tryFind(f, arr.reverse(), defaultValue);\n}\nexport function findBack(f, xs) {\n return __failIfNone(tryFindBack(f, xs));\n}\nexport function tryFindIndex(f, xs) {\n for (let i = 0, iter = xs[Symbol.iterator]();; i++) {\n const cur = iter.next();\n if (cur.done) {\n break;\n }\n if (f(cur.value, i)) {\n return i;\n }\n }\n return null;\n}\nexport function findIndex(f, xs) {\n return __failIfNone(tryFindIndex(f, xs));\n}\nexport function tryFindIndexBack(f, xs) {\n const arr = Array.isArray(xs) || ArrayBuffer.isView(xs) ? xs.slice(0) : Array.from(xs);\n for (let i = arr.length - 1; i >= 0; i--) {\n if (f(arr[i], i)) {\n return i;\n }\n }\n return null;\n}\nexport function findIndexBack(f, xs) {\n return __failIfNone(tryFindIndexBack(f, xs));\n}\nexport function tryPick(f, xs) {\n for (let i = 0, iter = xs[Symbol.iterator]();; i++) {\n const cur = iter.next();\n if (cur.done) {\n break;\n }\n const y = f(cur.value, i);\n if (y != null) {\n return y;\n }\n }\n return null;\n}\nexport function pick(f, xs) {\n return __failIfNone(tryPick(f, xs));\n}\nexport function unfold(f, fst) {\n return {\n [Symbol.iterator]: () => {\n // Capture a copy of the first value in the closure\n // so the sequence is restarted every time, see #1230\n let acc = fst;\n return {\n next: () => {\n const res = f(acc);\n if (res != null) {\n acc = res[1];\n return { done: false, value: res[0] };\n }\n return { done: true };\n },\n };\n },\n };\n}\nexport function zip(xs, ys) {\n return map2((x, y) => [x, y], xs, ys);\n}\nexport function zip3(xs, ys, zs) {\n return map3((x, y, z) => [x, y, z], xs, ys, zs);\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/FMarkFable/FMarkFable.fs","module Types\r\n\r\ntype Language =\r\n | Python\r\n | FSharp\r\n | CPP\r\n | C\r\n | Empty\r\n\r\ntype ID = FtID of int | RefID of string\r\n\r\ntype Token =\r\n | CODEBLOCK of string * Language\r\n | LITERAL of string\r\n | WHITESPACE of size: int\r\n | NUMBER of string\r\n | HASH | PIPE | EQUAL | MINUS | PLUS | ASTERISK | DOT | COMMA\r\n | DASTERISK | TASTERISK | UNDERSCORE | DUNDERSCORE | TUNDERSCORE | TILDE | DTILDE\r\n | TTILDE | LSBRA | RSBRA | LBRA | RBRA | BSLASH | SLASH | LABRA | RABRA | LCBRA\r\n | RCBRA | BACKTICK | EXCLAMATION | ENDLINE | COLON | CARET | PERCENT | SEMICOLON\r\n | HEADER of int\r\n | FOOTER of ID\r\n\r\ntype TFrmtedString =\r\n | Strong of InlineElement list | Emphasis of InlineElement list\r\n | Literal of string | Code of string\r\nand InlineElement =\r\n | FrmtedString of TFrmtedString\r\n | Link of HyperText: TFrmtedString * URL: string\r\n | Picture of Alt: string * URL: string\r\ntype TLine = InlineElement list\r\n\r\ntype THeader = {HeaderName: TLine; Level: int}\r\n\r\ntype Ttoc = {MaxDepth: int; HeaderLst: THeader list}\r\n\r\ntype TListType = | UL | OL\r\ntype TList = {ListType: TListType; ListItem: TListItem list; Depth: int}\r\nand TListItem = NestedList of TList | StringItem of TLine\r\n\r\ntype Alignment = Centre | Right | Left | NoAlign\r\n\r\ntype Cell =\r\n | Contents of Token list * Header: bool * Align:Alignment\r\n\r\ntype Row =\r\n | Cells of Cell list * Header:bool\r\n\r\ntype PCell =\r\n | CellLine of TLine * Header: bool * Align:Alignment\r\n\r\ntype PRow =\r\n | PCells of PCell list * Header:bool\r\n\r\ntype RefFrmt = IEEE | Harvard | Chicago\r\ntype RefType = Book | Website\r\n// date support for access later\r\ntype Ref = {Cat: RefType option; Author: Token list option; Title: Token list option;\r\n Year: int option; URL: string option; Access: Token list option}\r\n\r\ntype ParsedObj =\r\n | CodeBlock of string * Language\r\n | Header of THeader\r\n | ContentTable of Ttoc\r\n | List of TList\r\n | Paragraph of TLine list\r\n | Quote of TLine\r\n | Table of PRow list\r\n | PreTable of Content: Token list list\r\n | Footnote of ID * TLine\r\n\r\ntype Cell with \r\n member c.GetToks = match c with \r\n | Contents(toks,_,_) -> toks\r\n member c.ReplaceTokens t = match c with \r\n | Contents(_,head,align) -> Contents(t,head,align)\r\n member c.GetHead = match c with \r\n | Contents(_,head,_) -> head\r\n member c.GetParams = match c with \r\n | Contents(toks,head,align) -> toks,head,align\r\n\r\ntype OutFormat = HTML | Markdown\n\n\n// WEBPACK FOOTER //\n// src/Common/Types.fs","module Shared\r\n\r\nopen Types\r\nopen Logger\r\n\r\n// Helpers\r\n\r\n/// Inverse the values in a tuple\r\nlet invTuple (a, b) = b, a\r\n\r\n/// Try to find a key in a map, return Some value when it is found, otherwise it\r\n/// returns None\r\nlet mapTryFind k (map: Map<'a, 'b>) = map.TryFind(k)\r\n\r\n/// Try find key in a list\r\nlet listTryFind s =\r\n List.map invTuple >> Map.ofList >> mapTryFind s\r\n\r\n/// The list of characters used in the parser\r\nlet charList = [\"#\", HASH; \"|\", PIPE; \"=\", EQUAL; \"-\", MINUS; \"+\", PLUS; \"*\", ASTERISK\r\n \".\", DOT; \"**\", DASTERISK; \"***\", TASTERISK; \"_\", UNDERSCORE; \"__\", DUNDERSCORE\r\n \"___\", TUNDERSCORE; \"~\", TILDE; \"~~\", DTILDE; \"~~~\", TTILDE; \"[\", LSBRA\r\n \"]\", RSBRA; \"(\", LBRA; \")\", RBRA; @\"\\\", BSLASH; \"/\", SLASH; \"<\", LABRA\r\n \">\", RABRA; \"{\", LCBRA; \"}\", RCBRA; \"`\", BACKTICK;\r\n \"!\", EXCLAMATION; \":\", COLON; \"^\", CARET; \"%\", PERCENT; \",\", COMMA]\r\n\r\nlet charMap = charList |> List.map invTuple |> Map.ofList\r\n\r\nlet (|CharTok|_|) tok =\r\n mapTryFind tok charMap\r\n\r\nlet mapTok = function\r\n | CharTok s -> s\r\n | CODEBLOCK _ -> \"CODEBLOCK\"\r\n | FOOTER _ -> sprintf \"FOOTER found\"\r\n | HEADER n -> sprintf \"HEADER %d\" n\r\n | NUMBER s -> s\r\n | LITERAL s -> s\r\n | WHITESPACE n -> String.replicate n \" \"\r\n | _ -> \"\\n\"\r\n\r\n/// turn all tokens into string\r\nlet strAllToks toks =\r\n let pacMan str tok =\r\n str + mapTok tok\r\n List.fold pacMan \"\" toks\r\n\r\nlet mapLang lang =\r\n match lang with\r\n | Python -> \"python\"\r\n | FSharp -> \"fsharp\"\r\n | CPP -> \"cpp\"\r\n | C -> \"c\"\r\n | Empty -> \"\"\r\n\r\nlet xOnwards x lst = if List.length lst > x then lst.[x..] else []\r\nlet sOnwards s str = if String.length str > s then str.[s..] else \"\"\r\nlet removeChars lst s =\r\n let folder (s:string) x = s.Replace(x,\"\")\r\n List.fold folder s lst\r\nlet removeWhitespace (s:string) = \r\n s |> removeChars [\"\\n\";\"\\t\";\"\\r\";\" \"]\r\nlet sharedLog = Logger(LogLevel.WARNING)\r\n\n\n\n// WEBPACK FOOTER //\n// src/Common/Shared.fs","export function create(pattern, options) {\n let flags = \"g\";\n flags += options & 1 ? \"i\" : \"\";\n flags += options & 2 ? \"m\" : \"\";\n return new RegExp(pattern, flags);\n}\n// From http://stackoverflow.com/questions/3446170/escape-string-for-use-in-javascript-regex\nexport function escape(str) {\n return str.replace(/[\\-\\[\\/\\{\\}\\(\\)\\*\\+\\?\\.\\\\\\^\\$\\|]/g, \"\\\\$&\");\n}\nexport function unescape(str) {\n return str.replace(/\\\\([\\-\\[\\/\\{\\}\\(\\)\\*\\+\\?\\.\\\\\\^\\$\\|])/g, \"$1\");\n}\nexport function isMatch(str, pattern, options = 0) {\n let reg;\n reg = str instanceof RegExp\n ? (reg = str, str = pattern, reg.lastIndex = options, reg)\n : reg = create(pattern, options);\n return reg.test(str);\n}\nexport function match(str, pattern, options = 0) {\n let reg;\n reg = str instanceof RegExp\n ? (reg = str, str = pattern, reg.lastIndex = options, reg)\n : reg = create(pattern, options);\n return reg.exec(str);\n}\nexport function matches(str, pattern, options = 0) {\n let reg;\n reg = str instanceof RegExp\n ? (reg = str, str = pattern, reg.lastIndex = options, reg)\n : reg = create(pattern, options);\n if (!reg.global) {\n throw new Error(\"Non-global RegExp\"); // Prevent infinite loop\n }\n let m = reg.exec(str);\n const matches = [];\n while (m !== null) {\n matches.push(m);\n m = reg.exec(str);\n }\n return matches;\n}\nexport function options(reg) {\n let options = 256; // ECMAScript\n options |= reg.ignoreCase ? 1 : 0;\n options |= reg.multiline ? 2 : 0;\n return options;\n}\nexport function replace(reg, input, replacement, limit, offset = 0) {\n function replacer() {\n let res = arguments[0];\n if (limit !== 0) {\n limit--;\n const match = [];\n const len = arguments.length;\n for (let i = 0; i < len - 2; i++) {\n match.push(arguments[i]);\n }\n match.index = arguments[len - 2];\n match.input = arguments[len - 1];\n res = replacement(match);\n }\n return res;\n }\n if (typeof reg === \"string\") {\n const tmp = reg;\n reg = create(input, limit);\n input = tmp;\n limit = undefined;\n }\n if (typeof replacement === \"function\") {\n limit = limit == null ? -1 : limit;\n return input.substring(0, offset) + input.substring(offset).replace(reg, replacer);\n }\n else {\n // $0 doesn't work with JS regex, see #1155\n replacement = replacement.replace(/\\$0/g, (s) => \"$&\");\n if (limit != null) {\n let m;\n const sub1 = input.substring(offset);\n const _matches = matches(reg, sub1);\n const sub2 = matches.length > limit ? (m = _matches[limit - 1], sub1.substring(0, m.index + m[0].length)) : sub1;\n return input.substring(0, offset) + sub2.replace(reg, replacement)\n + input.substring(offset + sub2.length);\n }\n else {\n return input.replace(reg, replacement);\n }\n }\n}\nexport function split(reg, input, limit, offset = 0) {\n if (typeof reg === \"string\") {\n const tmp = reg;\n reg = create(input, limit);\n input = tmp;\n limit = undefined;\n }\n input = input.substring(offset);\n return input.split(reg, limit);\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/Common/HTMLGen/HTMLGen.fs","import FSymbol from \"./Symbol\";\nimport { Any } from \"./Util\";\nimport { compareUnions, equalsUnions } from \"./Util\";\nexport function choice1Of2(v) {\n return new Choice(0, v);\n}\nexport function choice2Of2(v) {\n return new Choice(1, v);\n}\nexport default class Choice {\n constructor(tag, data) {\n this.tag = tag | 0;\n this.data = data;\n }\n get valueIfChoice1() {\n return this.tag === 0 ? this.data : null;\n }\n get valueIfChoice2() {\n return this.tag === 1 ? this.data : null;\n }\n Equals(other) {\n return equalsUnions(this, other);\n }\n CompareTo(other) {\n return compareUnions(this, other);\n }\n [FSymbol.reflection]() {\n return {\n type: \"Microsoft.FSharp.Core.FSharpChoice\",\n interfaces: [\"FSharpUnion\", \"System.IEquatable\", \"System.IComparable\"],\n cases: [[\"Choice1Of2\", Any], [\"Choice2Of2\", Any]],\n };\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/Common/Lexer/LexerShared.fs","import { defaultCancellationToken } from \"./Async\";\nimport { fromContinuations } from \"./Async\";\nimport { startImmediate } from \"./Async\";\nclass QueueCell {\n constructor(message) {\n this.value = message;\n }\n}\nclass MailboxQueue {\n add(message) {\n const itCell = new QueueCell(message);\n if (this.firstAndLast) {\n this.firstAndLast[1].next = itCell;\n this.firstAndLast = [this.firstAndLast[0], itCell];\n }\n else {\n this.firstAndLast = [itCell, itCell];\n }\n }\n tryGet() {\n if (this.firstAndLast) {\n const value = this.firstAndLast[0].value;\n if (this.firstAndLast[0].next) {\n this.firstAndLast = [this.firstAndLast[0].next, this.firstAndLast[1]];\n }\n else {\n delete this.firstAndLast;\n }\n return value;\n }\n return void 0;\n }\n}\nexport default class MailboxProcessor {\n constructor(body, cancellationToken) {\n this.body = body;\n this.cancellationToken = cancellationToken || defaultCancellationToken;\n this.messages = new MailboxQueue();\n }\n __processEvents() {\n if (this.continuation) {\n const value = this.messages.tryGet();\n if (value) {\n const cont = this.continuation;\n delete this.continuation;\n cont(value);\n }\n }\n }\n start() {\n startImmediate(this.body(this), this.cancellationToken);\n }\n receive() {\n return fromContinuations((conts) => {\n if (this.continuation) {\n throw new Error(\"Receive can only be called once!\");\n }\n this.continuation = conts[0];\n this.__processEvents();\n });\n }\n post(message) {\n this.messages.add(message);\n this.__processEvents();\n }\n postAndAsyncReply(buildMessage) {\n let result;\n let continuation;\n function checkCompletion() {\n if (result && continuation) {\n continuation(result);\n }\n }\n const reply = {\n reply: (res) => {\n result = res;\n checkCompletion();\n },\n };\n this.messages.add(buildMessage(reply));\n this.__processEvents();\n return fromContinuations((conts) => {\n continuation = conts[0];\n checkCompletion();\n });\n }\n}\nexport function start(body, cancellationToken) {\n const mbox = new MailboxProcessor(body, cancellationToken);\n mbox.start();\n return mbox;\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/Common/Markalc/Markalc.fs","module Logger\r\n\r\nopen System\r\n\r\ntype LogLevel =\r\n | DEBUG=0\r\n | INFO=1\r\n | WARNING=2\r\n | ERROR=3\r\n | FATAL=4\r\n\r\nlet logLevelStr =\r\n [\r\n LogLevel.DEBUG, \"DEBUG\"\r\n LogLevel.INFO, \"INFO\"\r\n LogLevel.WARNING, \"WARNING\"\r\n LogLevel.ERROR, \"ERROR\"\r\n LogLevel.FATAL, \"FATAL\"\r\n ] |> Map.ofList\r\n\r\ntype Logger(logLevel) =\r\n\r\n // create the mailbox processor\r\n let agent = MailboxProcessor.Start(fun inbox -> \r\n\r\n // the message processing function\r\n let rec messageLoop () = async {\r\n\r\n // read a message\r\n let! msg = inbox.Receive()\r\n\r\n // write it to the log\r\n printfn \"%s\" msg\r\n\r\n // loop to top\r\n return! messageLoop ()\r\n }\r\n\r\n // start the loop\r\n messageLoop ()\r\n )\r\n\r\n let postStr pType msg = function\r\n | Some l ->\r\n sprintf \"%s [%s] (%d) %s\" pType (DateTime.Now.ToString(\"yyyy-MM-dd HH:mm:ss\")) l msg |> agent.Post\r\n | _ ->\r\n sprintf \"%s [%s] %s\" pType (DateTime.Now.ToString(\"yyyy-MM-dd HH:mm:ss\")) msg |> agent.Post\r\n\r\n let log t l msg =\r\n if t >= logLevel then\r\n postStr logLevelStr.[t] msg l\r\n else ()\r\n\r\n // Public API\r\n member __.Log = log\r\n member __.Debug = log LogLevel.DEBUG\r\n member __.Info = log LogLevel.INFO\r\n member __.Warn = log LogLevel.WARNING\r\n member __.Error = log LogLevel.ERROR\r\n member __.Fatal = log LogLevel.FATAL\r\n\r\nlet logPass line log s =\r\n s |> log line\r\n s\r\n\r\nlet logPassN log s =\r\n s |> log None\r\n s\r\n\n\n\n// WEBPACK FOOTER //\n// src/Common/Logger/Logger.fs","export const offsetRegex = /(?:Z|[+-](\\d{2}):?(\\d{2})?)$/;\nexport function padWithZeros(i, length) {\n let str = i.toString(10);\n while (str.length < length) {\n str = \"0\" + str;\n }\n return str;\n}\nexport function offsetToString(offset) {\n const isMinus = offset < 0;\n offset = Math.abs(offset);\n const hours = ~~(offset / 3600000);\n const minutes = (offset % 3600000) / 60000;\n return (isMinus ? \"-\" : \"+\") +\n padWithZeros(hours, 2) + \":\" +\n padWithZeros(minutes, 2);\n}\nexport function toHalfUTCString(date, half) {\n const str = date.toISOString();\n return half === \"first\"\n ? str.substring(0, str.indexOf(\"T\"))\n : str.substring(str.indexOf(\"T\") + 1, str.length - 1);\n}\nfunction toISOString(d, utc) {\n if (utc) {\n return d.toISOString();\n }\n else {\n // JS Date is always local\n const printOffset = d.kind == null ? true : d.kind === 2 /* Local */;\n return padWithZeros(d.getFullYear(), 4) + \"-\" +\n padWithZeros(d.getMonth() + 1, 2) + \"-\" +\n padWithZeros(d.getDate(), 2) + \"T\" +\n padWithZeros(d.getHours(), 2) + \":\" +\n padWithZeros(d.getMinutes(), 2) + \":\" +\n padWithZeros(d.getSeconds(), 2) + \".\" +\n padWithZeros(d.getMilliseconds(), 3) +\n (printOffset ? offsetToString(d.getTimezoneOffset() * -60000) : \"\");\n }\n}\nfunction toISOStringWithOffset(dateWithOffset, offset) {\n const str = dateWithOffset.toISOString();\n return str.substring(0, str.length - 1) + offsetToString(offset);\n}\nfunction toStringWithCustomFormat(date, format, utc) {\n return format.replace(/(\\w)\\1*/g, (match) => {\n let rep = match;\n switch (match.substring(0, 1)) {\n case \"y\":\n const y = utc ? date.getUTCFullYear() : date.getFullYear();\n rep = match.length < 4 ? y % 100 : y;\n break;\n case \"M\":\n rep = (utc ? date.getUTCMonth() : date.getMonth()) + 1;\n break;\n case \"d\":\n rep = utc ? date.getUTCDate() : date.getDate();\n break;\n case \"H\":\n rep = utc ? date.getUTCHours() : date.getHours();\n break;\n case \"h\":\n const h = utc ? date.getUTCHours() : date.getHours();\n rep = h > 12 ? h % 12 : h;\n break;\n case \"m\":\n rep = utc ? date.getUTCMinutes() : date.getMinutes();\n break;\n case \"s\":\n rep = utc ? date.getUTCSeconds() : date.getSeconds();\n break;\n }\n if (rep !== match && rep < 10 && match.length > 1) {\n rep = \"0\" + rep;\n }\n return rep;\n });\n}\nexport function toStringWithOffset(date, format) {\n const d = new Date(date.getTime() + date.offset);\n if (!format) {\n return d.toISOString().replace(/\\.\\d+/, \"\").replace(/[A-Z]|\\.\\d+/g, \" \") + offsetToString(date.offset);\n }\n else if (format.length === 1) {\n switch (format) {\n case \"D\":\n case \"d\": return toHalfUTCString(d, \"first\");\n case \"T\":\n case \"t\": return toHalfUTCString(d, \"second\");\n case \"O\":\n case \"o\": return toISOStringWithOffset(d, date.offset);\n default: throw new Error(\"Unrecognized Date print format\");\n }\n }\n else {\n return toStringWithCustomFormat(d, format, true);\n }\n}\nexport function toStringWithKind(date, format) {\n const utc = date.kind === 1 /* UTC */;\n if (!format) {\n return utc ? date.toUTCString() : date.toLocaleString();\n }\n else if (format.length === 1) {\n switch (format) {\n case \"D\":\n case \"d\":\n return utc ? toHalfUTCString(date, \"first\") : date.toLocaleDateString();\n case \"T\":\n case \"t\":\n return utc ? toHalfUTCString(date, \"second\") : date.toLocaleTimeString();\n case \"O\":\n case \"o\":\n return toISOString(date, utc);\n default:\n throw new Error(\"Unrecognized Date print format\");\n }\n }\n else {\n return toStringWithCustomFormat(date, format, utc);\n }\n}\nexport function toString(date, format) {\n return date.offset != null\n ? toStringWithOffset(date, format)\n : toStringWithKind(date, format);\n}\nexport default function DateTime(value, kind) {\n kind = kind == null ? 0 /* Unspecified */ : kind;\n const d = new Date(value);\n d.kind = kind | 0;\n return d;\n}\nexport function minValue() {\n // This is \"0001-01-01T00:00:00.000Z\", actual JS min value is -8640000000000000\n return DateTime(-62135596800000, 0 /* Unspecified */);\n}\nexport function maxValue() {\n // This is \"9999-12-31T23:59:59.999Z\", actual JS max value is 8640000000000000\n return DateTime(253402300799999, 0 /* Unspecified */);\n}\nexport function parseRaw(str) {\n let date = new Date(str);\n if (isNaN(date.getTime())) {\n // Check if this is a time-only string, which JS Date parsing cannot handle (see #1045)\n if (/^(?:[01]?\\d|2[0-3]):(?:[0-5]?\\d)(?::[0-5]?\\d(?:\\.\\d+)?)?(?:\\s*[AaPp][Mm])?$/.test(str)) {\n const d = new Date();\n date = new Date(d.getFullYear() + \"/\" + (d.getMonth() + 1) + \"/\" + d.getDate() + \" \" + str);\n }\n else {\n throw new Error(\"The string is not a valid Date.\");\n }\n }\n return date;\n}\nexport function parse(str, detectUTC = false) {\n const date = parseRaw(str);\n const offset = offsetRegex.exec(str);\n // .NET always parses DateTime as Local if there's offset info (even \"Z\")\n // Newtonsoft.Json uses UTC if the offset is \"Z\"\n const kind = offset != null\n ? (detectUTC && offset[0] === \"Z\" ? 1 /* UTC */ : 2 /* Local */)\n : 0 /* Unspecified */;\n return DateTime(date.getTime(), kind);\n}\nexport function tryParse(v) {\n try {\n return [true, parse(v)];\n }\n catch (_err) {\n return [false, minValue()];\n }\n}\nexport function offset(date) {\n const date1 = date;\n return typeof date1.offset === \"number\"\n ? date1.offset\n : (date.kind === 1 /* UTC */\n ? 0 : date.getTimezoneOffset() * -60000);\n}\nexport function create(year, month, day, h = 0, m = 0, s = 0, ms = 0, kind) {\n const dateValue = kind === 1 /* UTC */\n ? Date.UTC(year, month - 1, day, h, m, s, ms)\n : new Date(year, month - 1, day, h, m, s, ms).getTime();\n if (isNaN(dateValue)) {\n throw new Error(\"The parameters describe an unrepresentable Date.\");\n }\n const date = DateTime(dateValue, kind);\n if (year <= 99) {\n date.setFullYear(year, month - 1, day);\n }\n return date;\n}\nexport function now() {\n return DateTime(Date.now(), 2 /* Local */);\n}\nexport function utcNow() {\n return DateTime(Date.now(), 1 /* UTC */);\n}\nexport function today() {\n return date(now());\n}\nexport function isLeapYear(year) {\n return year % 4 === 0 && year % 100 !== 0 || year % 400 === 0;\n}\nexport function daysInMonth(year, month) {\n return month === 2\n ? (isLeapYear(year) ? 29 : 28)\n : (month >= 8 ? (month % 2 === 0 ? 31 : 30) : (month % 2 === 0 ? 30 : 31));\n}\nexport function toUniversalTime(date) {\n return date.kind === 1 /* UTC */ ? date : DateTime(date.getTime(), 1 /* UTC */);\n}\nexport function toLocalTime(date) {\n return date.kind === 2 /* Local */ ? date : DateTime(date.getTime(), 2 /* Local */);\n}\nexport function timeOfDay(d) {\n return hour(d) * 3600000\n + minute(d) * 60000\n + second(d) * 1000\n + millisecond(d);\n}\nexport function date(d) {\n return create(year(d), month(d), day(d), 0, 0, 0, 0, d.kind);\n}\nexport function day(d) {\n return d.kind === 1 /* UTC */ ? d.getUTCDate() : d.getDate();\n}\nexport function hour(d) {\n return d.kind === 1 /* UTC */ ? d.getUTCHours() : d.getHours();\n}\nexport function millisecond(d) {\n return d.kind === 1 /* UTC */ ? d.getUTCMilliseconds() : d.getMilliseconds();\n}\nexport function minute(d) {\n return d.kind === 1 /* UTC */ ? d.getUTCMinutes() : d.getMinutes();\n}\nexport function month(d) {\n return (d.kind === 1 /* UTC */ ? d.getUTCMonth() : d.getMonth()) + 1;\n}\nexport function second(d) {\n return d.kind === 1 /* UTC */ ? d.getUTCSeconds() : d.getSeconds();\n}\nexport function year(d) {\n return d.kind === 1 /* UTC */ ? d.getUTCFullYear() : d.getFullYear();\n}\nexport function dayOfWeek(d) {\n return d.kind === 1 /* UTC */ ? d.getUTCDay() : d.getDay();\n}\nexport function dayOfYear(d) {\n const _year = year(d);\n const _month = month(d);\n let _day = day(d);\n for (let i = 1; i < _month; i++) {\n _day += daysInMonth(_year, i);\n }\n return _day;\n}\nexport function add(d, ts) {\n return DateTime(d.getTime() + ts, d.kind);\n}\nexport function addDays(d, v) {\n return DateTime(d.getTime() + v * 86400000, d.kind);\n}\nexport function addHours(d, v) {\n return DateTime(d.getTime() + v * 3600000, d.kind);\n}\nexport function addMinutes(d, v) {\n return DateTime(d.getTime() + v * 60000, d.kind);\n}\nexport function addSeconds(d, v) {\n return DateTime(d.getTime() + v * 1000, d.kind);\n}\nexport function addMilliseconds(d, v) {\n return DateTime(d.getTime() + v, d.kind);\n}\nexport function addYears(d, v) {\n const newMonth = month(d);\n const newYear = year(d) + v;\n const _daysInMonth = daysInMonth(newYear, newMonth);\n const newDay = Math.min(_daysInMonth, day(d));\n return create(newYear, newMonth, newDay, hour(d), minute(d), second(d), millisecond(d), d.kind);\n}\nexport function addMonths(d, v) {\n let newMonth = month(d) + v;\n let newMonth_ = 0;\n let yearOffset = 0;\n if (newMonth > 12) {\n newMonth_ = newMonth % 12;\n yearOffset = Math.floor(newMonth / 12);\n newMonth = newMonth_;\n }\n else if (newMonth < 1) {\n newMonth_ = 12 + newMonth % 12;\n yearOffset = Math.floor(newMonth / 12) + (newMonth_ === 12 ? -1 : 0);\n newMonth = newMonth_;\n }\n const newYear = year(d) + yearOffset;\n const _daysInMonth = daysInMonth(newYear, newMonth);\n const newDay = Math.min(_daysInMonth, day(d));\n return create(newYear, newMonth, newDay, hour(d), minute(d), second(d), millisecond(d), d.kind);\n}\nexport function subtract(d, that) {\n return typeof that === \"number\"\n ? DateTime(d.getTime() - that, d.kind)\n : d.getTime() - that.getTime();\n}\nexport function toLongDateString(d) {\n return d.toDateString();\n}\nexport function toShortDateString(d) {\n return d.toLocaleDateString();\n}\nexport function toLongTimeString(d) {\n return d.toLocaleTimeString();\n}\nexport function toShortTimeString(d) {\n return d.toLocaleTimeString().replace(/:\\d\\d(?!:)/, \"\");\n}\nexport function equals(d1, d2) {\n return d1.getTime() === d2.getTime();\n}\nexport function compare(x, y) {\n const xtime = x.getTime();\n const ytime = y.getTime();\n return xtime === ytime ? 0 : (xtime < ytime ? -1 : 1);\n}\nexport const compareTo = compare;\nexport function op_Addition(x, y) {\n return add(x, y);\n}\nexport function op_Subtraction(x, y) {\n return subtract(x, y);\n}\nexport function isDaylightSavingTime(x) {\n const jan = new Date(x.getFullYear(), 0, 1);\n const jul = new Date(x.getFullYear(), 6, 1);\n return isDST(jan.getTimezoneOffset(), jul.getTimezoneOffset(), x.getTimezoneOffset());\n}\nfunction isDST(janOffset, julOffset, tOffset) {\n return Math.min(janOffset, julOffset) === tOffset;\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/Common/Parser/Parser.fs","module MarkalcShared\r\nopen Types\r\nopen System.Text.RegularExpressions\r\nopen Logger\r\n\r\ntype CellReference = \r\n RowCol of Row:uint32*Col:uint32\r\n\r\ntype Operand =\r\n | CellRef of CellReference\r\n | Integer of int\r\n | Float of float\r\n\r\ntype Expr =\r\n | BinExp of (float->float->float)*Expr*Expr\r\n | Op of Operand\r\n | CommaFunction of string*(Expr list)\r\nlet whitespaceFilter lst = List.filter (function | WHITESPACE(_) -> false | _ -> true) lst\r\n// Count number of delim in token list\r\nlet countDelim delim tokList =\r\n List.filter (function | d when d = delim -> true | _ -> false) tokList \r\n |> List.length\r\n\r\n// return everything before and after the first/last delimeter searched for, error if delim not found\r\nlet delimSplit last delim t =\r\n let rec delimSplitFirst' delim before t =\r\n match t with\r\n | d :: after when d = delim -> Ok (before,after) // If delim then token list, return d and everything after the delim\r\n | x :: after -> delimSplitFirst' delim (x::before) after // If non-PIPE token then token list, recurse adding the tokens to the before list\r\n | [] -> Error (before,[]) // Did not find delimeter\r\n let rec delimSplitLast' delim before t =\r\n match (t, countDelim delim t) with\r\n | d :: after,1 when d = delim -> Ok (before,after)\r\n | x :: after,_ -> delimSplitLast' delim (x::before) after\r\n | [],_ -> Error (before,[])\r\n let searchFunc = if last then delimSplitLast' else delimSplitFirst'\r\n searchFunc delim [] t\r\n |> function\r\n | Error(before,a) -> Error(List.rev before,a)\r\n | Ok (before,a) -> Ok(List.rev before,a)\r\n\r\n/// Helper function to copy a list i times\r\nlet rec listCopies i lst =\r\n match i with\r\n | 1 -> lst\r\n | 0 -> []\r\n | x when x < 0 -> failwithf \"Negative argument: %A\" x\r\n | _ -> lst @ (listCopies (i-1) lst)\r\n\r\nlet unfoldTuple3 func (a,b,c) =\r\n func a b c\r\n\r\n// Take in two cell refs and return a list of all refs inbetween or None if invalid e.g. diagonal\r\nlet cellRange (p1,p2) = \r\n match (p1,p2) with\r\n | (RowCol(p1r,p1c),RowCol(p2r,p2c)) ->\r\n let genList a b = if a<b then [a..b] else [b..a]\r\n match p1r = p2r, p1c = p2c with\r\n | true,true -> Some [RowCol (p1r,p1c)]\r\n | true,false -> (List.map ((fun i -> (p1r,i)) >> RowCol) (genList p1c p2c)) |> Some\r\n | false,true -> (List.map ((fun i -> (i,p1c)) >> RowCol) (genList p1r p2r)) |> Some\r\n | false,false -> None\r\n\r\n// Quick parser to generate tokenise string one row at a time\r\nlet simpleLex txt = \r\n let (|RegexMatch|_|) r txt =\r\n let m = Regex.Match (txt,\"^\"+r)\r\n match m.Success with\r\n | true -> (m.Value, txt.Substring(m.Value.Length)) |> Some\r\n | false -> None\r\n let rec simpleLex' a txt =\r\n match txt with\r\n // Whitespace\r\n | RegexMatch \"[\\\\s]+\" (m,after) -> simpleLex' (WHITESPACE(m.Length)::a) after\r\n // Contents for expression evaluation\r\n | RegexMatch \"[0-9]+\" (m,after) -> simpleLex' (NUMBER(m)::a) after\r\n | RegexMatch \"\\\\^\" (_,after) -> simpleLex' (CARET::a) after\r\n | RegexMatch \"\\\\%\" (_,after) -> simpleLex' (PERCENT::a) after\r\n | RegexMatch \"\\\\*\" (_,after) -> simpleLex' (ASTERISK::a) after\r\n | RegexMatch \"\\\\/\" (_,after) -> simpleLex' (SLASH::a) after\r\n | RegexMatch \"\\\\+\" (_,after) -> simpleLex' (PLUS::a) after\r\n | RegexMatch \"\\\\-\" (_,after) -> simpleLex' (MINUS::a) after\r\n | RegexMatch \"\\\\(\" (_,after) -> simpleLex' (LBRA::a) after\r\n | RegexMatch \"\\\\)\" (_,after) -> simpleLex' (RBRA::a) after\r\n | RegexMatch \"\\\\[\" (_,after) -> simpleLex' (LSBRA::a) after\r\n | RegexMatch \"\\\\]\" (_,after) -> simpleLex' (RSBRA::a) after\r\n | RegexMatch \"\\\\=\" (_,after) -> simpleLex' (EQUAL::a) after\r\n | RegexMatch \"\\\\.\" (_,after) -> simpleLex' (DOT::a) after\r\n | RegexMatch \"\\\\,\" (_,after) -> simpleLex' (COMMA::a) after\r\n | RegexMatch \"\\\\{\" (_,after) -> simpleLex' (LCBRA::a) after\r\n | RegexMatch \"\\\\}\" (_,after) -> simpleLex' (RCBRA::a) after\r\n // Contents for table recognition\r\n | RegexMatch \"[a-zA-z]+[0-9]*( [a-zA-z]+[0-9]*)*\" (m,after) -> simpleLex' (LITERAL(m)::a) after\r\n | RegexMatch \"\\\\|\" (_,after) -> simpleLex' (PIPE::a) after\r\n | RegexMatch \"\\\\:\" (_,after) -> simpleLex' (COLON::a) after\r\n | RegexMatch \"\\\\;\" (_,after) -> simpleLex' (SEMICOLON::a) after\r\n | \"\" -> a\r\n | _ -> failwithf \"Unexpected character: %A\" txt\r\n simpleLex' [] txt |> List.rev\r\n\r\n// Experimental Lexr for tokenising from entire table string\r\n// let stringLex (txt:string)=\r\n// List.map simpleLex (Array.toList (txt.Split(\"\\n\")))\r\nlet lexY (x,y,z) = x,y|>simpleLex,z\r\n\r\nlet logger = Logger(LogLevel.INFO)\n\n\n// WEBPACK FOOTER //\n// src/Common/Markalc/MarkalcShared.fs","module LexerShared\r\n\r\nopen System\r\nopen System.Text.RegularExpressions\r\n\r\n// --------------------------------------------------\r\n// Helpers\r\n// --------------------------------------------------\r\n\r\n/// Take the first element of a tuple of size 3\r\nlet takeFirst (a, _, _) = a\r\n\r\n/// Match a regular expression Return Some (m,grps) where m is the match string,\r\n/// grps is the list of match groups (if any) return None on no match\r\nlet strRegexMatch (regex: string) (str: string) =\r\n let m = Regex(regex).Match(str)\r\n if m.Success\r\n then\r\n let mLst = [ for x in m.Groups -> x.Value ]\r\n Some (List.head mLst, List.tail mLst)\r\n else None\r\n\r\n/// Checks if a string starts with another string\r\nlet strStartsWith (value: string) (str: string) =\r\n str.StartsWith(value)\r\n\r\n/// Convert a single character to a string\r\nlet toString (c: char) =\r\n String.Concat [c]\r\n\r\n/// Replace a every occurence of one string in the string s by another\r\nlet strReplace (o: string) (n: string) (s: string) =\r\n s.Replace(o, n)\r\n\r\n// --------------------------------------------------\r\n// Shared\r\n// --------------------------------------------------\r\n\r\n/// Active Pattern to match a string with a regex pattern, returns the matched string\r\n/// together with the groups in a list and the rest of the string\r\nlet (|RegexMatch|_|) regex str =\r\n match strRegexMatch regex str with\r\n | None -> None\r\n | Some (m, grp) ->\r\n let lchar = String.length m\r\n Some (m, grp, str.[lchar..])\r\n\r\n/// Create a regular expression for a literal that matches everything except the\r\n/// characters defined in charList\r\nlet literalString charList =\r\n\r\n /// Escapes every special regex character in a string given to it\r\n let addEscape (c, _) =\r\n [\"\\\\\"; \".\"; \"^\"; \"$\"; \"*\"; \"+\"; \"-\"; \"?\"; \"(\"; \")\"; \"[\"; \"]\"; \"{\"; \"}\"; \"|\"; \"/\"]\r\n |> List.fold (fun st n -> strReplace n (\"\\\\\"+n) st) c\r\n\r\n charList\r\n |> List.map (addEscape >> (fun a -> a+\"|\"))\r\n |> List.fold (+) \"\"\r\n |> (fun c -> \"^.+?(?=\\\\s|\"+c+\"$)\")\r\n\r\n/// Tests if a string starts with any of the characters in charList,\r\n/// and returns the match after passing it through the retLastMatch\r\n/// function, that will be used in a fold operation with None as a starting\r\n/// value\r\nlet (|CharMatch|_|) retLastMatch a charList (str: string) =\r\n let testStartWith (c, t) =\r\n let ch = a + c\r\n strStartsWith ch str, ch, t\r\n List.map testStartWith charList\r\n |> List.fold retLastMatch None\r\n\r\n/// Checks if a string starts with a character defined in charList, and returns the DU value\r\n/// associated with it\r\nlet (|Character|_|) charList (str: string) =\r\n let retLastMatch i = function\r\n | true, c, t -> Some (t, str.[String.length c..])\r\n | _ -> i\r\n (|CharMatch|_|) retLastMatch \"\" charList str\r\n\r\n/// Checks if a string starts with an escaped char of any character in charList, and returns it\r\n/// by passing the text of the last matched value to a constructor 'tType'\r\nlet (|EscapedChar|_|) tType charList (str: string) =\r\n let retLastMatch i = function\r\n | true, (c: string), _ -> Some (tType c.[1..], str.[String.length c..])\r\n | _ -> i\r\n (|CharMatch|_|) retLastMatch \"\\\\\" charList str\r\n\r\n/// Match a single group with a regex\r\nlet (|GroupMatch|_|) str = function\r\n | RegexMatch str (m, [t], r) -> Some t\r\n | _ -> None\r\n\n\n\n// WEBPACK FOOTER //\n// src/Common/Lexer/LexerShared.fs","module Main\r\nopen System\r\nopen Fable.Core\r\nopen Fable.Core.JsInterop\r\nopen Fable.Import.Browser\r\nopen Types\r\nopen FMark\r\n\r\nlet processMarkdownString str =\r\n str\r\n |> Array.toList\r\n |> processString HTML\r\n\n\n\n// WEBPACK FOOTER //\n// src/FMarkFable/FMarkFable.fs","module FMark\r\n\r\nopen Types\r\n\r\nlet preLexParse = \r\n Preprocessor.preprocessList\r\n >> Lexer.lexList\r\n >> Parser.parse\r\nlet processString' formatFunc =\r\n preLexParse >> Result.map formatFunc\r\n\r\nlet processString format =\r\n match format with\r\n | f when f = HTML -> processString' (HTMLGen.strBody)\r\n | f when f = Markdown -> processString' (MarkdownGen.mdBody)\r\n | _ -> failwithf \"Invalid format type generated, this should not be possible.\"\r\n\n\n\n// WEBPACK FOOTER //\n// src/Common/FMark.fs","module Parser\r\nopen Types\r\nopen Shared\r\nopen ParserHelperFuncs \r\n\r\n// helper functions\r\n\r\n\r\n/// parse inline code\r\nlet rec parseCode toks =\r\n match toks with\r\n | BACKTICK::_ -> (\"\", toks.[1..]) |> Ok\r\n | tok::toks' ->\r\n parseCode toks'\r\n |> Result.map (fun (str, tks) ->\r\n mapTok tok + str, tks )\r\n | e -> sharedLog.Warn None (sprintf \"%A\" e)\r\n (\"\\\\`\", xOnwards 1 toks) |> Ok\r\n\r\n/// parse inline text, including links and pictures, terminates when nothing left\r\nlet parseInLineElements toks =\r\n let attachInlineEle front back ele =\r\n [front;ele;back]\r\n let rec parseInLineElements' currentLine toks =\r\n match toks with\r\n | MatchSym BACKTICK (content, rtks) -> (content|> strAllToks|> Code|> FrmtedString )::currentLine, rtks\r\n | MatchEm (content, rtks, frontLiteral, backLiteral) ->\r\n let inlineContent = (parseInLines [] content |> Emphasis |> FrmtedString)\r\n match frontLiteral, backLiteral with\r\n | Some fl, Some bl ->\r\n [bl;inlineContent;fl]\r\n | Some fl, None ->\r\n [inlineContent;fl]\r\n | None, Some bl ->\r\n [bl;inlineContent]\r\n | None, None ->\r\n [inlineContent]\r\n |> (fun x -> x@currentLine), rtks\r\n | _ ->\r\n let str = mapTok toks.[0]\r\n FrmtedString (Literal str)::currentLine, xOnwards 1 toks\r\n and parseInLines currentLine toks =\r\n match toks with\r\n | [] -> []\r\n | _ ->\r\n let (newLine, retoks) = parseInLineElements' currentLine toks\r\n match retoks with\r\n | [] -> newLine |> List.rev\r\n | _ ->\r\n parseInLines newLine retoks\r\n |> combineLiterals\r\n parseInLines [] toks\r\n\r\n/// parse a paragraph which counts for contents in `<p>`\r\n/// parseParagraph eats 2>= ENDLINEs\r\nlet parseParagraph toks =\r\n let parseParagraph' lines tokLine = (parseInLineElements tokLine) :: lines\r\n toks\r\n |> trimENDLINEs\r\n |> cutIntoLines\r\n |> List.fold parseParagraph' []\r\n |> List.rev\r\n |> Paragraph\r\n\r\n/// match table start sequence\r\n/// return table rows, terminates when [] or two continuous ENDLINEs\r\n/// start sequence:\r\n/// something in first line, at least one '|' and three '-' in second line\r\nlet (|MatchTable|_|) toks =\r\n // transform table rows into Table or Pretable depending if valid table.\r\n let tableTransform (rows,rtks) =\r\n rows |> Markalc.parseEvaluateTable\r\n |> function\r\n | Ok(rows) -> \r\n let toPCellList (cell:Cell) = \r\n let toks,head,align = (cell.GetParams) \r\n let pCellLine = toks |> parseInLineElements\r\n CellLine(pCellLine,head,align)\r\n let toPRow row = \r\n let clst, rHead = row |> function | Cells(clst',rHead') -> clst',rHead'\r\n PCells(List.map toPCellList clst, rHead)// Create PRows\r\n // For each row, unpack into Cell list\r\n (List.map toPRow rows |> Table,rtks) |> Some\r\n | Error(_)-> None\r\n match toks with\r\n | MatchTableHead rtks ->\r\n match rtks with\r\n | MatchTableFormater _ -> cutTableRows toks |> tableTransform\r\n | _ -> None\r\n | _ -> None\r\n\r\n/// parse supported `ParsedObj`s, turn them into a list\r\n/// assuming each item start at the beginning of the line\r\n/// the returned token head does not have 2>= ENDLINE\r\nlet rec parseItem (rawToks: Token list) : Result<ParsedObj * Token list, string> =\r\n let toks = deleteLeadingENDLINEs rawToks\r\n match toks with\r\n | CODEBLOCK (content, lang) :: toks' -> (CodeBlock(content, lang), toks') |> Ok\r\n | MatchListOpSpace _ -> \"Lists todo\" |> Error\r\n | MatchTable (rows, rtks) -> (rows, rtks) |> Ok\r\n | MatchQuote (content, rtks) ->\r\n (parseInLineElements content |> Quote , rtks)\r\n |> Ok\r\n | MatchHeader (level, content, rtks) ->\r\n let line = parseInLineElements content\r\n (Header{HeaderName=line; Level=level}, rtks)\r\n |> Ok\r\n | PickoutParagraph (par, retoks) ->\r\n (parseParagraph par, retoks) |> Ok\r\n | _ -> sprintf \"Parse item did not match: %A\" toks |> removeChars [\"[\";\"]\"] |> Error\r\n\r\nand parseItemList toks : Result<ParsedObj list * option<Token list>, string> =\r\n match (List.isEmpty toks, not (List.exists (function | WHITESPACE(_) | ENDLINE -> false | _ -> true) toks)) with\r\n | (false,false) -> \r\n parseItem toks\r\n |> Result.bind (fun (pobj, re) ->\r\n match List.isEmpty re with\r\n | true -> ([pobj], None) |> Ok\r\n | false ->\r\n parseItemList re\r\n |> Result.map(fun (pobjs, re') ->\r\n pobj::pobjs, re' )\r\n )\r\n | _ -> ([], None) |> Ok // if tokens are only whitespace or endlines, return no parsedObjs\r\n\r\n/// top-level Parser, which the user should use\r\n/// `parse` will either return result monad with either `ParsedObj list` or a string of Error message.\r\n/// Unparsed Tokens will be in the returned in the Error message.\r\nlet parse toks =\r\n parseItemList toks\r\n |> Result.bind (fun (pobjs, retoks) ->\r\n match retoks with\r\n | None -> pobjs |> Ok\r\n | Some retoks -> sprintf \"Some unparsed tokens: %A\" retoks |> Error)\r\n\n\n\n// WEBPACK FOOTER //\n// src/Common/Parser/Parser.fs","module ParserHelperFuncs\r\nopen Types\r\nopen Shared\r\n\r\nlet SPACE = \" \"\r\nlet NOSTRING = \"\"\r\n\r\ntype TEmphasis = UNDER | STAR // underscore and asterisk\r\n\r\ntype ParagraphState = {Par: Token list; ReToks: Token list; ParMatched: bool}\r\n\r\n/// delete leading ENDLINEs and return the rest\r\nlet rec deleteLeadingENDLINEs toks =\r\n match toks with\r\n | ENDLINE:: tks -> deleteLeadingENDLINEs tks\r\n | _ -> toks\r\n\r\nlet deleteTrailingENDLINEs toks =\r\n toks\r\n |> List.rev\r\n |> deleteLeadingENDLINEs\r\n |> List.rev\r\n\r\nlet trimENDLINEs toks =\r\n toks\r\n |> deleteLeadingENDLINEs\r\n |> deleteTrailingENDLINEs\r\n\r\n/// convert all Tokens into a single string\r\n/// see mapTok for Token mapping\r\nlet stringAllTokens toks =\r\n let matchTok i tok =\r\n i + mapTok tok\r\n List.fold matchTok \"\" toks\r\n\r\n/// count subsquent and continuous Tokens\r\nlet countToks (tok: Token) toks =\r\n let rec countToks' (n, toks') =\r\n match toks' with\r\n | t:: rtks when t = tok -> countToks' (n+1, rtks)\r\n | _ -> n, toks'\r\n countToks' (0, toks) |> fst\r\n\r\n/// count leading continuous spaces\r\nlet countSpaces toks =\r\n let rec countToks' (n, toks') =\r\n match toks' with\r\n | WHITESPACE no:: rtks -> countToks' (n+no, rtks)\r\n | _ -> n, toks'\r\n countToks' (0, toks) |> fst\r\n\r\n/// count leading continuoues ENDLINEs\r\nlet countNewLines = countToks (ENDLINE)\r\n\r\n/// count all pipes in a line\r\nlet countDelim delim toks =\r\n let counter tok =\r\n match tok with\r\n | t when t =delim ->1\r\n | _ -> 0\r\n List.sumBy counter toks\r\nlet countPipes = countDelim PIPE\r\nlet countMinus = countDelim MINUS\r\n\r\n/// first element is the line\r\n/// second element is remaining tokens\r\nlet cutFirstLine toks =\r\n let rec cutLine' line rtks =\r\n match rtks with\r\n | ENDLINE:: rtks -> line |> List.rev, rtks\r\n | tok:: rtks -> cutLine' (tok::line) rtks\r\n | [] -> line |> List.rev, []\r\n cutLine' [] toks\r\n\r\n/// process token list into lines of tokens, no ENDLINE in the end\r\nlet cutIntoLines toks =\r\n let rec cutIntoLines' tokLines toks =\r\n let endlineSpliter = function | ENDLINE -> true | _ -> false\r\n match List.tryFindIndex endlineSpliter toks with\r\n | None -> toks::tokLines |> List.rev\r\n | Some idx ->\r\n match List.splitAt idx toks with\r\n | (tokLine, retoks) ->\r\n let tokLineNoEL = tokLine |> deleteTrailingENDLINEs\r\n cutIntoLines' (tokLineNoEL::tokLines) retoks.Tail\r\n toks\r\n |> cutIntoLines' []\r\n\r\n/// combine adjacent FrmtedString(Literal \"something\")\r\nlet combineLiterals line =\r\n let combiner line inlineEle =\r\n let doNothing = inlineEle::line\r\n match List.head line with\r\n | FrmtedString (Literal l) ->\r\n match inlineEle with\r\n | FrmtedString (Literal s) -> FrmtedString (Literal (l+s)) :: line.Tail\r\n | _ -> doNothing\r\n | _ -> doNothing\r\n line\r\n |> List.tail\r\n |> List.fold combiner [List.head line]\r\n |> List.rev\r\n\r\n\r\n/// match start and end symbol for formatting\r\n/// return the match content, w/o the symbols\r\n/// and the rest tokens\r\nlet (|MatchSym|_|) sym toks =\r\n match toks with\r\n | t::tl when t = sym ->\r\n match List.tryFindIndex (fun s -> s=sym) (List.tail toks) with\r\n | Some idx ->\r\n let (content, restTks) = List.splitAt idx tl\r\n (content, List.tail restTks) |> Some\r\n | None -> None\r\n | _ -> None\r\n\r\n/// match paragraph\r\n/// return paragraph contents, w/o trailing ENDLINE,\r\n/// and the rest tokens, w/o leading ENDLINE\r\nlet (|PickoutParagraph|_|) toks =\r\n match toks with\r\n | [] -> None\r\n | _ ->\r\n let folder state tok =\r\n let {Par=par;ReToks=reToks;ParMatched=matched} = state\r\n if matched then\r\n {state with ReToks=tok::reToks}\r\n else\r\n match tok with\r\n | ENDLINE when List.head par = ENDLINE -> {Par=List.tail par;ReToks=reToks;ParMatched=true}\r\n | _ -> {state with Par=tok::par}\r\n let initState = {Par=[];ReToks=[];ParMatched=false}\r\n match List.fold folder initState toks with\r\n | {Par=par;ReToks=reToks} ->\r\n (par |> List.rev, reToks |> List.rev |> deleteLeadingENDLINEs) |> Some\r\n\r\n\r\n\r\n/// match underscore and asterisk emphasis start squence\r\n/// match underscore and asterisk emphasis end sequence\r\n/// return content of emphasis, the rest of line,\r\n/// and the necessary edge InlineElement\r\n/// e.g. ` _i_`, the edge InlineElements are `Some(FrmtedString(Literal \" \"))` and `None`\r\nlet (|MatchEm|_|) toks =\r\n let attachInlineEle front back = Option.map (fun (x,y) -> x,y,front,back)\r\n match toks with\r\n | WHITESPACE _:: UNDERSCORE:: WHITESPACE _:: _ -> None // not em\r\n | WHITESPACE frontWhite:: UNDERSCORE:: potential ->\r\n let frontLiteral = String.replicate frontWhite \" \" |> Literal |> FrmtedString |> Some\r\n let rec endFinder content toks =\r\n match toks with\r\n | [] -> None\r\n | WHITESPACE _:: UNDERSCORE:: WHITESPACE _:: rtks -> // keep finding\r\n endFinder (List.append content toks.[0..2]) rtks\r\n | _:: UNDERSCORE:: WHITESPACE backWhite:: rtks ->\r\n let backLiteral = String.replicate backWhite \" \" |> Literal |> FrmtedString |> Some\r\n (List.append content [List.head toks], rtks)\r\n |> Some\r\n |> attachInlineEle frontLiteral backLiteral\r\n | _::[UNDERSCORE] ->\r\n (List.append content [List.head toks], [])\r\n |> Some\r\n |> attachInlineEle frontLiteral None\r\n | _ ->\r\n xOnwards 1 toks\r\n |> endFinder (List.append content [toks.[0]])\r\n endFinder [] potential\r\n | ASTERISK:: WHITESPACE _:: _ -> None // not asterisk em\r\n | ASTERISK:: potential ->\r\n let rec endFinder content toks =\r\n match toks with\r\n | [] -> None\r\n | WHITESPACE _:: ASTERISK:: rtks -> // keep finding\r\n endFinder (List.append content toks.[0..1]) rtks\r\n | _:: ASTERISK:: rtks ->\r\n (List.append content [List.head toks], rtks)\r\n |> Some\r\n |> attachInlineEle None None\r\n | _ ->\r\n xOnwards 1 toks\r\n |> endFinder (List.append content [toks.[0]])\r\n endFinder [] potential\r\n | _ -> None\r\n\r\n/// match new paragraph sequence\r\n/// return Token list after EDNLINEs\r\nlet (|MatchNewParagraph|_|) toks =\r\n match countNewLines toks with\r\n | n when n>=2 -> toks.[n..] |> Some\r\n | _ -> None\r\n\r\n/// turn head Token into string\r\n/// return head Token string and tail Token list\r\nlet (|MatchMapTok|_|) = function\r\n | tok:: toks -> (mapTok tok, toks) |> Some\r\n | _ -> None\r\n\r\n/// match hashes\r\n/// returns no of hashes, the first non-WHITESPACE token list\r\n/// and the tokens in next lines\r\nlet (|MatchHeader|_|) toks =\r\n let rec countHashes n tks =\r\n match tks with\r\n | HASH:: tks' -> countHashes (n+1) tks'\r\n | _ -> n\r\n match countHashes 0 toks with\r\n | no when no > 0 ->\r\n match toks.[no..] with\r\n | WHITESPACE _ :: toks' ->\r\n toks'|> cutFirstLine\r\n |> (fun (f,s) -> no, f,s)\r\n |> Some // omit whitespace\r\n | _ -> None\r\n | _ -> None\r\n\r\n/// match quote\r\nlet (|MatchQuote|_|) toks =\r\n match toks with\r\n | RABRA:: rtks ->\r\n rtks\r\n |> cutFirstLine\r\n |> Some\r\n | _ -> None\r\n\r\n/// match list begin sequence w/o spaces\r\n/// return list type and Token list after start sequence\r\nlet (|MatchList|_|) toks =\r\n match toks with\r\n | NUMBER _:: DOT:: WHITESPACE _:: toks' -> (OL, toks') |> Some\r\n | ASTERISK:: WHITESPACE _:: toks' -> (UL, toks') |> Some\r\n | _ -> None\r\n\r\n/// match list begin sequence with optional spaces\r\n/// return list type and Token list after start sequence\r\nlet (|MatchListOpSpace|_|) toks =\r\n match toks with\r\n | WHITESPACE _:: MatchList content -> content |> Some\r\n | MatchList content -> content |> Some\r\n | _ -> None\r\n\r\n/// return the next line\r\n/// next line is seperated by 1 ENDLINE\r\nlet (|MatchTableHead|_|) toks =\r\n let line, rtks = cutFirstLine toks\r\n match line with\r\n | [] -> None\r\n | _ -> rtks |> Some\r\n\r\n/// take one PIPE\r\n/// return the rest |> Some\r\n/// otherwise, None\r\nlet pipeMatch oToks =\r\n oToks\r\n |> Option.bind (fun toks ->\r\n match toks with\r\n | PIPE:: rtks -> Some rtks\r\n | _ -> None )\r\n\r\n/// take all leading subsequent MINUSes\r\n/// return the rest Tokens |> Some\r\n/// otherwise, None\r\nlet minusMatch oToks =\r\n let takeAwayMinuses toks =\r\n let rec takeAwayMinuses' n toks =\r\n match toks with\r\n | MINUS:: rtks -> takeAwayMinuses' (n+1) rtks\r\n | _ -> n, toks\r\n takeAwayMinuses' 0 toks\r\n oToks\r\n |> Option.bind (fun toks ->\r\n let n, rtks = toks |> takeAwayMinuses \r\n if n>0 then\r\n Some rtks\r\n else\r\n None\r\n )\r\n\r\n/// match the table formater line\r\n/// the table formater is usually the second line of a table\r\n/// return the rest Tokens |> Some\r\n/// otherwise, None\r\nlet (|MatchTableFormater|_|) toks =\r\n let line, rtks = cutFirstLine toks\r\n match (countPipes line, countMinus line) with\r\n | (p,m) when p>0 && m>2 -> Some(rtks)\r\n | _ -> None\r\n\r\n/// cut Tokens into Token list list for Table parsing\r\n/// terminates when [] or two continuous ENDLINEs\r\n/// return Token list list,\r\n/// remaining Token list\r\nlet cutTableRows toks =\r\n let rec cutTableRow' rows toks =\r\n match toks with\r\n | ENDLINE:: rtks -> rows |> List.rev, rtks // one endline followed by another\r\n | [] -> rows |> List.rev, []\r\n | _ ->\r\n let row, rtks = cutFirstLine toks\r\n cutTableRow' (row::rows) rtks\r\n cutTableRow' [] toks\r\n\n\n\n// WEBPACK FOOTER //\n// src/Common/Parser/ParserHelperFuncs.fs","module Markalc\r\n\r\nopen Types\r\nopen Shared\r\nopen MarkalcShared\r\nopen Expression\r\nopen Logger\r\n\r\ntype MapContents =\r\n | MapTok of Cell\r\n | MapExp of Expr * Cell\r\n\r\n// ################### HELPER FUNCTIONS ###################\r\n/// Return everything (before,after) the first PIPE token\r\nlet pipeSplit toks = \r\n delimSplit false PIPE toks\r\n// Turn float into token\r\nlet toToken x = NUMBER(x|>string)\r\n/// Transform Result<Ok,Error> list into Result<Ok list, Error>\r\nlet joinErrorList lst =\r\n // Filter the list\r\n let filt x = match x with\r\n | Error(_) -> true\r\n | Ok(_) -> false\r\n let unpackOks = function\r\n | Ok(x') -> x'\r\n | Error(y) -> failwithf \"After filtering, there were still Error monads in the list %A.\" y\r\n let combineErrors s x = match x with\r\n | Ok(_) -> s // This should never be matched in this usage.\r\n | Error(x') -> sprintf \"%A %A\" x' s |> Error\r\n match List.filter filt lst with\r\n | [] -> List.map unpackOks lst |> Ok // If the list is empty there are no errors\r\n | x -> List.fold combineErrors (Error \"\") x\r\n// Lift first argument to result world\r\nlet liftFirstArg func arg1 arg2 =\r\n match arg1 with\r\n | Ok(x) -> func x arg2 |> Ok\r\n | Error(x) -> Error x\r\n\r\n// ####################### CONSTRUCT CELL HELPERS ###################\r\nlet makeCellU header tokens = (tokens,header)\r\nlet defaultCellU = makeCellU false\r\nlet headCellU = makeCellU true\r\nlet alignCell alignment cellU = Contents (fst cellU, snd cellU, alignment)\r\n\r\n// ###################### PARSE TABLE ROWS #####################\r\n// Parse a line into a list of cells\r\nlet parsePipesD debug constructCell (row:Token list) =\r\n let rec parsePipes' a row =\r\n match pipeSplit row with\r\n | Ok([],[]) -> (constructCell []):: a\r\n | Ok([],after) -> sprintf \"empty, %A\" after |> logger.Debug None\r\n parsePipes' ((constructCell [])::a) after // If before is empty and after is not, empty cell\r\n | Ok(before,[]) -> sprintf \"%A, empty\" before |> logger.Debug None\r\n (constructCell before) :: a // If after is empty, add before and stop\r\n | Ok(before,after) -> sprintf \"%A, %A\" before after |> logger.Debug None\r\n parsePipes' ((constructCell before) :: a) after\r\n | Error(_) -> if List.isEmpty row then a else (constructCell row)::a // If there is content, add it\r\n parsePipes' [] row\r\nlet parsePipes constructCell row = parsePipesD false constructCell row /// TOGGLE DEBUG MODE\r\n/// Parse an ordinary row\r\nlet parseRow constructCell row =\r\n let parseRow' = parsePipes constructCell\r\n // If its the first pipe and there's nothing before it, remove it\r\n match row with\r\n | PIPE :: row' -> parseRow' row'\r\n | row' -> parseRow' row'\r\n // If the list only contains one item, add an empty cell on the end (empty cells now added later on...)\r\n |> (fun x -> if List.length x = 1 then (constructCell[])::x else x) \r\n |> List.rev\r\nlet parseDefaultRow = parseRow defaultCellU\r\n/// Parse the second row of the table which defines number of columns and alignment\r\nlet parseAlignRow (row:Token list) = \r\n let getAlignment (toks: Token list) =\r\n let filt = function | COLON -> true | MINUS -> true | _ -> false \r\n // Check it has at least three dashes\r\n match (countDelim MINUS toks < 3, List.filter filt toks |> List.length <> List.length toks) with\r\n | (true,false) -> \"Less than 3 dashes for table format\" |> Error \r\n | (false,true) -> sprintf \"Invalid characters in table format, expecting only : or - \\n%A\\n%A\" toks (List.filter filt toks) |> Error\r\n | (true,true) -> \"Less than 3 dashes for table format and invalid characters\" |> Error \r\n | (false,false) ->\r\n match (List.rev toks, countDelim COLON toks) with\r\n | (COLON :: _, 2) when List.head toks = COLON -> Centre |> Ok\r\n | (COLON :: _, 1) -> Right |> Ok\r\n | (_,1) when List.head toks = COLON -> Left |> Ok\r\n | (_,0) -> NoAlign |> Ok\r\n | (_,x) -> sprintf \"\\':\\'s in wrong position %A, %A\" toks x |> Error\r\n let parseAlign' = parsePipes getAlignment\r\n // Ignore the first pipe if there is nothing before it\r\n match whitespaceFilter row with\r\n | PIPE :: row' -> parseAlign' row'\r\n | row' -> parseAlign' row'\r\n |> List.rev\r\n |> joinErrorList\r\n\r\n// ################ BUSINESS END ###############\r\n/// Function which takes a parsed row (list of unalignedcells) and the list of alignments, and will create Cells\r\nlet alignCells' alignList (cells:(Token list * bool) list) =\r\n let lengths = (List.length alignList, List.length cells)\r\n match (fst lengths - snd lengths) with\r\n | x when x > 0 -> cells @ (List.replicate x ([], List.head cells |> snd)) // If alignList longer than cells, fill in with blank cells\r\n | x when x < 0 -> cells.[0..((fst lengths)-1)]// If cells longer than alignList, ignore the extra cells\r\n | _ -> cells\r\n |> (List.zip alignList)\r\n |> List.map (fun (a,uc) -> alignCell a uc)\r\n\r\nlet alignCells = liftFirstArg alignCells'\r\n/// Separate list of tokens into cells with alignment and header/not-header\r\nlet transformTable (table:Token list list) =\r\n // Deal with first two rows of format: header1 | header2 | header3\r\n // Second row tells us how many columns and correct alignment\r\n let alignments = table.[1] |> parseAlignRow\r\n let makeRow head = function | Ok(x) -> Ok(x,head) | Error(e) -> Error e\r\n\r\n let header = (List.head table |> parseRow headCellU |> alignCells alignments) \r\n |> makeRow true |> (Result.map Cells)\r\n\r\n // Fold parse normal row for the rest of the table\r\n let parseAlignPrepend s x = (parseRow defaultCellU x |> alignCells alignments |> makeRow false |> (Result.map Cells)) :: s\r\n List.fold parseAlignPrepend [header] (xOnwards 2 table)\r\n |> List.rev\r\n |> joinErrorList\r\n\r\n// Try to evaluate expression, set maxRefs to number of CellRefs before assuming circular reference\r\nlet tryEval' maxRefs map e =\r\n // Evaluate expression\r\n let rec evalExp r map e =\r\n // Evaluate cell reference\r\n let evalCellRef ref = \r\n match Map.tryFind ref map with\r\n | Some(MapExp(e2,_)) -> evalExp (r+1) map e2\r\n | _ -> nan // invalid reference\r\n // Apply f over list of cell references between two cells\r\n let rangeFunc f x y = match cellRange (x,y) with\r\n | Some(l) -> f l\r\n | None -> nan\r\n if r > maxRefs then nan else // Return nan if too many recursive calls, probably circular reference\r\n match e with\r\n | BinExp(f,x,y) -> f (evalExp r map x) (evalExp r map y)\r\n | Op (Float(x)) -> x\r\n | Op (CellRef(ref)) -> evalCellRef ref\r\n | CommaFunction(\"SUM\",l) -> List.sumBy (evalExp r map) l\r\n | CommaFunction(\"AVG\",l) -> List.averageBy (evalExp r map) l\r\n | CommaFunction(\"MIN\",l) -> List.min (List.map (evalExp r map) l)\r\n | CommaFunction(\"MAX\",l) -> List.max (List.map(evalExp r map) l)\r\n | _ -> 11.0\r\n evalExp 0 map e\r\nlet tryEval = tryEval' 1000\r\n/// Evaluate all expressions inside a cell list list, leave non-expression cells as they are\r\n/// No invalid expressions should be matched.\r\nlet evaluateCellList (rowList:Row list) = \r\n let rowUnpack = List.collect (function | Cells(l,_) -> [l])\r\n let makeRow (cellList:Cell list) = Cells(cellList, (List.head cellList).GetHead)\r\n // Iterate over table, must know \"where am I?\" for each cell\r\n let innerFold row (s:(CellReference*MapContents) list*uint32) (cell:Cell) =\r\n match parseExpression (cell.GetToks) with\r\n | Ok(ex) -> (RowCol(row,snd s),MapExp (ex,cell)) :: (fst s), snd s + 1u // Expression found, put it into the map!\r\n | Error(t) -> (RowCol(row,snd s),MapTok (cell)) :: fst s, snd s + 1u // No expression, ignore\r\n let outerFold (s:uint32*((CellReference*MapContents)list*uint32)) cells =\r\n (fst s + 1u,List.fold (innerFold (fst s)) (fst(snd s),0u) cells)\r\n let cellList = rowUnpack rowList\r\n let rowLength = List.length (List.head cellList)\r\n List.fold outerFold (0u,([],0u)) cellList \r\n |> function \r\n | (_,(expRefList,_)) -> \r\n let expList = List.rev expRefList\r\n let map = Map.ofList expList\r\n // Iterate over list, evaluate expression for each MapExp then convert into Token list\r\n // convert MapContents from MapExp to MapTok (?)\r\n let expListEval = function\r\n | MapTok(c) -> c\r\n | MapExp(e,c) -> [tryEval map e |> toToken] |> (c.ReplaceTokens)\r\n List.map (snd >> expListEval) expList\r\n |> (Seq.chunkBySize rowLength) \r\n |> Seq.toList \r\n |> List.map (Array.toList>>makeRow)\r\n\r\n/// Top level function\r\n/// Parse tokens into cell list list with all Expressions evaluated.\r\n/// Return: Result(OK(Cell list list), Error(toks))\r\nlet parseEvaluateTable (toks:Token list list) = \r\n // Transform Token list list into Cell list list\r\n let endlFilt = function | ENDLINE -> false | _ -> true\r\n transformTable (List.map (List.filter endlFilt) toks)\r\n |> function\r\n | Error(_) -> toks |> Error // If there are any errors just return the unchanged Token list list\r\n | Ok(x) -> evaluateCellList x |> Ok // Else return Ok and Cell list list\r\n\r\nlet lexParseEvaluate toks = \r\n List.map simpleLex toks\r\n |> parseEvaluateTable\r\n\n\n\n// WEBPACK FOOTER //\n// src/Common/Markalc/Markalc.fs","/// This module should parse tokens into an expression\r\nmodule Expression\r\n\r\nopen MarkalcShared\r\nopen Types\r\n\r\n(* SUPPORTED OPERATIONS:\r\nBinaryExpressions (in order of precedence): \r\n % - Modulo\r\n ^ - To the power\r\n * - Multiply\r\n / - Divide\r\n + - Add\r\n - - Subtract\r\n*)\r\n// HELPER FUNCTIONS\r\nlet makeFloat i d = \r\n sprintf \"%A.%A\" i d |> float\r\nlet makeInt (i:string) =\r\n i |> int\r\nlet makeCellReference (row:string,col:string) =\r\n RowCol(row|>uint32,col|>uint32)\r\n// [row=3,col=2]\r\n// ]2=col,3=row[\r\n// [row=3,col=2] [3,42]\r\n/// EXPRESSION PARSER\r\nlet parseExp toks = \r\n let rec (|Expression|_|) (toks:Token list) =\r\n let (|NumberPat|_|) = function\r\n | NUMBER(i) :: DOT :: NUMBER(d) :: after -> (makeFloat i d, after) |> Some\r\n | NUMBER(i) :: after -> (makeInt i |> float, after) |> Some\r\n | _ -> None\r\n let rec (|CellRefPat|_|) = function\r\n | RSBRA :: NUMBER(col) :: COMMA :: NUMBER(row) :: LSBRA :: after \r\n -> ((row,col) |> makeCellReference,after) |> Some\r\n | RSBRA :: NUMBER(row) :: EQUAL :: LITERAL(\"row\") :: COMMA :: NUMBER(col) :: EQUAL :: LITERAL(\"col\") :: LSBRA :: after \r\n -> sprintf \"Row:%A, Col:%A\" row col |> logger.Debug None\r\n ((row,col) |> makeCellReference,after) |> Some\r\n | RSBRA :: NUMBER(col) :: EQUAL :: LITERAL(\"col\") :: COMMA :: NUMBER(row) :: EQUAL :: LITERAL(\"row\") :: LSBRA :: after \r\n -> sprintf \"Row:%A, Col:%A\" row col |> logger.Debug None\r\n ((row,col) |> makeCellReference,after) |> Some\r\n | _ -> None\r\n let rec (|ExpressionList|_|) = function\r\n | Expression(exp,COMMA::ExpressionList(exps,after)) -> (exp::exps,after) |> Some\r\n | CellRefPat(x,COLON::CellRefPat(y,after)) -> cellRange (x,y) |> function\r\n | Some lst -> (List.map (CellRef >> Op) lst,after) |> Some\r\n | _ -> None\r\n | Expression(exp,after) -> ([exp],after) |> Some\r\n | _ -> None\r\n // DEFINE FUNCTIONS\r\n let funcConstruct funcname = function\r\n | RCBRA :: ExpressionList (lst,LCBRA::LITERAL(funcname)::after) ->\r\n (CommaFunction(funcname,lst),after) |> Some\r\n | _ -> None\r\n let (|Sum|_|) = funcConstruct \"SUM\"\r\n let (|Avg|_|) = funcConstruct \"AVG\"\r\n let (|Min|_|) = funcConstruct \"MIN\"\r\n let (|Max|_|) = funcConstruct \"MAX\"\r\n \r\n let (|FunctionPat|_|) = function\r\n | Sum (x,after) -> (x,after) |> Some\r\n | Avg (x,after) -> (x,after) |> Some\r\n | Min (x,after) -> (x,after) |> Some\r\n | Max (x,after) -> (x,after) |> Some\r\n | _ -> None\r\n\r\n let (|BasePat|_|) = function\r\n | NumberPat (x,after) -> (x |> Float |> Op,after) |> Some\r\n | FunctionPat (x,after) -> (x,after) |> Some\r\n // Parsing in reverse so right and left brackets swapped\r\n | CellRefPat (x,after) -> (x |> CellRef |> Op,after) |> Some\r\n | RBRA :: Expression (x,LBRA::after) -> (x,after) |> Some\r\n | _ -> None\r\n // Active pattern to construct precedence-aware active patterns; descends recursively until highest precedence match.\r\n // Quirk: Returns right-associative results, so parsing in reverse to get left-associativity.\r\n let rec (|HOFPat|_|) (|PrevPat|_|) op (t:Token) = function\r\n | PrevPat (exp1, after) -> \r\n match after with\r\n | x :: (HOFPat (|PrevPat|_|) op t (exp2, after')) when x = t -> \r\n (BinExp (op, exp2, exp1), after') |> Some // exp1 and exp2 swapped because parsing in reverse\r\n | _ -> (exp1, after) |> Some\r\n | _ -> None\r\n // Build precendence and normal binary operators\r\n let patPrecedence = [(%),PERCENT;( **),CARET;(*),ASTERISK;(/),SLASH;(-),MINUS;( + ),PLUS]\r\n let constructPatterns s x = ((|HOFPat|_|) (List.head s) (fst x) (snd x))::s\r\n let patterns = List.fold constructPatterns [(|BasePat|_|)] patPrecedence\r\n let (|FirstPat|_|) = List.head patterns\r\n\r\n // Unary operators, only negative number so far. Doesn't work.\r\n // let (|UnaryOperators|_|) = function\r\n // | FirstPat (exp1, after) ->\r\n // match after with\r\n // // Negative Numbers\r\n // | NumberPat(x,MINUS::after') -> (-x |> Float |> Op,after') |> Some\r\n // // ... Could have more patterns here.\r\n // | _ -> (exp1,after) |> Some\r\n // | _ -> None\r\n\r\n match toks with\r\n | FirstPat x -> Some x\r\n | _ -> None\r\n match List.rev toks with \r\n | Expression (exp,[]) -> Ok exp\r\n | _ -> sprintf \"Not valid expression %A\" toks |> Error\r\n\r\nlet parseExpression toks = \r\n match toks with\r\n | EQUAL :: tail -> \r\n whitespaceFilter tail |> parseExp |> function\r\n | Error(e) -> Error toks\r\n | Ok(x) -> Ok x\r\n | toks -> Error toks\r\n\r\n// ################## TEST FUNCTIONS ####################\r\n// Recursively evaluate expression AST. CellRef will need access to whole table, this is used to test everything else\r\nlet rec evalExpTest e = \r\n match e with\r\n | BinExp(f,x,y) -> f (evalExpTest(x)) (evalExpTest(y))\r\n | Op (Float(x)) -> x\r\n | _ -> 13.0\r\n\r\n// Test evaluation without table\r\nlet parseExpTest (toks:Token list) =\r\n whitespaceFilter toks // Remove whitespace\r\n |> parseExp\r\n |> function\r\n | Error(e) -> printfn \"Error parsing expression: %A\" e\r\n Error toks \r\n | Ok(x) -> evalExpTest x |> Ok\n\n\n// WEBPACK FOOTER //\n// src/Common/Markalc/Expression.fs","const parseRadix = /^\\s*([\\+\\-])?(0[xob])?([0-9a-fA-F]+)\\s*$/;\nconst invalidRadix2 = /[^01]/;\nconst invalidRadix8 = /[^0-7]/;\nconst invalidRadix10 = /[^0-9]/;\nexport function isValid(s, radix) {\n const res = parseRadix.exec(s);\n if (res != null) {\n if (radix == null) {\n switch (res[2]) {\n case \"0b\":\n radix = 2;\n break;\n case \"0o\":\n radix = 8;\n break;\n case \"0x\":\n radix = 16;\n break;\n default:\n radix = 10;\n break;\n }\n }\n switch (radix) {\n case 2:\n return invalidRadix2.test(res[3]) ? null : [res, 2];\n case 8:\n return invalidRadix8.test(res[3]) ? null : [res, 8];\n case 10:\n return invalidRadix10.test(res[3]) ? null : [res, 10];\n case 16:\n return [res, 16];\n default:\n throw new Error(\"Invalid Base.\");\n }\n }\n return null;\n}\n// TODO does this perfectly match the .NET behavior ?\nexport function tryParse(s, radix, initial) {\n const a = isValid(s, radix);\n if (a !== null) {\n const [[, prefix, , digits], radix_] = a;\n const v = parseInt((prefix || \"\") + digits, radix_);\n if (!Number.isNaN(v)) {\n return [true, v];\n }\n }\n return [false, initial];\n}\nexport function parse(s, radix) {\n const a = tryParse(s, radix, 0);\n if (a[0]) {\n return a[1];\n }\n else {\n throw new Error(\"Input string was not in a correct format.\");\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/Common/Markalc/Expression.fs","module Lexer\r\n\r\nopen Types\r\nopen Shared\r\nopen LexerShared\r\n\r\ntype LexerState =\r\n | Normal\r\n | InCodeBlock of content: string * Language\r\n | InHTMLTag of tag: string * depth: int\r\n\r\nlet htmlSingleton = [\r\n \"area\"; \"base\"; \"br\"; \"col\"; \"command\"; \"embed\"; \"hr\"; \"img\"; \"input\"\r\n \"keygen\"; \"link\"; \"meta\"; \"param\"; \"source\"; \"track\"; \"wbr\"\r\n]\r\n\r\n/// An escaped char tokenizer, which identifies the escaped characters and returns them\r\n/// as a literal instead, without the leading '\\'\r\nlet (|EscapedCharTok|_|) = (|EscapedChar|_|) LITERAL charList\r\n\r\n/// Returns the Token type of the identifier token\r\nlet (|CharacterTok|_|) = (|Character|_|) charList\r\n\r\nlet (|MatchLang|_|) = function\r\n | RegexMatch \"(p|P)ython\" _ -> Some Python | RegexMatch \"F#|fsharp|f#\" _ -> Some FSharp\r\n | RegexMatch \"(C|c)(\\\\+\\\\+|pp)\" _ -> Some CPP | RegexMatch \"C|c\" _ -> Some C | _ -> Some Empty\r\n\r\nlet (|HTMLStartTag|_|) = (|RegexMatch|_|) \"^<([a-zA-Z]+)\\\\s*.*?>\"\r\n\r\nlet (|HTMLEndTag|_|) = (|RegexMatch|_|) \"^<\\\\/([a-zA-Z]+)\\\\s*.*?>\"\r\n\r\nlet (|HTMLSingleton|_|) = (|RegexMatch|_|) \"^<([a-zA-Z]+)\\\\s*.*?(?:\\\\/>|>)\"\r\n\r\nlet (|CodeBlockStart|_|) = (|GroupMatch|_|) \"^```+\\\\s*([a-zA-Z0-9+\\\\-_]*)\"\r\n\r\n/// Returns the next Token of a string\r\nlet nextToken state s =\r\n match s, state with\r\n | EscapedCharTok n, _ -> n, state\r\n | HTMLStartTag (s, [t], r), Normal ->\r\n (LITERAL s, r), InHTMLTag (t, 1)\r\n | HTMLStartTag (s, [t], r), InHTMLTag (tag, d) ->\r\n if t = tag then\r\n (LITERAL s, r), InHTMLTag (tag, d+1)\r\n else\r\n (LITERAL s, r), InHTMLTag (tag, d)\r\n | HTMLEndTag (s, [t], r), InHTMLTag (tag, d) ->\r\n if t = tag then\r\n if d = 1 then\r\n (LITERAL s, r), Normal\r\n else\r\n (LITERAL s, r), InHTMLTag (tag, d-1)\r\n else\r\n (LITERAL s, r), InHTMLTag (tag, d)\r\n | HTMLSingleton (s, _, r), _ ->\r\n (LITERAL s, r), state\r\n | RegexMatch \".*?(?=<)\" (s, _, r), InHTMLTag (t, d) ->\r\n (LITERAL s, r), InHTMLTag (t, d)\r\n | CharacterTok n, _ -> n, state\r\n | RegexMatch @\"^\\s+\" (m, _, s), _ ->\r\n (String.length m |> WHITESPACE, s), state\r\n | RegexMatch \"^[0-9]+\" (m, _, s), _->\r\n (NUMBER m, s), state\r\n | RegexMatch (literalString charList) (m, _, s), _ ->\r\n (LITERAL m, s), state\r\n | s, _ ->\r\n sprintf \"Unrecognised character: %A\" s |> sharedLog.Warn None\r\n (toString s.[0] |> LITERAL, (sOnwards 1 s)), state\r\n\r\n/// Lexes a whole string and returns the result as a Token list\r\nlet lexS state source =\r\n let rec lexS' state s tokList =\r\n match s with\r\n | \"\"-> ENDLINE :: tokList\r\n | _ ->\r\n let (nt, st'), nstate = nextToken state s\r\n nt :: tokList |> lexS' nstate st'\r\n match source, state with\r\n | CodeBlockStart (MatchLang lang), Normal ->\r\n [], InCodeBlock (\"\", lang)\r\n | RegexMatch \"^```+\" _, InCodeBlock (s, lang) ->\r\n [CODEBLOCK (s, lang); ENDLINE], Normal\r\n | _, InCodeBlock (s, lang) ->\r\n [], InCodeBlock (s+source+\"\\n\", lang)\r\n | RegexMatch @\"^\\s*$\" _, _ ->\r\n [ENDLINE], state\r\n | _ ->\r\n lexS' state source [] |> List.rev, state\r\n\r\n/// Return the correct token if it is not close properly at the end\r\nlet returnTokens = function\r\n | _, InCodeBlock (s, l) ->\r\n [CODEBLOCK (s, l); ENDLINE]\r\n | tok, InHTMLTag (str, _) ->\r\n tok @ [LITERAL str; ENDLINE]\r\n | tok, _ ->\r\n tok\r\n\r\n/// Lex a single string\r\nlet lex s =\r\n lexS Normal s |> returnTokens\r\n\r\n/// Lexes a list of strings and returns the Token list\r\nlet lexList strl =\r\n let f (flist, state) nstr =\r\n let (lst, st) = lexS state nstr\r\n flist @ lst, st\r\n List.fold f ([], Normal) strl |> returnTokens\r\n\n\n\n// WEBPACK FOOTER //\n// src/Common/Lexer/Lexer.fs","module Preprocessor\r\n\r\nopen System\r\n\r\nopen Shared\r\nopen LexerShared\r\n\r\n/// Token type for the preprocessor macros\r\ntype Token =\r\n | LITERAL of string\r\n | MACRO | OPENDEF | CLOSEDEF | OPENEVAL | CLOSEEVAL | LBRA | RBRA\r\n | SEMICOLON | ENDLINE | BSLASH\r\n\r\n/// Type of the parser elements\r\ntype Parser =\r\n | MacroDefinition of Macro\r\n | MacroSubstitution of Sub\r\n | ParseText of content: string\r\n | ParseNewLine\r\n\r\n/// Type for a macro\r\nand Macro = {Name: string; Args: string list; Body: Parser list}\r\n\r\n/// Type for a substitution\r\nand Sub = {Name: string; Args: string list; Raw: string}\r\n\r\n/// Character list for the preprocessor\r\nlet charList = [\"{%\", OPENDEF; \"%}\", CLOSEDEF; \"{{\", OPENEVAL\r\n \"}}\", CLOSEEVAL; \"(\", LBRA; \")\", RBRA; \";\", SEMICOLON;\r\n \"\\\\\", BSLASH]\r\n\r\nlet keywordList = [\"macro\", MACRO]\r\n\r\n/// Check if a LITERAL is exclusively whitespace \r\nlet (|WhiteSpace|NonWhiteSpace|) = function\r\n | LITERAL (RegexMatch @\"^\\s*$\" _) -> WhiteSpace\r\n | _ -> NonWhiteSpace\r\n\r\n/// Matches all the escapable characters that are defined in charList\r\nlet (|EscapedCharParse|_|) = (|EscapedChar|_|) LITERAL charList\r\n\r\n/// Matches all the special characters that are defined in charList\r\nlet (|CharacterParse|_|) = (|Character|_|) charList\r\n\r\nlet (|KeywordParse|_|) = (|Character|_|) keywordList\r\n\r\n/// Converts a token list to a string\r\nlet tokToString tList =\r\n let tokString st = function\r\n | LITERAL l -> st+l\r\n | t ->\r\n match charList @ keywordList |> listTryFind t with\r\n | Some s -> st+s\r\n | _ -> st\r\n List.fold tokString \"\" tList\r\n\r\n/// Retrieves the next token from a string and returns it, together\r\n/// with the rest of the string\r\nlet nextToken str =\r\n let literalMatch = charList |> literalString\r\n match str with\r\n | EscapedCharParse n | CharacterParse n | KeywordParse n ->\r\n n\r\n | RegexMatch @\"^\\s+\" (m, _, r) ->\r\n LITERAL m, r\r\n | RegexMatch literalMatch (m, _, r) ->\r\n LITERAL m, r\r\n | _ ->\r\n toString str.[0] |> LITERAL, str.[1..]\r\n\r\n/// Tokenizes a string and return it as a list of tokens\r\nlet tokenize str =\r\n let rec pTokenize' tList str =\r\n match str with\r\n | \"\" ->\r\n ENDLINE :: tList\r\n | _ ->\r\n let t, r = nextToken str\r\n pTokenize' (t :: tList) r\r\n pTokenize' [] str |> List.rev\r\n\r\n/// Tokenizes a list of strings and returns them as a single list of tokens\r\nlet tokenizeList = List.collect tokenize\r\n\r\n/// Returns if the start of the list of tokens matches a keyword\r\nlet (|KeyWord|_|) =\r\n let listCheckExists t list =\r\n list\r\n |> List.map (fun (_, c) -> c)\r\n |> List.exists ((=) t)\r\n function\r\n | WhiteSpace :: a :: tl | a :: tl ->\r\n match listCheckExists a keywordList with\r\n | true -> Some (a, tl)\r\n | _ -> None\r\n | _ -> None\r\n\r\n/// Checks if the Token list matches an argument list, which could be one of the\r\n/// following:\r\n/// (arg1; arg2)\r\n/// (arg 1; arg 2)\r\n/// (arg1)\r\n/// ()\r\nlet (|ArgList|_|) =\r\n /// Matches if there is a list of literals, and returns all of them until it reaches\r\n /// a Token that is not a literal\r\n let rec (|NameList|_|) = function\r\n | LITERAL n :: NameList (nList, r) ->\r\n Some (n :: nList, r)\r\n | LITERAL n :: r ->\r\n Some ([n], r)\r\n | _ -> None\r\n\r\n /// Matches a semicolon separated list of Literal lists\r\n let rec (|ParamList|_|) = function\r\n | WhiteSpace :: tl | tl ->\r\n match tl with\r\n | NameList (n, SEMICOLON :: ParamList (lst, r)) ->\r\n Some (List.fold (+) \"\" n :: lst, r)\r\n | NameList (n, r) ->\r\n Some ([List.fold (+) \"\" n], r)\r\n | _ ->\r\n Some ([], tl)\r\n function\r\n | WhiteSpace :: tl | tl ->\r\n match tl with\r\n | LBRA :: ParamList (nl, RBRA :: tl) ->\r\n Some (nl, tl)\r\n | _ -> None\r\n\r\n/// Matches a literal, which will be the name of the function, which can be followed by\r\n/// an argument list\r\nlet (|Function|_|) = function\r\n | WhiteSpace :: LITERAL n :: tl ->\r\n match tl with\r\n | ArgList (nl, WhiteSpace :: tl)\r\n | ArgList (nl, tl) ->\r\n Some (n, nl, tl)\r\n | WhiteSpace :: t\r\n | t ->\r\n Some (n, [], t)\r\n | _ -> None\r\n\r\n/// Matches the start syntax for a macro, the closing CLOSEDEF can be on a differen line and\r\n/// after a Parse list, so that is matched in the parse function\r\nlet (|MacroDef|_|) = function\r\n | OPENDEF :: KeyWord (MACRO, Function f) ->\r\n Some f\r\n | _ -> None\r\n\r\n/// Matches an evaluation of a macro\r\nlet (|EvalDef|_|) = function\r\n | OPENEVAL :: WhiteSpace :: tl | OPENEVAL :: tl ->\r\n match tl with\r\n | LITERAL n :: ArgList (nl, WhiteSpace :: CLOSEEVAL :: tl)\r\n | LITERAL n :: ArgList (nl, CLOSEEVAL :: tl) ->\r\n Some (n, nl, tl)\r\n | LITERAL n :: WhiteSpace :: CLOSEEVAL :: tl\r\n | LITERAL n :: CLOSEEVAL :: tl ->\r\n Some (n, [], tl)\r\n | _ -> None\r\n | _ -> None\r\n\r\n/// Matches a special character or keyword\r\nlet (|SChar|_|) tok =\r\n charList @ keywordList\r\n |> List.map invTuple\r\n |> Map.ofList\r\n |> mapTryFind tok\r\n\r\n/// Parses a Token list into a Parser list\r\nlet parse tList =\r\n\r\n /// Returns the raw token list for a macro evaluation\r\n let getRaw list =\r\n let rec getRaw' list curr =\r\n match list with\r\n | CLOSEEVAL :: _ ->\r\n CLOSEEVAL :: curr\r\n | a :: tl ->\r\n a :: curr |> getRaw' tl\r\n | _ ->\r\n curr\r\n getRaw' list [] |> List.rev\r\n\r\n /// The recursive part of the parser, which build the Parser list\r\n let rec parse' endToken tList pList =\r\n let pRec f c tl = f c :: pList |> parse' endToken tl\r\n let recText = pRec ParseText\r\n match tList, endToken with\r\n | MacroDef (a, b, tl), _ ->\r\n let p, tl' = parse' (Some CLOSEDEF) tl []\r\n pRec MacroDefinition {Name=a; Args=b; Body=List.rev p} tl'\r\n | EvalDef (n, args, tl), _ ->\r\n pRec MacroSubstitution {Name=n; Args=args; Raw=getRaw tList |> tokToString} tl\r\n | ENDLINE :: tl, _ ->\r\n pRec id ParseNewLine tl\r\n | WhiteSpace :: a :: tl, Some e | a :: tl, Some e when e = a ->\r\n match tl with\r\n | WhiteSpace :: ENDLINE :: b\r\n | WhiteSpace :: b\r\n | ENDLINE :: b\r\n | b ->\r\n pList, b\r\n | LITERAL f :: tl, _ ->\r\n recText f tl\r\n | SChar c :: tl, _ ->\r\n recText c tl\r\n | _ -> pList, []\r\n let p, _ = parse' None tList []\r\n List.rev p\r\n\r\n/// Evaluates and strips macros from the markdown, and also evaluates macro substitutions\r\n/// by seeing which macros are in scope or if the substitution is a parameter.\r\n/// This supports shadowing of previously defined macros, and scopes can be defined\r\n/// by declaring a macro inside another macro\r\nlet evaluate pList =\r\n\r\n /// Makes an empty parmeter list for the current parameters, so that they\r\n /// are not substituted\r\n let makeEmptyParam args: Map<string, string option> =\r\n List.replicate (List.length args) None\r\n |> List.zip args\r\n |> Map.ofList\r\n\r\n /// Add a parameter to a parameter map\r\n let addParam p (macro: Macro) args =\r\n List.zip macro.Args args\r\n |> List.fold (fun (s: Map<string, string option>) (a, b) -> s.Add(a, Some b)) p\r\n\r\n /// Make a Macro record type\r\n let makeMacro n args p =\r\n {Name = n; Args = args; Body = p}\r\n\r\n /// Adds an element to a map with key k and value v\r\n let mapAdd (map: Map<'a, 'b>) k v =\r\n map.Add(k, v)\r\n\r\n /// Evaluates and creates a new simplified Parser list with all the macros stripped\r\n /// and substitutions evaluated\r\n let rec evalulate' pList newPList param (scope: Map<string, Macro>) =\r\n\r\n /// Function for use with different currying that the original\r\n let evalulateInv' pList newPList scope param =\r\n evalulate' pList newPList param scope\r\n\r\n /// Evaluate without adding any values to the param or scope maps\r\n let evalulate'' pList list =\r\n evalulate' pList (list @ newPList) param scope\r\n\r\n match pList with\r\n | MacroDefinition {Name=n; Args=args; Body=p} :: tl ->\r\n makeEmptyParam args\r\n |> evalulateInv' p [] scope\r\n |> makeMacro n args\r\n |> mapAdd scope n\r\n |> evalulate' tl newPList param\r\n | MacroSubstitution {Name=n; Args=args; Raw=raw} as ms :: tl ->\r\n let eval =\r\n match param.TryFind n with\r\n | Some (Some x) ->\r\n [ParseText x]\r\n | Some _ ->\r\n [ms]\r\n | _ ->\r\n match scope.TryFind n with\r\n | Some m when List.isEmpty args ->\r\n m.Body\r\n | Some m ->\r\n addParam param m args\r\n |> evalulateInv' m.Body [] scope\r\n |> List.rev\r\n | _ ->\r\n [ParseText raw]\r\n evalulate'' tl eval\r\n\r\n | p :: tl ->\r\n evalulate'' tl [p]\r\n | _ -> newPList\r\n evalulate' pList [] Map.empty<string, string option> Map.empty<string, Macro>\r\n |> List.rev\r\n\r\n/// Converts a Parser list to a string\r\nlet parserToString pList =\r\n List.fold (fun st -> function\r\n | ParseText x -> st+x\r\n | ParseNewLine -> st+\"\\n\"\r\n | _ -> st) \"\" pList\r\n\r\n/// Converts a Parser list to a list of strings without any newlines\r\nlet toStringList pList =\r\n let f st n =\r\n match st, n with\r\n | _, ParseNewLine ->\r\n \"\" :: st\r\n | a :: b, ParseText t ->\r\n a+t :: b\r\n | _, ParseText t ->\r\n [t]\r\n | _ -> st\r\n List.fold f [] pList |> List.rev\r\n\r\n/// perform the parsing, evaluation, while stripping the last endline which is redundant\r\n/// as it was added by the tokenizer\r\nlet pETS =\r\n let stripLastEndline l =\r\n match List.rev l with\r\n | [ParseNewLine] as e ->\r\n e\r\n | ParseNewLine :: r ->\r\n List.rev r\r\n | _ -> l\r\n parse >> evaluate >> stripLastEndline\r\n\r\n/// Preprocess a string and output a string with the macro evaluated\r\nlet preprocess =\r\n tokenize >> pETS >> parserToString\r\n\r\n/// Preprocess a list of strings which is returned as a list of strings with the\r\n/// macro evaluated\r\nlet preprocessList =\r\n List.collect tokenize >> pETS >> toStringList\r\n\n\n\n// WEBPACK FOOTER //\n// src/Common/Lexer/Preprocessor.fs","module HTMLGen\r\n\r\nopen Types\r\nopen Shared\r\nopen Logger\r\nopen HTMLGenHelpers\r\n\r\nlet dLogger = Logger(LogLevel.WARNING)\r\n\r\n/// convert TFrmtedString to string, with HTML tags where necessary\r\nlet rec strFStr fStr =\r\n match fStr with\r\n | Literal str -> str\r\n | Code str -> str |> attachSimpleTag \"code\"\r\n | Strong a -> strInlineElements a |> attachSimpleTag \"strong\"\r\n | Emphasis e -> strInlineElements e |> attachSimpleTag \"em\"\r\n\r\n/// convert InlineElement list to string, with HTML tags where necessary\r\n/// not tail recursive because the code looks cleaner this way\r\nand strInlineElements eles =\r\n let convertHtml pStr ele =\r\n pStr +\r\n match ele with\r\n | FrmtedString fStr -> strFStr fStr\r\n | Link (ht, url) -> strFStr ht |> attachHTMLTag (\"a\", [(\"href\", url)], true)\r\n | Picture (alt, url) ->\r\n let attrs = [(\"src\", url); (\"alt\", alt)]\r\n attachHTMLTag (\"img\", attrs, false) \"\"\r\n List.fold convertHtml \"\" eles\r\n\r\n/// process Markdown paragraph\r\nlet strParagraph lines =\r\n let folder pLinesStr line =\r\n pLinesStr + strInlineElements line\r\n List.fold folder \"\" lines\r\n |> attachSimpleTag \"p\"\r\n\r\n\r\n/// process Markdown Table\r\nlet strTable (rows: PRow list) =\r\n // filter out table header\r\n let containHeader (row: PRow) =\r\n //let PCells(_, isHeader) = row\r\n match row with\r\n | PCells(_, isHeader) ->\r\n isHeader\r\n let takeoutCells = List.map (fun pRow -> match pRow with | PCells(cells,_) -> cells)\r\n let headerRows = List.filter (containHeader) rows |> takeoutCells\r\n let bodyRows = List.filter (containHeader >> not) rows |> takeoutCells\r\n let foldCells row =\r\n let cellsFolder pStr cell =\r\n match cell with\r\n | CellLine(line, isHeader, align) ->\r\n let tagName = if isHeader then \"th\" else \"td\"\r\n let cellContent = strInlineElements line\r\n let alignAttr =\r\n match align with\r\n | Centre -> (\"align\", \"center\")\r\n | Right -> (\"align\", \"right\")\r\n | Left -> (\"align\", \"left\")\r\n | NoAlign -> (\"\",\"\")\r\n pStr + attachHTMLTag (tagName, [alignAttr], true) cellContent\r\n List.fold cellsFolder \"\" row\r\n let foldRows rows =\r\n let rowsFolder pStr row =\r\n foldCells row\r\n |> attachSimpleTag \"tr\"\r\n |> fun s -> pStr + s\r\n List.fold rowsFolder \"\" rows\r\n foldRows headerRows |> attachSimpleTag \"thead\"\r\n |> fun s ->\r\n s + (foldRows bodyRows |> attachSimpleTag \"tbody\")\r\n |> attachSimpleTag \"table\"\r\n\r\n\r\n/// recursively process a list\r\nlet rec strList list =\r\n let strListItem pStr li =\r\n pStr + (\r\n match li with\r\n | StringItem(line) -> strInlineElements line |> attachSimpleTag \"li\"\r\n | NestedList(list) -> strList list\r\n )\r\n match list with\r\n | {ListType=lt; ListItem=liS} ->\r\n let listTag = if lt=UL then \"ul\" else \"ol\"\r\n List.fold strListItem \"\" liS\r\n |> attachSimpleTag listTag\r\n\r\n/// process header\r\nlet strHeader header =\r\n match header with\r\n | {HeaderName=line;Level=lv} ->\r\n let tagName = \"h\" + string(lv)\r\n line\r\n |> strInlineElements\r\n |> attachSimpleTag tagName\r\n\r\n/// process inline footnotes\r\nlet strInlineFootnote fnId =\r\n let idStr = match fnId with | FtID i -> string i | RefID s -> string s\r\n idStr\r\n |> attachHTMLTag (\"a\", [\"href\", \"#footnote-\"+idStr], true)\r\n |> attachSimpleTag \"sup\"\r\n\r\n\r\nlet (|MatchHeaderAndSubHeader|_|) hds =\r\n match hds with\r\n | fstHd::sndHd::_ ->\r\n let {Level=fstLv} = fstHd\r\n let {Level=sndLv} =sndHd\r\n if sndLv > fstLv then (List.head hds, List.tail hds) |> Some else None\r\n | _ -> None\r\n\r\n/// process table of contents\r\n\r\nlet strToC (toc:Ttoc) =\r\n let displaySingleHeader headerName =\r\n headerName |> strInlineElements // can insert unique id for linking\r\n let appendListItem s i =\r\n {s with ListItem = i::(s.ListItem)}\r\n let fstAppendListItem s i = \r\n appendListItem (fst s) i\r\n let appendToNested (s:TList) appendee =\r\n // if List.head fst s is a nested list, append to that list\r\n match s.ListItem with\r\n | NestedList(l)::tail -> \r\n sprintf \"Append to nested: %A\" appendee |> dLogger.Debug None\r\n {s with ListItem = NestedList({l with ListItem = appendee::l.ListItem})::tail}\r\n // otherwise if the latest element on the list isn't a nested list, just append\r\n | _ ->\r\n sprintf \"Create nested with: %A\" appendee |> dLogger.Debug None \r\n appendee |> appendListItem s\r\n \r\n let appendToNestedD n (s:TList) appendee =\r\n let getNest = function \r\n | NestedList(l) -> l \r\n | _ -> failwith \"Invalid depth.\"\r\n \r\n let rec appendToNestedD' n s =\r\n let recurse = function\r\n | head::tail -> ((appendToNestedD' (n-1) (head |> getNest)).ListItem)@tail\r\n | [] -> failwithf \"List shouldn't be empty: %A\" s\r\n match (n,s) with\r\n | (n,s) when n > 0 ->\r\n {s with ListItem = recurse s.ListItem}\r\n\r\n | (0,s) -> (appendee |> appendToNested s)\r\n | (n,_) when n < 0 -> failwith \"Negative depth, shouldn't happen.\"\r\n | _ -> failwithf \"n is: %i, s is: %A\" n s\r\n appendToNestedD' n s\r\n\r\n // Maybe convert header list into a list item\r\n let fold (s:(TList*int)) =\r\n function\r\n | {HeaderName=headerName; Level=lv} when lv = 1\r\n // If header has depth 1, put it in the main list\r\n -> StringItem(headerName) |> fstAppendListItem s,lv\r\n // If lv is > previous level, create nested list\r\n | {HeaderName=headerName; Level=lv} when lv > snd s\r\n -> NestedList({ListType=OL;ListItem=[StringItem(headerName)];Depth=snd s})\r\n |> appendToNestedD 0 (fst s), lv\r\n // Append to current nested list\r\n | {HeaderName=headerName; Level=lv} when lv = snd s\r\n -> sprintf \"Append: %A %i\" headerName lv |> dLogger.Debug None\r\n StringItem(headerName) |> appendToNested (fst s),lv\r\n \r\n | {HeaderName=headerName; Level=lv} when lv < snd s\r\n -> StringItem(headerName) |> appendToNestedD (lv-2) (fst s),lv\r\n | _ -> s\r\n \r\n let rec revList (l:TList) =\r\n let rec revListItemList (li:TListItem list) =\r\n let revRecurse = function \r\n | NestedList(l)->NestedList({l with ListItem=(revListItemList l.ListItem)})\r\n | l -> l\r\n List.map revRecurse li\r\n |> List.rev\r\n {l with ListItem=List.rev (revListItemList l.ListItem)}\r\n\r\n //sprintf \"%A\" (toc.HeaderLst) |> dLogger.Debug None\r\n List.fold fold ({Depth=1; ListItem=[]; ListType=OL},1) (toc.HeaderLst)\r\n |> fst\r\n |> (fun l -> {l with ListItem=List.rev l.ListItem})\r\n |> revList\r\n |> strList\r\n // For each header in the list, print it out as a list element\r\n //let folder' maxLv s (header:THeader) =\r\n // // match header with\r\n // // | {HeaderName=str; Level=headerLv}\r\n\r\n // \"\"\r\n //let folder = folder' (toc.MaxDepth)\r\n //List.fold folder \"\" toc.HeaderLst\r\n\r\n //let rec tocMany currentLv maxLv headers pStr =\r\n // match headers with\r\n // | {HeaderName=headerName; Level=headerLv}::rHds ->\r\n // match headerLv with\r\n // | hlv when hlv = currentLv ->\r\n // match headers with\r\n // | MatchHeaderAndSubHeader (fstHd, rHds) ->\r\n // let (cStr, rHds) =\r\n // match fstHd |> strInlineElements |> tocMany currentLv+1 maxLv rHds with\r\n // | Ok (cStr, rHds) -> (cStr, rHds)\r\n // | Error\r\n // //pStr + (\r\n // \r\n // // |> attachSimpleTag \"li\")\r\n // \r\n // | _ -> pStr + (headerName |> strInlineElements) |> tocMany currentLv maxLv rHds |> Ok\r\n // | hlv when hlv \r\n\r\n\r\n\r\n/// gather footnotes for end of page display\r\nlet gatherFootnotes pObjs =\r\n let footnotesFilter pObj =\r\n match pObj with\r\n | Footnote _ -> true\r\n | _ -> false\r\n List.filter footnotesFilter pObjs\r\n\r\n\r\n/// process HTML body part\r\nlet strBody pObjs =\r\n let folder pStr pObj =\r\n pStr +\r\n match pObj with\r\n | Paragraph p -> strParagraph p\r\n | Quote q -> strInlineElements q |> attachSimpleTag \"q\"\r\n | CodeBlock (c, l) -> attachHTMLTag (\"code\", [(\"language\", mapLang l)], true) c\r\n | Table rows -> strTable rows\r\n | List l -> strList l\r\n | Header h -> strHeader h\r\n | Footnote (fnId, _) -> strInlineFootnote fnId\r\n | ContentTable toc -> strToC toc\r\n | _ -> sprintf \"%A is not implemented\" pObj\r\n List.fold folder \"\" pObjs\r\n\r\n\n\n\n// WEBPACK FOOTER //\n// src/Common/HTMLGen/HTMLGen.fs","module HTMLGenHelpers\r\n\r\nopen Types\r\n\r\ntype TagStyle = INLINE | NonInline of indentStr: string\r\n\r\n\r\n/// concat attributeName and value\r\n/// with quotes\r\nlet toAttr attributeName value =\r\n attributeName + \"=\\\"\" + value + \"\\\"\"\r\n\r\n/// convert (attributeName, value) list to string list\r\n/// ready for inserting into HTML tag\r\nlet toAttrs attrs =\r\n let mapper attr =\r\n match attr with | (attrName, value) -> toAttr attrName value\r\n List.map mapper attrs\r\n\r\n/// atach HTML tag to a given string, both start and end tag\r\n/// inline style does not insert newline after start tag and before end tag\r\n/// non-inline style will have indent set to desired string\r\nlet attachHTMLTag (tagName, attributes: list<string * string>, needCloseTag) (content: string) =\r\n let attrStr =\r\n match List.isEmpty attributes with\r\n | true -> \"\"\r\n | false ->\r\n let attrFolder pStr attrNameValue =\r\n pStr +\r\n match attrNameValue with\r\n | (\"\",\"\") -> \"\"\r\n | (attrName, value) ->\r\n \" \" + // space before attribute\r\n if value = \"\" then attrName\r\n else attrName + \"=\\\"\" + value + \"\\\"\"\r\n List.fold attrFolder \"\" attributes\r\n \"<\" + tagName + attrStr + \">\"\r\n + content\r\n + if needCloseTag then \"</\" + tagName + \">\" else \"\"\r\n\r\n/// attach (tagName,noAttr,closeTag)\r\nlet attachSimpleTag tagName = attachHTMLTag (tagName,[],true)\r\n\n\n\n// WEBPACK FOOTER //\n// src/Common/HTMLGen/HTMLGenHelpers.fs","module MarkdownGen\r\n\r\nopen Types\r\nopen Shared\r\nopen Logger\r\n\r\nlet logger = Logger(LogLevel.INFO)\r\n\r\n// retunr string surrounded by pat\r\nlet surround pat str =\r\n let pat2 = match pat with\r\n | \"(\" -> \")\"\r\n | \"[\" -> \"]\"\r\n | \"{\" -> \"}\"\r\n | _ -> pat\r\n sprintf \"%s%s%s\" pat str pat2\r\n\r\n/// convert TFrmtedString to string\r\nlet rec mdFStr fStr =\r\n match fStr with\r\n | Literal str -> str\r\n | Code str -> surround \"`\" str\r\n | Strong a -> mdInlineElements a |> surround \"**\"\r\n | Emphasis e -> mdInlineElements e |> surround \"*\"\r\n\r\n/// convert InlineElement list to string, with HTML tags where necessary\r\n/// not tail recursive because the code looks cleaner this way\r\nand mdInlineElements' b eles =\r\n let braSurround = surround \"(\"\r\n let sbraSurround = surround \"[\"\r\n let convertMd pStr ele =\r\n pStr +\r\n match ele with\r\n | FrmtedString fStr -> mdFStr fStr\r\n | Link (ht, url) -> (mdFStr ht |> sbraSurround) + (url |> braSurround)\r\n | Picture (alt, url) -> (alt |> sbraSurround |> sprintf \"!%s\" ) + (url |> braSurround)\r\n List.fold convertMd (sprintf \"%s\" b) eles\r\nand mdInlineElements = mdInlineElements' \"\"\r\n\r\n/// process Markdown paragraph\r\nlet mdParagraph lines =\r\n let folder pLinesStr line =\r\n pLinesStr + mdInlineElements line\r\n List.fold folder \"\" lines\r\n + \"\\n\\n\"\r\n\r\n/// process Markdown Table\r\nlet mdTable (rows: PRow list) =\r\n // filter out table header\r\n let containHeader (row: PRow) =\r\n //let PCells(_, isHeader) = row\r\n match row with\r\n | PCells(_, isHeader) ->\r\n isHeader\r\n let takeoutCells = List.map (fun pRow -> match pRow with | PCells(cells,_) -> cells)\r\n let headerRows = List.filter (containHeader) rows |> takeoutCells\r\n let bodyRows = List.filter (containHeader >> not) rows |> takeoutCells\r\n let foldCells alignRow row =\r\n let cellsFolder alignRow pStr cell =\r\n match cell with\r\n | CellLine(line, _, align) ->\r\n match alignRow with\r\n | true ->\r\n match align with\r\n | Centre -> \":---:\"\r\n | Right -> \"---:\"\r\n | Left -> \":---\"\r\n | NoAlign -> \"---\"\r\n | false ->\r\n mdInlineElements line\r\n |> (fun cellContent -> pStr + cellContent + \"|\")\r\n \r\n List.fold (cellsFolder alignRow) \"|\" row\r\n \r\n let foldRows alignRow rows =\r\n let rowsFolder alignRow pStr row =\r\n pStr + (foldCells alignRow) row + \"\\n\"\r\n List.fold (rowsFolder alignRow) \"\" rows\r\n let foldNormalRows = foldRows false\r\n let foldAlignRow = foldCells true\r\n foldNormalRows headerRows\r\n + (headerRows |> List.head |> foldAlignRow)\r\n + foldNormalRows bodyRows + \"\\n\\n\"\r\n\r\n/// recursively process a list\r\nlet rec mdList list =\r\n let mdListItem ord tab (pStr,pCount) li =\r\n let retFold s = pStr + s, pCount + 1;\r\n match li with\r\n | StringItem(line) -> mdInlineElements line |> (fun s -> \r\n if ord \r\n then \r\n sprintf \"%s%i. %s\\n\" (String.replicate tab \"\\t\") pCount s\r\n |> logPassN logger.Debug\r\n else sprintf \"%s- %s\\n\" (String.replicate tab \"\\t\") s) |> retFold\r\n | NestedList(list) -> mdList list |> retFold\r\n \r\n match list with\r\n | {ListType=lt; ListItem=liS; Depth=d} ->\r\n let ord = lt=OL\r\n List.fold (mdListItem ord (d-1)) (\"\",1) liS\r\n |> fst\r\n\r\n/// process header\r\nlet mdHeader header =\r\n match header with\r\n | {HeaderName=line;Level=lv} ->\r\n (line |> mdInlineElements)\r\n |> sprintf \"%s %s\\n\" (String.replicate lv \"#\") \r\n\r\n/// process HTML body part\r\nlet mdBody pObjs =\r\n let folder pStr pObj =\r\n pStr +\r\n match pObj with\r\n | Paragraph p -> mdParagraph p\r\n | Quote q -> mdInlineElements' \">\" q\r\n | CodeBlock (c, l) -> surround \"```\" (mapLang l + \"\\n\" + c + \"\\n\")\r\n | Table rows -> mdTable rows\r\n | List l -> mdList l |> sprintf \"%s\\n\"\r\n | Header h -> mdHeader h\r\n //| Footnote (fnId, _) -> mdInlineFootnote fnId\r\n | _ -> sprintf \"%A is not implemented\" pObj\r\n List.fold folder \"\" pObjs\r\n\r\n\r\n\r\n\n\n\n// WEBPACK FOOTER //\n// src/Common/MarkdownGen/MarkdownGen.fs"],"sourceRoot":""} \ No newline at end of file