From 6c0bd6f468a97d9d61604db6eb8b7ca4b87d7c5d Mon Sep 17 00:00:00 2001 From: Liam Riddell <3812154+LiamRiddell@users.noreply.github.com> Date: Mon, 27 Nov 2023 12:32:20 +0000 Subject: [PATCH] 0.8.0 (#40) --- src/codemirror/MarkdownEditorViewPlugin.ts | 106 +- src/codemirror/widgets/ResultWidget.ts | 1 + src/errors/EmptyPipelineError.ts | 7 + src/grammars/arithmetic/BasicArithmetic.ohm | 4 + .../arithmetic/BasicArithmetic.ohm-bundle.js | 2 +- .../function/FunctionArithmetic.ohm-bundle.js | 2 +- .../PercentageArithmetic.ohm-bundle.js | 2 +- .../uom/UnitsOfMeasurement.ohm-bundle.js | 2 +- .../vector/Vector2Arithmetic.ohm-bundle.js | 2 +- .../vector/Vector3Arithmetic.ohm-bundle.js | 2 +- .../vector/Vector4Arithmetic.ohm-bundle.js | 2 +- src/main.ts | 73 +- src/pipelines/definition/Pipeline.ts | 28 + src/pipelines/definition/PipelineAsync.ts | 29 + .../stages/BasePipelineAsyncStage.ts | 20 + .../definition/stages/BasePipelineStage.ts | 18 + .../definition/stages/IPipelineAsyncStage.ts | 4 + .../definition/stages/IPipelineStage.ts | 4 + src/pipelines/stages/CommentsRemovalStage.ts | 12 + src/pipelines/stages/MarkdownRemovalStage.ts | 14 + .../stages/VariableProcessingStage.ts | 56 + src/utilities/Array.ts | 13 + src/utilities/String.ts | 16 + styles.css | 3619 ++++++++++++++++- .../BasicArithmeticProvider.test.ts | 32 + 25 files changed, 3974 insertions(+), 96 deletions(-) create mode 100644 src/errors/EmptyPipelineError.ts create mode 100644 src/pipelines/definition/Pipeline.ts create mode 100644 src/pipelines/definition/PipelineAsync.ts create mode 100644 src/pipelines/definition/stages/BasePipelineAsyncStage.ts create mode 100644 src/pipelines/definition/stages/BasePipelineStage.ts create mode 100644 src/pipelines/definition/stages/IPipelineAsyncStage.ts create mode 100644 src/pipelines/definition/stages/IPipelineStage.ts create mode 100644 src/pipelines/stages/CommentsRemovalStage.ts create mode 100644 src/pipelines/stages/MarkdownRemovalStage.ts create mode 100644 src/pipelines/stages/VariableProcessingStage.ts create mode 100644 src/utilities/Array.ts create mode 100644 src/utilities/String.ts diff --git a/src/codemirror/MarkdownEditorViewPlugin.ts b/src/codemirror/MarkdownEditorViewPlugin.ts index a94280c..35af730 100644 --- a/src/codemirror/MarkdownEditorViewPlugin.ts +++ b/src/codemirror/MarkdownEditorViewPlugin.ts @@ -1,6 +1,9 @@ import { ResultWidget } from "@/codemirror/widgets/ResultWidget"; import { pluginEventBus } from "@/eventbus/PluginEventBus"; -import { IResult } from "@/results/definition/IResult"; +import { Pipeline } from "@/pipelines/definition/Pipeline"; +import { SharedCommentsRemovalStage } from "@/pipelines/stages/CommentsRemovalStage"; +import { SharedMarkdownRemovalStage } from "@/pipelines/stages/MarkdownRemovalStage"; +import { VariableProcessingStage } from "@/pipelines/stages/VariableProcessingStage"; import UserSettings from "@/settings/UserSettings"; import { logger } from "@/utilities/Logger"; // @ts-expect-error @@ -28,15 +31,19 @@ export class MarkdownEditorViewPlugin implements PluginValue { "list", "HyperMD-list-line", ]; - private variableAssignmentRegex = new RegExp(/^(\$\w+)\s+=/); - private variableSubstitutionRegex = new RegExp(/(\$\w+)/g); - private variableMap = new Map>(); + + private processingPipeline: Pipeline; constructor(view: EditorView) { logger.debug(`[SolveViewPlugin] Constructer`); this.userSettings = UserSettings.getInstance(); + this.processingPipeline = new Pipeline() + .addStage(SharedMarkdownRemovalStage) + .addStage(SharedCommentsRemovalStage) + .addStage(new VariableProcessingStage()); + this.decorations = this.buildDecorations(view); } @@ -47,8 +54,6 @@ export class MarkdownEditorViewPlugin implements PluginValue { EPluginStatus.Solving ); - this.variableMap.clear(); - // console.time("[Solve] MarkdownEditorViewPlugin.buildDecorations"); this.decorations = this.buildDecorations(update.view); // console.timeEnd( @@ -87,6 +92,13 @@ export class MarkdownEditorViewPlugin implements PluginValue { from, to, enter: (node: SyntaxNodeRef) => { + // console.log( + // node.type.name, + // node.from, + // node.to, + // view.state.doc.sliceString(node.from, node.to) + // ); + if (this.isNodeIgnoredFromMask(node.type.name)) { return; } @@ -146,15 +158,9 @@ export class MarkdownEditorViewPlugin implements PluginValue { continue; } - // Ignored nodes e.g. block qoutes (>), lists (-), checked list ([ ]) will remove the - // markdown formatting at the start of the string. - lineText = lineText.replace( - /^(?:(?:[-+*>]|(?:\[\s\])|(?:\d+\.))\s)+/m, - "" - ); - - // Variable Support (Scoped to view) - lineText = this.handleVariables(lineText); + // logger.debug("Before Pipeline:", lineText); + lineText = this.processingPipeline.process(lineText); + // logger.debug("After Pipeline:", lineText); // The line is valid and decoration can be provided. const decoration = this.provideDecoration( @@ -245,74 +251,4 @@ export class MarkdownEditorViewPlugin implements PluginValue { side: 1, }); } - - //#region Variables - private handleVariables(sentence: string) { - const variableAssignmentMatch = sentence.match( - this.variableAssignmentRegex - ); - - if (variableAssignmentMatch && variableAssignmentMatch.length > 0) { - this.parseVariable(variableAssignmentMatch[1], sentence); - } else { - const variableMatches = [ - ...sentence.matchAll(this.variableSubstitutionRegex), - ]; - - if (variableMatches.length > 0) { - sentence = this.substituteVariables(sentence, variableMatches); - } - } - - return sentence; - } - - private parseVariable(name: string, expression: string) { - const assignmentPosition = expression.indexOf("="); - if (assignmentPosition > -1) { - const assignmentExpression = expression.substring( - assignmentPosition + 1 - ); - - const result = solveProviderManager.provideFirst( - assignmentExpression, - true - ); - - if (result !== undefined) { - this.variableMap.set(name, result as any as IResult); - } - } - - return false; - } - - private substituteVariables( - expression: string, - variablesMatches: RegExpMatchArray[] - ) { - let expressionSubstituted = expression; - - for (let i = 0; i < variablesMatches.length; i++) { - const variableMatch = variablesMatches[i]; - - if (!variableMatch) continue; - - const variableName = variableMatch[0]; - - if (this.variableMap.has(variableName)) { - const variableValue = this.variableMap.get(variableName); - - if (variableValue) { - expressionSubstituted = expressionSubstituted.replace( - variableName, - variableValue.value - ); - } - } - } - - return expressionSubstituted; - } - //#endregion } diff --git a/src/codemirror/widgets/ResultWidget.ts b/src/codemirror/widgets/ResultWidget.ts index 111b08f..43a0eff 100644 --- a/src/codemirror/widgets/ResultWidget.ts +++ b/src/codemirror/widgets/ResultWidget.ts @@ -21,6 +21,7 @@ export class ResultWidget extends WidgetType { ).number; const div = document.createElement("div"); + div.id = `osr-${this.lineNumber}`; div.title = "Click to commit this result"; div.addEventListener("click", () => { diff --git a/src/errors/EmptyPipelineError.ts b/src/errors/EmptyPipelineError.ts new file mode 100644 index 0000000..963daa3 --- /dev/null +++ b/src/errors/EmptyPipelineError.ts @@ -0,0 +1,7 @@ +export class EmptyPipelineError extends Error { + constructor(message?: string) { + super(message || "The executed pipeline has no stages."); + this.name = "EmptyPipelineError"; + Error.captureStackTrace(this, EmptyPipelineError); + } +} diff --git a/src/grammars/arithmetic/BasicArithmetic.ohm b/src/grammars/arithmetic/BasicArithmetic.ohm index cf55c3c..fa06b33 100644 --- a/src/grammars/arithmetic/BasicArithmetic.ohm +++ b/src/grammars/arithmetic/BasicArithmetic.ohm @@ -53,6 +53,9 @@ BasicArithmetic { multiply = "*" + | "\\*" // Escaped \* for markdown + | "\u{00D7}" // × + | caseInsensitive<"x"> | caseInsensitive<"times by"> | caseInsensitive<"times"> | caseInsensitive<"multiply by"> @@ -60,6 +63,7 @@ BasicArithmetic { divide = "/" + | "\u{00F7}" // ÷ | caseInsensitive<"divide by"> | caseInsensitive<"divide"> diff --git a/src/grammars/arithmetic/BasicArithmetic.ohm-bundle.js b/src/grammars/arithmetic/BasicArithmetic.ohm-bundle.js index 4a8a74f..232081e 100644 --- a/src/grammars/arithmetic/BasicArithmetic.ohm-bundle.js +++ b/src/grammars/arithmetic/BasicArithmetic.ohm-bundle.js @@ -1 +1 @@ -'use strict';const {makeRecipe}=require('ohm-js');const result=makeRecipe(["grammar",{"source":"BasicArithmetic {\r\n Expression\r\n = LogicalShift\r\n\r\n LogicalShift\r\n = LogicalShift \"<<\" LogicalShift -- left\r\n | LogicalShift \">>\" LogicalShift -- right\r\n | AS \r\n\r\n // Addition or Subtraction\r\n AS\r\n = AS add MD -- addition\r\n | AS subtract MD -- subtraction\r\n | MD\r\n\r\n // Multiply or Divide\r\n MD\r\n = MD multiply E -- multiplication\r\n | MD divide E -- division\r\n | MD modulo E -- modulo\r\n | E\r\n\r\n // Exponent\r\n E\r\n = P exponent E -- exponent\r\n | P\r\n\r\n // Parenthesis\r\n P\r\n = \"(\" Expression \")\" -- parenthesis\r\n | Primitive\r\n \r\n Primitive\r\n = \"+\" Primitive -- positive\r\n | \"-\" Primitive -- negative\r\n | constant\r\n | hex\r\n | number\r\n \r\n // Lexical Rules\r\n add \r\n \t= \"+\"\r\n | caseInsensitive<\"plus\">\r\n \t| caseInsensitive<\"add\">\r\n | caseInsensitive<\"and\">\r\n \r\n subtract \r\n = \"-\"\r\n | caseInsensitive<\"minus\">\r\n | caseInsensitive<\"subtract\">\r\n | caseInsensitive<\"remove\">\r\n | caseInsensitive<\"take\">\r\n \r\n multiply \r\n = \"*\"\r\n | caseInsensitive<\"times by\">\r\n | caseInsensitive<\"times\">\r\n | caseInsensitive<\"multiply by\">\r\n | caseInsensitive<\"multiply\">\r\n \r\n divide\r\n = \"/\"\r\n | caseInsensitive<\"divide by\">\r\n | caseInsensitive<\"divide\">\r\n\r\n modulo\r\n = \"%\"\r\n | caseInsensitive<\"modulo\">\r\n | caseInsensitive<\"mod\">\r\n\r\n exponent\r\n = \"^\"\r\n | caseInsensitive<\"to the power of\">\r\n | caseInsensitive<\"power of\">\r\n | caseInsensitive<\"exponent\">\r\n | caseInsensitive<\"prime\">\r\n\r\n constant \r\n \t= caseInsensitive<\"PI\"> \r\n | caseInsensitive<\"E\">\r\n\r\n number\r\n = digit* \".\" digit+ -- fract\r\n | digit+ -- whole\r\n \r\n hex\r\n = \"0x\" hexDigit+\r\n | hexDigit+ \"h\"\r\n}"},"BasicArithmetic",null,"Expression",{"Expression":["define",{"sourceInterval":[21,51]},null,[],["app",{"sourceInterval":[39,51]},"LogicalShift",[]]],"LogicalShift_left":["define",{"sourceInterval":[77,115]},null,[],["seq",{"sourceInterval":[77,107]},["app",{"sourceInterval":[77,89]},"LogicalShift",[]],["terminal",{"sourceInterval":[90,94]},"<<"],["app",{"sourceInterval":[95,107]},"LogicalShift",[]]]],"LogicalShift_right":["define",{"sourceInterval":[123,162]},null,[],["seq",{"sourceInterval":[123,153]},["app",{"sourceInterval":[123,135]},"LogicalShift",[]],["terminal",{"sourceInterval":[136,140]},">>"],["app",{"sourceInterval":[141,153]},"LogicalShift",[]]]],"LogicalShift":["define",{"sourceInterval":[57,172]},null,[],["alt",{"sourceInterval":[77,172]},["app",{"sourceInterval":[77,107]},"LogicalShift_left",[]],["app",{"sourceInterval":[123,153]},"LogicalShift_right",[]],["app",{"sourceInterval":[170,172]},"AS",[]]]],"AS_addition":["define",{"sourceInterval":[219,241]},null,[],["seq",{"sourceInterval":[219,228]},["app",{"sourceInterval":[219,221]},"AS",[]],["app",{"sourceInterval":[222,225]},"add",[]],["app",{"sourceInterval":[226,228]},"MD",[]]]],"AS_subtraction":["define",{"sourceInterval":[249,279]},null,[],["seq",{"sourceInterval":[249,263]},["app",{"sourceInterval":[249,251]},"AS",[]],["app",{"sourceInterval":[252,260]},"subtract",[]],["app",{"sourceInterval":[261,263]},"MD",[]]]],"AS":["define",{"sourceInterval":[209,289]},null,[],["alt",{"sourceInterval":[219,289]},["app",{"sourceInterval":[219,228]},"AS_addition",[]],["app",{"sourceInterval":[249,263]},"AS_subtraction",[]],["app",{"sourceInterval":[287,289]},"MD",[]]]],"MD_multiplication":["define",{"sourceInterval":[330,362]},null,[],["seq",{"sourceInterval":[330,343]},["app",{"sourceInterval":[330,332]},"MD",[]],["app",{"sourceInterval":[333,341]},"multiply",[]],["app",{"sourceInterval":[342,343]},"E",[]]]],"MD_division":["define",{"sourceInterval":[370,394]},null,[],["seq",{"sourceInterval":[370,381]},["app",{"sourceInterval":[370,372]},"MD",[]],["app",{"sourceInterval":[373,379]},"divide",[]],["app",{"sourceInterval":[380,381]},"E",[]]]],"MD_modulo":["define",{"sourceInterval":[402,424]},null,[],["seq",{"sourceInterval":[402,413]},["app",{"sourceInterval":[402,404]},"MD",[]],["app",{"sourceInterval":[405,411]},"modulo",[]],["app",{"sourceInterval":[412,413]},"E",[]]]],"MD":["define",{"sourceInterval":[320,433]},null,[],["alt",{"sourceInterval":[330,433]},["app",{"sourceInterval":[330,343]},"MD_multiplication",[]],["app",{"sourceInterval":[370,381]},"MD_division",[]],["app",{"sourceInterval":[402,413]},"MD_modulo",[]],["app",{"sourceInterval":[432,433]},"E",[]]]],"E_exponent":["define",{"sourceInterval":[463,488]},null,[],["seq",{"sourceInterval":[463,475]},["app",{"sourceInterval":[463,464]},"P",[]],["app",{"sourceInterval":[465,473]},"exponent",[]],["app",{"sourceInterval":[474,475]},"E",[]]]],"E":["define",{"sourceInterval":[454,497]},null,[],["alt",{"sourceInterval":[463,497]},["app",{"sourceInterval":[463,475]},"E_exponent",[]],["app",{"sourceInterval":[496,497]},"P",[]]]],"P_parenthesis":["define",{"sourceInterval":[530,564]},null,[],["seq",{"sourceInterval":[530,548]},["terminal",{"sourceInterval":[530,533]},"("],["app",{"sourceInterval":[534,544]},"Expression",[]],["terminal",{"sourceInterval":[545,548]},")"]]],"P":["define",{"sourceInterval":[521,581]},null,[],["alt",{"sourceInterval":[530,581]},["app",{"sourceInterval":[530,548]},"P_parenthesis",[]],["app",{"sourceInterval":[572,581]},"Primitive",[]]]],"Primitive_positive":["define",{"sourceInterval":[608,633]},null,[],["seq",{"sourceInterval":[608,621]},["terminal",{"sourceInterval":[608,611]},"+"],["app",{"sourceInterval":[612,621]},"Primitive",[]]]],"Primitive_negative":["define",{"sourceInterval":[641,666]},null,[],["seq",{"sourceInterval":[641,654]},["terminal",{"sourceInterval":[641,644]},"-"],["app",{"sourceInterval":[645,654]},"Primitive",[]]]],"Primitive":["define",{"sourceInterval":[591,707]},null,[],["alt",{"sourceInterval":[608,707]},["app",{"sourceInterval":[608,621]},"Primitive_positive",[]],["app",{"sourceInterval":[641,654]},"Primitive_negative",[]],["app",{"sourceInterval":[674,682]},"constant",[]],["app",{"sourceInterval":[690,693]},"hex",[]],["app",{"sourceInterval":[701,707]},"number",[]]]],"add":["define",{"sourceInterval":[734,838]},null,[],["alt",{"sourceInterval":[745,838]},["terminal",{"sourceInterval":[745,748]},"+"],["app",{"sourceInterval":[756,779]},"caseInsensitive",[["terminal",{"sourceInterval":[772,778]},"plus"]]],["app",{"sourceInterval":[786,808]},"caseInsensitive",[["terminal",{"sourceInterval":[802,807]},"add"]]],["app",{"sourceInterval":[816,838]},"caseInsensitive",[["terminal",{"sourceInterval":[832,837]},"and"]]]]],"subtract":["define",{"sourceInterval":[848,999]},null,[],["alt",{"sourceInterval":[865,999]},["terminal",{"sourceInterval":[865,868]},"-"],["app",{"sourceInterval":[876,900]},"caseInsensitive",[["terminal",{"sourceInterval":[892,899]},"minus"]]],["app",{"sourceInterval":[908,935]},"caseInsensitive",[["terminal",{"sourceInterval":[924,934]},"subtract"]]],["app",{"sourceInterval":[943,968]},"caseInsensitive",[["terminal",{"sourceInterval":[959,967]},"remove"]]],["app",{"sourceInterval":[976,999]},"caseInsensitive",[["terminal",{"sourceInterval":[992,998]},"take"]]]]],"multiply":["define",{"sourceInterval":[1011,1171]},null,[],["alt",{"sourceInterval":[1028,1171]},["terminal",{"sourceInterval":[1028,1031]},"*"],["app",{"sourceInterval":[1039,1066]},"caseInsensitive",[["terminal",{"sourceInterval":[1055,1065]},"times by"]]],["app",{"sourceInterval":[1074,1098]},"caseInsensitive",[["terminal",{"sourceInterval":[1090,1097]},"times"]]],["app",{"sourceInterval":[1106,1136]},"caseInsensitive",[["terminal",{"sourceInterval":[1122,1135]},"multiply by"]]],["app",{"sourceInterval":[1144,1171]},"caseInsensitive",[["terminal",{"sourceInterval":[1160,1170]},"multiply"]]]]],"divide":["define",{"sourceInterval":[1183,1269]},null,[],["alt",{"sourceInterval":[1197,1269]},["terminal",{"sourceInterval":[1197,1200]},"/"],["app",{"sourceInterval":[1208,1236]},"caseInsensitive",[["terminal",{"sourceInterval":[1224,1235]},"divide by"]]],["app",{"sourceInterval":[1244,1269]},"caseInsensitive",[["terminal",{"sourceInterval":[1260,1268]},"divide"]]]]],"modulo":["define",{"sourceInterval":[1275,1355]},null,[],["alt",{"sourceInterval":[1289,1355]},["terminal",{"sourceInterval":[1289,1292]},"%"],["app",{"sourceInterval":[1300,1325]},"caseInsensitive",[["terminal",{"sourceInterval":[1316,1324]},"modulo"]]],["app",{"sourceInterval":[1333,1355]},"caseInsensitive",[["terminal",{"sourceInterval":[1349,1354]},"mod"]]]]],"exponent":["define",{"sourceInterval":[1361,1524]},null,[],["alt",{"sourceInterval":[1377,1524]},["terminal",{"sourceInterval":[1377,1380]},"^"],["app",{"sourceInterval":[1388,1422]},"caseInsensitive",[["terminal",{"sourceInterval":[1404,1421]},"to the power of"]]],["app",{"sourceInterval":[1430,1457]},"caseInsensitive",[["terminal",{"sourceInterval":[1446,1456]},"power of"]]],["app",{"sourceInterval":[1465,1492]},"caseInsensitive",[["terminal",{"sourceInterval":[1481,1491]},"exponent"]]],["app",{"sourceInterval":[1500,1524]},"caseInsensitive",[["terminal",{"sourceInterval":[1516,1523]},"prime"]]]]],"constant":["define",{"sourceInterval":[1530,1597]},null,[],["alt",{"sourceInterval":[1547,1597]},["app",{"sourceInterval":[1547,1568]},"caseInsensitive",[["terminal",{"sourceInterval":[1563,1567]},"PI"]]],["app",{"sourceInterval":[1577,1597]},"caseInsensitive",[["terminal",{"sourceInterval":[1593,1596]},"E"]]]]],"number_fract":["define",{"sourceInterval":[1617,1644]},null,[],["seq",{"sourceInterval":[1617,1634]},["star",{"sourceInterval":[1617,1623]},["app",{"sourceInterval":[1617,1622]},"digit",[]]],["terminal",{"sourceInterval":[1624,1627]},"."],["plus",{"sourceInterval":[1628,1634]},["app",{"sourceInterval":[1628,1633]},"digit",[]]]]],"number_whole":["define",{"sourceInterval":[1652,1679]},null,[],["plus",{"sourceInterval":[1652,1658]},["app",{"sourceInterval":[1652,1657]},"digit",[]]]],"number":["define",{"sourceInterval":[1603,1679]},null,[],["alt",{"sourceInterval":[1617,1679]},["app",{"sourceInterval":[1617,1634]},"number_fract",[]],["app",{"sourceInterval":[1652,1658]},"number_whole",[]]]],"hex":["define",{"sourceInterval":[1687,1733]},null,[],["alt",{"sourceInterval":[1698,1733]},["seq",{"sourceInterval":[1698,1712]},["terminal",{"sourceInterval":[1698,1702]},"0x"],["plus",{"sourceInterval":[1703,1712]},["app",{"sourceInterval":[1703,1711]},"hexDigit",[]]]],["seq",{"sourceInterval":[1720,1733]},["plus",{"sourceInterval":[1720,1729]},["app",{"sourceInterval":[1720,1728]},"hexDigit",[]]],["terminal",{"sourceInterval":[1730,1733]},"h"]]]]}]);module.exports=result; \ No newline at end of file +'use strict';const {makeRecipe}=require('ohm-js');const result=makeRecipe(["grammar",{"source":"BasicArithmetic {\r\n Expression\r\n = LogicalShift\r\n\r\n LogicalShift\r\n = LogicalShift \"<<\" LogicalShift -- left\r\n | LogicalShift \">>\" LogicalShift -- right\r\n | AS \r\n\r\n // Addition or Subtraction\r\n AS\r\n = AS add MD -- addition\r\n | AS subtract MD -- subtraction\r\n | MD\r\n\r\n // Multiply or Divide\r\n MD\r\n = MD multiply E -- multiplication\r\n | MD divide E -- division\r\n | MD modulo E -- modulo\r\n | E\r\n\r\n // Exponent\r\n E\r\n = P exponent E -- exponent\r\n | P\r\n\r\n // Parenthesis\r\n P\r\n = \"(\" Expression \")\" -- parenthesis\r\n | Primitive\r\n \r\n Primitive\r\n = \"+\" Primitive -- positive\r\n | \"-\" Primitive -- negative\r\n | constant\r\n | hex\r\n | number\r\n \r\n // Lexical Rules\r\n add \r\n \t= \"+\"\r\n | caseInsensitive<\"plus\">\r\n \t| caseInsensitive<\"add\">\r\n | caseInsensitive<\"and\">\r\n \r\n subtract \r\n = \"-\"\r\n | caseInsensitive<\"minus\">\r\n | caseInsensitive<\"subtract\">\r\n | caseInsensitive<\"remove\">\r\n | caseInsensitive<\"take\">\r\n \r\n multiply \r\n = \"*\"\r\n | \"\\\\*\" // Escaped e.g. \\* for markdown\r\n | \"\\u{00D7}\" // Multiplication Symbol ×\r\n | caseInsensitive<\"x\">\r\n | caseInsensitive<\"times by\">\r\n | caseInsensitive<\"times\">\r\n | caseInsensitive<\"multiply by\">\r\n | caseInsensitive<\"multiply\">\r\n \r\n divide\r\n = \"/\"\r\n | \"\\u{00F7}\" // Division Symbol ÷\r\n | caseInsensitive<\"divide by\">\r\n | caseInsensitive<\"divide\">\r\n\r\n modulo\r\n = \"%\"\r\n | caseInsensitive<\"modulo\">\r\n | caseInsensitive<\"mod\">\r\n\r\n exponent\r\n = \"^\"\r\n | caseInsensitive<\"to the power of\">\r\n | caseInsensitive<\"power of\">\r\n | caseInsensitive<\"exponent\">\r\n | caseInsensitive<\"prime\">\r\n\r\n constant \r\n \t= caseInsensitive<\"PI\"> \r\n | caseInsensitive<\"E\">\r\n\r\n number\r\n = digit* \".\" digit+ -- fract\r\n | digit+ -- whole\r\n \r\n hex\r\n = \"0x\" hexDigit+\r\n | hexDigit+ \"h\"\r\n}"},"BasicArithmetic",null,"Expression",{"Expression":["define",{"sourceInterval":[21,51]},null,[],["app",{"sourceInterval":[39,51]},"LogicalShift",[]]],"LogicalShift_left":["define",{"sourceInterval":[77,115]},null,[],["seq",{"sourceInterval":[77,107]},["app",{"sourceInterval":[77,89]},"LogicalShift",[]],["terminal",{"sourceInterval":[90,94]},"<<"],["app",{"sourceInterval":[95,107]},"LogicalShift",[]]]],"LogicalShift_right":["define",{"sourceInterval":[123,162]},null,[],["seq",{"sourceInterval":[123,153]},["app",{"sourceInterval":[123,135]},"LogicalShift",[]],["terminal",{"sourceInterval":[136,140]},">>"],["app",{"sourceInterval":[141,153]},"LogicalShift",[]]]],"LogicalShift":["define",{"sourceInterval":[57,172]},null,[],["alt",{"sourceInterval":[77,172]},["app",{"sourceInterval":[77,107]},"LogicalShift_left",[]],["app",{"sourceInterval":[123,153]},"LogicalShift_right",[]],["app",{"sourceInterval":[170,172]},"AS",[]]]],"AS_addition":["define",{"sourceInterval":[219,241]},null,[],["seq",{"sourceInterval":[219,228]},["app",{"sourceInterval":[219,221]},"AS",[]],["app",{"sourceInterval":[222,225]},"add",[]],["app",{"sourceInterval":[226,228]},"MD",[]]]],"AS_subtraction":["define",{"sourceInterval":[249,279]},null,[],["seq",{"sourceInterval":[249,263]},["app",{"sourceInterval":[249,251]},"AS",[]],["app",{"sourceInterval":[252,260]},"subtract",[]],["app",{"sourceInterval":[261,263]},"MD",[]]]],"AS":["define",{"sourceInterval":[209,289]},null,[],["alt",{"sourceInterval":[219,289]},["app",{"sourceInterval":[219,228]},"AS_addition",[]],["app",{"sourceInterval":[249,263]},"AS_subtraction",[]],["app",{"sourceInterval":[287,289]},"MD",[]]]],"MD_multiplication":["define",{"sourceInterval":[330,362]},null,[],["seq",{"sourceInterval":[330,343]},["app",{"sourceInterval":[330,332]},"MD",[]],["app",{"sourceInterval":[333,341]},"multiply",[]],["app",{"sourceInterval":[342,343]},"E",[]]]],"MD_division":["define",{"sourceInterval":[370,394]},null,[],["seq",{"sourceInterval":[370,381]},["app",{"sourceInterval":[370,372]},"MD",[]],["app",{"sourceInterval":[373,379]},"divide",[]],["app",{"sourceInterval":[380,381]},"E",[]]]],"MD_modulo":["define",{"sourceInterval":[402,424]},null,[],["seq",{"sourceInterval":[402,413]},["app",{"sourceInterval":[402,404]},"MD",[]],["app",{"sourceInterval":[405,411]},"modulo",[]],["app",{"sourceInterval":[412,413]},"E",[]]]],"MD":["define",{"sourceInterval":[320,433]},null,[],["alt",{"sourceInterval":[330,433]},["app",{"sourceInterval":[330,343]},"MD_multiplication",[]],["app",{"sourceInterval":[370,381]},"MD_division",[]],["app",{"sourceInterval":[402,413]},"MD_modulo",[]],["app",{"sourceInterval":[432,433]},"E",[]]]],"E_exponent":["define",{"sourceInterval":[463,488]},null,[],["seq",{"sourceInterval":[463,475]},["app",{"sourceInterval":[463,464]},"P",[]],["app",{"sourceInterval":[465,473]},"exponent",[]],["app",{"sourceInterval":[474,475]},"E",[]]]],"E":["define",{"sourceInterval":[454,497]},null,[],["alt",{"sourceInterval":[463,497]},["app",{"sourceInterval":[463,475]},"E_exponent",[]],["app",{"sourceInterval":[496,497]},"P",[]]]],"P_parenthesis":["define",{"sourceInterval":[530,564]},null,[],["seq",{"sourceInterval":[530,548]},["terminal",{"sourceInterval":[530,533]},"("],["app",{"sourceInterval":[534,544]},"Expression",[]],["terminal",{"sourceInterval":[545,548]},")"]]],"P":["define",{"sourceInterval":[521,581]},null,[],["alt",{"sourceInterval":[530,581]},["app",{"sourceInterval":[530,548]},"P_parenthesis",[]],["app",{"sourceInterval":[572,581]},"Primitive",[]]]],"Primitive_positive":["define",{"sourceInterval":[608,633]},null,[],["seq",{"sourceInterval":[608,621]},["terminal",{"sourceInterval":[608,611]},"+"],["app",{"sourceInterval":[612,621]},"Primitive",[]]]],"Primitive_negative":["define",{"sourceInterval":[641,666]},null,[],["seq",{"sourceInterval":[641,654]},["terminal",{"sourceInterval":[641,644]},"-"],["app",{"sourceInterval":[645,654]},"Primitive",[]]]],"Primitive":["define",{"sourceInterval":[591,707]},null,[],["alt",{"sourceInterval":[608,707]},["app",{"sourceInterval":[608,621]},"Primitive_positive",[]],["app",{"sourceInterval":[641,654]},"Primitive_negative",[]],["app",{"sourceInterval":[674,682]},"constant",[]],["app",{"sourceInterval":[690,693]},"hex",[]],["app",{"sourceInterval":[701,707]},"number",[]]]],"add":["define",{"sourceInterval":[734,838]},null,[],["alt",{"sourceInterval":[745,838]},["terminal",{"sourceInterval":[745,748]},"+"],["app",{"sourceInterval":[756,779]},"caseInsensitive",[["terminal",{"sourceInterval":[772,778]},"plus"]]],["app",{"sourceInterval":[786,808]},"caseInsensitive",[["terminal",{"sourceInterval":[802,807]},"add"]]],["app",{"sourceInterval":[816,838]},"caseInsensitive",[["terminal",{"sourceInterval":[832,837]},"and"]]]]],"subtract":["define",{"sourceInterval":[848,999]},null,[],["alt",{"sourceInterval":[865,999]},["terminal",{"sourceInterval":[865,868]},"-"],["app",{"sourceInterval":[876,900]},"caseInsensitive",[["terminal",{"sourceInterval":[892,899]},"minus"]]],["app",{"sourceInterval":[908,935]},"caseInsensitive",[["terminal",{"sourceInterval":[924,934]},"subtract"]]],["app",{"sourceInterval":[943,968]},"caseInsensitive",[["terminal",{"sourceInterval":[959,967]},"remove"]]],["app",{"sourceInterval":[976,999]},"caseInsensitive",[["terminal",{"sourceInterval":[992,998]},"take"]]]]],"multiply":["define",{"sourceInterval":[1011,1289]},null,[],["alt",{"sourceInterval":[1028,1289]},["terminal",{"sourceInterval":[1028,1031]},"*"],["terminal",{"sourceInterval":[1039,1044]},"\\*"],["terminal",{"sourceInterval":[1084,1094]},"×"],["app",{"sourceInterval":[1129,1149]},"caseInsensitive",[["terminal",{"sourceInterval":[1145,1148]},"x"]]],["app",{"sourceInterval":[1157,1184]},"caseInsensitive",[["terminal",{"sourceInterval":[1173,1183]},"times by"]]],["app",{"sourceInterval":[1192,1216]},"caseInsensitive",[["terminal",{"sourceInterval":[1208,1215]},"times"]]],["app",{"sourceInterval":[1224,1254]},"caseInsensitive",[["terminal",{"sourceInterval":[1240,1253]},"multiply by"]]],["app",{"sourceInterval":[1262,1289]},"caseInsensitive",[["terminal",{"sourceInterval":[1278,1288]},"multiply"]]]]],"divide":["define",{"sourceInterval":[1301,1426]},null,[],["alt",{"sourceInterval":[1315,1426]},["terminal",{"sourceInterval":[1315,1318]},"/"],["terminal",{"sourceInterval":[1326,1336]},"÷"],["app",{"sourceInterval":[1365,1393]},"caseInsensitive",[["terminal",{"sourceInterval":[1381,1392]},"divide by"]]],["app",{"sourceInterval":[1401,1426]},"caseInsensitive",[["terminal",{"sourceInterval":[1417,1425]},"divide"]]]]],"modulo":["define",{"sourceInterval":[1432,1512]},null,[],["alt",{"sourceInterval":[1446,1512]},["terminal",{"sourceInterval":[1446,1449]},"%"],["app",{"sourceInterval":[1457,1482]},"caseInsensitive",[["terminal",{"sourceInterval":[1473,1481]},"modulo"]]],["app",{"sourceInterval":[1490,1512]},"caseInsensitive",[["terminal",{"sourceInterval":[1506,1511]},"mod"]]]]],"exponent":["define",{"sourceInterval":[1518,1681]},null,[],["alt",{"sourceInterval":[1534,1681]},["terminal",{"sourceInterval":[1534,1537]},"^"],["app",{"sourceInterval":[1545,1579]},"caseInsensitive",[["terminal",{"sourceInterval":[1561,1578]},"to the power of"]]],["app",{"sourceInterval":[1587,1614]},"caseInsensitive",[["terminal",{"sourceInterval":[1603,1613]},"power of"]]],["app",{"sourceInterval":[1622,1649]},"caseInsensitive",[["terminal",{"sourceInterval":[1638,1648]},"exponent"]]],["app",{"sourceInterval":[1657,1681]},"caseInsensitive",[["terminal",{"sourceInterval":[1673,1680]},"prime"]]]]],"constant":["define",{"sourceInterval":[1687,1754]},null,[],["alt",{"sourceInterval":[1704,1754]},["app",{"sourceInterval":[1704,1725]},"caseInsensitive",[["terminal",{"sourceInterval":[1720,1724]},"PI"]]],["app",{"sourceInterval":[1734,1754]},"caseInsensitive",[["terminal",{"sourceInterval":[1750,1753]},"E"]]]]],"number_fract":["define",{"sourceInterval":[1774,1801]},null,[],["seq",{"sourceInterval":[1774,1791]},["star",{"sourceInterval":[1774,1780]},["app",{"sourceInterval":[1774,1779]},"digit",[]]],["terminal",{"sourceInterval":[1781,1784]},"."],["plus",{"sourceInterval":[1785,1791]},["app",{"sourceInterval":[1785,1790]},"digit",[]]]]],"number_whole":["define",{"sourceInterval":[1809,1836]},null,[],["plus",{"sourceInterval":[1809,1815]},["app",{"sourceInterval":[1809,1814]},"digit",[]]]],"number":["define",{"sourceInterval":[1760,1836]},null,[],["alt",{"sourceInterval":[1774,1836]},["app",{"sourceInterval":[1774,1791]},"number_fract",[]],["app",{"sourceInterval":[1809,1815]},"number_whole",[]]]],"hex":["define",{"sourceInterval":[1844,1890]},null,[],["alt",{"sourceInterval":[1855,1890]},["seq",{"sourceInterval":[1855,1869]},["terminal",{"sourceInterval":[1855,1859]},"0x"],["plus",{"sourceInterval":[1860,1869]},["app",{"sourceInterval":[1860,1868]},"hexDigit",[]]]],["seq",{"sourceInterval":[1877,1890]},["plus",{"sourceInterval":[1877,1886]},["app",{"sourceInterval":[1877,1885]},"hexDigit",[]]],["terminal",{"sourceInterval":[1887,1890]},"h"]]]]}]);module.exports=result; \ No newline at end of file diff --git a/src/grammars/function/FunctionArithmetic.ohm-bundle.js b/src/grammars/function/FunctionArithmetic.ohm-bundle.js index 29a17ff..b73a5f4 100644 --- a/src/grammars/function/FunctionArithmetic.ohm-bundle.js +++ b/src/grammars/function/FunctionArithmetic.ohm-bundle.js @@ -1 +1 @@ -'use strict';const {makeRecipe}=require('ohm-js');const result={};result.BasicArithmetic=makeRecipe(["grammar",{"source":"BasicArithmetic {\r\n Expression\r\n = LogicalShift\r\n\r\n LogicalShift\r\n = LogicalShift \"<<\" LogicalShift -- left\r\n | LogicalShift \">>\" LogicalShift -- right\r\n | AS \r\n\r\n // Addition or Subtraction\r\n AS\r\n = AS add MD -- addition\r\n | AS subtract MD -- subtraction\r\n | MD\r\n\r\n // Multiply or Divide\r\n MD\r\n = MD multiply E -- multiplication\r\n | MD divide E -- division\r\n | MD modulo E -- modulo\r\n | E\r\n\r\n // Exponent\r\n E\r\n = P exponent E -- exponent\r\n | P\r\n\r\n // Parenthesis\r\n P\r\n = \"(\" Expression \")\" -- parenthesis\r\n | Primitive\r\n \r\n Primitive\r\n = \"+\" Primitive -- positive\r\n | \"-\" Primitive -- negative\r\n | constant\r\n | hex\r\n | number\r\n \r\n // Lexical Rules\r\n add \r\n \t= \"+\"\r\n | caseInsensitive<\"plus\">\r\n \t| caseInsensitive<\"add\">\r\n | caseInsensitive<\"and\">\r\n \r\n subtract \r\n = \"-\"\r\n | caseInsensitive<\"minus\">\r\n | caseInsensitive<\"subtract\">\r\n | caseInsensitive<\"remove\">\r\n | caseInsensitive<\"take\">\r\n \r\n multiply \r\n = \"*\"\r\n | caseInsensitive<\"times by\">\r\n | caseInsensitive<\"times\">\r\n | caseInsensitive<\"multiply by\">\r\n | caseInsensitive<\"multiply\">\r\n \r\n divide\r\n = \"/\"\r\n | caseInsensitive<\"divide by\">\r\n | caseInsensitive<\"divide\">\r\n\r\n modulo\r\n = \"%\"\r\n | caseInsensitive<\"modulo\">\r\n | caseInsensitive<\"mod\">\r\n\r\n exponent\r\n = \"^\"\r\n | caseInsensitive<\"to the power of\">\r\n | caseInsensitive<\"power of\">\r\n | caseInsensitive<\"exponent\">\r\n | caseInsensitive<\"prime\">\r\n\r\n constant \r\n \t= caseInsensitive<\"PI\"> \r\n | caseInsensitive<\"E\">\r\n\r\n number\r\n = digit* \".\" digit+ -- fract\r\n | digit+ -- whole\r\n \r\n hex\r\n = \"0x\" hexDigit+\r\n | hexDigit+ \"h\"\r\n}"},"BasicArithmetic",null,"Expression",{"Expression":["define",{"sourceInterval":[21,51]},null,[],["app",{"sourceInterval":[39,51]},"LogicalShift",[]]],"LogicalShift_left":["define",{"sourceInterval":[77,115]},null,[],["seq",{"sourceInterval":[77,107]},["app",{"sourceInterval":[77,89]},"LogicalShift",[]],["terminal",{"sourceInterval":[90,94]},"<<"],["app",{"sourceInterval":[95,107]},"LogicalShift",[]]]],"LogicalShift_right":["define",{"sourceInterval":[123,162]},null,[],["seq",{"sourceInterval":[123,153]},["app",{"sourceInterval":[123,135]},"LogicalShift",[]],["terminal",{"sourceInterval":[136,140]},">>"],["app",{"sourceInterval":[141,153]},"LogicalShift",[]]]],"LogicalShift":["define",{"sourceInterval":[57,172]},null,[],["alt",{"sourceInterval":[77,172]},["app",{"sourceInterval":[77,107]},"LogicalShift_left",[]],["app",{"sourceInterval":[123,153]},"LogicalShift_right",[]],["app",{"sourceInterval":[170,172]},"AS",[]]]],"AS_addition":["define",{"sourceInterval":[219,241]},null,[],["seq",{"sourceInterval":[219,228]},["app",{"sourceInterval":[219,221]},"AS",[]],["app",{"sourceInterval":[222,225]},"add",[]],["app",{"sourceInterval":[226,228]},"MD",[]]]],"AS_subtraction":["define",{"sourceInterval":[249,279]},null,[],["seq",{"sourceInterval":[249,263]},["app",{"sourceInterval":[249,251]},"AS",[]],["app",{"sourceInterval":[252,260]},"subtract",[]],["app",{"sourceInterval":[261,263]},"MD",[]]]],"AS":["define",{"sourceInterval":[209,289]},null,[],["alt",{"sourceInterval":[219,289]},["app",{"sourceInterval":[219,228]},"AS_addition",[]],["app",{"sourceInterval":[249,263]},"AS_subtraction",[]],["app",{"sourceInterval":[287,289]},"MD",[]]]],"MD_multiplication":["define",{"sourceInterval":[330,362]},null,[],["seq",{"sourceInterval":[330,343]},["app",{"sourceInterval":[330,332]},"MD",[]],["app",{"sourceInterval":[333,341]},"multiply",[]],["app",{"sourceInterval":[342,343]},"E",[]]]],"MD_division":["define",{"sourceInterval":[370,394]},null,[],["seq",{"sourceInterval":[370,381]},["app",{"sourceInterval":[370,372]},"MD",[]],["app",{"sourceInterval":[373,379]},"divide",[]],["app",{"sourceInterval":[380,381]},"E",[]]]],"MD_modulo":["define",{"sourceInterval":[402,424]},null,[],["seq",{"sourceInterval":[402,413]},["app",{"sourceInterval":[402,404]},"MD",[]],["app",{"sourceInterval":[405,411]},"modulo",[]],["app",{"sourceInterval":[412,413]},"E",[]]]],"MD":["define",{"sourceInterval":[320,433]},null,[],["alt",{"sourceInterval":[330,433]},["app",{"sourceInterval":[330,343]},"MD_multiplication",[]],["app",{"sourceInterval":[370,381]},"MD_division",[]],["app",{"sourceInterval":[402,413]},"MD_modulo",[]],["app",{"sourceInterval":[432,433]},"E",[]]]],"E_exponent":["define",{"sourceInterval":[463,488]},null,[],["seq",{"sourceInterval":[463,475]},["app",{"sourceInterval":[463,464]},"P",[]],["app",{"sourceInterval":[465,473]},"exponent",[]],["app",{"sourceInterval":[474,475]},"E",[]]]],"E":["define",{"sourceInterval":[454,497]},null,[],["alt",{"sourceInterval":[463,497]},["app",{"sourceInterval":[463,475]},"E_exponent",[]],["app",{"sourceInterval":[496,497]},"P",[]]]],"P_parenthesis":["define",{"sourceInterval":[530,564]},null,[],["seq",{"sourceInterval":[530,548]},["terminal",{"sourceInterval":[530,533]},"("],["app",{"sourceInterval":[534,544]},"Expression",[]],["terminal",{"sourceInterval":[545,548]},")"]]],"P":["define",{"sourceInterval":[521,581]},null,[],["alt",{"sourceInterval":[530,581]},["app",{"sourceInterval":[530,548]},"P_parenthesis",[]],["app",{"sourceInterval":[572,581]},"Primitive",[]]]],"Primitive_positive":["define",{"sourceInterval":[608,633]},null,[],["seq",{"sourceInterval":[608,621]},["terminal",{"sourceInterval":[608,611]},"+"],["app",{"sourceInterval":[612,621]},"Primitive",[]]]],"Primitive_negative":["define",{"sourceInterval":[641,666]},null,[],["seq",{"sourceInterval":[641,654]},["terminal",{"sourceInterval":[641,644]},"-"],["app",{"sourceInterval":[645,654]},"Primitive",[]]]],"Primitive":["define",{"sourceInterval":[591,707]},null,[],["alt",{"sourceInterval":[608,707]},["app",{"sourceInterval":[608,621]},"Primitive_positive",[]],["app",{"sourceInterval":[641,654]},"Primitive_negative",[]],["app",{"sourceInterval":[674,682]},"constant",[]],["app",{"sourceInterval":[690,693]},"hex",[]],["app",{"sourceInterval":[701,707]},"number",[]]]],"add":["define",{"sourceInterval":[734,838]},null,[],["alt",{"sourceInterval":[745,838]},["terminal",{"sourceInterval":[745,748]},"+"],["app",{"sourceInterval":[756,779]},"caseInsensitive",[["terminal",{"sourceInterval":[772,778]},"plus"]]],["app",{"sourceInterval":[786,808]},"caseInsensitive",[["terminal",{"sourceInterval":[802,807]},"add"]]],["app",{"sourceInterval":[816,838]},"caseInsensitive",[["terminal",{"sourceInterval":[832,837]},"and"]]]]],"subtract":["define",{"sourceInterval":[848,999]},null,[],["alt",{"sourceInterval":[865,999]},["terminal",{"sourceInterval":[865,868]},"-"],["app",{"sourceInterval":[876,900]},"caseInsensitive",[["terminal",{"sourceInterval":[892,899]},"minus"]]],["app",{"sourceInterval":[908,935]},"caseInsensitive",[["terminal",{"sourceInterval":[924,934]},"subtract"]]],["app",{"sourceInterval":[943,968]},"caseInsensitive",[["terminal",{"sourceInterval":[959,967]},"remove"]]],["app",{"sourceInterval":[976,999]},"caseInsensitive",[["terminal",{"sourceInterval":[992,998]},"take"]]]]],"multiply":["define",{"sourceInterval":[1011,1171]},null,[],["alt",{"sourceInterval":[1028,1171]},["terminal",{"sourceInterval":[1028,1031]},"*"],["app",{"sourceInterval":[1039,1066]},"caseInsensitive",[["terminal",{"sourceInterval":[1055,1065]},"times by"]]],["app",{"sourceInterval":[1074,1098]},"caseInsensitive",[["terminal",{"sourceInterval":[1090,1097]},"times"]]],["app",{"sourceInterval":[1106,1136]},"caseInsensitive",[["terminal",{"sourceInterval":[1122,1135]},"multiply by"]]],["app",{"sourceInterval":[1144,1171]},"caseInsensitive",[["terminal",{"sourceInterval":[1160,1170]},"multiply"]]]]],"divide":["define",{"sourceInterval":[1183,1269]},null,[],["alt",{"sourceInterval":[1197,1269]},["terminal",{"sourceInterval":[1197,1200]},"/"],["app",{"sourceInterval":[1208,1236]},"caseInsensitive",[["terminal",{"sourceInterval":[1224,1235]},"divide by"]]],["app",{"sourceInterval":[1244,1269]},"caseInsensitive",[["terminal",{"sourceInterval":[1260,1268]},"divide"]]]]],"modulo":["define",{"sourceInterval":[1275,1355]},null,[],["alt",{"sourceInterval":[1289,1355]},["terminal",{"sourceInterval":[1289,1292]},"%"],["app",{"sourceInterval":[1300,1325]},"caseInsensitive",[["terminal",{"sourceInterval":[1316,1324]},"modulo"]]],["app",{"sourceInterval":[1333,1355]},"caseInsensitive",[["terminal",{"sourceInterval":[1349,1354]},"mod"]]]]],"exponent":["define",{"sourceInterval":[1361,1524]},null,[],["alt",{"sourceInterval":[1377,1524]},["terminal",{"sourceInterval":[1377,1380]},"^"],["app",{"sourceInterval":[1388,1422]},"caseInsensitive",[["terminal",{"sourceInterval":[1404,1421]},"to the power of"]]],["app",{"sourceInterval":[1430,1457]},"caseInsensitive",[["terminal",{"sourceInterval":[1446,1456]},"power of"]]],["app",{"sourceInterval":[1465,1492]},"caseInsensitive",[["terminal",{"sourceInterval":[1481,1491]},"exponent"]]],["app",{"sourceInterval":[1500,1524]},"caseInsensitive",[["terminal",{"sourceInterval":[1516,1523]},"prime"]]]]],"constant":["define",{"sourceInterval":[1530,1597]},null,[],["alt",{"sourceInterval":[1547,1597]},["app",{"sourceInterval":[1547,1568]},"caseInsensitive",[["terminal",{"sourceInterval":[1563,1567]},"PI"]]],["app",{"sourceInterval":[1577,1597]},"caseInsensitive",[["terminal",{"sourceInterval":[1593,1596]},"E"]]]]],"number_fract":["define",{"sourceInterval":[1617,1644]},null,[],["seq",{"sourceInterval":[1617,1634]},["star",{"sourceInterval":[1617,1623]},["app",{"sourceInterval":[1617,1622]},"digit",[]]],["terminal",{"sourceInterval":[1624,1627]},"."],["plus",{"sourceInterval":[1628,1634]},["app",{"sourceInterval":[1628,1633]},"digit",[]]]]],"number_whole":["define",{"sourceInterval":[1652,1679]},null,[],["plus",{"sourceInterval":[1652,1658]},["app",{"sourceInterval":[1652,1657]},"digit",[]]]],"number":["define",{"sourceInterval":[1603,1679]},null,[],["alt",{"sourceInterval":[1617,1679]},["app",{"sourceInterval":[1617,1634]},"number_fract",[]],["app",{"sourceInterval":[1652,1658]},"number_whole",[]]]],"hex":["define",{"sourceInterval":[1687,1733]},null,[],["alt",{"sourceInterval":[1698,1733]},["seq",{"sourceInterval":[1698,1712]},["terminal",{"sourceInterval":[1698,1702]},"0x"],["plus",{"sourceInterval":[1703,1712]},["app",{"sourceInterval":[1703,1711]},"hexDigit",[]]]],["seq",{"sourceInterval":[1720,1733]},["plus",{"sourceInterval":[1720,1729]},["app",{"sourceInterval":[1720,1728]},"hexDigit",[]]],["terminal",{"sourceInterval":[1730,1733]},"h"]]]]}]);result.FunctionArithmetic=makeRecipe(["grammar",{"source":"FunctionArithmetic <: BasicArithmetic {\r\n P\r\n := \"(\" Expression \")\" -- parenthesis\r\n | Function\r\n | Primitive\r\n\r\n Function\r\n = DegreesToRadians\r\n | RadiansToDegrees\r\n | LogBase\r\n | JavascriptMathObjectFunction\r\n\r\n LogBase \r\n = caseInsensitive<\"logb\"> \"(\" number \",\" number \")\"\r\n | caseInsensitive<\"logBase\"> \"(\" number \",\" number \")\"\r\n\r\n DegreesToRadians \r\n = caseInsensitive<\"degToRad\"> \"(\" number \")\"\r\n | caseInsensitive<\"degreesToRadians\"> \"(\" number \")\"\r\n | caseInsensitive<\"radians\"> \"(\" number \")\"\r\n | caseInsensitive<\"toRadians\"> \"(\" number \")\"\r\n\r\n RadiansToDegrees \r\n = caseInsensitive<\"radToDeg\"> \"(\" number \")\"\r\n | caseInsensitive<\"radiansToDegrees\"> \"(\" number \")\"\r\n | caseInsensitive<\"degrees\"> \"(\" number \")\"\r\n | caseInsensitive<\"toDegrees\"> \"(\" number \")\"\r\n\r\n // Pass-through for Math.* functions from JS\r\n JavascriptMathObjectFunction = mathJsName \"(\" ListOf \")\"\r\n\r\n mathJsName \r\n \t = caseInsensitive<\"sinh\">\r\n | caseInsensitive<\"sin\">\r\n | caseInsensitive<\"abs\">\r\n | caseInsensitive<\"acosh\">\r\n | caseInsensitive<\"acos\">\r\n | caseInsensitive<\"asinh\">\r\n | caseInsensitive<\"asin\">\r\n | caseInsensitive<\"atan2\">\r\n | caseInsensitive<\"atanh\">\r\n | caseInsensitive<\"atan\">\r\n | caseInsensitive<\"cbrt\">\r\n | caseInsensitive<\"ceil\">\r\n | caseInsensitive<\"clz32\">\r\n | caseInsensitive<\"cosh\">\r\n | caseInsensitive<\"cos\">\r\n | caseInsensitive<\"expm1\">\r\n | caseInsensitive<\"exp\">\r\n | caseInsensitive<\"floor\">\r\n | caseInsensitive<\"fround\">\r\n | caseInsensitive<\"hypot\">\r\n | caseInsensitive<\"imul\">\r\n | caseInsensitive<\"log10\">\r\n | caseInsensitive<\"log1p\">\r\n | caseInsensitive<\"log2\">\r\n | caseInsensitive<\"log\">\r\n | caseInsensitive<\"max\">\r\n | caseInsensitive<\"min\">\r\n | caseInsensitive<\"pow\">\r\n | caseInsensitive<\"random\">\r\n | caseInsensitive<\"round\">\r\n | caseInsensitive<\"sign\">\r\n | caseInsensitive<\"sqrt\">\r\n | caseInsensitive<\"tanh\">\r\n | caseInsensitive<\"tan\">\r\n | caseInsensitive<\"trunc\">\r\n}"},"FunctionArithmetic",result.BasicArithmetic,"Expression",{"P_parenthesis":["override",{"sourceInterval":[53,87]},null,[],["seq",{"sourceInterval":[53,71]},["terminal",{"sourceInterval":[53,56]},"("],["app",{"sourceInterval":[57,67]},"Expression",[]],["terminal",{"sourceInterval":[68,71]},")"]]],"P":["override",{"sourceInterval":[43,120]},null,[],["alt",{"sourceInterval":[53,120]},["app",{"sourceInterval":[53,71]},"P_parenthesis",[]],["app",{"sourceInterval":[95,103]},"Function",[]],["app",{"sourceInterval":[111,120]},"Primitive",[]]]],"Function":["define",{"sourceInterval":[126,233]},null,[],["alt",{"sourceInterval":[142,233]},["app",{"sourceInterval":[142,158]},"DegreesToRadians",[]],["app",{"sourceInterval":[166,182]},"RadiansToDegrees",[]],["app",{"sourceInterval":[190,197]},"LogBase",[]],["app",{"sourceInterval":[205,233]},"JavascriptMathObjectFunction",[]]]],"LogBase":["define",{"sourceInterval":[239,364]},null,[],["alt",{"sourceInterval":[255,364]},["seq",{"sourceInterval":[255,304]},["app",{"sourceInterval":[255,278]},"caseInsensitive",[["terminal",{"sourceInterval":[271,277]},"logb"]]],["terminal",{"sourceInterval":[279,282]},"("],["app",{"sourceInterval":[283,289]},"number",[]],["terminal",{"sourceInterval":[290,293]},","],["app",{"sourceInterval":[294,300]},"number",[]],["terminal",{"sourceInterval":[301,304]},")"]],["seq",{"sourceInterval":[312,364]},["app",{"sourceInterval":[312,338]},"caseInsensitive",[["terminal",{"sourceInterval":[328,337]},"logBase"]]],["terminal",{"sourceInterval":[339,342]},"("],["app",{"sourceInterval":[343,349]},"number",[]],["terminal",{"sourceInterval":[350,353]},","],["app",{"sourceInterval":[354,360]},"number",[]],["terminal",{"sourceInterval":[361,364]},")"]]]],"DegreesToRadians":["define",{"sourceInterval":[370,595]},null,[],["alt",{"sourceInterval":[395,595]},["seq",{"sourceInterval":[395,437]},["app",{"sourceInterval":[395,422]},"caseInsensitive",[["terminal",{"sourceInterval":[411,421]},"degToRad"]]],["terminal",{"sourceInterval":[423,426]},"("],["app",{"sourceInterval":[427,433]},"number",[]],["terminal",{"sourceInterval":[434,437]},")"]],["seq",{"sourceInterval":[445,495]},["app",{"sourceInterval":[445,480]},"caseInsensitive",[["terminal",{"sourceInterval":[461,479]},"degreesToRadians"]]],["terminal",{"sourceInterval":[481,484]},"("],["app",{"sourceInterval":[485,491]},"number",[]],["terminal",{"sourceInterval":[492,495]},")"]],["seq",{"sourceInterval":[503,544]},["app",{"sourceInterval":[503,529]},"caseInsensitive",[["terminal",{"sourceInterval":[519,528]},"radians"]]],["terminal",{"sourceInterval":[530,533]},"("],["app",{"sourceInterval":[534,540]},"number",[]],["terminal",{"sourceInterval":[541,544]},")"]],["seq",{"sourceInterval":[552,595]},["app",{"sourceInterval":[552,580]},"caseInsensitive",[["terminal",{"sourceInterval":[568,579]},"toRadians"]]],["terminal",{"sourceInterval":[581,584]},"("],["app",{"sourceInterval":[585,591]},"number",[]],["terminal",{"sourceInterval":[592,595]},")"]]]],"RadiansToDegrees":["define",{"sourceInterval":[601,826]},null,[],["alt",{"sourceInterval":[626,826]},["seq",{"sourceInterval":[626,668]},["app",{"sourceInterval":[626,653]},"caseInsensitive",[["terminal",{"sourceInterval":[642,652]},"radToDeg"]]],["terminal",{"sourceInterval":[654,657]},"("],["app",{"sourceInterval":[658,664]},"number",[]],["terminal",{"sourceInterval":[665,668]},")"]],["seq",{"sourceInterval":[676,726]},["app",{"sourceInterval":[676,711]},"caseInsensitive",[["terminal",{"sourceInterval":[692,710]},"radiansToDegrees"]]],["terminal",{"sourceInterval":[712,715]},"("],["app",{"sourceInterval":[716,722]},"number",[]],["terminal",{"sourceInterval":[723,726]},")"]],["seq",{"sourceInterval":[734,775]},["app",{"sourceInterval":[734,760]},"caseInsensitive",[["terminal",{"sourceInterval":[750,759]},"degrees"]]],["terminal",{"sourceInterval":[761,764]},"("],["app",{"sourceInterval":[765,771]},"number",[]],["terminal",{"sourceInterval":[772,775]},")"]],["seq",{"sourceInterval":[783,826]},["app",{"sourceInterval":[783,811]},"caseInsensitive",[["terminal",{"sourceInterval":[799,810]},"toDegrees"]]],["terminal",{"sourceInterval":[812,815]},"("],["app",{"sourceInterval":[816,822]},"number",[]],["terminal",{"sourceInterval":[823,826]},")"]]]],"JavascriptMathObjectFunction":["define",{"sourceInterval":[880,953]},null,[],["seq",{"sourceInterval":[911,953]},["app",{"sourceInterval":[911,921]},"mathJsName",[]],["terminal",{"sourceInterval":[922,925]},"("],["app",{"sourceInterval":[926,949]},"ListOf",[["app",{"sourceInterval":[933,943]},"Expression",[]],["terminal",{"sourceInterval":[945,948]},","]]],["terminal",{"sourceInterval":[950,953]},")"]]],"mathJsName":["define",{"sourceInterval":[959,2062]},null,[],["alt",{"sourceInterval":[978,2062]},["app",{"sourceInterval":[978,1001]},"caseInsensitive",[["terminal",{"sourceInterval":[994,1000]},"sinh"]]],["app",{"sourceInterval":[1009,1031]},"caseInsensitive",[["terminal",{"sourceInterval":[1025,1030]},"sin"]]],["app",{"sourceInterval":[1039,1061]},"caseInsensitive",[["terminal",{"sourceInterval":[1055,1060]},"abs"]]],["app",{"sourceInterval":[1069,1093]},"caseInsensitive",[["terminal",{"sourceInterval":[1085,1092]},"acosh"]]],["app",{"sourceInterval":[1101,1124]},"caseInsensitive",[["terminal",{"sourceInterval":[1117,1123]},"acos"]]],["app",{"sourceInterval":[1132,1156]},"caseInsensitive",[["terminal",{"sourceInterval":[1148,1155]},"asinh"]]],["app",{"sourceInterval":[1164,1187]},"caseInsensitive",[["terminal",{"sourceInterval":[1180,1186]},"asin"]]],["app",{"sourceInterval":[1195,1219]},"caseInsensitive",[["terminal",{"sourceInterval":[1211,1218]},"atan2"]]],["app",{"sourceInterval":[1227,1251]},"caseInsensitive",[["terminal",{"sourceInterval":[1243,1250]},"atanh"]]],["app",{"sourceInterval":[1259,1282]},"caseInsensitive",[["terminal",{"sourceInterval":[1275,1281]},"atan"]]],["app",{"sourceInterval":[1290,1313]},"caseInsensitive",[["terminal",{"sourceInterval":[1306,1312]},"cbrt"]]],["app",{"sourceInterval":[1321,1344]},"caseInsensitive",[["terminal",{"sourceInterval":[1337,1343]},"ceil"]]],["app",{"sourceInterval":[1352,1376]},"caseInsensitive",[["terminal",{"sourceInterval":[1368,1375]},"clz32"]]],["app",{"sourceInterval":[1384,1407]},"caseInsensitive",[["terminal",{"sourceInterval":[1400,1406]},"cosh"]]],["app",{"sourceInterval":[1415,1437]},"caseInsensitive",[["terminal",{"sourceInterval":[1431,1436]},"cos"]]],["app",{"sourceInterval":[1445,1469]},"caseInsensitive",[["terminal",{"sourceInterval":[1461,1468]},"expm1"]]],["app",{"sourceInterval":[1477,1499]},"caseInsensitive",[["terminal",{"sourceInterval":[1493,1498]},"exp"]]],["app",{"sourceInterval":[1507,1531]},"caseInsensitive",[["terminal",{"sourceInterval":[1523,1530]},"floor"]]],["app",{"sourceInterval":[1539,1564]},"caseInsensitive",[["terminal",{"sourceInterval":[1555,1563]},"fround"]]],["app",{"sourceInterval":[1572,1596]},"caseInsensitive",[["terminal",{"sourceInterval":[1588,1595]},"hypot"]]],["app",{"sourceInterval":[1604,1627]},"caseInsensitive",[["terminal",{"sourceInterval":[1620,1626]},"imul"]]],["app",{"sourceInterval":[1635,1659]},"caseInsensitive",[["terminal",{"sourceInterval":[1651,1658]},"log10"]]],["app",{"sourceInterval":[1667,1691]},"caseInsensitive",[["terminal",{"sourceInterval":[1683,1690]},"log1p"]]],["app",{"sourceInterval":[1699,1722]},"caseInsensitive",[["terminal",{"sourceInterval":[1715,1721]},"log2"]]],["app",{"sourceInterval":[1730,1752]},"caseInsensitive",[["terminal",{"sourceInterval":[1746,1751]},"log"]]],["app",{"sourceInterval":[1760,1782]},"caseInsensitive",[["terminal",{"sourceInterval":[1776,1781]},"max"]]],["app",{"sourceInterval":[1790,1812]},"caseInsensitive",[["terminal",{"sourceInterval":[1806,1811]},"min"]]],["app",{"sourceInterval":[1820,1842]},"caseInsensitive",[["terminal",{"sourceInterval":[1836,1841]},"pow"]]],["app",{"sourceInterval":[1850,1875]},"caseInsensitive",[["terminal",{"sourceInterval":[1866,1874]},"random"]]],["app",{"sourceInterval":[1883,1907]},"caseInsensitive",[["terminal",{"sourceInterval":[1899,1906]},"round"]]],["app",{"sourceInterval":[1915,1938]},"caseInsensitive",[["terminal",{"sourceInterval":[1931,1937]},"sign"]]],["app",{"sourceInterval":[1946,1969]},"caseInsensitive",[["terminal",{"sourceInterval":[1962,1968]},"sqrt"]]],["app",{"sourceInterval":[1977,2000]},"caseInsensitive",[["terminal",{"sourceInterval":[1993,1999]},"tanh"]]],["app",{"sourceInterval":[2008,2030]},"caseInsensitive",[["terminal",{"sourceInterval":[2024,2029]},"tan"]]],["app",{"sourceInterval":[2038,2062]},"caseInsensitive",[["terminal",{"sourceInterval":[2054,2061]},"trunc"]]]]]}]);module.exports=result; \ No newline at end of file +'use strict';const {makeRecipe}=require('ohm-js');const result={};result.BasicArithmetic=makeRecipe(["grammar",{"source":"BasicArithmetic {\r\n Expression\r\n = LogicalShift\r\n\r\n LogicalShift\r\n = LogicalShift \"<<\" LogicalShift -- left\r\n | LogicalShift \">>\" LogicalShift -- right\r\n | AS \r\n\r\n // Addition or Subtraction\r\n AS\r\n = AS add MD -- addition\r\n | AS subtract MD -- subtraction\r\n | MD\r\n\r\n // Multiply or Divide\r\n MD\r\n = MD multiply E -- multiplication\r\n | MD divide E -- division\r\n | MD modulo E -- modulo\r\n | E\r\n\r\n // Exponent\r\n E\r\n = P exponent E -- exponent\r\n | P\r\n\r\n // Parenthesis\r\n P\r\n = \"(\" Expression \")\" -- parenthesis\r\n | Primitive\r\n \r\n Primitive\r\n = \"+\" Primitive -- positive\r\n | \"-\" Primitive -- negative\r\n | constant\r\n | hex\r\n | number\r\n \r\n // Lexical Rules\r\n add \r\n \t= \"+\"\r\n | caseInsensitive<\"plus\">\r\n \t| caseInsensitive<\"add\">\r\n | caseInsensitive<\"and\">\r\n \r\n subtract \r\n = \"-\"\r\n | caseInsensitive<\"minus\">\r\n | caseInsensitive<\"subtract\">\r\n | caseInsensitive<\"remove\">\r\n | caseInsensitive<\"take\">\r\n \r\n multiply \r\n = \"*\"\r\n | \"\\\\*\" // Escaped e.g. \\* for markdown\r\n | \"\\u{00D7}\" // Multiplication Symbol ×\r\n | caseInsensitive<\"x\">\r\n | caseInsensitive<\"times by\">\r\n | caseInsensitive<\"times\">\r\n | caseInsensitive<\"multiply by\">\r\n | caseInsensitive<\"multiply\">\r\n \r\n divide\r\n = \"/\"\r\n | \"\\u{00F7}\" // Division Symbol ÷\r\n | caseInsensitive<\"divide by\">\r\n | caseInsensitive<\"divide\">\r\n\r\n modulo\r\n = \"%\"\r\n | caseInsensitive<\"modulo\">\r\n | caseInsensitive<\"mod\">\r\n\r\n exponent\r\n = \"^\"\r\n | caseInsensitive<\"to the power of\">\r\n | caseInsensitive<\"power of\">\r\n | caseInsensitive<\"exponent\">\r\n | caseInsensitive<\"prime\">\r\n\r\n constant \r\n \t= caseInsensitive<\"PI\"> \r\n | caseInsensitive<\"E\">\r\n\r\n number\r\n = digit* \".\" digit+ -- fract\r\n | digit+ -- whole\r\n \r\n hex\r\n = \"0x\" hexDigit+\r\n | hexDigit+ \"h\"\r\n}"},"BasicArithmetic",null,"Expression",{"Expression":["define",{"sourceInterval":[21,51]},null,[],["app",{"sourceInterval":[39,51]},"LogicalShift",[]]],"LogicalShift_left":["define",{"sourceInterval":[77,115]},null,[],["seq",{"sourceInterval":[77,107]},["app",{"sourceInterval":[77,89]},"LogicalShift",[]],["terminal",{"sourceInterval":[90,94]},"<<"],["app",{"sourceInterval":[95,107]},"LogicalShift",[]]]],"LogicalShift_right":["define",{"sourceInterval":[123,162]},null,[],["seq",{"sourceInterval":[123,153]},["app",{"sourceInterval":[123,135]},"LogicalShift",[]],["terminal",{"sourceInterval":[136,140]},">>"],["app",{"sourceInterval":[141,153]},"LogicalShift",[]]]],"LogicalShift":["define",{"sourceInterval":[57,172]},null,[],["alt",{"sourceInterval":[77,172]},["app",{"sourceInterval":[77,107]},"LogicalShift_left",[]],["app",{"sourceInterval":[123,153]},"LogicalShift_right",[]],["app",{"sourceInterval":[170,172]},"AS",[]]]],"AS_addition":["define",{"sourceInterval":[219,241]},null,[],["seq",{"sourceInterval":[219,228]},["app",{"sourceInterval":[219,221]},"AS",[]],["app",{"sourceInterval":[222,225]},"add",[]],["app",{"sourceInterval":[226,228]},"MD",[]]]],"AS_subtraction":["define",{"sourceInterval":[249,279]},null,[],["seq",{"sourceInterval":[249,263]},["app",{"sourceInterval":[249,251]},"AS",[]],["app",{"sourceInterval":[252,260]},"subtract",[]],["app",{"sourceInterval":[261,263]},"MD",[]]]],"AS":["define",{"sourceInterval":[209,289]},null,[],["alt",{"sourceInterval":[219,289]},["app",{"sourceInterval":[219,228]},"AS_addition",[]],["app",{"sourceInterval":[249,263]},"AS_subtraction",[]],["app",{"sourceInterval":[287,289]},"MD",[]]]],"MD_multiplication":["define",{"sourceInterval":[330,362]},null,[],["seq",{"sourceInterval":[330,343]},["app",{"sourceInterval":[330,332]},"MD",[]],["app",{"sourceInterval":[333,341]},"multiply",[]],["app",{"sourceInterval":[342,343]},"E",[]]]],"MD_division":["define",{"sourceInterval":[370,394]},null,[],["seq",{"sourceInterval":[370,381]},["app",{"sourceInterval":[370,372]},"MD",[]],["app",{"sourceInterval":[373,379]},"divide",[]],["app",{"sourceInterval":[380,381]},"E",[]]]],"MD_modulo":["define",{"sourceInterval":[402,424]},null,[],["seq",{"sourceInterval":[402,413]},["app",{"sourceInterval":[402,404]},"MD",[]],["app",{"sourceInterval":[405,411]},"modulo",[]],["app",{"sourceInterval":[412,413]},"E",[]]]],"MD":["define",{"sourceInterval":[320,433]},null,[],["alt",{"sourceInterval":[330,433]},["app",{"sourceInterval":[330,343]},"MD_multiplication",[]],["app",{"sourceInterval":[370,381]},"MD_division",[]],["app",{"sourceInterval":[402,413]},"MD_modulo",[]],["app",{"sourceInterval":[432,433]},"E",[]]]],"E_exponent":["define",{"sourceInterval":[463,488]},null,[],["seq",{"sourceInterval":[463,475]},["app",{"sourceInterval":[463,464]},"P",[]],["app",{"sourceInterval":[465,473]},"exponent",[]],["app",{"sourceInterval":[474,475]},"E",[]]]],"E":["define",{"sourceInterval":[454,497]},null,[],["alt",{"sourceInterval":[463,497]},["app",{"sourceInterval":[463,475]},"E_exponent",[]],["app",{"sourceInterval":[496,497]},"P",[]]]],"P_parenthesis":["define",{"sourceInterval":[530,564]},null,[],["seq",{"sourceInterval":[530,548]},["terminal",{"sourceInterval":[530,533]},"("],["app",{"sourceInterval":[534,544]},"Expression",[]],["terminal",{"sourceInterval":[545,548]},")"]]],"P":["define",{"sourceInterval":[521,581]},null,[],["alt",{"sourceInterval":[530,581]},["app",{"sourceInterval":[530,548]},"P_parenthesis",[]],["app",{"sourceInterval":[572,581]},"Primitive",[]]]],"Primitive_positive":["define",{"sourceInterval":[608,633]},null,[],["seq",{"sourceInterval":[608,621]},["terminal",{"sourceInterval":[608,611]},"+"],["app",{"sourceInterval":[612,621]},"Primitive",[]]]],"Primitive_negative":["define",{"sourceInterval":[641,666]},null,[],["seq",{"sourceInterval":[641,654]},["terminal",{"sourceInterval":[641,644]},"-"],["app",{"sourceInterval":[645,654]},"Primitive",[]]]],"Primitive":["define",{"sourceInterval":[591,707]},null,[],["alt",{"sourceInterval":[608,707]},["app",{"sourceInterval":[608,621]},"Primitive_positive",[]],["app",{"sourceInterval":[641,654]},"Primitive_negative",[]],["app",{"sourceInterval":[674,682]},"constant",[]],["app",{"sourceInterval":[690,693]},"hex",[]],["app",{"sourceInterval":[701,707]},"number",[]]]],"add":["define",{"sourceInterval":[734,838]},null,[],["alt",{"sourceInterval":[745,838]},["terminal",{"sourceInterval":[745,748]},"+"],["app",{"sourceInterval":[756,779]},"caseInsensitive",[["terminal",{"sourceInterval":[772,778]},"plus"]]],["app",{"sourceInterval":[786,808]},"caseInsensitive",[["terminal",{"sourceInterval":[802,807]},"add"]]],["app",{"sourceInterval":[816,838]},"caseInsensitive",[["terminal",{"sourceInterval":[832,837]},"and"]]]]],"subtract":["define",{"sourceInterval":[848,999]},null,[],["alt",{"sourceInterval":[865,999]},["terminal",{"sourceInterval":[865,868]},"-"],["app",{"sourceInterval":[876,900]},"caseInsensitive",[["terminal",{"sourceInterval":[892,899]},"minus"]]],["app",{"sourceInterval":[908,935]},"caseInsensitive",[["terminal",{"sourceInterval":[924,934]},"subtract"]]],["app",{"sourceInterval":[943,968]},"caseInsensitive",[["terminal",{"sourceInterval":[959,967]},"remove"]]],["app",{"sourceInterval":[976,999]},"caseInsensitive",[["terminal",{"sourceInterval":[992,998]},"take"]]]]],"multiply":["define",{"sourceInterval":[1011,1289]},null,[],["alt",{"sourceInterval":[1028,1289]},["terminal",{"sourceInterval":[1028,1031]},"*"],["terminal",{"sourceInterval":[1039,1044]},"\\*"],["terminal",{"sourceInterval":[1084,1094]},"×"],["app",{"sourceInterval":[1129,1149]},"caseInsensitive",[["terminal",{"sourceInterval":[1145,1148]},"x"]]],["app",{"sourceInterval":[1157,1184]},"caseInsensitive",[["terminal",{"sourceInterval":[1173,1183]},"times by"]]],["app",{"sourceInterval":[1192,1216]},"caseInsensitive",[["terminal",{"sourceInterval":[1208,1215]},"times"]]],["app",{"sourceInterval":[1224,1254]},"caseInsensitive",[["terminal",{"sourceInterval":[1240,1253]},"multiply by"]]],["app",{"sourceInterval":[1262,1289]},"caseInsensitive",[["terminal",{"sourceInterval":[1278,1288]},"multiply"]]]]],"divide":["define",{"sourceInterval":[1301,1426]},null,[],["alt",{"sourceInterval":[1315,1426]},["terminal",{"sourceInterval":[1315,1318]},"/"],["terminal",{"sourceInterval":[1326,1336]},"÷"],["app",{"sourceInterval":[1365,1393]},"caseInsensitive",[["terminal",{"sourceInterval":[1381,1392]},"divide by"]]],["app",{"sourceInterval":[1401,1426]},"caseInsensitive",[["terminal",{"sourceInterval":[1417,1425]},"divide"]]]]],"modulo":["define",{"sourceInterval":[1432,1512]},null,[],["alt",{"sourceInterval":[1446,1512]},["terminal",{"sourceInterval":[1446,1449]},"%"],["app",{"sourceInterval":[1457,1482]},"caseInsensitive",[["terminal",{"sourceInterval":[1473,1481]},"modulo"]]],["app",{"sourceInterval":[1490,1512]},"caseInsensitive",[["terminal",{"sourceInterval":[1506,1511]},"mod"]]]]],"exponent":["define",{"sourceInterval":[1518,1681]},null,[],["alt",{"sourceInterval":[1534,1681]},["terminal",{"sourceInterval":[1534,1537]},"^"],["app",{"sourceInterval":[1545,1579]},"caseInsensitive",[["terminal",{"sourceInterval":[1561,1578]},"to the power of"]]],["app",{"sourceInterval":[1587,1614]},"caseInsensitive",[["terminal",{"sourceInterval":[1603,1613]},"power of"]]],["app",{"sourceInterval":[1622,1649]},"caseInsensitive",[["terminal",{"sourceInterval":[1638,1648]},"exponent"]]],["app",{"sourceInterval":[1657,1681]},"caseInsensitive",[["terminal",{"sourceInterval":[1673,1680]},"prime"]]]]],"constant":["define",{"sourceInterval":[1687,1754]},null,[],["alt",{"sourceInterval":[1704,1754]},["app",{"sourceInterval":[1704,1725]},"caseInsensitive",[["terminal",{"sourceInterval":[1720,1724]},"PI"]]],["app",{"sourceInterval":[1734,1754]},"caseInsensitive",[["terminal",{"sourceInterval":[1750,1753]},"E"]]]]],"number_fract":["define",{"sourceInterval":[1774,1801]},null,[],["seq",{"sourceInterval":[1774,1791]},["star",{"sourceInterval":[1774,1780]},["app",{"sourceInterval":[1774,1779]},"digit",[]]],["terminal",{"sourceInterval":[1781,1784]},"."],["plus",{"sourceInterval":[1785,1791]},["app",{"sourceInterval":[1785,1790]},"digit",[]]]]],"number_whole":["define",{"sourceInterval":[1809,1836]},null,[],["plus",{"sourceInterval":[1809,1815]},["app",{"sourceInterval":[1809,1814]},"digit",[]]]],"number":["define",{"sourceInterval":[1760,1836]},null,[],["alt",{"sourceInterval":[1774,1836]},["app",{"sourceInterval":[1774,1791]},"number_fract",[]],["app",{"sourceInterval":[1809,1815]},"number_whole",[]]]],"hex":["define",{"sourceInterval":[1844,1890]},null,[],["alt",{"sourceInterval":[1855,1890]},["seq",{"sourceInterval":[1855,1869]},["terminal",{"sourceInterval":[1855,1859]},"0x"],["plus",{"sourceInterval":[1860,1869]},["app",{"sourceInterval":[1860,1868]},"hexDigit",[]]]],["seq",{"sourceInterval":[1877,1890]},["plus",{"sourceInterval":[1877,1886]},["app",{"sourceInterval":[1877,1885]},"hexDigit",[]]],["terminal",{"sourceInterval":[1887,1890]},"h"]]]]}]);result.FunctionArithmetic=makeRecipe(["grammar",{"source":"FunctionArithmetic <: BasicArithmetic {\r\n P\r\n := \"(\" Expression \")\" -- parenthesis\r\n | Function\r\n | Primitive\r\n\r\n Function\r\n = DegreesToRadians\r\n | RadiansToDegrees\r\n | LogBase\r\n | JavascriptMathObjectFunction\r\n\r\n LogBase \r\n = caseInsensitive<\"logb\"> \"(\" number \",\" number \")\"\r\n | caseInsensitive<\"logBase\"> \"(\" number \",\" number \")\"\r\n\r\n DegreesToRadians \r\n = caseInsensitive<\"degToRad\"> \"(\" number \")\"\r\n | caseInsensitive<\"degreesToRadians\"> \"(\" number \")\"\r\n | caseInsensitive<\"radians\"> \"(\" number \")\"\r\n | caseInsensitive<\"toRadians\"> \"(\" number \")\"\r\n\r\n RadiansToDegrees \r\n = caseInsensitive<\"radToDeg\"> \"(\" number \")\"\r\n | caseInsensitive<\"radiansToDegrees\"> \"(\" number \")\"\r\n | caseInsensitive<\"degrees\"> \"(\" number \")\"\r\n | caseInsensitive<\"toDegrees\"> \"(\" number \")\"\r\n\r\n // Pass-through for Math.* functions from JS\r\n JavascriptMathObjectFunction = mathJsName \"(\" ListOf \")\"\r\n\r\n mathJsName \r\n \t = caseInsensitive<\"sinh\">\r\n | caseInsensitive<\"sin\">\r\n | caseInsensitive<\"abs\">\r\n | caseInsensitive<\"acosh\">\r\n | caseInsensitive<\"acos\">\r\n | caseInsensitive<\"asinh\">\r\n | caseInsensitive<\"asin\">\r\n | caseInsensitive<\"atan2\">\r\n | caseInsensitive<\"atanh\">\r\n | caseInsensitive<\"atan\">\r\n | caseInsensitive<\"cbrt\">\r\n | caseInsensitive<\"ceil\">\r\n | caseInsensitive<\"clz32\">\r\n | caseInsensitive<\"cosh\">\r\n | caseInsensitive<\"cos\">\r\n | caseInsensitive<\"expm1\">\r\n | caseInsensitive<\"exp\">\r\n | caseInsensitive<\"floor\">\r\n | caseInsensitive<\"fround\">\r\n | caseInsensitive<\"hypot\">\r\n | caseInsensitive<\"imul\">\r\n | caseInsensitive<\"log10\">\r\n | caseInsensitive<\"log1p\">\r\n | caseInsensitive<\"log2\">\r\n | caseInsensitive<\"log\">\r\n | caseInsensitive<\"max\">\r\n | caseInsensitive<\"min\">\r\n | caseInsensitive<\"pow\">\r\n | caseInsensitive<\"random\">\r\n | caseInsensitive<\"round\">\r\n | caseInsensitive<\"sign\">\r\n | caseInsensitive<\"sqrt\">\r\n | caseInsensitive<\"tanh\">\r\n | caseInsensitive<\"tan\">\r\n | caseInsensitive<\"trunc\">\r\n}"},"FunctionArithmetic",result.BasicArithmetic,"Expression",{"P_parenthesis":["override",{"sourceInterval":[53,87]},null,[],["seq",{"sourceInterval":[53,71]},["terminal",{"sourceInterval":[53,56]},"("],["app",{"sourceInterval":[57,67]},"Expression",[]],["terminal",{"sourceInterval":[68,71]},")"]]],"P":["override",{"sourceInterval":[43,120]},null,[],["alt",{"sourceInterval":[53,120]},["app",{"sourceInterval":[53,71]},"P_parenthesis",[]],["app",{"sourceInterval":[95,103]},"Function",[]],["app",{"sourceInterval":[111,120]},"Primitive",[]]]],"Function":["define",{"sourceInterval":[126,233]},null,[],["alt",{"sourceInterval":[142,233]},["app",{"sourceInterval":[142,158]},"DegreesToRadians",[]],["app",{"sourceInterval":[166,182]},"RadiansToDegrees",[]],["app",{"sourceInterval":[190,197]},"LogBase",[]],["app",{"sourceInterval":[205,233]},"JavascriptMathObjectFunction",[]]]],"LogBase":["define",{"sourceInterval":[239,364]},null,[],["alt",{"sourceInterval":[255,364]},["seq",{"sourceInterval":[255,304]},["app",{"sourceInterval":[255,278]},"caseInsensitive",[["terminal",{"sourceInterval":[271,277]},"logb"]]],["terminal",{"sourceInterval":[279,282]},"("],["app",{"sourceInterval":[283,289]},"number",[]],["terminal",{"sourceInterval":[290,293]},","],["app",{"sourceInterval":[294,300]},"number",[]],["terminal",{"sourceInterval":[301,304]},")"]],["seq",{"sourceInterval":[312,364]},["app",{"sourceInterval":[312,338]},"caseInsensitive",[["terminal",{"sourceInterval":[328,337]},"logBase"]]],["terminal",{"sourceInterval":[339,342]},"("],["app",{"sourceInterval":[343,349]},"number",[]],["terminal",{"sourceInterval":[350,353]},","],["app",{"sourceInterval":[354,360]},"number",[]],["terminal",{"sourceInterval":[361,364]},")"]]]],"DegreesToRadians":["define",{"sourceInterval":[370,595]},null,[],["alt",{"sourceInterval":[395,595]},["seq",{"sourceInterval":[395,437]},["app",{"sourceInterval":[395,422]},"caseInsensitive",[["terminal",{"sourceInterval":[411,421]},"degToRad"]]],["terminal",{"sourceInterval":[423,426]},"("],["app",{"sourceInterval":[427,433]},"number",[]],["terminal",{"sourceInterval":[434,437]},")"]],["seq",{"sourceInterval":[445,495]},["app",{"sourceInterval":[445,480]},"caseInsensitive",[["terminal",{"sourceInterval":[461,479]},"degreesToRadians"]]],["terminal",{"sourceInterval":[481,484]},"("],["app",{"sourceInterval":[485,491]},"number",[]],["terminal",{"sourceInterval":[492,495]},")"]],["seq",{"sourceInterval":[503,544]},["app",{"sourceInterval":[503,529]},"caseInsensitive",[["terminal",{"sourceInterval":[519,528]},"radians"]]],["terminal",{"sourceInterval":[530,533]},"("],["app",{"sourceInterval":[534,540]},"number",[]],["terminal",{"sourceInterval":[541,544]},")"]],["seq",{"sourceInterval":[552,595]},["app",{"sourceInterval":[552,580]},"caseInsensitive",[["terminal",{"sourceInterval":[568,579]},"toRadians"]]],["terminal",{"sourceInterval":[581,584]},"("],["app",{"sourceInterval":[585,591]},"number",[]],["terminal",{"sourceInterval":[592,595]},")"]]]],"RadiansToDegrees":["define",{"sourceInterval":[601,826]},null,[],["alt",{"sourceInterval":[626,826]},["seq",{"sourceInterval":[626,668]},["app",{"sourceInterval":[626,653]},"caseInsensitive",[["terminal",{"sourceInterval":[642,652]},"radToDeg"]]],["terminal",{"sourceInterval":[654,657]},"("],["app",{"sourceInterval":[658,664]},"number",[]],["terminal",{"sourceInterval":[665,668]},")"]],["seq",{"sourceInterval":[676,726]},["app",{"sourceInterval":[676,711]},"caseInsensitive",[["terminal",{"sourceInterval":[692,710]},"radiansToDegrees"]]],["terminal",{"sourceInterval":[712,715]},"("],["app",{"sourceInterval":[716,722]},"number",[]],["terminal",{"sourceInterval":[723,726]},")"]],["seq",{"sourceInterval":[734,775]},["app",{"sourceInterval":[734,760]},"caseInsensitive",[["terminal",{"sourceInterval":[750,759]},"degrees"]]],["terminal",{"sourceInterval":[761,764]},"("],["app",{"sourceInterval":[765,771]},"number",[]],["terminal",{"sourceInterval":[772,775]},")"]],["seq",{"sourceInterval":[783,826]},["app",{"sourceInterval":[783,811]},"caseInsensitive",[["terminal",{"sourceInterval":[799,810]},"toDegrees"]]],["terminal",{"sourceInterval":[812,815]},"("],["app",{"sourceInterval":[816,822]},"number",[]],["terminal",{"sourceInterval":[823,826]},")"]]]],"JavascriptMathObjectFunction":["define",{"sourceInterval":[880,953]},null,[],["seq",{"sourceInterval":[911,953]},["app",{"sourceInterval":[911,921]},"mathJsName",[]],["terminal",{"sourceInterval":[922,925]},"("],["app",{"sourceInterval":[926,949]},"ListOf",[["app",{"sourceInterval":[933,943]},"Expression",[]],["terminal",{"sourceInterval":[945,948]},","]]],["terminal",{"sourceInterval":[950,953]},")"]]],"mathJsName":["define",{"sourceInterval":[959,2062]},null,[],["alt",{"sourceInterval":[978,2062]},["app",{"sourceInterval":[978,1001]},"caseInsensitive",[["terminal",{"sourceInterval":[994,1000]},"sinh"]]],["app",{"sourceInterval":[1009,1031]},"caseInsensitive",[["terminal",{"sourceInterval":[1025,1030]},"sin"]]],["app",{"sourceInterval":[1039,1061]},"caseInsensitive",[["terminal",{"sourceInterval":[1055,1060]},"abs"]]],["app",{"sourceInterval":[1069,1093]},"caseInsensitive",[["terminal",{"sourceInterval":[1085,1092]},"acosh"]]],["app",{"sourceInterval":[1101,1124]},"caseInsensitive",[["terminal",{"sourceInterval":[1117,1123]},"acos"]]],["app",{"sourceInterval":[1132,1156]},"caseInsensitive",[["terminal",{"sourceInterval":[1148,1155]},"asinh"]]],["app",{"sourceInterval":[1164,1187]},"caseInsensitive",[["terminal",{"sourceInterval":[1180,1186]},"asin"]]],["app",{"sourceInterval":[1195,1219]},"caseInsensitive",[["terminal",{"sourceInterval":[1211,1218]},"atan2"]]],["app",{"sourceInterval":[1227,1251]},"caseInsensitive",[["terminal",{"sourceInterval":[1243,1250]},"atanh"]]],["app",{"sourceInterval":[1259,1282]},"caseInsensitive",[["terminal",{"sourceInterval":[1275,1281]},"atan"]]],["app",{"sourceInterval":[1290,1313]},"caseInsensitive",[["terminal",{"sourceInterval":[1306,1312]},"cbrt"]]],["app",{"sourceInterval":[1321,1344]},"caseInsensitive",[["terminal",{"sourceInterval":[1337,1343]},"ceil"]]],["app",{"sourceInterval":[1352,1376]},"caseInsensitive",[["terminal",{"sourceInterval":[1368,1375]},"clz32"]]],["app",{"sourceInterval":[1384,1407]},"caseInsensitive",[["terminal",{"sourceInterval":[1400,1406]},"cosh"]]],["app",{"sourceInterval":[1415,1437]},"caseInsensitive",[["terminal",{"sourceInterval":[1431,1436]},"cos"]]],["app",{"sourceInterval":[1445,1469]},"caseInsensitive",[["terminal",{"sourceInterval":[1461,1468]},"expm1"]]],["app",{"sourceInterval":[1477,1499]},"caseInsensitive",[["terminal",{"sourceInterval":[1493,1498]},"exp"]]],["app",{"sourceInterval":[1507,1531]},"caseInsensitive",[["terminal",{"sourceInterval":[1523,1530]},"floor"]]],["app",{"sourceInterval":[1539,1564]},"caseInsensitive",[["terminal",{"sourceInterval":[1555,1563]},"fround"]]],["app",{"sourceInterval":[1572,1596]},"caseInsensitive",[["terminal",{"sourceInterval":[1588,1595]},"hypot"]]],["app",{"sourceInterval":[1604,1627]},"caseInsensitive",[["terminal",{"sourceInterval":[1620,1626]},"imul"]]],["app",{"sourceInterval":[1635,1659]},"caseInsensitive",[["terminal",{"sourceInterval":[1651,1658]},"log10"]]],["app",{"sourceInterval":[1667,1691]},"caseInsensitive",[["terminal",{"sourceInterval":[1683,1690]},"log1p"]]],["app",{"sourceInterval":[1699,1722]},"caseInsensitive",[["terminal",{"sourceInterval":[1715,1721]},"log2"]]],["app",{"sourceInterval":[1730,1752]},"caseInsensitive",[["terminal",{"sourceInterval":[1746,1751]},"log"]]],["app",{"sourceInterval":[1760,1782]},"caseInsensitive",[["terminal",{"sourceInterval":[1776,1781]},"max"]]],["app",{"sourceInterval":[1790,1812]},"caseInsensitive",[["terminal",{"sourceInterval":[1806,1811]},"min"]]],["app",{"sourceInterval":[1820,1842]},"caseInsensitive",[["terminal",{"sourceInterval":[1836,1841]},"pow"]]],["app",{"sourceInterval":[1850,1875]},"caseInsensitive",[["terminal",{"sourceInterval":[1866,1874]},"random"]]],["app",{"sourceInterval":[1883,1907]},"caseInsensitive",[["terminal",{"sourceInterval":[1899,1906]},"round"]]],["app",{"sourceInterval":[1915,1938]},"caseInsensitive",[["terminal",{"sourceInterval":[1931,1937]},"sign"]]],["app",{"sourceInterval":[1946,1969]},"caseInsensitive",[["terminal",{"sourceInterval":[1962,1968]},"sqrt"]]],["app",{"sourceInterval":[1977,2000]},"caseInsensitive",[["terminal",{"sourceInterval":[1993,1999]},"tanh"]]],["app",{"sourceInterval":[2008,2030]},"caseInsensitive",[["terminal",{"sourceInterval":[2024,2029]},"tan"]]],["app",{"sourceInterval":[2038,2062]},"caseInsensitive",[["terminal",{"sourceInterval":[2054,2061]},"trunc"]]]]]}]);module.exports=result; \ No newline at end of file diff --git a/src/grammars/percentage/PercentageArithmetic.ohm-bundle.js b/src/grammars/percentage/PercentageArithmetic.ohm-bundle.js index 060210c..fe5f9b9 100644 --- a/src/grammars/percentage/PercentageArithmetic.ohm-bundle.js +++ b/src/grammars/percentage/PercentageArithmetic.ohm-bundle.js @@ -1 +1 @@ -'use strict';const {makeRecipe}=require('ohm-js');const result={};result.BasicArithmetic=makeRecipe(["grammar",{"source":"BasicArithmetic {\r\n Expression\r\n = LogicalShift\r\n\r\n LogicalShift\r\n = LogicalShift \"<<\" LogicalShift -- left\r\n | LogicalShift \">>\" LogicalShift -- right\r\n | AS \r\n\r\n // Addition or Subtraction\r\n AS\r\n = AS add MD -- addition\r\n | AS subtract MD -- subtraction\r\n | MD\r\n\r\n // Multiply or Divide\r\n MD\r\n = MD multiply E -- multiplication\r\n | MD divide E -- division\r\n | MD modulo E -- modulo\r\n | E\r\n\r\n // Exponent\r\n E\r\n = P exponent E -- exponent\r\n | P\r\n\r\n // Parenthesis\r\n P\r\n = \"(\" Expression \")\" -- parenthesis\r\n | Primitive\r\n \r\n Primitive\r\n = \"+\" Primitive -- positive\r\n | \"-\" Primitive -- negative\r\n | constant\r\n | hex\r\n | number\r\n \r\n // Lexical Rules\r\n add \r\n \t= \"+\"\r\n | caseInsensitive<\"plus\">\r\n \t| caseInsensitive<\"add\">\r\n | caseInsensitive<\"and\">\r\n \r\n subtract \r\n = \"-\"\r\n | caseInsensitive<\"minus\">\r\n | caseInsensitive<\"subtract\">\r\n | caseInsensitive<\"remove\">\r\n | caseInsensitive<\"take\">\r\n \r\n multiply \r\n = \"*\"\r\n | caseInsensitive<\"times by\">\r\n | caseInsensitive<\"times\">\r\n | caseInsensitive<\"multiply by\">\r\n | caseInsensitive<\"multiply\">\r\n \r\n divide\r\n = \"/\"\r\n | caseInsensitive<\"divide by\">\r\n | caseInsensitive<\"divide\">\r\n\r\n modulo\r\n = \"%\"\r\n | caseInsensitive<\"modulo\">\r\n | caseInsensitive<\"mod\">\r\n\r\n exponent\r\n = \"^\"\r\n | caseInsensitive<\"to the power of\">\r\n | caseInsensitive<\"power of\">\r\n | caseInsensitive<\"exponent\">\r\n | caseInsensitive<\"prime\">\r\n\r\n constant \r\n \t= caseInsensitive<\"PI\"> \r\n | caseInsensitive<\"E\">\r\n\r\n number\r\n = digit* \".\" digit+ -- fract\r\n | digit+ -- whole\r\n \r\n hex\r\n = \"0x\" hexDigit+\r\n | hexDigit+ \"h\"\r\n}"},"BasicArithmetic",null,"Expression",{"Expression":["define",{"sourceInterval":[21,51]},null,[],["app",{"sourceInterval":[39,51]},"LogicalShift",[]]],"LogicalShift_left":["define",{"sourceInterval":[77,115]},null,[],["seq",{"sourceInterval":[77,107]},["app",{"sourceInterval":[77,89]},"LogicalShift",[]],["terminal",{"sourceInterval":[90,94]},"<<"],["app",{"sourceInterval":[95,107]},"LogicalShift",[]]]],"LogicalShift_right":["define",{"sourceInterval":[123,162]},null,[],["seq",{"sourceInterval":[123,153]},["app",{"sourceInterval":[123,135]},"LogicalShift",[]],["terminal",{"sourceInterval":[136,140]},">>"],["app",{"sourceInterval":[141,153]},"LogicalShift",[]]]],"LogicalShift":["define",{"sourceInterval":[57,172]},null,[],["alt",{"sourceInterval":[77,172]},["app",{"sourceInterval":[77,107]},"LogicalShift_left",[]],["app",{"sourceInterval":[123,153]},"LogicalShift_right",[]],["app",{"sourceInterval":[170,172]},"AS",[]]]],"AS_addition":["define",{"sourceInterval":[219,241]},null,[],["seq",{"sourceInterval":[219,228]},["app",{"sourceInterval":[219,221]},"AS",[]],["app",{"sourceInterval":[222,225]},"add",[]],["app",{"sourceInterval":[226,228]},"MD",[]]]],"AS_subtraction":["define",{"sourceInterval":[249,279]},null,[],["seq",{"sourceInterval":[249,263]},["app",{"sourceInterval":[249,251]},"AS",[]],["app",{"sourceInterval":[252,260]},"subtract",[]],["app",{"sourceInterval":[261,263]},"MD",[]]]],"AS":["define",{"sourceInterval":[209,289]},null,[],["alt",{"sourceInterval":[219,289]},["app",{"sourceInterval":[219,228]},"AS_addition",[]],["app",{"sourceInterval":[249,263]},"AS_subtraction",[]],["app",{"sourceInterval":[287,289]},"MD",[]]]],"MD_multiplication":["define",{"sourceInterval":[330,362]},null,[],["seq",{"sourceInterval":[330,343]},["app",{"sourceInterval":[330,332]},"MD",[]],["app",{"sourceInterval":[333,341]},"multiply",[]],["app",{"sourceInterval":[342,343]},"E",[]]]],"MD_division":["define",{"sourceInterval":[370,394]},null,[],["seq",{"sourceInterval":[370,381]},["app",{"sourceInterval":[370,372]},"MD",[]],["app",{"sourceInterval":[373,379]},"divide",[]],["app",{"sourceInterval":[380,381]},"E",[]]]],"MD_modulo":["define",{"sourceInterval":[402,424]},null,[],["seq",{"sourceInterval":[402,413]},["app",{"sourceInterval":[402,404]},"MD",[]],["app",{"sourceInterval":[405,411]},"modulo",[]],["app",{"sourceInterval":[412,413]},"E",[]]]],"MD":["define",{"sourceInterval":[320,433]},null,[],["alt",{"sourceInterval":[330,433]},["app",{"sourceInterval":[330,343]},"MD_multiplication",[]],["app",{"sourceInterval":[370,381]},"MD_division",[]],["app",{"sourceInterval":[402,413]},"MD_modulo",[]],["app",{"sourceInterval":[432,433]},"E",[]]]],"E_exponent":["define",{"sourceInterval":[463,488]},null,[],["seq",{"sourceInterval":[463,475]},["app",{"sourceInterval":[463,464]},"P",[]],["app",{"sourceInterval":[465,473]},"exponent",[]],["app",{"sourceInterval":[474,475]},"E",[]]]],"E":["define",{"sourceInterval":[454,497]},null,[],["alt",{"sourceInterval":[463,497]},["app",{"sourceInterval":[463,475]},"E_exponent",[]],["app",{"sourceInterval":[496,497]},"P",[]]]],"P_parenthesis":["define",{"sourceInterval":[530,564]},null,[],["seq",{"sourceInterval":[530,548]},["terminal",{"sourceInterval":[530,533]},"("],["app",{"sourceInterval":[534,544]},"Expression",[]],["terminal",{"sourceInterval":[545,548]},")"]]],"P":["define",{"sourceInterval":[521,581]},null,[],["alt",{"sourceInterval":[530,581]},["app",{"sourceInterval":[530,548]},"P_parenthesis",[]],["app",{"sourceInterval":[572,581]},"Primitive",[]]]],"Primitive_positive":["define",{"sourceInterval":[608,633]},null,[],["seq",{"sourceInterval":[608,621]},["terminal",{"sourceInterval":[608,611]},"+"],["app",{"sourceInterval":[612,621]},"Primitive",[]]]],"Primitive_negative":["define",{"sourceInterval":[641,666]},null,[],["seq",{"sourceInterval":[641,654]},["terminal",{"sourceInterval":[641,644]},"-"],["app",{"sourceInterval":[645,654]},"Primitive",[]]]],"Primitive":["define",{"sourceInterval":[591,707]},null,[],["alt",{"sourceInterval":[608,707]},["app",{"sourceInterval":[608,621]},"Primitive_positive",[]],["app",{"sourceInterval":[641,654]},"Primitive_negative",[]],["app",{"sourceInterval":[674,682]},"constant",[]],["app",{"sourceInterval":[690,693]},"hex",[]],["app",{"sourceInterval":[701,707]},"number",[]]]],"add":["define",{"sourceInterval":[734,838]},null,[],["alt",{"sourceInterval":[745,838]},["terminal",{"sourceInterval":[745,748]},"+"],["app",{"sourceInterval":[756,779]},"caseInsensitive",[["terminal",{"sourceInterval":[772,778]},"plus"]]],["app",{"sourceInterval":[786,808]},"caseInsensitive",[["terminal",{"sourceInterval":[802,807]},"add"]]],["app",{"sourceInterval":[816,838]},"caseInsensitive",[["terminal",{"sourceInterval":[832,837]},"and"]]]]],"subtract":["define",{"sourceInterval":[848,999]},null,[],["alt",{"sourceInterval":[865,999]},["terminal",{"sourceInterval":[865,868]},"-"],["app",{"sourceInterval":[876,900]},"caseInsensitive",[["terminal",{"sourceInterval":[892,899]},"minus"]]],["app",{"sourceInterval":[908,935]},"caseInsensitive",[["terminal",{"sourceInterval":[924,934]},"subtract"]]],["app",{"sourceInterval":[943,968]},"caseInsensitive",[["terminal",{"sourceInterval":[959,967]},"remove"]]],["app",{"sourceInterval":[976,999]},"caseInsensitive",[["terminal",{"sourceInterval":[992,998]},"take"]]]]],"multiply":["define",{"sourceInterval":[1011,1171]},null,[],["alt",{"sourceInterval":[1028,1171]},["terminal",{"sourceInterval":[1028,1031]},"*"],["app",{"sourceInterval":[1039,1066]},"caseInsensitive",[["terminal",{"sourceInterval":[1055,1065]},"times by"]]],["app",{"sourceInterval":[1074,1098]},"caseInsensitive",[["terminal",{"sourceInterval":[1090,1097]},"times"]]],["app",{"sourceInterval":[1106,1136]},"caseInsensitive",[["terminal",{"sourceInterval":[1122,1135]},"multiply by"]]],["app",{"sourceInterval":[1144,1171]},"caseInsensitive",[["terminal",{"sourceInterval":[1160,1170]},"multiply"]]]]],"divide":["define",{"sourceInterval":[1183,1269]},null,[],["alt",{"sourceInterval":[1197,1269]},["terminal",{"sourceInterval":[1197,1200]},"/"],["app",{"sourceInterval":[1208,1236]},"caseInsensitive",[["terminal",{"sourceInterval":[1224,1235]},"divide by"]]],["app",{"sourceInterval":[1244,1269]},"caseInsensitive",[["terminal",{"sourceInterval":[1260,1268]},"divide"]]]]],"modulo":["define",{"sourceInterval":[1275,1355]},null,[],["alt",{"sourceInterval":[1289,1355]},["terminal",{"sourceInterval":[1289,1292]},"%"],["app",{"sourceInterval":[1300,1325]},"caseInsensitive",[["terminal",{"sourceInterval":[1316,1324]},"modulo"]]],["app",{"sourceInterval":[1333,1355]},"caseInsensitive",[["terminal",{"sourceInterval":[1349,1354]},"mod"]]]]],"exponent":["define",{"sourceInterval":[1361,1524]},null,[],["alt",{"sourceInterval":[1377,1524]},["terminal",{"sourceInterval":[1377,1380]},"^"],["app",{"sourceInterval":[1388,1422]},"caseInsensitive",[["terminal",{"sourceInterval":[1404,1421]},"to the power of"]]],["app",{"sourceInterval":[1430,1457]},"caseInsensitive",[["terminal",{"sourceInterval":[1446,1456]},"power of"]]],["app",{"sourceInterval":[1465,1492]},"caseInsensitive",[["terminal",{"sourceInterval":[1481,1491]},"exponent"]]],["app",{"sourceInterval":[1500,1524]},"caseInsensitive",[["terminal",{"sourceInterval":[1516,1523]},"prime"]]]]],"constant":["define",{"sourceInterval":[1530,1597]},null,[],["alt",{"sourceInterval":[1547,1597]},["app",{"sourceInterval":[1547,1568]},"caseInsensitive",[["terminal",{"sourceInterval":[1563,1567]},"PI"]]],["app",{"sourceInterval":[1577,1597]},"caseInsensitive",[["terminal",{"sourceInterval":[1593,1596]},"E"]]]]],"number_fract":["define",{"sourceInterval":[1617,1644]},null,[],["seq",{"sourceInterval":[1617,1634]},["star",{"sourceInterval":[1617,1623]},["app",{"sourceInterval":[1617,1622]},"digit",[]]],["terminal",{"sourceInterval":[1624,1627]},"."],["plus",{"sourceInterval":[1628,1634]},["app",{"sourceInterval":[1628,1633]},"digit",[]]]]],"number_whole":["define",{"sourceInterval":[1652,1679]},null,[],["plus",{"sourceInterval":[1652,1658]},["app",{"sourceInterval":[1652,1657]},"digit",[]]]],"number":["define",{"sourceInterval":[1603,1679]},null,[],["alt",{"sourceInterval":[1617,1679]},["app",{"sourceInterval":[1617,1634]},"number_fract",[]],["app",{"sourceInterval":[1652,1658]},"number_whole",[]]]],"hex":["define",{"sourceInterval":[1687,1733]},null,[],["alt",{"sourceInterval":[1698,1733]},["seq",{"sourceInterval":[1698,1712]},["terminal",{"sourceInterval":[1698,1702]},"0x"],["plus",{"sourceInterval":[1703,1712]},["app",{"sourceInterval":[1703,1711]},"hexDigit",[]]]],["seq",{"sourceInterval":[1720,1733]},["plus",{"sourceInterval":[1720,1729]},["app",{"sourceInterval":[1720,1728]},"hexDigit",[]]],["terminal",{"sourceInterval":[1730,1733]},"h"]]]]}]);result.PercentageArithmetic=makeRecipe(["grammar",{"source":"PercentageArithmetic <: BasicArithmetic {\r\n\tExpression\r\n \t:= PercentageOf\r\n | IncreaseBy\r\n | DecreaseBy\r\n | PercentageIncreaseOrDecrease\r\n\t\t| LogicalShift\r\n \r\n Primitive \r\n += percentage\r\n \r\n PercentageOf\r\n \t= percentage caseInsensitive<\"of\"> number \r\n \r\n \tIncreaseBy\r\n \t= caseInsensitive<\"increase\"> number caseInsensitive<\"by\"> percentage\r\n \r\n \tDecreaseBy\r\n \t= caseInsensitive<\"decrease\"> number caseInsensitive<\"by\"> percentage\r\n \r\n PercentageIncreaseOrDecrease\r\n = caseInsensitive<\"from\">? number caseInsensitive<\"to\"> number\r\n\r\n percentage = number \"%\"\r\n}"},"PercentageArithmetic",result.BasicArithmetic,"Expression",{"Expression":["override",{"sourceInterval":[44,179]},null,[],["alt",{"sourceInterval":[65,179]},["app",{"sourceInterval":[65,77]},"PercentageOf",[]],["app",{"sourceInterval":[89,99]},"IncreaseBy",[]],["app",{"sourceInterval":[111,121]},"DecreaseBy",[]],["app",{"sourceInterval":[133,161]},"PercentageIncreaseOrDecrease",[]],["app",{"sourceInterval":[167,179]},"LogicalShift",[]]]],"Primitive":["extend",{"sourceInterval":[195,228]},null,[],["app",{"sourceInterval":[218,228]},"percentage",[]]],"PercentageOf":["define",{"sourceInterval":[244,304]},null,[],["seq",{"sourceInterval":[265,304]},["app",{"sourceInterval":[265,275]},"percentage",[]],["app",{"sourceInterval":[276,297]},"caseInsensitive",[["terminal",{"sourceInterval":[292,296]},"of"]]],["app",{"sourceInterval":[298,304]},"number",[]]]],"IncreaseBy":["define",{"sourceInterval":[321,407]},null,[],["seq",{"sourceInterval":[340,407]},["app",{"sourceInterval":[340,367]},"caseInsensitive",[["terminal",{"sourceInterval":[356,366]},"increase"]]],["app",{"sourceInterval":[368,374]},"number",[]],["app",{"sourceInterval":[375,396]},"caseInsensitive",[["terminal",{"sourceInterval":[391,395]},"by"]]],["app",{"sourceInterval":[397,407]},"percentage",[]]]],"DecreaseBy":["define",{"sourceInterval":[423,509]},null,[],["seq",{"sourceInterval":[442,509]},["app",{"sourceInterval":[442,469]},"caseInsensitive",[["terminal",{"sourceInterval":[458,468]},"decrease"]]],["app",{"sourceInterval":[470,476]},"number",[]],["app",{"sourceInterval":[477,498]},"caseInsensitive",[["terminal",{"sourceInterval":[493,497]},"by"]]],["app",{"sourceInterval":[499,509]},"percentage",[]]]],"PercentageIncreaseOrDecrease":["define",{"sourceInterval":[521,621]},null,[],["seq",{"sourceInterval":[561,621]},["opt",{"sourceInterval":[561,585]},["app",{"sourceInterval":[561,584]},"caseInsensitive",[["terminal",{"sourceInterval":[577,583]},"from"]]]],["app",{"sourceInterval":[586,592]},"number",[]],["app",{"sourceInterval":[593,614]},"caseInsensitive",[["terminal",{"sourceInterval":[609,613]},"to"]]],["app",{"sourceInterval":[615,621]},"number",[]]]],"percentage":["define",{"sourceInterval":[629,652]},null,[],["seq",{"sourceInterval":[642,652]},["app",{"sourceInterval":[642,648]},"number",[]],["terminal",{"sourceInterval":[649,652]},"%"]]]}]);module.exports=result; \ No newline at end of file +'use strict';const {makeRecipe}=require('ohm-js');const result={};result.BasicArithmetic=makeRecipe(["grammar",{"source":"BasicArithmetic {\r\n Expression\r\n = LogicalShift\r\n\r\n LogicalShift\r\n = LogicalShift \"<<\" LogicalShift -- left\r\n | LogicalShift \">>\" LogicalShift -- right\r\n | AS \r\n\r\n // Addition or Subtraction\r\n AS\r\n = AS add MD -- addition\r\n | AS subtract MD -- subtraction\r\n | MD\r\n\r\n // Multiply or Divide\r\n MD\r\n = MD multiply E -- multiplication\r\n | MD divide E -- division\r\n | MD modulo E -- modulo\r\n | E\r\n\r\n // Exponent\r\n E\r\n = P exponent E -- exponent\r\n | P\r\n\r\n // Parenthesis\r\n P\r\n = \"(\" Expression \")\" -- parenthesis\r\n | Primitive\r\n \r\n Primitive\r\n = \"+\" Primitive -- positive\r\n | \"-\" Primitive -- negative\r\n | constant\r\n | hex\r\n | number\r\n \r\n // Lexical Rules\r\n add \r\n \t= \"+\"\r\n | caseInsensitive<\"plus\">\r\n \t| caseInsensitive<\"add\">\r\n | caseInsensitive<\"and\">\r\n \r\n subtract \r\n = \"-\"\r\n | caseInsensitive<\"minus\">\r\n | caseInsensitive<\"subtract\">\r\n | caseInsensitive<\"remove\">\r\n | caseInsensitive<\"take\">\r\n \r\n multiply \r\n = \"*\"\r\n | \"\\\\*\" // Escaped e.g. \\* for markdown\r\n | \"\\u{00D7}\" // Multiplication Symbol ×\r\n | caseInsensitive<\"x\">\r\n | caseInsensitive<\"times by\">\r\n | caseInsensitive<\"times\">\r\n | caseInsensitive<\"multiply by\">\r\n | caseInsensitive<\"multiply\">\r\n \r\n divide\r\n = \"/\"\r\n | \"\\u{00F7}\" // Division Symbol ÷\r\n | caseInsensitive<\"divide by\">\r\n | caseInsensitive<\"divide\">\r\n\r\n modulo\r\n = \"%\"\r\n | caseInsensitive<\"modulo\">\r\n | caseInsensitive<\"mod\">\r\n\r\n exponent\r\n = \"^\"\r\n | caseInsensitive<\"to the power of\">\r\n | caseInsensitive<\"power of\">\r\n | caseInsensitive<\"exponent\">\r\n | caseInsensitive<\"prime\">\r\n\r\n constant \r\n \t= caseInsensitive<\"PI\"> \r\n | caseInsensitive<\"E\">\r\n\r\n number\r\n = digit* \".\" digit+ -- fract\r\n | digit+ -- whole\r\n \r\n hex\r\n = \"0x\" hexDigit+\r\n | hexDigit+ \"h\"\r\n}"},"BasicArithmetic",null,"Expression",{"Expression":["define",{"sourceInterval":[21,51]},null,[],["app",{"sourceInterval":[39,51]},"LogicalShift",[]]],"LogicalShift_left":["define",{"sourceInterval":[77,115]},null,[],["seq",{"sourceInterval":[77,107]},["app",{"sourceInterval":[77,89]},"LogicalShift",[]],["terminal",{"sourceInterval":[90,94]},"<<"],["app",{"sourceInterval":[95,107]},"LogicalShift",[]]]],"LogicalShift_right":["define",{"sourceInterval":[123,162]},null,[],["seq",{"sourceInterval":[123,153]},["app",{"sourceInterval":[123,135]},"LogicalShift",[]],["terminal",{"sourceInterval":[136,140]},">>"],["app",{"sourceInterval":[141,153]},"LogicalShift",[]]]],"LogicalShift":["define",{"sourceInterval":[57,172]},null,[],["alt",{"sourceInterval":[77,172]},["app",{"sourceInterval":[77,107]},"LogicalShift_left",[]],["app",{"sourceInterval":[123,153]},"LogicalShift_right",[]],["app",{"sourceInterval":[170,172]},"AS",[]]]],"AS_addition":["define",{"sourceInterval":[219,241]},null,[],["seq",{"sourceInterval":[219,228]},["app",{"sourceInterval":[219,221]},"AS",[]],["app",{"sourceInterval":[222,225]},"add",[]],["app",{"sourceInterval":[226,228]},"MD",[]]]],"AS_subtraction":["define",{"sourceInterval":[249,279]},null,[],["seq",{"sourceInterval":[249,263]},["app",{"sourceInterval":[249,251]},"AS",[]],["app",{"sourceInterval":[252,260]},"subtract",[]],["app",{"sourceInterval":[261,263]},"MD",[]]]],"AS":["define",{"sourceInterval":[209,289]},null,[],["alt",{"sourceInterval":[219,289]},["app",{"sourceInterval":[219,228]},"AS_addition",[]],["app",{"sourceInterval":[249,263]},"AS_subtraction",[]],["app",{"sourceInterval":[287,289]},"MD",[]]]],"MD_multiplication":["define",{"sourceInterval":[330,362]},null,[],["seq",{"sourceInterval":[330,343]},["app",{"sourceInterval":[330,332]},"MD",[]],["app",{"sourceInterval":[333,341]},"multiply",[]],["app",{"sourceInterval":[342,343]},"E",[]]]],"MD_division":["define",{"sourceInterval":[370,394]},null,[],["seq",{"sourceInterval":[370,381]},["app",{"sourceInterval":[370,372]},"MD",[]],["app",{"sourceInterval":[373,379]},"divide",[]],["app",{"sourceInterval":[380,381]},"E",[]]]],"MD_modulo":["define",{"sourceInterval":[402,424]},null,[],["seq",{"sourceInterval":[402,413]},["app",{"sourceInterval":[402,404]},"MD",[]],["app",{"sourceInterval":[405,411]},"modulo",[]],["app",{"sourceInterval":[412,413]},"E",[]]]],"MD":["define",{"sourceInterval":[320,433]},null,[],["alt",{"sourceInterval":[330,433]},["app",{"sourceInterval":[330,343]},"MD_multiplication",[]],["app",{"sourceInterval":[370,381]},"MD_division",[]],["app",{"sourceInterval":[402,413]},"MD_modulo",[]],["app",{"sourceInterval":[432,433]},"E",[]]]],"E_exponent":["define",{"sourceInterval":[463,488]},null,[],["seq",{"sourceInterval":[463,475]},["app",{"sourceInterval":[463,464]},"P",[]],["app",{"sourceInterval":[465,473]},"exponent",[]],["app",{"sourceInterval":[474,475]},"E",[]]]],"E":["define",{"sourceInterval":[454,497]},null,[],["alt",{"sourceInterval":[463,497]},["app",{"sourceInterval":[463,475]},"E_exponent",[]],["app",{"sourceInterval":[496,497]},"P",[]]]],"P_parenthesis":["define",{"sourceInterval":[530,564]},null,[],["seq",{"sourceInterval":[530,548]},["terminal",{"sourceInterval":[530,533]},"("],["app",{"sourceInterval":[534,544]},"Expression",[]],["terminal",{"sourceInterval":[545,548]},")"]]],"P":["define",{"sourceInterval":[521,581]},null,[],["alt",{"sourceInterval":[530,581]},["app",{"sourceInterval":[530,548]},"P_parenthesis",[]],["app",{"sourceInterval":[572,581]},"Primitive",[]]]],"Primitive_positive":["define",{"sourceInterval":[608,633]},null,[],["seq",{"sourceInterval":[608,621]},["terminal",{"sourceInterval":[608,611]},"+"],["app",{"sourceInterval":[612,621]},"Primitive",[]]]],"Primitive_negative":["define",{"sourceInterval":[641,666]},null,[],["seq",{"sourceInterval":[641,654]},["terminal",{"sourceInterval":[641,644]},"-"],["app",{"sourceInterval":[645,654]},"Primitive",[]]]],"Primitive":["define",{"sourceInterval":[591,707]},null,[],["alt",{"sourceInterval":[608,707]},["app",{"sourceInterval":[608,621]},"Primitive_positive",[]],["app",{"sourceInterval":[641,654]},"Primitive_negative",[]],["app",{"sourceInterval":[674,682]},"constant",[]],["app",{"sourceInterval":[690,693]},"hex",[]],["app",{"sourceInterval":[701,707]},"number",[]]]],"add":["define",{"sourceInterval":[734,838]},null,[],["alt",{"sourceInterval":[745,838]},["terminal",{"sourceInterval":[745,748]},"+"],["app",{"sourceInterval":[756,779]},"caseInsensitive",[["terminal",{"sourceInterval":[772,778]},"plus"]]],["app",{"sourceInterval":[786,808]},"caseInsensitive",[["terminal",{"sourceInterval":[802,807]},"add"]]],["app",{"sourceInterval":[816,838]},"caseInsensitive",[["terminal",{"sourceInterval":[832,837]},"and"]]]]],"subtract":["define",{"sourceInterval":[848,999]},null,[],["alt",{"sourceInterval":[865,999]},["terminal",{"sourceInterval":[865,868]},"-"],["app",{"sourceInterval":[876,900]},"caseInsensitive",[["terminal",{"sourceInterval":[892,899]},"minus"]]],["app",{"sourceInterval":[908,935]},"caseInsensitive",[["terminal",{"sourceInterval":[924,934]},"subtract"]]],["app",{"sourceInterval":[943,968]},"caseInsensitive",[["terminal",{"sourceInterval":[959,967]},"remove"]]],["app",{"sourceInterval":[976,999]},"caseInsensitive",[["terminal",{"sourceInterval":[992,998]},"take"]]]]],"multiply":["define",{"sourceInterval":[1011,1289]},null,[],["alt",{"sourceInterval":[1028,1289]},["terminal",{"sourceInterval":[1028,1031]},"*"],["terminal",{"sourceInterval":[1039,1044]},"\\*"],["terminal",{"sourceInterval":[1084,1094]},"×"],["app",{"sourceInterval":[1129,1149]},"caseInsensitive",[["terminal",{"sourceInterval":[1145,1148]},"x"]]],["app",{"sourceInterval":[1157,1184]},"caseInsensitive",[["terminal",{"sourceInterval":[1173,1183]},"times by"]]],["app",{"sourceInterval":[1192,1216]},"caseInsensitive",[["terminal",{"sourceInterval":[1208,1215]},"times"]]],["app",{"sourceInterval":[1224,1254]},"caseInsensitive",[["terminal",{"sourceInterval":[1240,1253]},"multiply by"]]],["app",{"sourceInterval":[1262,1289]},"caseInsensitive",[["terminal",{"sourceInterval":[1278,1288]},"multiply"]]]]],"divide":["define",{"sourceInterval":[1301,1426]},null,[],["alt",{"sourceInterval":[1315,1426]},["terminal",{"sourceInterval":[1315,1318]},"/"],["terminal",{"sourceInterval":[1326,1336]},"÷"],["app",{"sourceInterval":[1365,1393]},"caseInsensitive",[["terminal",{"sourceInterval":[1381,1392]},"divide by"]]],["app",{"sourceInterval":[1401,1426]},"caseInsensitive",[["terminal",{"sourceInterval":[1417,1425]},"divide"]]]]],"modulo":["define",{"sourceInterval":[1432,1512]},null,[],["alt",{"sourceInterval":[1446,1512]},["terminal",{"sourceInterval":[1446,1449]},"%"],["app",{"sourceInterval":[1457,1482]},"caseInsensitive",[["terminal",{"sourceInterval":[1473,1481]},"modulo"]]],["app",{"sourceInterval":[1490,1512]},"caseInsensitive",[["terminal",{"sourceInterval":[1506,1511]},"mod"]]]]],"exponent":["define",{"sourceInterval":[1518,1681]},null,[],["alt",{"sourceInterval":[1534,1681]},["terminal",{"sourceInterval":[1534,1537]},"^"],["app",{"sourceInterval":[1545,1579]},"caseInsensitive",[["terminal",{"sourceInterval":[1561,1578]},"to the power of"]]],["app",{"sourceInterval":[1587,1614]},"caseInsensitive",[["terminal",{"sourceInterval":[1603,1613]},"power of"]]],["app",{"sourceInterval":[1622,1649]},"caseInsensitive",[["terminal",{"sourceInterval":[1638,1648]},"exponent"]]],["app",{"sourceInterval":[1657,1681]},"caseInsensitive",[["terminal",{"sourceInterval":[1673,1680]},"prime"]]]]],"constant":["define",{"sourceInterval":[1687,1754]},null,[],["alt",{"sourceInterval":[1704,1754]},["app",{"sourceInterval":[1704,1725]},"caseInsensitive",[["terminal",{"sourceInterval":[1720,1724]},"PI"]]],["app",{"sourceInterval":[1734,1754]},"caseInsensitive",[["terminal",{"sourceInterval":[1750,1753]},"E"]]]]],"number_fract":["define",{"sourceInterval":[1774,1801]},null,[],["seq",{"sourceInterval":[1774,1791]},["star",{"sourceInterval":[1774,1780]},["app",{"sourceInterval":[1774,1779]},"digit",[]]],["terminal",{"sourceInterval":[1781,1784]},"."],["plus",{"sourceInterval":[1785,1791]},["app",{"sourceInterval":[1785,1790]},"digit",[]]]]],"number_whole":["define",{"sourceInterval":[1809,1836]},null,[],["plus",{"sourceInterval":[1809,1815]},["app",{"sourceInterval":[1809,1814]},"digit",[]]]],"number":["define",{"sourceInterval":[1760,1836]},null,[],["alt",{"sourceInterval":[1774,1836]},["app",{"sourceInterval":[1774,1791]},"number_fract",[]],["app",{"sourceInterval":[1809,1815]},"number_whole",[]]]],"hex":["define",{"sourceInterval":[1844,1890]},null,[],["alt",{"sourceInterval":[1855,1890]},["seq",{"sourceInterval":[1855,1869]},["terminal",{"sourceInterval":[1855,1859]},"0x"],["plus",{"sourceInterval":[1860,1869]},["app",{"sourceInterval":[1860,1868]},"hexDigit",[]]]],["seq",{"sourceInterval":[1877,1890]},["plus",{"sourceInterval":[1877,1886]},["app",{"sourceInterval":[1877,1885]},"hexDigit",[]]],["terminal",{"sourceInterval":[1887,1890]},"h"]]]]}]);result.PercentageArithmetic=makeRecipe(["grammar",{"source":"PercentageArithmetic <: BasicArithmetic {\r\n\tExpression\r\n \t:= PercentageOf\r\n | IncreaseBy\r\n | DecreaseBy\r\n | PercentageIncreaseOrDecrease\r\n\t\t| LogicalShift\r\n \r\n Primitive \r\n += percentage\r\n \r\n PercentageOf\r\n \t= percentage caseInsensitive<\"of\"> number \r\n \r\n \tIncreaseBy\r\n \t= caseInsensitive<\"increase\"> number caseInsensitive<\"by\"> percentage\r\n \r\n \tDecreaseBy\r\n \t= caseInsensitive<\"decrease\"> number caseInsensitive<\"by\"> percentage\r\n \r\n PercentageIncreaseOrDecrease\r\n = caseInsensitive<\"from\">? number caseInsensitive<\"to\"> number\r\n\r\n percentage = number \"%\"\r\n}"},"PercentageArithmetic",result.BasicArithmetic,"Expression",{"Expression":["override",{"sourceInterval":[44,179]},null,[],["alt",{"sourceInterval":[65,179]},["app",{"sourceInterval":[65,77]},"PercentageOf",[]],["app",{"sourceInterval":[89,99]},"IncreaseBy",[]],["app",{"sourceInterval":[111,121]},"DecreaseBy",[]],["app",{"sourceInterval":[133,161]},"PercentageIncreaseOrDecrease",[]],["app",{"sourceInterval":[167,179]},"LogicalShift",[]]]],"Primitive":["extend",{"sourceInterval":[195,228]},null,[],["app",{"sourceInterval":[218,228]},"percentage",[]]],"PercentageOf":["define",{"sourceInterval":[244,304]},null,[],["seq",{"sourceInterval":[265,304]},["app",{"sourceInterval":[265,275]},"percentage",[]],["app",{"sourceInterval":[276,297]},"caseInsensitive",[["terminal",{"sourceInterval":[292,296]},"of"]]],["app",{"sourceInterval":[298,304]},"number",[]]]],"IncreaseBy":["define",{"sourceInterval":[321,407]},null,[],["seq",{"sourceInterval":[340,407]},["app",{"sourceInterval":[340,367]},"caseInsensitive",[["terminal",{"sourceInterval":[356,366]},"increase"]]],["app",{"sourceInterval":[368,374]},"number",[]],["app",{"sourceInterval":[375,396]},"caseInsensitive",[["terminal",{"sourceInterval":[391,395]},"by"]]],["app",{"sourceInterval":[397,407]},"percentage",[]]]],"DecreaseBy":["define",{"sourceInterval":[423,509]},null,[],["seq",{"sourceInterval":[442,509]},["app",{"sourceInterval":[442,469]},"caseInsensitive",[["terminal",{"sourceInterval":[458,468]},"decrease"]]],["app",{"sourceInterval":[470,476]},"number",[]],["app",{"sourceInterval":[477,498]},"caseInsensitive",[["terminal",{"sourceInterval":[493,497]},"by"]]],["app",{"sourceInterval":[499,509]},"percentage",[]]]],"PercentageIncreaseOrDecrease":["define",{"sourceInterval":[521,621]},null,[],["seq",{"sourceInterval":[561,621]},["opt",{"sourceInterval":[561,585]},["app",{"sourceInterval":[561,584]},"caseInsensitive",[["terminal",{"sourceInterval":[577,583]},"from"]]]],["app",{"sourceInterval":[586,592]},"number",[]],["app",{"sourceInterval":[593,614]},"caseInsensitive",[["terminal",{"sourceInterval":[609,613]},"to"]]],["app",{"sourceInterval":[615,621]},"number",[]]]],"percentage":["define",{"sourceInterval":[629,652]},null,[],["seq",{"sourceInterval":[642,652]},["app",{"sourceInterval":[642,648]},"number",[]],["terminal",{"sourceInterval":[649,652]},"%"]]]}]);module.exports=result; \ No newline at end of file diff --git a/src/grammars/uom/UnitsOfMeasurement.ohm-bundle.js b/src/grammars/uom/UnitsOfMeasurement.ohm-bundle.js index 9fd04a0..dd23b11 100644 --- a/src/grammars/uom/UnitsOfMeasurement.ohm-bundle.js +++ b/src/grammars/uom/UnitsOfMeasurement.ohm-bundle.js @@ -1 +1 @@ -'use strict';const {makeRecipe}=require('ohm-js');const result={};result.BasicArithmetic=makeRecipe(["grammar",{"source":"BasicArithmetic {\r\n Expression\r\n = LogicalShift\r\n\r\n LogicalShift\r\n = LogicalShift \"<<\" LogicalShift -- left\r\n | LogicalShift \">>\" LogicalShift -- right\r\n | AS \r\n\r\n // Addition or Subtraction\r\n AS\r\n = AS add MD -- addition\r\n | AS subtract MD -- subtraction\r\n | MD\r\n\r\n // Multiply or Divide\r\n MD\r\n = MD multiply E -- multiplication\r\n | MD divide E -- division\r\n | MD modulo E -- modulo\r\n | E\r\n\r\n // Exponent\r\n E\r\n = P exponent E -- exponent\r\n | P\r\n\r\n // Parenthesis\r\n P\r\n = \"(\" Expression \")\" -- parenthesis\r\n | Primitive\r\n \r\n Primitive\r\n = \"+\" Primitive -- positive\r\n | \"-\" Primitive -- negative\r\n | constant\r\n | hex\r\n | number\r\n \r\n // Lexical Rules\r\n add \r\n \t= \"+\"\r\n | caseInsensitive<\"plus\">\r\n \t| caseInsensitive<\"add\">\r\n | caseInsensitive<\"and\">\r\n \r\n subtract \r\n = \"-\"\r\n | caseInsensitive<\"minus\">\r\n | caseInsensitive<\"subtract\">\r\n | caseInsensitive<\"remove\">\r\n | caseInsensitive<\"take\">\r\n \r\n multiply \r\n = \"*\"\r\n | caseInsensitive<\"times by\">\r\n | caseInsensitive<\"times\">\r\n | caseInsensitive<\"multiply by\">\r\n | caseInsensitive<\"multiply\">\r\n \r\n divide\r\n = \"/\"\r\n | caseInsensitive<\"divide by\">\r\n | caseInsensitive<\"divide\">\r\n\r\n modulo\r\n = \"%\"\r\n | caseInsensitive<\"modulo\">\r\n | caseInsensitive<\"mod\">\r\n\r\n exponent\r\n = \"^\"\r\n | caseInsensitive<\"to the power of\">\r\n | caseInsensitive<\"power of\">\r\n | caseInsensitive<\"exponent\">\r\n | caseInsensitive<\"prime\">\r\n\r\n constant \r\n \t= caseInsensitive<\"PI\"> \r\n | caseInsensitive<\"E\">\r\n\r\n number\r\n = digit* \".\" digit+ -- fract\r\n | digit+ -- whole\r\n \r\n hex\r\n = \"0x\" hexDigit+\r\n | hexDigit+ \"h\"\r\n}"},"BasicArithmetic",null,"Expression",{"Expression":["define",{"sourceInterval":[21,51]},null,[],["app",{"sourceInterval":[39,51]},"LogicalShift",[]]],"LogicalShift_left":["define",{"sourceInterval":[77,115]},null,[],["seq",{"sourceInterval":[77,107]},["app",{"sourceInterval":[77,89]},"LogicalShift",[]],["terminal",{"sourceInterval":[90,94]},"<<"],["app",{"sourceInterval":[95,107]},"LogicalShift",[]]]],"LogicalShift_right":["define",{"sourceInterval":[123,162]},null,[],["seq",{"sourceInterval":[123,153]},["app",{"sourceInterval":[123,135]},"LogicalShift",[]],["terminal",{"sourceInterval":[136,140]},">>"],["app",{"sourceInterval":[141,153]},"LogicalShift",[]]]],"LogicalShift":["define",{"sourceInterval":[57,172]},null,[],["alt",{"sourceInterval":[77,172]},["app",{"sourceInterval":[77,107]},"LogicalShift_left",[]],["app",{"sourceInterval":[123,153]},"LogicalShift_right",[]],["app",{"sourceInterval":[170,172]},"AS",[]]]],"AS_addition":["define",{"sourceInterval":[219,241]},null,[],["seq",{"sourceInterval":[219,228]},["app",{"sourceInterval":[219,221]},"AS",[]],["app",{"sourceInterval":[222,225]},"add",[]],["app",{"sourceInterval":[226,228]},"MD",[]]]],"AS_subtraction":["define",{"sourceInterval":[249,279]},null,[],["seq",{"sourceInterval":[249,263]},["app",{"sourceInterval":[249,251]},"AS",[]],["app",{"sourceInterval":[252,260]},"subtract",[]],["app",{"sourceInterval":[261,263]},"MD",[]]]],"AS":["define",{"sourceInterval":[209,289]},null,[],["alt",{"sourceInterval":[219,289]},["app",{"sourceInterval":[219,228]},"AS_addition",[]],["app",{"sourceInterval":[249,263]},"AS_subtraction",[]],["app",{"sourceInterval":[287,289]},"MD",[]]]],"MD_multiplication":["define",{"sourceInterval":[330,362]},null,[],["seq",{"sourceInterval":[330,343]},["app",{"sourceInterval":[330,332]},"MD",[]],["app",{"sourceInterval":[333,341]},"multiply",[]],["app",{"sourceInterval":[342,343]},"E",[]]]],"MD_division":["define",{"sourceInterval":[370,394]},null,[],["seq",{"sourceInterval":[370,381]},["app",{"sourceInterval":[370,372]},"MD",[]],["app",{"sourceInterval":[373,379]},"divide",[]],["app",{"sourceInterval":[380,381]},"E",[]]]],"MD_modulo":["define",{"sourceInterval":[402,424]},null,[],["seq",{"sourceInterval":[402,413]},["app",{"sourceInterval":[402,404]},"MD",[]],["app",{"sourceInterval":[405,411]},"modulo",[]],["app",{"sourceInterval":[412,413]},"E",[]]]],"MD":["define",{"sourceInterval":[320,433]},null,[],["alt",{"sourceInterval":[330,433]},["app",{"sourceInterval":[330,343]},"MD_multiplication",[]],["app",{"sourceInterval":[370,381]},"MD_division",[]],["app",{"sourceInterval":[402,413]},"MD_modulo",[]],["app",{"sourceInterval":[432,433]},"E",[]]]],"E_exponent":["define",{"sourceInterval":[463,488]},null,[],["seq",{"sourceInterval":[463,475]},["app",{"sourceInterval":[463,464]},"P",[]],["app",{"sourceInterval":[465,473]},"exponent",[]],["app",{"sourceInterval":[474,475]},"E",[]]]],"E":["define",{"sourceInterval":[454,497]},null,[],["alt",{"sourceInterval":[463,497]},["app",{"sourceInterval":[463,475]},"E_exponent",[]],["app",{"sourceInterval":[496,497]},"P",[]]]],"P_parenthesis":["define",{"sourceInterval":[530,564]},null,[],["seq",{"sourceInterval":[530,548]},["terminal",{"sourceInterval":[530,533]},"("],["app",{"sourceInterval":[534,544]},"Expression",[]],["terminal",{"sourceInterval":[545,548]},")"]]],"P":["define",{"sourceInterval":[521,581]},null,[],["alt",{"sourceInterval":[530,581]},["app",{"sourceInterval":[530,548]},"P_parenthesis",[]],["app",{"sourceInterval":[572,581]},"Primitive",[]]]],"Primitive_positive":["define",{"sourceInterval":[608,633]},null,[],["seq",{"sourceInterval":[608,621]},["terminal",{"sourceInterval":[608,611]},"+"],["app",{"sourceInterval":[612,621]},"Primitive",[]]]],"Primitive_negative":["define",{"sourceInterval":[641,666]},null,[],["seq",{"sourceInterval":[641,654]},["terminal",{"sourceInterval":[641,644]},"-"],["app",{"sourceInterval":[645,654]},"Primitive",[]]]],"Primitive":["define",{"sourceInterval":[591,707]},null,[],["alt",{"sourceInterval":[608,707]},["app",{"sourceInterval":[608,621]},"Primitive_positive",[]],["app",{"sourceInterval":[641,654]},"Primitive_negative",[]],["app",{"sourceInterval":[674,682]},"constant",[]],["app",{"sourceInterval":[690,693]},"hex",[]],["app",{"sourceInterval":[701,707]},"number",[]]]],"add":["define",{"sourceInterval":[734,838]},null,[],["alt",{"sourceInterval":[745,838]},["terminal",{"sourceInterval":[745,748]},"+"],["app",{"sourceInterval":[756,779]},"caseInsensitive",[["terminal",{"sourceInterval":[772,778]},"plus"]]],["app",{"sourceInterval":[786,808]},"caseInsensitive",[["terminal",{"sourceInterval":[802,807]},"add"]]],["app",{"sourceInterval":[816,838]},"caseInsensitive",[["terminal",{"sourceInterval":[832,837]},"and"]]]]],"subtract":["define",{"sourceInterval":[848,999]},null,[],["alt",{"sourceInterval":[865,999]},["terminal",{"sourceInterval":[865,868]},"-"],["app",{"sourceInterval":[876,900]},"caseInsensitive",[["terminal",{"sourceInterval":[892,899]},"minus"]]],["app",{"sourceInterval":[908,935]},"caseInsensitive",[["terminal",{"sourceInterval":[924,934]},"subtract"]]],["app",{"sourceInterval":[943,968]},"caseInsensitive",[["terminal",{"sourceInterval":[959,967]},"remove"]]],["app",{"sourceInterval":[976,999]},"caseInsensitive",[["terminal",{"sourceInterval":[992,998]},"take"]]]]],"multiply":["define",{"sourceInterval":[1011,1171]},null,[],["alt",{"sourceInterval":[1028,1171]},["terminal",{"sourceInterval":[1028,1031]},"*"],["app",{"sourceInterval":[1039,1066]},"caseInsensitive",[["terminal",{"sourceInterval":[1055,1065]},"times by"]]],["app",{"sourceInterval":[1074,1098]},"caseInsensitive",[["terminal",{"sourceInterval":[1090,1097]},"times"]]],["app",{"sourceInterval":[1106,1136]},"caseInsensitive",[["terminal",{"sourceInterval":[1122,1135]},"multiply by"]]],["app",{"sourceInterval":[1144,1171]},"caseInsensitive",[["terminal",{"sourceInterval":[1160,1170]},"multiply"]]]]],"divide":["define",{"sourceInterval":[1183,1269]},null,[],["alt",{"sourceInterval":[1197,1269]},["terminal",{"sourceInterval":[1197,1200]},"/"],["app",{"sourceInterval":[1208,1236]},"caseInsensitive",[["terminal",{"sourceInterval":[1224,1235]},"divide by"]]],["app",{"sourceInterval":[1244,1269]},"caseInsensitive",[["terminal",{"sourceInterval":[1260,1268]},"divide"]]]]],"modulo":["define",{"sourceInterval":[1275,1355]},null,[],["alt",{"sourceInterval":[1289,1355]},["terminal",{"sourceInterval":[1289,1292]},"%"],["app",{"sourceInterval":[1300,1325]},"caseInsensitive",[["terminal",{"sourceInterval":[1316,1324]},"modulo"]]],["app",{"sourceInterval":[1333,1355]},"caseInsensitive",[["terminal",{"sourceInterval":[1349,1354]},"mod"]]]]],"exponent":["define",{"sourceInterval":[1361,1524]},null,[],["alt",{"sourceInterval":[1377,1524]},["terminal",{"sourceInterval":[1377,1380]},"^"],["app",{"sourceInterval":[1388,1422]},"caseInsensitive",[["terminal",{"sourceInterval":[1404,1421]},"to the power of"]]],["app",{"sourceInterval":[1430,1457]},"caseInsensitive",[["terminal",{"sourceInterval":[1446,1456]},"power of"]]],["app",{"sourceInterval":[1465,1492]},"caseInsensitive",[["terminal",{"sourceInterval":[1481,1491]},"exponent"]]],["app",{"sourceInterval":[1500,1524]},"caseInsensitive",[["terminal",{"sourceInterval":[1516,1523]},"prime"]]]]],"constant":["define",{"sourceInterval":[1530,1597]},null,[],["alt",{"sourceInterval":[1547,1597]},["app",{"sourceInterval":[1547,1568]},"caseInsensitive",[["terminal",{"sourceInterval":[1563,1567]},"PI"]]],["app",{"sourceInterval":[1577,1597]},"caseInsensitive",[["terminal",{"sourceInterval":[1593,1596]},"E"]]]]],"number_fract":["define",{"sourceInterval":[1617,1644]},null,[],["seq",{"sourceInterval":[1617,1634]},["star",{"sourceInterval":[1617,1623]},["app",{"sourceInterval":[1617,1622]},"digit",[]]],["terminal",{"sourceInterval":[1624,1627]},"."],["plus",{"sourceInterval":[1628,1634]},["app",{"sourceInterval":[1628,1633]},"digit",[]]]]],"number_whole":["define",{"sourceInterval":[1652,1679]},null,[],["plus",{"sourceInterval":[1652,1658]},["app",{"sourceInterval":[1652,1657]},"digit",[]]]],"number":["define",{"sourceInterval":[1603,1679]},null,[],["alt",{"sourceInterval":[1617,1679]},["app",{"sourceInterval":[1617,1634]},"number_fract",[]],["app",{"sourceInterval":[1652,1658]},"number_whole",[]]]],"hex":["define",{"sourceInterval":[1687,1733]},null,[],["alt",{"sourceInterval":[1698,1733]},["seq",{"sourceInterval":[1698,1712]},["terminal",{"sourceInterval":[1698,1702]},"0x"],["plus",{"sourceInterval":[1703,1712]},["app",{"sourceInterval":[1703,1711]},"hexDigit",[]]]],["seq",{"sourceInterval":[1720,1733]},["plus",{"sourceInterval":[1720,1729]},["app",{"sourceInterval":[1720,1728]},"hexDigit",[]]],["terminal",{"sourceInterval":[1730,1733]},"h"]]]]}]);result.UnitsOfMeasurementArithmetic=makeRecipe(["grammar",{"source":"UnitsOfMeasurementArithmetic <: BasicArithmetic {\r\n\tExpression\r\n \t:= Conversion\r\n | ConversionPossiblities\r\n\t\t| LogicalShift\r\n \r\n Primitive \r\n += UoM\r\n | percentage\r\n \r\n \tConversion\r\n \t= caseInsensitive<\"convert\">? UoM caseInsensitive<\"to\"> caseInsensitive<\"best\"> -- best\r\n | caseInsensitive<\"convert\">? UoM caseInsensitive<\"to\"> Unit -- convert\r\n \t\r\n ConversionPossiblities\r\n = caseInsensitive<\"convert\">? UoM caseInsensitive<\"to\"> \"?\"?\r\n \r\n UoM \r\n = number Unit\r\n\r\n Unit\r\n = \"km3/s\"\r\n | \"yd3/h\"\r\n | \"yd3/min\"\r\n | \"yd3/s\"\r\n | \"ft3/h\"\r\n | \"ft3/min\"\r\n | \"ft3/s\"\r\n | \"in3/h\"\r\n | \"in3/min\"\r\n | \"in3/s\"\r\n | \"mm3/s\"\r\n | \"cm3/s\"\r\n | \"fl-oz/h\"\r\n | \"fl-oz/min\"\r\n | \"fl-oz/s\"\r\n | \"gal/h\"\r\n | \"gal/min\"\r\n | \"gal/s\"\r\n | \"pnt/h\"\r\n | \"pnt/min\"\r\n | \"pnt/s\"\r\n | \"cup/s\"\r\n | \"Tbs/s\"\r\n | \"tsp/s\"\r\n | \"m3/h\"\r\n | \"m3/min\"\r\n | \"m3/s\"\r\n | \"kl/h\"\r\n | \"kl/min\"\r\n | \"kl/s\"\r\n | \"l/h\"\r\n | \"l/min\"\r\n | \"l/s\"\r\n | \"dl/s\"\r\n | \"cl/s\"\r\n | \"ml/s\"\r\n | \"min/km\"\r\n | \"s/ft\"\r\n | \"s/m\"\r\n | \"km/h\"\r\n | \"m/h\"\r\n | \"ft/s\"\r\n | \"m/s\"\r\n | \"knot\"\r\n | \"THz\"\r\n | \"GHz\"\r\n | \"MHz\"\r\n | \"kHz\"\r\n | \"mHz\"\r\n | \"Hz\"\r\n | \"rpm\"\r\n | \"rad/s\"\r\n | \"deg/s\"\r\n | \"km3\"\r\n | \"yd3\"\r\n | \"ft3\"\r\n | \"in3\"\r\n | \"mm3\"\r\n | \"cm3\"\r\n | \"m3\"\r\n | \"gal\"\r\n | \"qt\"\r\n | \"pnt\"\r\n | \"cup\"\r\n | \"fl-oz\"\r\n | \"Tbs\"\r\n | \"tsp\"\r\n | \"kl\"\r\n | \"lb\"\r\n | \"lx\"\r\n | \"l\"\r\n | \"ml\"\r\n | \"km2\"\r\n | \"mi2\"\r\n | \"mm2\"\r\n | \"cm2\"\r\n | \"m2\"\r\n | \"in2\"\r\n | \"ft2\"\r\n | \"ha\"\r\n | \"ac\"\r\n | \"GVARh\"\r\n | \"MVARh\"\r\n | \"kVARh\"\r\n | \"mVARh\"\r\n | \"VARh\"\r\n | \"GVAR\"\r\n | \"MVAR\"\r\n | \"kVAR\"\r\n | \"mVAR\"\r\n | \"VAR\"\r\n | \"GVA\"\r\n | \"MVA\"\r\n | \"kVA\"\r\n | \"mVA\"\r\n | \"VA\"\r\n | \"GWh\"\r\n | \"MWh\"\r\n | \"kWh\"\r\n | \"mWh\"\r\n | \"Wh\"\r\n | \"GW\"\r\n | \"MW\"\r\n | \"kW\"\r\n | \"mW\"\r\n | \"W\"\r\n | \"kJ\"\r\n | \"J\"\r\n | \"mcg\"\r\n | \"kg\"\r\n | \"grad\"\r\n | \"g\"\r\n | \"mg\"\r\n | \"oz\"\r\n | \"torr\"\r\n | \"t\"\r\n | \"mt\"\r\n | \"month\"\r\n | \"year\"\r\n | \"week\"\r\n | \"deg\"\r\n | \"d\"\r\n | \"hPa\"\r\n | \"h\"\r\n | \"min\"\r\n | \"s\"\r\n | \"ms\"\r\n | \"mu\"\r\n | \"ns\"\r\n | \"kPa\"\r\n | \"MPa\"\r\n | \"bar\"\r\n | \"psi\"\r\n | \"ksi\"\r\n | \"Pa\"\r\n | \"ft-cd\"\r\n | \"ppm\"\r\n | \"ppb\"\r\n | \"ppt\"\r\n | \"ppq\"\r\n | \"kV\"\r\n | \"V\"\r\n | \"mV\"\r\n | \"kA\"\r\n | \"A\"\r\n | \"mA\"\r\n | \"arcmin\"\r\n | \"arcsec\"\r\n | \"rad\"\r\n | \"ft-us\"\r\n | \"mi\"\r\n | \"mm\"\r\n | \"m\"\r\n | \"cm\"\r\n | \"ft\"\r\n | \"in\"\r\n | \"F\"\r\n | \"Kb\"\r\n | \"KB\"\r\n | \"K\"\r\n | \"C\"\r\n | \"R\"\r\n | \"TB\"\r\n | \"GB\"\r\n | \"MB\"\r\n | \"B\"\r\n | \"Tb\"\r\n | \"Gb\"\r\n | \"Mb\"\r\n | \"b\"\r\n\r\n percentage \r\n = number \"%\"\r\n}"},"UnitsOfMeasurementArithmetic",result.BasicArithmetic,"Expression",{"Expression":["override",{"sourceInterval":[52,135]},null,[],["alt",{"sourceInterval":[73,135]},["app",{"sourceInterval":[73,83]},"Conversion",[]],["app",{"sourceInterval":[95,117]},"ConversionPossiblities",[]],["app",{"sourceInterval":[123,135]},"LogicalShift",[]]]],"Primitive":["extend",{"sourceInterval":[151,199]},null,[],["alt",{"sourceInterval":[174,199]},["app",{"sourceInterval":[174,177]},"UoM",[]],["app",{"sourceInterval":[189,199]},"percentage",[]]]],"Conversion_best":["define",{"sourceInterval":[234,319]},null,[],["seq",{"sourceInterval":[234,311]},["opt",{"sourceInterval":[234,261]},["app",{"sourceInterval":[234,260]},"caseInsensitive",[["terminal",{"sourceInterval":[250,259]},"convert"]]]],["app",{"sourceInterval":[262,265]},"UoM",[]],["app",{"sourceInterval":[266,287]},"caseInsensitive",[["terminal",{"sourceInterval":[282,286]},"to"]]],["app",{"sourceInterval":[288,311]},"caseInsensitive",[["terminal",{"sourceInterval":[304,310]},"best"]]]]],"Conversion_convert":["define",{"sourceInterval":[331,400]},null,[],["seq",{"sourceInterval":[331,389]},["opt",{"sourceInterval":[331,358]},["app",{"sourceInterval":[331,357]},"caseInsensitive",[["terminal",{"sourceInterval":[347,356]},"convert"]]]],["app",{"sourceInterval":[359,362]},"UoM",[]],["app",{"sourceInterval":[363,384]},"caseInsensitive",[["terminal",{"sourceInterval":[379,383]},"to"]]],["app",{"sourceInterval":[385,389]},"Unit",[]]]],"Conversion":["define",{"sourceInterval":[215,400]},null,[],["alt",{"sourceInterval":[234,400]},["app",{"sourceInterval":[234,311]},"Conversion_best",[]],["app",{"sourceInterval":[331,389]},"Conversion_convert",[]]]],"ConversionPossiblities":["define",{"sourceInterval":[417,509]},null,[],["seq",{"sourceInterval":[451,509]},["opt",{"sourceInterval":[451,478]},["app",{"sourceInterval":[451,477]},"caseInsensitive",[["terminal",{"sourceInterval":[467,476]},"convert"]]]],["app",{"sourceInterval":[479,482]},"UoM",[]],["app",{"sourceInterval":[483,504]},"caseInsensitive",[["terminal",{"sourceInterval":[499,503]},"to"]]],["opt",{"sourceInterval":[505,509]},["terminal",{"sourceInterval":[505,508]},"?"]]]],"UoM":["define",{"sourceInterval":[521,548]},null,[],["seq",{"sourceInterval":[537,548]},["app",{"sourceInterval":[537,543]},"number",[]],["app",{"sourceInterval":[544,548]},"Unit",[]]]],"Unit":["define",{"sourceInterval":[556,3497]},null,[],["alt",{"sourceInterval":[572,3497]},["terminal",{"sourceInterval":[572,579]},"km3/s"],["terminal",{"sourceInterval":[591,598]},"yd3/h"],["terminal",{"sourceInterval":[610,619]},"yd3/min"],["terminal",{"sourceInterval":[631,638]},"yd3/s"],["terminal",{"sourceInterval":[650,657]},"ft3/h"],["terminal",{"sourceInterval":[669,678]},"ft3/min"],["terminal",{"sourceInterval":[690,697]},"ft3/s"],["terminal",{"sourceInterval":[709,716]},"in3/h"],["terminal",{"sourceInterval":[728,737]},"in3/min"],["terminal",{"sourceInterval":[749,756]},"in3/s"],["terminal",{"sourceInterval":[768,775]},"mm3/s"],["terminal",{"sourceInterval":[787,794]},"cm3/s"],["terminal",{"sourceInterval":[806,815]},"fl-oz/h"],["terminal",{"sourceInterval":[827,838]},"fl-oz/min"],["terminal",{"sourceInterval":[850,859]},"fl-oz/s"],["terminal",{"sourceInterval":[871,878]},"gal/h"],["terminal",{"sourceInterval":[890,899]},"gal/min"],["terminal",{"sourceInterval":[911,918]},"gal/s"],["terminal",{"sourceInterval":[930,937]},"pnt/h"],["terminal",{"sourceInterval":[949,958]},"pnt/min"],["terminal",{"sourceInterval":[970,977]},"pnt/s"],["terminal",{"sourceInterval":[989,996]},"cup/s"],["terminal",{"sourceInterval":[1008,1015]},"Tbs/s"],["terminal",{"sourceInterval":[1027,1034]},"tsp/s"],["terminal",{"sourceInterval":[1046,1052]},"m3/h"],["terminal",{"sourceInterval":[1064,1072]},"m3/min"],["terminal",{"sourceInterval":[1084,1090]},"m3/s"],["terminal",{"sourceInterval":[1102,1108]},"kl/h"],["terminal",{"sourceInterval":[1120,1128]},"kl/min"],["terminal",{"sourceInterval":[1140,1146]},"kl/s"],["terminal",{"sourceInterval":[1158,1163]},"l/h"],["terminal",{"sourceInterval":[1175,1182]},"l/min"],["terminal",{"sourceInterval":[1194,1199]},"l/s"],["terminal",{"sourceInterval":[1211,1217]},"dl/s"],["terminal",{"sourceInterval":[1229,1235]},"cl/s"],["terminal",{"sourceInterval":[1247,1253]},"ml/s"],["terminal",{"sourceInterval":[1265,1273]},"min/km"],["terminal",{"sourceInterval":[1285,1291]},"s/ft"],["terminal",{"sourceInterval":[1303,1308]},"s/m"],["terminal",{"sourceInterval":[1320,1326]},"km/h"],["terminal",{"sourceInterval":[1338,1343]},"m/h"],["terminal",{"sourceInterval":[1355,1361]},"ft/s"],["terminal",{"sourceInterval":[1373,1378]},"m/s"],["terminal",{"sourceInterval":[1390,1396]},"knot"],["terminal",{"sourceInterval":[1408,1413]},"THz"],["terminal",{"sourceInterval":[1425,1430]},"GHz"],["terminal",{"sourceInterval":[1442,1447]},"MHz"],["terminal",{"sourceInterval":[1459,1464]},"kHz"],["terminal",{"sourceInterval":[1476,1481]},"mHz"],["terminal",{"sourceInterval":[1493,1497]},"Hz"],["terminal",{"sourceInterval":[1509,1514]},"rpm"],["terminal",{"sourceInterval":[1526,1533]},"rad/s"],["terminal",{"sourceInterval":[1545,1552]},"deg/s"],["terminal",{"sourceInterval":[1564,1569]},"km3"],["terminal",{"sourceInterval":[1581,1586]},"yd3"],["terminal",{"sourceInterval":[1598,1603]},"ft3"],["terminal",{"sourceInterval":[1615,1620]},"in3"],["terminal",{"sourceInterval":[1632,1637]},"mm3"],["terminal",{"sourceInterval":[1649,1654]},"cm3"],["terminal",{"sourceInterval":[1666,1670]},"m3"],["terminal",{"sourceInterval":[1682,1687]},"gal"],["terminal",{"sourceInterval":[1699,1703]},"qt"],["terminal",{"sourceInterval":[1715,1720]},"pnt"],["terminal",{"sourceInterval":[1732,1737]},"cup"],["terminal",{"sourceInterval":[1749,1756]},"fl-oz"],["terminal",{"sourceInterval":[1768,1773]},"Tbs"],["terminal",{"sourceInterval":[1785,1790]},"tsp"],["terminal",{"sourceInterval":[1802,1806]},"kl"],["terminal",{"sourceInterval":[1818,1822]},"lb"],["terminal",{"sourceInterval":[1834,1838]},"lx"],["terminal",{"sourceInterval":[1850,1853]},"l"],["terminal",{"sourceInterval":[1865,1869]},"ml"],["terminal",{"sourceInterval":[1881,1886]},"km2"],["terminal",{"sourceInterval":[1898,1903]},"mi2"],["terminal",{"sourceInterval":[1915,1920]},"mm2"],["terminal",{"sourceInterval":[1932,1937]},"cm2"],["terminal",{"sourceInterval":[1949,1953]},"m2"],["terminal",{"sourceInterval":[1965,1970]},"in2"],["terminal",{"sourceInterval":[1982,1987]},"ft2"],["terminal",{"sourceInterval":[1999,2003]},"ha"],["terminal",{"sourceInterval":[2015,2019]},"ac"],["terminal",{"sourceInterval":[2031,2038]},"GVARh"],["terminal",{"sourceInterval":[2050,2057]},"MVARh"],["terminal",{"sourceInterval":[2069,2076]},"kVARh"],["terminal",{"sourceInterval":[2088,2095]},"mVARh"],["terminal",{"sourceInterval":[2107,2113]},"VARh"],["terminal",{"sourceInterval":[2125,2131]},"GVAR"],["terminal",{"sourceInterval":[2143,2149]},"MVAR"],["terminal",{"sourceInterval":[2161,2167]},"kVAR"],["terminal",{"sourceInterval":[2179,2185]},"mVAR"],["terminal",{"sourceInterval":[2197,2202]},"VAR"],["terminal",{"sourceInterval":[2214,2219]},"GVA"],["terminal",{"sourceInterval":[2231,2236]},"MVA"],["terminal",{"sourceInterval":[2248,2253]},"kVA"],["terminal",{"sourceInterval":[2265,2270]},"mVA"],["terminal",{"sourceInterval":[2282,2286]},"VA"],["terminal",{"sourceInterval":[2298,2303]},"GWh"],["terminal",{"sourceInterval":[2315,2320]},"MWh"],["terminal",{"sourceInterval":[2332,2337]},"kWh"],["terminal",{"sourceInterval":[2349,2354]},"mWh"],["terminal",{"sourceInterval":[2366,2370]},"Wh"],["terminal",{"sourceInterval":[2382,2386]},"GW"],["terminal",{"sourceInterval":[2398,2402]},"MW"],["terminal",{"sourceInterval":[2414,2418]},"kW"],["terminal",{"sourceInterval":[2430,2434]},"mW"],["terminal",{"sourceInterval":[2446,2449]},"W"],["terminal",{"sourceInterval":[2461,2465]},"kJ"],["terminal",{"sourceInterval":[2477,2480]},"J"],["terminal",{"sourceInterval":[2492,2497]},"mcg"],["terminal",{"sourceInterval":[2509,2513]},"kg"],["terminal",{"sourceInterval":[2525,2531]},"grad"],["terminal",{"sourceInterval":[2543,2546]},"g"],["terminal",{"sourceInterval":[2558,2562]},"mg"],["terminal",{"sourceInterval":[2574,2578]},"oz"],["terminal",{"sourceInterval":[2590,2596]},"torr"],["terminal",{"sourceInterval":[2608,2611]},"t"],["terminal",{"sourceInterval":[2623,2627]},"mt"],["terminal",{"sourceInterval":[2639,2646]},"month"],["terminal",{"sourceInterval":[2658,2664]},"year"],["terminal",{"sourceInterval":[2676,2682]},"week"],["terminal",{"sourceInterval":[2694,2699]},"deg"],["terminal",{"sourceInterval":[2711,2714]},"d"],["terminal",{"sourceInterval":[2726,2731]},"hPa"],["terminal",{"sourceInterval":[2743,2746]},"h"],["terminal",{"sourceInterval":[2758,2763]},"min"],["terminal",{"sourceInterval":[2775,2778]},"s"],["terminal",{"sourceInterval":[2790,2794]},"ms"],["terminal",{"sourceInterval":[2806,2810]},"mu"],["terminal",{"sourceInterval":[2822,2826]},"ns"],["terminal",{"sourceInterval":[2838,2843]},"kPa"],["terminal",{"sourceInterval":[2855,2860]},"MPa"],["terminal",{"sourceInterval":[2872,2877]},"bar"],["terminal",{"sourceInterval":[2889,2894]},"psi"],["terminal",{"sourceInterval":[2906,2911]},"ksi"],["terminal",{"sourceInterval":[2923,2927]},"Pa"],["terminal",{"sourceInterval":[2939,2946]},"ft-cd"],["terminal",{"sourceInterval":[2958,2963]},"ppm"],["terminal",{"sourceInterval":[2975,2980]},"ppb"],["terminal",{"sourceInterval":[2992,2997]},"ppt"],["terminal",{"sourceInterval":[3009,3014]},"ppq"],["terminal",{"sourceInterval":[3026,3030]},"kV"],["terminal",{"sourceInterval":[3042,3045]},"V"],["terminal",{"sourceInterval":[3057,3061]},"mV"],["terminal",{"sourceInterval":[3073,3077]},"kA"],["terminal",{"sourceInterval":[3089,3092]},"A"],["terminal",{"sourceInterval":[3104,3108]},"mA"],["terminal",{"sourceInterval":[3120,3128]},"arcmin"],["terminal",{"sourceInterval":[3140,3148]},"arcsec"],["terminal",{"sourceInterval":[3160,3165]},"rad"],["terminal",{"sourceInterval":[3177,3184]},"ft-us"],["terminal",{"sourceInterval":[3196,3200]},"mi"],["terminal",{"sourceInterval":[3212,3216]},"mm"],["terminal",{"sourceInterval":[3228,3231]},"m"],["terminal",{"sourceInterval":[3243,3247]},"cm"],["terminal",{"sourceInterval":[3259,3263]},"ft"],["terminal",{"sourceInterval":[3275,3279]},"in"],["terminal",{"sourceInterval":[3291,3294]},"F"],["terminal",{"sourceInterval":[3306,3310]},"Kb"],["terminal",{"sourceInterval":[3322,3326]},"KB"],["terminal",{"sourceInterval":[3338,3341]},"K"],["terminal",{"sourceInterval":[3353,3356]},"C"],["terminal",{"sourceInterval":[3368,3371]},"R"],["terminal",{"sourceInterval":[3383,3387]},"TB"],["terminal",{"sourceInterval":[3399,3403]},"GB"],["terminal",{"sourceInterval":[3415,3419]},"MB"],["terminal",{"sourceInterval":[3431,3434]},"B"],["terminal",{"sourceInterval":[3446,3450]},"Tb"],["terminal",{"sourceInterval":[3462,3466]},"Gb"],["terminal",{"sourceInterval":[3478,3482]},"Mb"],["terminal",{"sourceInterval":[3494,3497]},"b"]]],"percentage":["define",{"sourceInterval":[3505,3538]},null,[],["seq",{"sourceInterval":[3528,3538]},["app",{"sourceInterval":[3528,3534]},"number",[]],["terminal",{"sourceInterval":[3535,3538]},"%"]]]}]);module.exports=result; \ No newline at end of file +'use strict';const {makeRecipe}=require('ohm-js');const result={};result.BasicArithmetic=makeRecipe(["grammar",{"source":"BasicArithmetic {\r\n Expression\r\n = LogicalShift\r\n\r\n LogicalShift\r\n = LogicalShift \"<<\" LogicalShift -- left\r\n | LogicalShift \">>\" LogicalShift -- right\r\n | AS \r\n\r\n // Addition or Subtraction\r\n AS\r\n = AS add MD -- addition\r\n | AS subtract MD -- subtraction\r\n | MD\r\n\r\n // Multiply or Divide\r\n MD\r\n = MD multiply E -- multiplication\r\n | MD divide E -- division\r\n | MD modulo E -- modulo\r\n | E\r\n\r\n // Exponent\r\n E\r\n = P exponent E -- exponent\r\n | P\r\n\r\n // Parenthesis\r\n P\r\n = \"(\" Expression \")\" -- parenthesis\r\n | Primitive\r\n \r\n Primitive\r\n = \"+\" Primitive -- positive\r\n | \"-\" Primitive -- negative\r\n | constant\r\n | hex\r\n | number\r\n \r\n // Lexical Rules\r\n add \r\n \t= \"+\"\r\n | caseInsensitive<\"plus\">\r\n \t| caseInsensitive<\"add\">\r\n | caseInsensitive<\"and\">\r\n \r\n subtract \r\n = \"-\"\r\n | caseInsensitive<\"minus\">\r\n | caseInsensitive<\"subtract\">\r\n | caseInsensitive<\"remove\">\r\n | caseInsensitive<\"take\">\r\n \r\n multiply \r\n = \"*\"\r\n | \"\\\\*\" // Escaped e.g. \\* for markdown\r\n | \"\\u{00D7}\" // Multiplication Symbol ×\r\n | caseInsensitive<\"x\">\r\n | caseInsensitive<\"times by\">\r\n | caseInsensitive<\"times\">\r\n | caseInsensitive<\"multiply by\">\r\n | caseInsensitive<\"multiply\">\r\n \r\n divide\r\n = \"/\"\r\n | \"\\u{00F7}\" // Division Symbol ÷\r\n | caseInsensitive<\"divide by\">\r\n | caseInsensitive<\"divide\">\r\n\r\n modulo\r\n = \"%\"\r\n | caseInsensitive<\"modulo\">\r\n | caseInsensitive<\"mod\">\r\n\r\n exponent\r\n = \"^\"\r\n | caseInsensitive<\"to the power of\">\r\n | caseInsensitive<\"power of\">\r\n | caseInsensitive<\"exponent\">\r\n | caseInsensitive<\"prime\">\r\n\r\n constant \r\n \t= caseInsensitive<\"PI\"> \r\n | caseInsensitive<\"E\">\r\n\r\n number\r\n = digit* \".\" digit+ -- fract\r\n | digit+ -- whole\r\n \r\n hex\r\n = \"0x\" hexDigit+\r\n | hexDigit+ \"h\"\r\n}"},"BasicArithmetic",null,"Expression",{"Expression":["define",{"sourceInterval":[21,51]},null,[],["app",{"sourceInterval":[39,51]},"LogicalShift",[]]],"LogicalShift_left":["define",{"sourceInterval":[77,115]},null,[],["seq",{"sourceInterval":[77,107]},["app",{"sourceInterval":[77,89]},"LogicalShift",[]],["terminal",{"sourceInterval":[90,94]},"<<"],["app",{"sourceInterval":[95,107]},"LogicalShift",[]]]],"LogicalShift_right":["define",{"sourceInterval":[123,162]},null,[],["seq",{"sourceInterval":[123,153]},["app",{"sourceInterval":[123,135]},"LogicalShift",[]],["terminal",{"sourceInterval":[136,140]},">>"],["app",{"sourceInterval":[141,153]},"LogicalShift",[]]]],"LogicalShift":["define",{"sourceInterval":[57,172]},null,[],["alt",{"sourceInterval":[77,172]},["app",{"sourceInterval":[77,107]},"LogicalShift_left",[]],["app",{"sourceInterval":[123,153]},"LogicalShift_right",[]],["app",{"sourceInterval":[170,172]},"AS",[]]]],"AS_addition":["define",{"sourceInterval":[219,241]},null,[],["seq",{"sourceInterval":[219,228]},["app",{"sourceInterval":[219,221]},"AS",[]],["app",{"sourceInterval":[222,225]},"add",[]],["app",{"sourceInterval":[226,228]},"MD",[]]]],"AS_subtraction":["define",{"sourceInterval":[249,279]},null,[],["seq",{"sourceInterval":[249,263]},["app",{"sourceInterval":[249,251]},"AS",[]],["app",{"sourceInterval":[252,260]},"subtract",[]],["app",{"sourceInterval":[261,263]},"MD",[]]]],"AS":["define",{"sourceInterval":[209,289]},null,[],["alt",{"sourceInterval":[219,289]},["app",{"sourceInterval":[219,228]},"AS_addition",[]],["app",{"sourceInterval":[249,263]},"AS_subtraction",[]],["app",{"sourceInterval":[287,289]},"MD",[]]]],"MD_multiplication":["define",{"sourceInterval":[330,362]},null,[],["seq",{"sourceInterval":[330,343]},["app",{"sourceInterval":[330,332]},"MD",[]],["app",{"sourceInterval":[333,341]},"multiply",[]],["app",{"sourceInterval":[342,343]},"E",[]]]],"MD_division":["define",{"sourceInterval":[370,394]},null,[],["seq",{"sourceInterval":[370,381]},["app",{"sourceInterval":[370,372]},"MD",[]],["app",{"sourceInterval":[373,379]},"divide",[]],["app",{"sourceInterval":[380,381]},"E",[]]]],"MD_modulo":["define",{"sourceInterval":[402,424]},null,[],["seq",{"sourceInterval":[402,413]},["app",{"sourceInterval":[402,404]},"MD",[]],["app",{"sourceInterval":[405,411]},"modulo",[]],["app",{"sourceInterval":[412,413]},"E",[]]]],"MD":["define",{"sourceInterval":[320,433]},null,[],["alt",{"sourceInterval":[330,433]},["app",{"sourceInterval":[330,343]},"MD_multiplication",[]],["app",{"sourceInterval":[370,381]},"MD_division",[]],["app",{"sourceInterval":[402,413]},"MD_modulo",[]],["app",{"sourceInterval":[432,433]},"E",[]]]],"E_exponent":["define",{"sourceInterval":[463,488]},null,[],["seq",{"sourceInterval":[463,475]},["app",{"sourceInterval":[463,464]},"P",[]],["app",{"sourceInterval":[465,473]},"exponent",[]],["app",{"sourceInterval":[474,475]},"E",[]]]],"E":["define",{"sourceInterval":[454,497]},null,[],["alt",{"sourceInterval":[463,497]},["app",{"sourceInterval":[463,475]},"E_exponent",[]],["app",{"sourceInterval":[496,497]},"P",[]]]],"P_parenthesis":["define",{"sourceInterval":[530,564]},null,[],["seq",{"sourceInterval":[530,548]},["terminal",{"sourceInterval":[530,533]},"("],["app",{"sourceInterval":[534,544]},"Expression",[]],["terminal",{"sourceInterval":[545,548]},")"]]],"P":["define",{"sourceInterval":[521,581]},null,[],["alt",{"sourceInterval":[530,581]},["app",{"sourceInterval":[530,548]},"P_parenthesis",[]],["app",{"sourceInterval":[572,581]},"Primitive",[]]]],"Primitive_positive":["define",{"sourceInterval":[608,633]},null,[],["seq",{"sourceInterval":[608,621]},["terminal",{"sourceInterval":[608,611]},"+"],["app",{"sourceInterval":[612,621]},"Primitive",[]]]],"Primitive_negative":["define",{"sourceInterval":[641,666]},null,[],["seq",{"sourceInterval":[641,654]},["terminal",{"sourceInterval":[641,644]},"-"],["app",{"sourceInterval":[645,654]},"Primitive",[]]]],"Primitive":["define",{"sourceInterval":[591,707]},null,[],["alt",{"sourceInterval":[608,707]},["app",{"sourceInterval":[608,621]},"Primitive_positive",[]],["app",{"sourceInterval":[641,654]},"Primitive_negative",[]],["app",{"sourceInterval":[674,682]},"constant",[]],["app",{"sourceInterval":[690,693]},"hex",[]],["app",{"sourceInterval":[701,707]},"number",[]]]],"add":["define",{"sourceInterval":[734,838]},null,[],["alt",{"sourceInterval":[745,838]},["terminal",{"sourceInterval":[745,748]},"+"],["app",{"sourceInterval":[756,779]},"caseInsensitive",[["terminal",{"sourceInterval":[772,778]},"plus"]]],["app",{"sourceInterval":[786,808]},"caseInsensitive",[["terminal",{"sourceInterval":[802,807]},"add"]]],["app",{"sourceInterval":[816,838]},"caseInsensitive",[["terminal",{"sourceInterval":[832,837]},"and"]]]]],"subtract":["define",{"sourceInterval":[848,999]},null,[],["alt",{"sourceInterval":[865,999]},["terminal",{"sourceInterval":[865,868]},"-"],["app",{"sourceInterval":[876,900]},"caseInsensitive",[["terminal",{"sourceInterval":[892,899]},"minus"]]],["app",{"sourceInterval":[908,935]},"caseInsensitive",[["terminal",{"sourceInterval":[924,934]},"subtract"]]],["app",{"sourceInterval":[943,968]},"caseInsensitive",[["terminal",{"sourceInterval":[959,967]},"remove"]]],["app",{"sourceInterval":[976,999]},"caseInsensitive",[["terminal",{"sourceInterval":[992,998]},"take"]]]]],"multiply":["define",{"sourceInterval":[1011,1289]},null,[],["alt",{"sourceInterval":[1028,1289]},["terminal",{"sourceInterval":[1028,1031]},"*"],["terminal",{"sourceInterval":[1039,1044]},"\\*"],["terminal",{"sourceInterval":[1084,1094]},"×"],["app",{"sourceInterval":[1129,1149]},"caseInsensitive",[["terminal",{"sourceInterval":[1145,1148]},"x"]]],["app",{"sourceInterval":[1157,1184]},"caseInsensitive",[["terminal",{"sourceInterval":[1173,1183]},"times by"]]],["app",{"sourceInterval":[1192,1216]},"caseInsensitive",[["terminal",{"sourceInterval":[1208,1215]},"times"]]],["app",{"sourceInterval":[1224,1254]},"caseInsensitive",[["terminal",{"sourceInterval":[1240,1253]},"multiply by"]]],["app",{"sourceInterval":[1262,1289]},"caseInsensitive",[["terminal",{"sourceInterval":[1278,1288]},"multiply"]]]]],"divide":["define",{"sourceInterval":[1301,1426]},null,[],["alt",{"sourceInterval":[1315,1426]},["terminal",{"sourceInterval":[1315,1318]},"/"],["terminal",{"sourceInterval":[1326,1336]},"÷"],["app",{"sourceInterval":[1365,1393]},"caseInsensitive",[["terminal",{"sourceInterval":[1381,1392]},"divide by"]]],["app",{"sourceInterval":[1401,1426]},"caseInsensitive",[["terminal",{"sourceInterval":[1417,1425]},"divide"]]]]],"modulo":["define",{"sourceInterval":[1432,1512]},null,[],["alt",{"sourceInterval":[1446,1512]},["terminal",{"sourceInterval":[1446,1449]},"%"],["app",{"sourceInterval":[1457,1482]},"caseInsensitive",[["terminal",{"sourceInterval":[1473,1481]},"modulo"]]],["app",{"sourceInterval":[1490,1512]},"caseInsensitive",[["terminal",{"sourceInterval":[1506,1511]},"mod"]]]]],"exponent":["define",{"sourceInterval":[1518,1681]},null,[],["alt",{"sourceInterval":[1534,1681]},["terminal",{"sourceInterval":[1534,1537]},"^"],["app",{"sourceInterval":[1545,1579]},"caseInsensitive",[["terminal",{"sourceInterval":[1561,1578]},"to the power of"]]],["app",{"sourceInterval":[1587,1614]},"caseInsensitive",[["terminal",{"sourceInterval":[1603,1613]},"power of"]]],["app",{"sourceInterval":[1622,1649]},"caseInsensitive",[["terminal",{"sourceInterval":[1638,1648]},"exponent"]]],["app",{"sourceInterval":[1657,1681]},"caseInsensitive",[["terminal",{"sourceInterval":[1673,1680]},"prime"]]]]],"constant":["define",{"sourceInterval":[1687,1754]},null,[],["alt",{"sourceInterval":[1704,1754]},["app",{"sourceInterval":[1704,1725]},"caseInsensitive",[["terminal",{"sourceInterval":[1720,1724]},"PI"]]],["app",{"sourceInterval":[1734,1754]},"caseInsensitive",[["terminal",{"sourceInterval":[1750,1753]},"E"]]]]],"number_fract":["define",{"sourceInterval":[1774,1801]},null,[],["seq",{"sourceInterval":[1774,1791]},["star",{"sourceInterval":[1774,1780]},["app",{"sourceInterval":[1774,1779]},"digit",[]]],["terminal",{"sourceInterval":[1781,1784]},"."],["plus",{"sourceInterval":[1785,1791]},["app",{"sourceInterval":[1785,1790]},"digit",[]]]]],"number_whole":["define",{"sourceInterval":[1809,1836]},null,[],["plus",{"sourceInterval":[1809,1815]},["app",{"sourceInterval":[1809,1814]},"digit",[]]]],"number":["define",{"sourceInterval":[1760,1836]},null,[],["alt",{"sourceInterval":[1774,1836]},["app",{"sourceInterval":[1774,1791]},"number_fract",[]],["app",{"sourceInterval":[1809,1815]},"number_whole",[]]]],"hex":["define",{"sourceInterval":[1844,1890]},null,[],["alt",{"sourceInterval":[1855,1890]},["seq",{"sourceInterval":[1855,1869]},["terminal",{"sourceInterval":[1855,1859]},"0x"],["plus",{"sourceInterval":[1860,1869]},["app",{"sourceInterval":[1860,1868]},"hexDigit",[]]]],["seq",{"sourceInterval":[1877,1890]},["plus",{"sourceInterval":[1877,1886]},["app",{"sourceInterval":[1877,1885]},"hexDigit",[]]],["terminal",{"sourceInterval":[1887,1890]},"h"]]]]}]);result.UnitsOfMeasurementArithmetic=makeRecipe(["grammar",{"source":"UnitsOfMeasurementArithmetic <: BasicArithmetic {\r\n\tExpression\r\n \t:= Conversion\r\n | ConversionPossiblities\r\n\t\t| LogicalShift\r\n \r\n Primitive \r\n += UoM\r\n | percentage\r\n \r\n \tConversion\r\n \t= caseInsensitive<\"convert\">? UoM caseInsensitive<\"to\"> caseInsensitive<\"best\"> -- best\r\n | caseInsensitive<\"convert\">? UoM caseInsensitive<\"to\"> Unit -- convert\r\n \t\r\n ConversionPossiblities\r\n = caseInsensitive<\"convert\">? UoM caseInsensitive<\"to\"> \"?\"?\r\n \r\n UoM \r\n = number Unit\r\n\r\n Unit\r\n = \"km3/s\"\r\n | \"yd3/h\"\r\n | \"yd3/min\"\r\n | \"yd3/s\"\r\n | \"ft3/h\"\r\n | \"ft3/min\"\r\n | \"ft3/s\"\r\n | \"in3/h\"\r\n | \"in3/min\"\r\n | \"in3/s\"\r\n | \"mm3/s\"\r\n | \"cm3/s\"\r\n | \"fl-oz/h\"\r\n | \"fl-oz/min\"\r\n | \"fl-oz/s\"\r\n | \"gal/h\"\r\n | \"gal/min\"\r\n | \"gal/s\"\r\n | \"pnt/h\"\r\n | \"pnt/min\"\r\n | \"pnt/s\"\r\n | \"cup/s\"\r\n | \"Tbs/s\"\r\n | \"tsp/s\"\r\n | \"m3/h\"\r\n | \"m3/min\"\r\n | \"m3/s\"\r\n | \"kl/h\"\r\n | \"kl/min\"\r\n | \"kl/s\"\r\n | \"l/h\"\r\n | \"l/min\"\r\n | \"l/s\"\r\n | \"dl/s\"\r\n | \"cl/s\"\r\n | \"ml/s\"\r\n | \"min/km\"\r\n | \"s/ft\"\r\n | \"s/m\"\r\n | \"km/h\"\r\n | \"m/h\"\r\n | \"ft/s\"\r\n | \"m/s\"\r\n | \"knot\"\r\n | \"THz\"\r\n | \"GHz\"\r\n | \"MHz\"\r\n | \"kHz\"\r\n | \"mHz\"\r\n | \"Hz\"\r\n | \"rpm\"\r\n | \"rad/s\"\r\n | \"deg/s\"\r\n | \"km3\"\r\n | \"yd3\"\r\n | \"ft3\"\r\n | \"in3\"\r\n | \"mm3\"\r\n | \"cm3\"\r\n | \"m3\"\r\n | \"gal\"\r\n | \"qt\"\r\n | \"pnt\"\r\n | \"cup\"\r\n | \"fl-oz\"\r\n | \"Tbs\"\r\n | \"tsp\"\r\n | \"kl\"\r\n | \"lb\"\r\n | \"lx\"\r\n | \"l\"\r\n | \"ml\"\r\n | \"km2\"\r\n | \"mi2\"\r\n | \"mm2\"\r\n | \"cm2\"\r\n | \"m2\"\r\n | \"in2\"\r\n | \"ft2\"\r\n | \"ha\"\r\n | \"ac\"\r\n | \"GVARh\"\r\n | \"MVARh\"\r\n | \"kVARh\"\r\n | \"mVARh\"\r\n | \"VARh\"\r\n | \"GVAR\"\r\n | \"MVAR\"\r\n | \"kVAR\"\r\n | \"mVAR\"\r\n | \"VAR\"\r\n | \"GVA\"\r\n | \"MVA\"\r\n | \"kVA\"\r\n | \"mVA\"\r\n | \"VA\"\r\n | \"GWh\"\r\n | \"MWh\"\r\n | \"kWh\"\r\n | \"mWh\"\r\n | \"Wh\"\r\n | \"GW\"\r\n | \"MW\"\r\n | \"kW\"\r\n | \"mW\"\r\n | \"W\"\r\n | \"kJ\"\r\n | \"J\"\r\n | \"mcg\"\r\n | \"kg\"\r\n | \"grad\"\r\n | \"g\"\r\n | \"mg\"\r\n | \"oz\"\r\n | \"torr\"\r\n | \"t\"\r\n | \"mt\"\r\n | \"month\"\r\n | \"year\"\r\n | \"week\"\r\n | \"deg\"\r\n | \"d\"\r\n | \"hPa\"\r\n | \"h\"\r\n | \"min\"\r\n | \"s\"\r\n | \"ms\"\r\n | \"mu\"\r\n | \"ns\"\r\n | \"kPa\"\r\n | \"MPa\"\r\n | \"bar\"\r\n | \"psi\"\r\n | \"ksi\"\r\n | \"Pa\"\r\n | \"ft-cd\"\r\n | \"ppm\"\r\n | \"ppb\"\r\n | \"ppt\"\r\n | \"ppq\"\r\n | \"kV\"\r\n | \"V\"\r\n | \"mV\"\r\n | \"kA\"\r\n | \"A\"\r\n | \"mA\"\r\n | \"arcmin\"\r\n | \"arcsec\"\r\n | \"rad\"\r\n | \"ft-us\"\r\n | \"mi\"\r\n | \"mm\"\r\n | \"m\"\r\n | \"cm\"\r\n | \"ft\"\r\n | \"in\"\r\n | \"F\"\r\n | \"Kb\"\r\n | \"KB\"\r\n | \"K\"\r\n | \"C\"\r\n | \"R\"\r\n | \"TB\"\r\n | \"GB\"\r\n | \"MB\"\r\n | \"B\"\r\n | \"Tb\"\r\n | \"Gb\"\r\n | \"Mb\"\r\n | \"b\"\r\n\r\n percentage \r\n = number \"%\"\r\n}"},"UnitsOfMeasurementArithmetic",result.BasicArithmetic,"Expression",{"Expression":["override",{"sourceInterval":[52,135]},null,[],["alt",{"sourceInterval":[73,135]},["app",{"sourceInterval":[73,83]},"Conversion",[]],["app",{"sourceInterval":[95,117]},"ConversionPossiblities",[]],["app",{"sourceInterval":[123,135]},"LogicalShift",[]]]],"Primitive":["extend",{"sourceInterval":[151,199]},null,[],["alt",{"sourceInterval":[174,199]},["app",{"sourceInterval":[174,177]},"UoM",[]],["app",{"sourceInterval":[189,199]},"percentage",[]]]],"Conversion_best":["define",{"sourceInterval":[234,319]},null,[],["seq",{"sourceInterval":[234,311]},["opt",{"sourceInterval":[234,261]},["app",{"sourceInterval":[234,260]},"caseInsensitive",[["terminal",{"sourceInterval":[250,259]},"convert"]]]],["app",{"sourceInterval":[262,265]},"UoM",[]],["app",{"sourceInterval":[266,287]},"caseInsensitive",[["terminal",{"sourceInterval":[282,286]},"to"]]],["app",{"sourceInterval":[288,311]},"caseInsensitive",[["terminal",{"sourceInterval":[304,310]},"best"]]]]],"Conversion_convert":["define",{"sourceInterval":[331,400]},null,[],["seq",{"sourceInterval":[331,389]},["opt",{"sourceInterval":[331,358]},["app",{"sourceInterval":[331,357]},"caseInsensitive",[["terminal",{"sourceInterval":[347,356]},"convert"]]]],["app",{"sourceInterval":[359,362]},"UoM",[]],["app",{"sourceInterval":[363,384]},"caseInsensitive",[["terminal",{"sourceInterval":[379,383]},"to"]]],["app",{"sourceInterval":[385,389]},"Unit",[]]]],"Conversion":["define",{"sourceInterval":[215,400]},null,[],["alt",{"sourceInterval":[234,400]},["app",{"sourceInterval":[234,311]},"Conversion_best",[]],["app",{"sourceInterval":[331,389]},"Conversion_convert",[]]]],"ConversionPossiblities":["define",{"sourceInterval":[417,509]},null,[],["seq",{"sourceInterval":[451,509]},["opt",{"sourceInterval":[451,478]},["app",{"sourceInterval":[451,477]},"caseInsensitive",[["terminal",{"sourceInterval":[467,476]},"convert"]]]],["app",{"sourceInterval":[479,482]},"UoM",[]],["app",{"sourceInterval":[483,504]},"caseInsensitive",[["terminal",{"sourceInterval":[499,503]},"to"]]],["opt",{"sourceInterval":[505,509]},["terminal",{"sourceInterval":[505,508]},"?"]]]],"UoM":["define",{"sourceInterval":[521,548]},null,[],["seq",{"sourceInterval":[537,548]},["app",{"sourceInterval":[537,543]},"number",[]],["app",{"sourceInterval":[544,548]},"Unit",[]]]],"Unit":["define",{"sourceInterval":[556,3497]},null,[],["alt",{"sourceInterval":[572,3497]},["terminal",{"sourceInterval":[572,579]},"km3/s"],["terminal",{"sourceInterval":[591,598]},"yd3/h"],["terminal",{"sourceInterval":[610,619]},"yd3/min"],["terminal",{"sourceInterval":[631,638]},"yd3/s"],["terminal",{"sourceInterval":[650,657]},"ft3/h"],["terminal",{"sourceInterval":[669,678]},"ft3/min"],["terminal",{"sourceInterval":[690,697]},"ft3/s"],["terminal",{"sourceInterval":[709,716]},"in3/h"],["terminal",{"sourceInterval":[728,737]},"in3/min"],["terminal",{"sourceInterval":[749,756]},"in3/s"],["terminal",{"sourceInterval":[768,775]},"mm3/s"],["terminal",{"sourceInterval":[787,794]},"cm3/s"],["terminal",{"sourceInterval":[806,815]},"fl-oz/h"],["terminal",{"sourceInterval":[827,838]},"fl-oz/min"],["terminal",{"sourceInterval":[850,859]},"fl-oz/s"],["terminal",{"sourceInterval":[871,878]},"gal/h"],["terminal",{"sourceInterval":[890,899]},"gal/min"],["terminal",{"sourceInterval":[911,918]},"gal/s"],["terminal",{"sourceInterval":[930,937]},"pnt/h"],["terminal",{"sourceInterval":[949,958]},"pnt/min"],["terminal",{"sourceInterval":[970,977]},"pnt/s"],["terminal",{"sourceInterval":[989,996]},"cup/s"],["terminal",{"sourceInterval":[1008,1015]},"Tbs/s"],["terminal",{"sourceInterval":[1027,1034]},"tsp/s"],["terminal",{"sourceInterval":[1046,1052]},"m3/h"],["terminal",{"sourceInterval":[1064,1072]},"m3/min"],["terminal",{"sourceInterval":[1084,1090]},"m3/s"],["terminal",{"sourceInterval":[1102,1108]},"kl/h"],["terminal",{"sourceInterval":[1120,1128]},"kl/min"],["terminal",{"sourceInterval":[1140,1146]},"kl/s"],["terminal",{"sourceInterval":[1158,1163]},"l/h"],["terminal",{"sourceInterval":[1175,1182]},"l/min"],["terminal",{"sourceInterval":[1194,1199]},"l/s"],["terminal",{"sourceInterval":[1211,1217]},"dl/s"],["terminal",{"sourceInterval":[1229,1235]},"cl/s"],["terminal",{"sourceInterval":[1247,1253]},"ml/s"],["terminal",{"sourceInterval":[1265,1273]},"min/km"],["terminal",{"sourceInterval":[1285,1291]},"s/ft"],["terminal",{"sourceInterval":[1303,1308]},"s/m"],["terminal",{"sourceInterval":[1320,1326]},"km/h"],["terminal",{"sourceInterval":[1338,1343]},"m/h"],["terminal",{"sourceInterval":[1355,1361]},"ft/s"],["terminal",{"sourceInterval":[1373,1378]},"m/s"],["terminal",{"sourceInterval":[1390,1396]},"knot"],["terminal",{"sourceInterval":[1408,1413]},"THz"],["terminal",{"sourceInterval":[1425,1430]},"GHz"],["terminal",{"sourceInterval":[1442,1447]},"MHz"],["terminal",{"sourceInterval":[1459,1464]},"kHz"],["terminal",{"sourceInterval":[1476,1481]},"mHz"],["terminal",{"sourceInterval":[1493,1497]},"Hz"],["terminal",{"sourceInterval":[1509,1514]},"rpm"],["terminal",{"sourceInterval":[1526,1533]},"rad/s"],["terminal",{"sourceInterval":[1545,1552]},"deg/s"],["terminal",{"sourceInterval":[1564,1569]},"km3"],["terminal",{"sourceInterval":[1581,1586]},"yd3"],["terminal",{"sourceInterval":[1598,1603]},"ft3"],["terminal",{"sourceInterval":[1615,1620]},"in3"],["terminal",{"sourceInterval":[1632,1637]},"mm3"],["terminal",{"sourceInterval":[1649,1654]},"cm3"],["terminal",{"sourceInterval":[1666,1670]},"m3"],["terminal",{"sourceInterval":[1682,1687]},"gal"],["terminal",{"sourceInterval":[1699,1703]},"qt"],["terminal",{"sourceInterval":[1715,1720]},"pnt"],["terminal",{"sourceInterval":[1732,1737]},"cup"],["terminal",{"sourceInterval":[1749,1756]},"fl-oz"],["terminal",{"sourceInterval":[1768,1773]},"Tbs"],["terminal",{"sourceInterval":[1785,1790]},"tsp"],["terminal",{"sourceInterval":[1802,1806]},"kl"],["terminal",{"sourceInterval":[1818,1822]},"lb"],["terminal",{"sourceInterval":[1834,1838]},"lx"],["terminal",{"sourceInterval":[1850,1853]},"l"],["terminal",{"sourceInterval":[1865,1869]},"ml"],["terminal",{"sourceInterval":[1881,1886]},"km2"],["terminal",{"sourceInterval":[1898,1903]},"mi2"],["terminal",{"sourceInterval":[1915,1920]},"mm2"],["terminal",{"sourceInterval":[1932,1937]},"cm2"],["terminal",{"sourceInterval":[1949,1953]},"m2"],["terminal",{"sourceInterval":[1965,1970]},"in2"],["terminal",{"sourceInterval":[1982,1987]},"ft2"],["terminal",{"sourceInterval":[1999,2003]},"ha"],["terminal",{"sourceInterval":[2015,2019]},"ac"],["terminal",{"sourceInterval":[2031,2038]},"GVARh"],["terminal",{"sourceInterval":[2050,2057]},"MVARh"],["terminal",{"sourceInterval":[2069,2076]},"kVARh"],["terminal",{"sourceInterval":[2088,2095]},"mVARh"],["terminal",{"sourceInterval":[2107,2113]},"VARh"],["terminal",{"sourceInterval":[2125,2131]},"GVAR"],["terminal",{"sourceInterval":[2143,2149]},"MVAR"],["terminal",{"sourceInterval":[2161,2167]},"kVAR"],["terminal",{"sourceInterval":[2179,2185]},"mVAR"],["terminal",{"sourceInterval":[2197,2202]},"VAR"],["terminal",{"sourceInterval":[2214,2219]},"GVA"],["terminal",{"sourceInterval":[2231,2236]},"MVA"],["terminal",{"sourceInterval":[2248,2253]},"kVA"],["terminal",{"sourceInterval":[2265,2270]},"mVA"],["terminal",{"sourceInterval":[2282,2286]},"VA"],["terminal",{"sourceInterval":[2298,2303]},"GWh"],["terminal",{"sourceInterval":[2315,2320]},"MWh"],["terminal",{"sourceInterval":[2332,2337]},"kWh"],["terminal",{"sourceInterval":[2349,2354]},"mWh"],["terminal",{"sourceInterval":[2366,2370]},"Wh"],["terminal",{"sourceInterval":[2382,2386]},"GW"],["terminal",{"sourceInterval":[2398,2402]},"MW"],["terminal",{"sourceInterval":[2414,2418]},"kW"],["terminal",{"sourceInterval":[2430,2434]},"mW"],["terminal",{"sourceInterval":[2446,2449]},"W"],["terminal",{"sourceInterval":[2461,2465]},"kJ"],["terminal",{"sourceInterval":[2477,2480]},"J"],["terminal",{"sourceInterval":[2492,2497]},"mcg"],["terminal",{"sourceInterval":[2509,2513]},"kg"],["terminal",{"sourceInterval":[2525,2531]},"grad"],["terminal",{"sourceInterval":[2543,2546]},"g"],["terminal",{"sourceInterval":[2558,2562]},"mg"],["terminal",{"sourceInterval":[2574,2578]},"oz"],["terminal",{"sourceInterval":[2590,2596]},"torr"],["terminal",{"sourceInterval":[2608,2611]},"t"],["terminal",{"sourceInterval":[2623,2627]},"mt"],["terminal",{"sourceInterval":[2639,2646]},"month"],["terminal",{"sourceInterval":[2658,2664]},"year"],["terminal",{"sourceInterval":[2676,2682]},"week"],["terminal",{"sourceInterval":[2694,2699]},"deg"],["terminal",{"sourceInterval":[2711,2714]},"d"],["terminal",{"sourceInterval":[2726,2731]},"hPa"],["terminal",{"sourceInterval":[2743,2746]},"h"],["terminal",{"sourceInterval":[2758,2763]},"min"],["terminal",{"sourceInterval":[2775,2778]},"s"],["terminal",{"sourceInterval":[2790,2794]},"ms"],["terminal",{"sourceInterval":[2806,2810]},"mu"],["terminal",{"sourceInterval":[2822,2826]},"ns"],["terminal",{"sourceInterval":[2838,2843]},"kPa"],["terminal",{"sourceInterval":[2855,2860]},"MPa"],["terminal",{"sourceInterval":[2872,2877]},"bar"],["terminal",{"sourceInterval":[2889,2894]},"psi"],["terminal",{"sourceInterval":[2906,2911]},"ksi"],["terminal",{"sourceInterval":[2923,2927]},"Pa"],["terminal",{"sourceInterval":[2939,2946]},"ft-cd"],["terminal",{"sourceInterval":[2958,2963]},"ppm"],["terminal",{"sourceInterval":[2975,2980]},"ppb"],["terminal",{"sourceInterval":[2992,2997]},"ppt"],["terminal",{"sourceInterval":[3009,3014]},"ppq"],["terminal",{"sourceInterval":[3026,3030]},"kV"],["terminal",{"sourceInterval":[3042,3045]},"V"],["terminal",{"sourceInterval":[3057,3061]},"mV"],["terminal",{"sourceInterval":[3073,3077]},"kA"],["terminal",{"sourceInterval":[3089,3092]},"A"],["terminal",{"sourceInterval":[3104,3108]},"mA"],["terminal",{"sourceInterval":[3120,3128]},"arcmin"],["terminal",{"sourceInterval":[3140,3148]},"arcsec"],["terminal",{"sourceInterval":[3160,3165]},"rad"],["terminal",{"sourceInterval":[3177,3184]},"ft-us"],["terminal",{"sourceInterval":[3196,3200]},"mi"],["terminal",{"sourceInterval":[3212,3216]},"mm"],["terminal",{"sourceInterval":[3228,3231]},"m"],["terminal",{"sourceInterval":[3243,3247]},"cm"],["terminal",{"sourceInterval":[3259,3263]},"ft"],["terminal",{"sourceInterval":[3275,3279]},"in"],["terminal",{"sourceInterval":[3291,3294]},"F"],["terminal",{"sourceInterval":[3306,3310]},"Kb"],["terminal",{"sourceInterval":[3322,3326]},"KB"],["terminal",{"sourceInterval":[3338,3341]},"K"],["terminal",{"sourceInterval":[3353,3356]},"C"],["terminal",{"sourceInterval":[3368,3371]},"R"],["terminal",{"sourceInterval":[3383,3387]},"TB"],["terminal",{"sourceInterval":[3399,3403]},"GB"],["terminal",{"sourceInterval":[3415,3419]},"MB"],["terminal",{"sourceInterval":[3431,3434]},"B"],["terminal",{"sourceInterval":[3446,3450]},"Tb"],["terminal",{"sourceInterval":[3462,3466]},"Gb"],["terminal",{"sourceInterval":[3478,3482]},"Mb"],["terminal",{"sourceInterval":[3494,3497]},"b"]]],"percentage":["define",{"sourceInterval":[3505,3538]},null,[],["seq",{"sourceInterval":[3528,3538]},["app",{"sourceInterval":[3528,3534]},"number",[]],["terminal",{"sourceInterval":[3535,3538]},"%"]]]}]);module.exports=result; \ No newline at end of file diff --git a/src/grammars/vector/Vector2Arithmetic.ohm-bundle.js b/src/grammars/vector/Vector2Arithmetic.ohm-bundle.js index 0fd9291..0e5d04e 100644 --- a/src/grammars/vector/Vector2Arithmetic.ohm-bundle.js +++ b/src/grammars/vector/Vector2Arithmetic.ohm-bundle.js @@ -1 +1 @@ -'use strict';const {makeRecipe}=require('ohm-js');const result={};result.BasicArithmetic=makeRecipe(["grammar",{"source":"BasicArithmetic {\r\n Expression\r\n = LogicalShift\r\n\r\n LogicalShift\r\n = LogicalShift \"<<\" LogicalShift -- left\r\n | LogicalShift \">>\" LogicalShift -- right\r\n | AS \r\n\r\n // Addition or Subtraction\r\n AS\r\n = AS add MD -- addition\r\n | AS subtract MD -- subtraction\r\n | MD\r\n\r\n // Multiply or Divide\r\n MD\r\n = MD multiply E -- multiplication\r\n | MD divide E -- division\r\n | MD modulo E -- modulo\r\n | E\r\n\r\n // Exponent\r\n E\r\n = P exponent E -- exponent\r\n | P\r\n\r\n // Parenthesis\r\n P\r\n = \"(\" Expression \")\" -- parenthesis\r\n | Primitive\r\n \r\n Primitive\r\n = \"+\" Primitive -- positive\r\n | \"-\" Primitive -- negative\r\n | constant\r\n | hex\r\n | number\r\n \r\n // Lexical Rules\r\n add \r\n \t= \"+\"\r\n | caseInsensitive<\"plus\">\r\n \t| caseInsensitive<\"add\">\r\n | caseInsensitive<\"and\">\r\n \r\n subtract \r\n = \"-\"\r\n | caseInsensitive<\"minus\">\r\n | caseInsensitive<\"subtract\">\r\n | caseInsensitive<\"remove\">\r\n | caseInsensitive<\"take\">\r\n \r\n multiply \r\n = \"*\"\r\n | caseInsensitive<\"times by\">\r\n | caseInsensitive<\"times\">\r\n | caseInsensitive<\"multiply by\">\r\n | caseInsensitive<\"multiply\">\r\n \r\n divide\r\n = \"/\"\r\n | caseInsensitive<\"divide by\">\r\n | caseInsensitive<\"divide\">\r\n\r\n modulo\r\n = \"%\"\r\n | caseInsensitive<\"modulo\">\r\n | caseInsensitive<\"mod\">\r\n\r\n exponent\r\n = \"^\"\r\n | caseInsensitive<\"to the power of\">\r\n | caseInsensitive<\"power of\">\r\n | caseInsensitive<\"exponent\">\r\n | caseInsensitive<\"prime\">\r\n\r\n constant \r\n \t= caseInsensitive<\"PI\"> \r\n | caseInsensitive<\"E\">\r\n\r\n number\r\n = digit* \".\" digit+ -- fract\r\n | digit+ -- whole\r\n \r\n hex\r\n = \"0x\" hexDigit+\r\n | hexDigit+ \"h\"\r\n}"},"BasicArithmetic",null,"Expression",{"Expression":["define",{"sourceInterval":[21,51]},null,[],["app",{"sourceInterval":[39,51]},"LogicalShift",[]]],"LogicalShift_left":["define",{"sourceInterval":[77,115]},null,[],["seq",{"sourceInterval":[77,107]},["app",{"sourceInterval":[77,89]},"LogicalShift",[]],["terminal",{"sourceInterval":[90,94]},"<<"],["app",{"sourceInterval":[95,107]},"LogicalShift",[]]]],"LogicalShift_right":["define",{"sourceInterval":[123,162]},null,[],["seq",{"sourceInterval":[123,153]},["app",{"sourceInterval":[123,135]},"LogicalShift",[]],["terminal",{"sourceInterval":[136,140]},">>"],["app",{"sourceInterval":[141,153]},"LogicalShift",[]]]],"LogicalShift":["define",{"sourceInterval":[57,172]},null,[],["alt",{"sourceInterval":[77,172]},["app",{"sourceInterval":[77,107]},"LogicalShift_left",[]],["app",{"sourceInterval":[123,153]},"LogicalShift_right",[]],["app",{"sourceInterval":[170,172]},"AS",[]]]],"AS_addition":["define",{"sourceInterval":[219,241]},null,[],["seq",{"sourceInterval":[219,228]},["app",{"sourceInterval":[219,221]},"AS",[]],["app",{"sourceInterval":[222,225]},"add",[]],["app",{"sourceInterval":[226,228]},"MD",[]]]],"AS_subtraction":["define",{"sourceInterval":[249,279]},null,[],["seq",{"sourceInterval":[249,263]},["app",{"sourceInterval":[249,251]},"AS",[]],["app",{"sourceInterval":[252,260]},"subtract",[]],["app",{"sourceInterval":[261,263]},"MD",[]]]],"AS":["define",{"sourceInterval":[209,289]},null,[],["alt",{"sourceInterval":[219,289]},["app",{"sourceInterval":[219,228]},"AS_addition",[]],["app",{"sourceInterval":[249,263]},"AS_subtraction",[]],["app",{"sourceInterval":[287,289]},"MD",[]]]],"MD_multiplication":["define",{"sourceInterval":[330,362]},null,[],["seq",{"sourceInterval":[330,343]},["app",{"sourceInterval":[330,332]},"MD",[]],["app",{"sourceInterval":[333,341]},"multiply",[]],["app",{"sourceInterval":[342,343]},"E",[]]]],"MD_division":["define",{"sourceInterval":[370,394]},null,[],["seq",{"sourceInterval":[370,381]},["app",{"sourceInterval":[370,372]},"MD",[]],["app",{"sourceInterval":[373,379]},"divide",[]],["app",{"sourceInterval":[380,381]},"E",[]]]],"MD_modulo":["define",{"sourceInterval":[402,424]},null,[],["seq",{"sourceInterval":[402,413]},["app",{"sourceInterval":[402,404]},"MD",[]],["app",{"sourceInterval":[405,411]},"modulo",[]],["app",{"sourceInterval":[412,413]},"E",[]]]],"MD":["define",{"sourceInterval":[320,433]},null,[],["alt",{"sourceInterval":[330,433]},["app",{"sourceInterval":[330,343]},"MD_multiplication",[]],["app",{"sourceInterval":[370,381]},"MD_division",[]],["app",{"sourceInterval":[402,413]},"MD_modulo",[]],["app",{"sourceInterval":[432,433]},"E",[]]]],"E_exponent":["define",{"sourceInterval":[463,488]},null,[],["seq",{"sourceInterval":[463,475]},["app",{"sourceInterval":[463,464]},"P",[]],["app",{"sourceInterval":[465,473]},"exponent",[]],["app",{"sourceInterval":[474,475]},"E",[]]]],"E":["define",{"sourceInterval":[454,497]},null,[],["alt",{"sourceInterval":[463,497]},["app",{"sourceInterval":[463,475]},"E_exponent",[]],["app",{"sourceInterval":[496,497]},"P",[]]]],"P_parenthesis":["define",{"sourceInterval":[530,564]},null,[],["seq",{"sourceInterval":[530,548]},["terminal",{"sourceInterval":[530,533]},"("],["app",{"sourceInterval":[534,544]},"Expression",[]],["terminal",{"sourceInterval":[545,548]},")"]]],"P":["define",{"sourceInterval":[521,581]},null,[],["alt",{"sourceInterval":[530,581]},["app",{"sourceInterval":[530,548]},"P_parenthesis",[]],["app",{"sourceInterval":[572,581]},"Primitive",[]]]],"Primitive_positive":["define",{"sourceInterval":[608,633]},null,[],["seq",{"sourceInterval":[608,621]},["terminal",{"sourceInterval":[608,611]},"+"],["app",{"sourceInterval":[612,621]},"Primitive",[]]]],"Primitive_negative":["define",{"sourceInterval":[641,666]},null,[],["seq",{"sourceInterval":[641,654]},["terminal",{"sourceInterval":[641,644]},"-"],["app",{"sourceInterval":[645,654]},"Primitive",[]]]],"Primitive":["define",{"sourceInterval":[591,707]},null,[],["alt",{"sourceInterval":[608,707]},["app",{"sourceInterval":[608,621]},"Primitive_positive",[]],["app",{"sourceInterval":[641,654]},"Primitive_negative",[]],["app",{"sourceInterval":[674,682]},"constant",[]],["app",{"sourceInterval":[690,693]},"hex",[]],["app",{"sourceInterval":[701,707]},"number",[]]]],"add":["define",{"sourceInterval":[734,838]},null,[],["alt",{"sourceInterval":[745,838]},["terminal",{"sourceInterval":[745,748]},"+"],["app",{"sourceInterval":[756,779]},"caseInsensitive",[["terminal",{"sourceInterval":[772,778]},"plus"]]],["app",{"sourceInterval":[786,808]},"caseInsensitive",[["terminal",{"sourceInterval":[802,807]},"add"]]],["app",{"sourceInterval":[816,838]},"caseInsensitive",[["terminal",{"sourceInterval":[832,837]},"and"]]]]],"subtract":["define",{"sourceInterval":[848,999]},null,[],["alt",{"sourceInterval":[865,999]},["terminal",{"sourceInterval":[865,868]},"-"],["app",{"sourceInterval":[876,900]},"caseInsensitive",[["terminal",{"sourceInterval":[892,899]},"minus"]]],["app",{"sourceInterval":[908,935]},"caseInsensitive",[["terminal",{"sourceInterval":[924,934]},"subtract"]]],["app",{"sourceInterval":[943,968]},"caseInsensitive",[["terminal",{"sourceInterval":[959,967]},"remove"]]],["app",{"sourceInterval":[976,999]},"caseInsensitive",[["terminal",{"sourceInterval":[992,998]},"take"]]]]],"multiply":["define",{"sourceInterval":[1011,1171]},null,[],["alt",{"sourceInterval":[1028,1171]},["terminal",{"sourceInterval":[1028,1031]},"*"],["app",{"sourceInterval":[1039,1066]},"caseInsensitive",[["terminal",{"sourceInterval":[1055,1065]},"times by"]]],["app",{"sourceInterval":[1074,1098]},"caseInsensitive",[["terminal",{"sourceInterval":[1090,1097]},"times"]]],["app",{"sourceInterval":[1106,1136]},"caseInsensitive",[["terminal",{"sourceInterval":[1122,1135]},"multiply by"]]],["app",{"sourceInterval":[1144,1171]},"caseInsensitive",[["terminal",{"sourceInterval":[1160,1170]},"multiply"]]]]],"divide":["define",{"sourceInterval":[1183,1269]},null,[],["alt",{"sourceInterval":[1197,1269]},["terminal",{"sourceInterval":[1197,1200]},"/"],["app",{"sourceInterval":[1208,1236]},"caseInsensitive",[["terminal",{"sourceInterval":[1224,1235]},"divide by"]]],["app",{"sourceInterval":[1244,1269]},"caseInsensitive",[["terminal",{"sourceInterval":[1260,1268]},"divide"]]]]],"modulo":["define",{"sourceInterval":[1275,1355]},null,[],["alt",{"sourceInterval":[1289,1355]},["terminal",{"sourceInterval":[1289,1292]},"%"],["app",{"sourceInterval":[1300,1325]},"caseInsensitive",[["terminal",{"sourceInterval":[1316,1324]},"modulo"]]],["app",{"sourceInterval":[1333,1355]},"caseInsensitive",[["terminal",{"sourceInterval":[1349,1354]},"mod"]]]]],"exponent":["define",{"sourceInterval":[1361,1524]},null,[],["alt",{"sourceInterval":[1377,1524]},["terminal",{"sourceInterval":[1377,1380]},"^"],["app",{"sourceInterval":[1388,1422]},"caseInsensitive",[["terminal",{"sourceInterval":[1404,1421]},"to the power of"]]],["app",{"sourceInterval":[1430,1457]},"caseInsensitive",[["terminal",{"sourceInterval":[1446,1456]},"power of"]]],["app",{"sourceInterval":[1465,1492]},"caseInsensitive",[["terminal",{"sourceInterval":[1481,1491]},"exponent"]]],["app",{"sourceInterval":[1500,1524]},"caseInsensitive",[["terminal",{"sourceInterval":[1516,1523]},"prime"]]]]],"constant":["define",{"sourceInterval":[1530,1597]},null,[],["alt",{"sourceInterval":[1547,1597]},["app",{"sourceInterval":[1547,1568]},"caseInsensitive",[["terminal",{"sourceInterval":[1563,1567]},"PI"]]],["app",{"sourceInterval":[1577,1597]},"caseInsensitive",[["terminal",{"sourceInterval":[1593,1596]},"E"]]]]],"number_fract":["define",{"sourceInterval":[1617,1644]},null,[],["seq",{"sourceInterval":[1617,1634]},["star",{"sourceInterval":[1617,1623]},["app",{"sourceInterval":[1617,1622]},"digit",[]]],["terminal",{"sourceInterval":[1624,1627]},"."],["plus",{"sourceInterval":[1628,1634]},["app",{"sourceInterval":[1628,1633]},"digit",[]]]]],"number_whole":["define",{"sourceInterval":[1652,1679]},null,[],["plus",{"sourceInterval":[1652,1658]},["app",{"sourceInterval":[1652,1657]},"digit",[]]]],"number":["define",{"sourceInterval":[1603,1679]},null,[],["alt",{"sourceInterval":[1617,1679]},["app",{"sourceInterval":[1617,1634]},"number_fract",[]],["app",{"sourceInterval":[1652,1658]},"number_whole",[]]]],"hex":["define",{"sourceInterval":[1687,1733]},null,[],["alt",{"sourceInterval":[1698,1733]},["seq",{"sourceInterval":[1698,1712]},["terminal",{"sourceInterval":[1698,1702]},"0x"],["plus",{"sourceInterval":[1703,1712]},["app",{"sourceInterval":[1703,1711]},"hexDigit",[]]]],["seq",{"sourceInterval":[1720,1733]},["plus",{"sourceInterval":[1720,1729]},["app",{"sourceInterval":[1720,1728]},"hexDigit",[]]],["terminal",{"sourceInterval":[1730,1733]},"h"]]]]}]);result.Vector2Arithmetic=makeRecipe(["grammar",{"source":"Vector2Arithmetic <: BasicArithmetic {\r\n // Remove support for logical shift\r\n Expression \r\n \t:= AS\r\n\r\n P\r\n := \"(\" Expression \")\" -- parenthesis\r\n | Vector2\r\n | Function\r\n | Primitive\r\n\r\n // Remove modulo support for vector\r\n MD\r\n := MD multiply E -- multiplication\r\n | MD divide E -- division\r\n | E\r\n\r\n Vector2\r\n = vector2? \"(\" Expression \",\" Expression \")\" -- parse\r\n\r\n Function\r\n = LengthSq\r\n | DistanceSq\r\n | Length\r\n | Distance\r\n | Normalise\r\n | Dot\r\n | AngleBetween\r\n | Cross\r\n | Lerp\r\n\r\n LengthSq = lengthSq \"(\" Vector2 \")\" -- function\r\n DistanceSq = distanceSq \"(\" Vector2 \",\" Vector2 \")\" -- function\r\n Length = length \"(\" Vector2 \")\" -- function\r\n Distance = distance \"(\" Vector2 \",\" Vector2 \")\" -- function\r\n Normalise = normalise \"(\" Vector2 \")\" -- function\r\n Dot = dot \"(\" Vector2 \",\" Vector2 \")\" -- function\r\n AngleBetween = angleBetween \"(\" Vector2 \",\" Vector2 \")\" -- function\r\n Cross = cross \"(\" Vector2 \",\" Vector2 \")\" -- function\r\n Lerp = lerp \"(\" Vector2 \",\" Vector2 \",\" number \")\" -- function\r\n\r\n vector2 \r\n \t = caseInsensitive<\"Vector2\">\r\n | caseInsensitive<\"Vec2\">\r\n\r\n lengthSq \r\n \t = caseInsensitive<\"lengthSq\">\r\n | caseInsensitive<\"magnitudeSq\">\r\n\r\n distanceSq\r\n = caseInsensitive<\"distanceSq\">\r\n\r\n length\r\n \t = caseInsensitive<\"length\">\r\n | caseInsensitive<\"magnitude\">\r\n\r\n distance\r\n = caseInsensitive<\"distance\">\r\n\r\n normalise \r\n \t = caseInsensitive<\"normalise\">\r\n \t | caseInsensitive<\"normalize\">\r\n\r\n dot\r\n = caseInsensitive<\"dotproduct\">\r\n | caseInsensitive<\"dot\">\r\n\r\n angleBetween\r\n = caseInsensitive<\"angleBetween\">\r\n\r\n cross\r\n = caseInsensitive<\"crossproduct\">\r\n | caseInsensitive<\"cross\">\r\n\r\n lerp\r\n = caseInsensitive<\"lerp\">\r\n}"},"Vector2Arithmetic",result.BasicArithmetic,"Expression",{"Expression":["override",{"sourceInterval":[81,103]},null,[],["app",{"sourceInterval":[101,103]},"AS",[]]],"P_parenthesis":["override",{"sourceInterval":[119,153]},null,[],["seq",{"sourceInterval":[119,137]},["terminal",{"sourceInterval":[119,122]},"("],["app",{"sourceInterval":[123,133]},"Expression",[]],["terminal",{"sourceInterval":[134,137]},")"]]],"P":["override",{"sourceInterval":[109,201]},null,[],["alt",{"sourceInterval":[119,201]},["app",{"sourceInterval":[119,137]},"P_parenthesis",[]],["app",{"sourceInterval":[161,168]},"Vector2",[]],["app",{"sourceInterval":[176,184]},"Function",[]],["app",{"sourceInterval":[192,201]},"Primitive",[]]]],"MD_multiplication":["override",{"sourceInterval":[257,289]},null,[],["seq",{"sourceInterval":[257,270]},["app",{"sourceInterval":[257,259]},"MD",[]],["app",{"sourceInterval":[260,268]},"multiply",[]],["app",{"sourceInterval":[269,270]},"E",[]]]],"MD_division":["override",{"sourceInterval":[297,321]},null,[],["seq",{"sourceInterval":[297,308]},["app",{"sourceInterval":[297,299]},"MD",[]],["app",{"sourceInterval":[300,306]},"divide",[]],["app",{"sourceInterval":[307,308]},"E",[]]]],"MD":["override",{"sourceInterval":[246,330]},null,[],["alt",{"sourceInterval":[257,330]},["app",{"sourceInterval":[257,270]},"MD_multiplication",[]],["app",{"sourceInterval":[297,308]},"MD_division",[]],["app",{"sourceInterval":[329,330]},"E",[]]]],"Vector2_parse":["define",{"sourceInterval":[351,402]},null,[],["seq",{"sourceInterval":[351,393]},["opt",{"sourceInterval":[351,359]},["app",{"sourceInterval":[351,358]},"vector2",[]]],["terminal",{"sourceInterval":[360,363]},"("],["app",{"sourceInterval":[364,374]},"Expression",[]],["terminal",{"sourceInterval":[375,378]},","],["app",{"sourceInterval":[379,389]},"Expression",[]],["terminal",{"sourceInterval":[390,393]},")"]]],"Vector2":["define",{"sourceInterval":[336,402]},null,[],["app",{"sourceInterval":[351,402]},"Vector2_parse",[]]],"Function":["define",{"sourceInterval":[408,544]},null,[],["alt",{"sourceInterval":[423,544]},["app",{"sourceInterval":[423,431]},"LengthSq",[]],["app",{"sourceInterval":[438,448]},"DistanceSq",[]],["app",{"sourceInterval":[455,461]},"Length",[]],["app",{"sourceInterval":[468,476]},"Distance",[]],["app",{"sourceInterval":[483,492]},"Normalise",[]],["app",{"sourceInterval":[499,502]},"Dot",[]],["app",{"sourceInterval":[509,521]},"AngleBetween",[]],["app",{"sourceInterval":[528,533]},"Cross",[]],["app",{"sourceInterval":[540,544]},"Lerp",[]]]],"LengthSq_function":["define",{"sourceInterval":[562,598]},null,[],["seq",{"sourceInterval":[562,586]},["app",{"sourceInterval":[562,570]},"lengthSq",[]],["terminal",{"sourceInterval":[571,574]},"("],["app",{"sourceInterval":[575,582]},"Vector2",[]],["terminal",{"sourceInterval":[583,586]},")"]]],"LengthSq":["define",{"sourceInterval":[550,598]},null,[],["app",{"sourceInterval":[562,598]},"LengthSq_function",[]]],"DistanceSq_function":["define",{"sourceInterval":[616,666]},null,[],["seq",{"sourceInterval":[616,654]},["app",{"sourceInterval":[616,626]},"distanceSq",[]],["terminal",{"sourceInterval":[627,630]},"("],["app",{"sourceInterval":[631,638]},"Vector2",[]],["terminal",{"sourceInterval":[639,642]},","],["app",{"sourceInterval":[643,650]},"Vector2",[]],["terminal",{"sourceInterval":[651,654]},")"]]],"DistanceSq":["define",{"sourceInterval":[602,666]},null,[],["app",{"sourceInterval":[616,666]},"DistanceSq_function",[]]],"Length_function":["define",{"sourceInterval":[680,714]},null,[],["seq",{"sourceInterval":[680,702]},["app",{"sourceInterval":[680,686]},"length",[]],["terminal",{"sourceInterval":[687,690]},"("],["app",{"sourceInterval":[691,698]},"Vector2",[]],["terminal",{"sourceInterval":[699,702]},")"]]],"Length":["define",{"sourceInterval":[670,714]},null,[],["app",{"sourceInterval":[680,714]},"Length_function",[]]],"Distance_function":["define",{"sourceInterval":[730,778]},null,[],["seq",{"sourceInterval":[730,766]},["app",{"sourceInterval":[730,738]},"distance",[]],["terminal",{"sourceInterval":[739,742]},"("],["app",{"sourceInterval":[743,750]},"Vector2",[]],["terminal",{"sourceInterval":[751,754]},","],["app",{"sourceInterval":[755,762]},"Vector2",[]],["terminal",{"sourceInterval":[763,766]},")"]]],"Distance":["define",{"sourceInterval":[718,778]},null,[],["app",{"sourceInterval":[730,778]},"Distance_function",[]]],"Normalise_function":["define",{"sourceInterval":[794,831]},null,[],["seq",{"sourceInterval":[794,819]},["app",{"sourceInterval":[794,803]},"normalise",[]],["terminal",{"sourceInterval":[804,807]},"("],["app",{"sourceInterval":[808,815]},"Vector2",[]],["terminal",{"sourceInterval":[816,819]},")"]]],"Normalise":["define",{"sourceInterval":[782,831]},null,[],["app",{"sourceInterval":[794,831]},"Normalise_function",[]]],"Dot_function":["define",{"sourceInterval":[841,884]},null,[],["seq",{"sourceInterval":[841,872]},["app",{"sourceInterval":[841,844]},"dot",[]],["terminal",{"sourceInterval":[845,848]},"("],["app",{"sourceInterval":[849,856]},"Vector2",[]],["terminal",{"sourceInterval":[857,860]},","],["app",{"sourceInterval":[861,868]},"Vector2",[]],["terminal",{"sourceInterval":[869,872]},")"]]],"Dot":["define",{"sourceInterval":[835,884]},null,[],["app",{"sourceInterval":[841,884]},"Dot_function",[]]],"AngleBetween_function":["define",{"sourceInterval":[903,955]},null,[],["seq",{"sourceInterval":[903,943]},["app",{"sourceInterval":[903,915]},"angleBetween",[]],["terminal",{"sourceInterval":[916,919]},"("],["app",{"sourceInterval":[920,927]},"Vector2",[]],["terminal",{"sourceInterval":[928,931]},","],["app",{"sourceInterval":[932,939]},"Vector2",[]],["terminal",{"sourceInterval":[940,943]},")"]]],"AngleBetween":["define",{"sourceInterval":[888,955]},null,[],["app",{"sourceInterval":[903,955]},"AngleBetween_function",[]]],"Cross_function":["define",{"sourceInterval":[967,1012]},null,[],["seq",{"sourceInterval":[967,1000]},["app",{"sourceInterval":[967,972]},"cross",[]],["terminal",{"sourceInterval":[973,976]},"("],["app",{"sourceInterval":[977,984]},"Vector2",[]],["terminal",{"sourceInterval":[985,988]},","],["app",{"sourceInterval":[989,996]},"Vector2",[]],["terminal",{"sourceInterval":[997,1000]},")"]]],"Cross":["define",{"sourceInterval":[959,1012]},null,[],["app",{"sourceInterval":[967,1012]},"Cross_function",[]]],"Lerp_function":["define",{"sourceInterval":[1023,1078]},null,[],["seq",{"sourceInterval":[1023,1066]},["app",{"sourceInterval":[1023,1027]},"lerp",[]],["terminal",{"sourceInterval":[1028,1031]},"("],["app",{"sourceInterval":[1032,1039]},"Vector2",[]],["terminal",{"sourceInterval":[1040,1043]},","],["app",{"sourceInterval":[1044,1051]},"Vector2",[]],["terminal",{"sourceInterval":[1052,1055]},","],["app",{"sourceInterval":[1056,1062]},"number",[]],["terminal",{"sourceInterval":[1063,1066]},")"]]],"Lerp":["define",{"sourceInterval":[1016,1078]},null,[],["app",{"sourceInterval":[1023,1078]},"Lerp_function",[]]],"vector2":["define",{"sourceInterval":[1084,1157]},null,[],["alt",{"sourceInterval":[1100,1157]},["app",{"sourceInterval":[1100,1126]},"caseInsensitive",[["terminal",{"sourceInterval":[1116,1125]},"Vector2"]]],["app",{"sourceInterval":[1134,1157]},"caseInsensitive",[["terminal",{"sourceInterval":[1150,1156]},"Vec2"]]]]],"lengthSq":["define",{"sourceInterval":[1163,1245]},null,[],["alt",{"sourceInterval":[1180,1245]},["app",{"sourceInterval":[1180,1207]},"caseInsensitive",[["terminal",{"sourceInterval":[1196,1206]},"lengthSq"]]],["app",{"sourceInterval":[1215,1245]},"caseInsensitive",[["terminal",{"sourceInterval":[1231,1244]},"magnitudeSq"]]]]],"distanceSq":["define",{"sourceInterval":[1251,1298]},null,[],["app",{"sourceInterval":[1269,1298]},"caseInsensitive",[["terminal",{"sourceInterval":[1285,1297]},"distanceSq"]]]],"length":["define",{"sourceInterval":[1304,1379]},null,[],["alt",{"sourceInterval":[1318,1379]},["app",{"sourceInterval":[1318,1343]},"caseInsensitive",[["terminal",{"sourceInterval":[1334,1342]},"length"]]],["app",{"sourceInterval":[1351,1379]},"caseInsensitive",[["terminal",{"sourceInterval":[1367,1378]},"magnitude"]]]]],"distance":["define",{"sourceInterval":[1385,1428]},null,[],["app",{"sourceInterval":[1401,1428]},"caseInsensitive",[["terminal",{"sourceInterval":[1417,1427]},"distance"]]]],"normalise":["define",{"sourceInterval":[1434,1516]},null,[],["alt",{"sourceInterval":[1452,1516]},["app",{"sourceInterval":[1452,1480]},"caseInsensitive",[["terminal",{"sourceInterval":[1468,1479]},"normalise"]]],["app",{"sourceInterval":[1488,1516]},"caseInsensitive",[["terminal",{"sourceInterval":[1504,1515]},"normalize"]]]]],"dot":["define",{"sourceInterval":[1522,1592]},null,[],["alt",{"sourceInterval":[1533,1592]},["app",{"sourceInterval":[1533,1562]},"caseInsensitive",[["terminal",{"sourceInterval":[1549,1561]},"dotproduct"]]],["app",{"sourceInterval":[1570,1592]},"caseInsensitive",[["terminal",{"sourceInterval":[1586,1591]},"dot"]]]]],"angleBetween":["define",{"sourceInterval":[1598,1649]},null,[],["app",{"sourceInterval":[1618,1649]},"caseInsensitive",[["terminal",{"sourceInterval":[1634,1648]},"angleBetween"]]]],"cross":["define",{"sourceInterval":[1655,1731]},null,[],["alt",{"sourceInterval":[1668,1731]},["app",{"sourceInterval":[1668,1699]},"caseInsensitive",[["terminal",{"sourceInterval":[1684,1698]},"crossproduct"]]],["app",{"sourceInterval":[1707,1731]},"caseInsensitive",[["terminal",{"sourceInterval":[1723,1730]},"cross"]]]]],"lerp":["define",{"sourceInterval":[1737,1772]},null,[],["app",{"sourceInterval":[1749,1772]},"caseInsensitive",[["terminal",{"sourceInterval":[1765,1771]},"lerp"]]]]}]);module.exports=result; \ No newline at end of file +'use strict';const {makeRecipe}=require('ohm-js');const result={};result.BasicArithmetic=makeRecipe(["grammar",{"source":"BasicArithmetic {\r\n Expression\r\n = LogicalShift\r\n\r\n LogicalShift\r\n = LogicalShift \"<<\" LogicalShift -- left\r\n | LogicalShift \">>\" LogicalShift -- right\r\n | AS \r\n\r\n // Addition or Subtraction\r\n AS\r\n = AS add MD -- addition\r\n | AS subtract MD -- subtraction\r\n | MD\r\n\r\n // Multiply or Divide\r\n MD\r\n = MD multiply E -- multiplication\r\n | MD divide E -- division\r\n | MD modulo E -- modulo\r\n | E\r\n\r\n // Exponent\r\n E\r\n = P exponent E -- exponent\r\n | P\r\n\r\n // Parenthesis\r\n P\r\n = \"(\" Expression \")\" -- parenthesis\r\n | Primitive\r\n \r\n Primitive\r\n = \"+\" Primitive -- positive\r\n | \"-\" Primitive -- negative\r\n | constant\r\n | hex\r\n | number\r\n \r\n // Lexical Rules\r\n add \r\n \t= \"+\"\r\n | caseInsensitive<\"plus\">\r\n \t| caseInsensitive<\"add\">\r\n | caseInsensitive<\"and\">\r\n \r\n subtract \r\n = \"-\"\r\n | caseInsensitive<\"minus\">\r\n | caseInsensitive<\"subtract\">\r\n | caseInsensitive<\"remove\">\r\n | caseInsensitive<\"take\">\r\n \r\n multiply \r\n = \"*\"\r\n | \"\\\\*\" // Escaped e.g. \\* for markdown\r\n | \"\\u{00D7}\" // Multiplication Symbol ×\r\n | caseInsensitive<\"x\">\r\n | caseInsensitive<\"times by\">\r\n | caseInsensitive<\"times\">\r\n | caseInsensitive<\"multiply by\">\r\n | caseInsensitive<\"multiply\">\r\n \r\n divide\r\n = \"/\"\r\n | \"\\u{00F7}\" // Division Symbol ÷\r\n | caseInsensitive<\"divide by\">\r\n | caseInsensitive<\"divide\">\r\n\r\n modulo\r\n = \"%\"\r\n | caseInsensitive<\"modulo\">\r\n | caseInsensitive<\"mod\">\r\n\r\n exponent\r\n = \"^\"\r\n | caseInsensitive<\"to the power of\">\r\n | caseInsensitive<\"power of\">\r\n | caseInsensitive<\"exponent\">\r\n | caseInsensitive<\"prime\">\r\n\r\n constant \r\n \t= caseInsensitive<\"PI\"> \r\n | caseInsensitive<\"E\">\r\n\r\n number\r\n = digit* \".\" digit+ -- fract\r\n | digit+ -- whole\r\n \r\n hex\r\n = \"0x\" hexDigit+\r\n | hexDigit+ \"h\"\r\n}"},"BasicArithmetic",null,"Expression",{"Expression":["define",{"sourceInterval":[21,51]},null,[],["app",{"sourceInterval":[39,51]},"LogicalShift",[]]],"LogicalShift_left":["define",{"sourceInterval":[77,115]},null,[],["seq",{"sourceInterval":[77,107]},["app",{"sourceInterval":[77,89]},"LogicalShift",[]],["terminal",{"sourceInterval":[90,94]},"<<"],["app",{"sourceInterval":[95,107]},"LogicalShift",[]]]],"LogicalShift_right":["define",{"sourceInterval":[123,162]},null,[],["seq",{"sourceInterval":[123,153]},["app",{"sourceInterval":[123,135]},"LogicalShift",[]],["terminal",{"sourceInterval":[136,140]},">>"],["app",{"sourceInterval":[141,153]},"LogicalShift",[]]]],"LogicalShift":["define",{"sourceInterval":[57,172]},null,[],["alt",{"sourceInterval":[77,172]},["app",{"sourceInterval":[77,107]},"LogicalShift_left",[]],["app",{"sourceInterval":[123,153]},"LogicalShift_right",[]],["app",{"sourceInterval":[170,172]},"AS",[]]]],"AS_addition":["define",{"sourceInterval":[219,241]},null,[],["seq",{"sourceInterval":[219,228]},["app",{"sourceInterval":[219,221]},"AS",[]],["app",{"sourceInterval":[222,225]},"add",[]],["app",{"sourceInterval":[226,228]},"MD",[]]]],"AS_subtraction":["define",{"sourceInterval":[249,279]},null,[],["seq",{"sourceInterval":[249,263]},["app",{"sourceInterval":[249,251]},"AS",[]],["app",{"sourceInterval":[252,260]},"subtract",[]],["app",{"sourceInterval":[261,263]},"MD",[]]]],"AS":["define",{"sourceInterval":[209,289]},null,[],["alt",{"sourceInterval":[219,289]},["app",{"sourceInterval":[219,228]},"AS_addition",[]],["app",{"sourceInterval":[249,263]},"AS_subtraction",[]],["app",{"sourceInterval":[287,289]},"MD",[]]]],"MD_multiplication":["define",{"sourceInterval":[330,362]},null,[],["seq",{"sourceInterval":[330,343]},["app",{"sourceInterval":[330,332]},"MD",[]],["app",{"sourceInterval":[333,341]},"multiply",[]],["app",{"sourceInterval":[342,343]},"E",[]]]],"MD_division":["define",{"sourceInterval":[370,394]},null,[],["seq",{"sourceInterval":[370,381]},["app",{"sourceInterval":[370,372]},"MD",[]],["app",{"sourceInterval":[373,379]},"divide",[]],["app",{"sourceInterval":[380,381]},"E",[]]]],"MD_modulo":["define",{"sourceInterval":[402,424]},null,[],["seq",{"sourceInterval":[402,413]},["app",{"sourceInterval":[402,404]},"MD",[]],["app",{"sourceInterval":[405,411]},"modulo",[]],["app",{"sourceInterval":[412,413]},"E",[]]]],"MD":["define",{"sourceInterval":[320,433]},null,[],["alt",{"sourceInterval":[330,433]},["app",{"sourceInterval":[330,343]},"MD_multiplication",[]],["app",{"sourceInterval":[370,381]},"MD_division",[]],["app",{"sourceInterval":[402,413]},"MD_modulo",[]],["app",{"sourceInterval":[432,433]},"E",[]]]],"E_exponent":["define",{"sourceInterval":[463,488]},null,[],["seq",{"sourceInterval":[463,475]},["app",{"sourceInterval":[463,464]},"P",[]],["app",{"sourceInterval":[465,473]},"exponent",[]],["app",{"sourceInterval":[474,475]},"E",[]]]],"E":["define",{"sourceInterval":[454,497]},null,[],["alt",{"sourceInterval":[463,497]},["app",{"sourceInterval":[463,475]},"E_exponent",[]],["app",{"sourceInterval":[496,497]},"P",[]]]],"P_parenthesis":["define",{"sourceInterval":[530,564]},null,[],["seq",{"sourceInterval":[530,548]},["terminal",{"sourceInterval":[530,533]},"("],["app",{"sourceInterval":[534,544]},"Expression",[]],["terminal",{"sourceInterval":[545,548]},")"]]],"P":["define",{"sourceInterval":[521,581]},null,[],["alt",{"sourceInterval":[530,581]},["app",{"sourceInterval":[530,548]},"P_parenthesis",[]],["app",{"sourceInterval":[572,581]},"Primitive",[]]]],"Primitive_positive":["define",{"sourceInterval":[608,633]},null,[],["seq",{"sourceInterval":[608,621]},["terminal",{"sourceInterval":[608,611]},"+"],["app",{"sourceInterval":[612,621]},"Primitive",[]]]],"Primitive_negative":["define",{"sourceInterval":[641,666]},null,[],["seq",{"sourceInterval":[641,654]},["terminal",{"sourceInterval":[641,644]},"-"],["app",{"sourceInterval":[645,654]},"Primitive",[]]]],"Primitive":["define",{"sourceInterval":[591,707]},null,[],["alt",{"sourceInterval":[608,707]},["app",{"sourceInterval":[608,621]},"Primitive_positive",[]],["app",{"sourceInterval":[641,654]},"Primitive_negative",[]],["app",{"sourceInterval":[674,682]},"constant",[]],["app",{"sourceInterval":[690,693]},"hex",[]],["app",{"sourceInterval":[701,707]},"number",[]]]],"add":["define",{"sourceInterval":[734,838]},null,[],["alt",{"sourceInterval":[745,838]},["terminal",{"sourceInterval":[745,748]},"+"],["app",{"sourceInterval":[756,779]},"caseInsensitive",[["terminal",{"sourceInterval":[772,778]},"plus"]]],["app",{"sourceInterval":[786,808]},"caseInsensitive",[["terminal",{"sourceInterval":[802,807]},"add"]]],["app",{"sourceInterval":[816,838]},"caseInsensitive",[["terminal",{"sourceInterval":[832,837]},"and"]]]]],"subtract":["define",{"sourceInterval":[848,999]},null,[],["alt",{"sourceInterval":[865,999]},["terminal",{"sourceInterval":[865,868]},"-"],["app",{"sourceInterval":[876,900]},"caseInsensitive",[["terminal",{"sourceInterval":[892,899]},"minus"]]],["app",{"sourceInterval":[908,935]},"caseInsensitive",[["terminal",{"sourceInterval":[924,934]},"subtract"]]],["app",{"sourceInterval":[943,968]},"caseInsensitive",[["terminal",{"sourceInterval":[959,967]},"remove"]]],["app",{"sourceInterval":[976,999]},"caseInsensitive",[["terminal",{"sourceInterval":[992,998]},"take"]]]]],"multiply":["define",{"sourceInterval":[1011,1289]},null,[],["alt",{"sourceInterval":[1028,1289]},["terminal",{"sourceInterval":[1028,1031]},"*"],["terminal",{"sourceInterval":[1039,1044]},"\\*"],["terminal",{"sourceInterval":[1084,1094]},"×"],["app",{"sourceInterval":[1129,1149]},"caseInsensitive",[["terminal",{"sourceInterval":[1145,1148]},"x"]]],["app",{"sourceInterval":[1157,1184]},"caseInsensitive",[["terminal",{"sourceInterval":[1173,1183]},"times by"]]],["app",{"sourceInterval":[1192,1216]},"caseInsensitive",[["terminal",{"sourceInterval":[1208,1215]},"times"]]],["app",{"sourceInterval":[1224,1254]},"caseInsensitive",[["terminal",{"sourceInterval":[1240,1253]},"multiply by"]]],["app",{"sourceInterval":[1262,1289]},"caseInsensitive",[["terminal",{"sourceInterval":[1278,1288]},"multiply"]]]]],"divide":["define",{"sourceInterval":[1301,1426]},null,[],["alt",{"sourceInterval":[1315,1426]},["terminal",{"sourceInterval":[1315,1318]},"/"],["terminal",{"sourceInterval":[1326,1336]},"÷"],["app",{"sourceInterval":[1365,1393]},"caseInsensitive",[["terminal",{"sourceInterval":[1381,1392]},"divide by"]]],["app",{"sourceInterval":[1401,1426]},"caseInsensitive",[["terminal",{"sourceInterval":[1417,1425]},"divide"]]]]],"modulo":["define",{"sourceInterval":[1432,1512]},null,[],["alt",{"sourceInterval":[1446,1512]},["terminal",{"sourceInterval":[1446,1449]},"%"],["app",{"sourceInterval":[1457,1482]},"caseInsensitive",[["terminal",{"sourceInterval":[1473,1481]},"modulo"]]],["app",{"sourceInterval":[1490,1512]},"caseInsensitive",[["terminal",{"sourceInterval":[1506,1511]},"mod"]]]]],"exponent":["define",{"sourceInterval":[1518,1681]},null,[],["alt",{"sourceInterval":[1534,1681]},["terminal",{"sourceInterval":[1534,1537]},"^"],["app",{"sourceInterval":[1545,1579]},"caseInsensitive",[["terminal",{"sourceInterval":[1561,1578]},"to the power of"]]],["app",{"sourceInterval":[1587,1614]},"caseInsensitive",[["terminal",{"sourceInterval":[1603,1613]},"power of"]]],["app",{"sourceInterval":[1622,1649]},"caseInsensitive",[["terminal",{"sourceInterval":[1638,1648]},"exponent"]]],["app",{"sourceInterval":[1657,1681]},"caseInsensitive",[["terminal",{"sourceInterval":[1673,1680]},"prime"]]]]],"constant":["define",{"sourceInterval":[1687,1754]},null,[],["alt",{"sourceInterval":[1704,1754]},["app",{"sourceInterval":[1704,1725]},"caseInsensitive",[["terminal",{"sourceInterval":[1720,1724]},"PI"]]],["app",{"sourceInterval":[1734,1754]},"caseInsensitive",[["terminal",{"sourceInterval":[1750,1753]},"E"]]]]],"number_fract":["define",{"sourceInterval":[1774,1801]},null,[],["seq",{"sourceInterval":[1774,1791]},["star",{"sourceInterval":[1774,1780]},["app",{"sourceInterval":[1774,1779]},"digit",[]]],["terminal",{"sourceInterval":[1781,1784]},"."],["plus",{"sourceInterval":[1785,1791]},["app",{"sourceInterval":[1785,1790]},"digit",[]]]]],"number_whole":["define",{"sourceInterval":[1809,1836]},null,[],["plus",{"sourceInterval":[1809,1815]},["app",{"sourceInterval":[1809,1814]},"digit",[]]]],"number":["define",{"sourceInterval":[1760,1836]},null,[],["alt",{"sourceInterval":[1774,1836]},["app",{"sourceInterval":[1774,1791]},"number_fract",[]],["app",{"sourceInterval":[1809,1815]},"number_whole",[]]]],"hex":["define",{"sourceInterval":[1844,1890]},null,[],["alt",{"sourceInterval":[1855,1890]},["seq",{"sourceInterval":[1855,1869]},["terminal",{"sourceInterval":[1855,1859]},"0x"],["plus",{"sourceInterval":[1860,1869]},["app",{"sourceInterval":[1860,1868]},"hexDigit",[]]]],["seq",{"sourceInterval":[1877,1890]},["plus",{"sourceInterval":[1877,1886]},["app",{"sourceInterval":[1877,1885]},"hexDigit",[]]],["terminal",{"sourceInterval":[1887,1890]},"h"]]]]}]);result.Vector2Arithmetic=makeRecipe(["grammar",{"source":"Vector2Arithmetic <: BasicArithmetic {\r\n // Remove support for logical shift\r\n Expression \r\n \t:= AS\r\n\r\n P\r\n := \"(\" Expression \")\" -- parenthesis\r\n | Vector2\r\n | Function\r\n | Primitive\r\n\r\n // Remove modulo support for vector\r\n MD\r\n := MD multiply E -- multiplication\r\n | MD divide E -- division\r\n | E\r\n\r\n Vector2\r\n = vector2? \"(\" Expression \",\" Expression \")\" -- parse\r\n\r\n Function\r\n = LengthSq\r\n | DistanceSq\r\n | Length\r\n | Distance\r\n | Normalise\r\n | Dot\r\n | AngleBetween\r\n | Cross\r\n | Lerp\r\n\r\n LengthSq = lengthSq \"(\" Vector2 \")\" -- function\r\n DistanceSq = distanceSq \"(\" Vector2 \",\" Vector2 \")\" -- function\r\n Length = length \"(\" Vector2 \")\" -- function\r\n Distance = distance \"(\" Vector2 \",\" Vector2 \")\" -- function\r\n Normalise = normalise \"(\" Vector2 \")\" -- function\r\n Dot = dot \"(\" Vector2 \",\" Vector2 \")\" -- function\r\n AngleBetween = angleBetween \"(\" Vector2 \",\" Vector2 \")\" -- function\r\n Cross = cross \"(\" Vector2 \",\" Vector2 \")\" -- function\r\n Lerp = lerp \"(\" Vector2 \",\" Vector2 \",\" number \")\" -- function\r\n\r\n vector2 \r\n \t = caseInsensitive<\"Vector2\">\r\n | caseInsensitive<\"Vec2\">\r\n\r\n lengthSq \r\n \t = caseInsensitive<\"lengthSq\">\r\n | caseInsensitive<\"magnitudeSq\">\r\n\r\n distanceSq\r\n = caseInsensitive<\"distanceSq\">\r\n\r\n length\r\n \t = caseInsensitive<\"length\">\r\n | caseInsensitive<\"magnitude\">\r\n\r\n distance\r\n = caseInsensitive<\"distance\">\r\n\r\n normalise \r\n \t = caseInsensitive<\"normalise\">\r\n \t | caseInsensitive<\"normalize\">\r\n\r\n dot\r\n = caseInsensitive<\"dotproduct\">\r\n | caseInsensitive<\"dot\">\r\n\r\n angleBetween\r\n = caseInsensitive<\"angleBetween\">\r\n\r\n cross\r\n = caseInsensitive<\"crossproduct\">\r\n | caseInsensitive<\"cross\">\r\n\r\n lerp\r\n = caseInsensitive<\"lerp\">\r\n}"},"Vector2Arithmetic",result.BasicArithmetic,"Expression",{"Expression":["override",{"sourceInterval":[81,103]},null,[],["app",{"sourceInterval":[101,103]},"AS",[]]],"P_parenthesis":["override",{"sourceInterval":[119,153]},null,[],["seq",{"sourceInterval":[119,137]},["terminal",{"sourceInterval":[119,122]},"("],["app",{"sourceInterval":[123,133]},"Expression",[]],["terminal",{"sourceInterval":[134,137]},")"]]],"P":["override",{"sourceInterval":[109,201]},null,[],["alt",{"sourceInterval":[119,201]},["app",{"sourceInterval":[119,137]},"P_parenthesis",[]],["app",{"sourceInterval":[161,168]},"Vector2",[]],["app",{"sourceInterval":[176,184]},"Function",[]],["app",{"sourceInterval":[192,201]},"Primitive",[]]]],"MD_multiplication":["override",{"sourceInterval":[257,289]},null,[],["seq",{"sourceInterval":[257,270]},["app",{"sourceInterval":[257,259]},"MD",[]],["app",{"sourceInterval":[260,268]},"multiply",[]],["app",{"sourceInterval":[269,270]},"E",[]]]],"MD_division":["override",{"sourceInterval":[297,321]},null,[],["seq",{"sourceInterval":[297,308]},["app",{"sourceInterval":[297,299]},"MD",[]],["app",{"sourceInterval":[300,306]},"divide",[]],["app",{"sourceInterval":[307,308]},"E",[]]]],"MD":["override",{"sourceInterval":[246,330]},null,[],["alt",{"sourceInterval":[257,330]},["app",{"sourceInterval":[257,270]},"MD_multiplication",[]],["app",{"sourceInterval":[297,308]},"MD_division",[]],["app",{"sourceInterval":[329,330]},"E",[]]]],"Vector2_parse":["define",{"sourceInterval":[351,402]},null,[],["seq",{"sourceInterval":[351,393]},["opt",{"sourceInterval":[351,359]},["app",{"sourceInterval":[351,358]},"vector2",[]]],["terminal",{"sourceInterval":[360,363]},"("],["app",{"sourceInterval":[364,374]},"Expression",[]],["terminal",{"sourceInterval":[375,378]},","],["app",{"sourceInterval":[379,389]},"Expression",[]],["terminal",{"sourceInterval":[390,393]},")"]]],"Vector2":["define",{"sourceInterval":[336,402]},null,[],["app",{"sourceInterval":[351,402]},"Vector2_parse",[]]],"Function":["define",{"sourceInterval":[408,544]},null,[],["alt",{"sourceInterval":[423,544]},["app",{"sourceInterval":[423,431]},"LengthSq",[]],["app",{"sourceInterval":[438,448]},"DistanceSq",[]],["app",{"sourceInterval":[455,461]},"Length",[]],["app",{"sourceInterval":[468,476]},"Distance",[]],["app",{"sourceInterval":[483,492]},"Normalise",[]],["app",{"sourceInterval":[499,502]},"Dot",[]],["app",{"sourceInterval":[509,521]},"AngleBetween",[]],["app",{"sourceInterval":[528,533]},"Cross",[]],["app",{"sourceInterval":[540,544]},"Lerp",[]]]],"LengthSq_function":["define",{"sourceInterval":[562,598]},null,[],["seq",{"sourceInterval":[562,586]},["app",{"sourceInterval":[562,570]},"lengthSq",[]],["terminal",{"sourceInterval":[571,574]},"("],["app",{"sourceInterval":[575,582]},"Vector2",[]],["terminal",{"sourceInterval":[583,586]},")"]]],"LengthSq":["define",{"sourceInterval":[550,598]},null,[],["app",{"sourceInterval":[562,598]},"LengthSq_function",[]]],"DistanceSq_function":["define",{"sourceInterval":[616,666]},null,[],["seq",{"sourceInterval":[616,654]},["app",{"sourceInterval":[616,626]},"distanceSq",[]],["terminal",{"sourceInterval":[627,630]},"("],["app",{"sourceInterval":[631,638]},"Vector2",[]],["terminal",{"sourceInterval":[639,642]},","],["app",{"sourceInterval":[643,650]},"Vector2",[]],["terminal",{"sourceInterval":[651,654]},")"]]],"DistanceSq":["define",{"sourceInterval":[602,666]},null,[],["app",{"sourceInterval":[616,666]},"DistanceSq_function",[]]],"Length_function":["define",{"sourceInterval":[680,714]},null,[],["seq",{"sourceInterval":[680,702]},["app",{"sourceInterval":[680,686]},"length",[]],["terminal",{"sourceInterval":[687,690]},"("],["app",{"sourceInterval":[691,698]},"Vector2",[]],["terminal",{"sourceInterval":[699,702]},")"]]],"Length":["define",{"sourceInterval":[670,714]},null,[],["app",{"sourceInterval":[680,714]},"Length_function",[]]],"Distance_function":["define",{"sourceInterval":[730,778]},null,[],["seq",{"sourceInterval":[730,766]},["app",{"sourceInterval":[730,738]},"distance",[]],["terminal",{"sourceInterval":[739,742]},"("],["app",{"sourceInterval":[743,750]},"Vector2",[]],["terminal",{"sourceInterval":[751,754]},","],["app",{"sourceInterval":[755,762]},"Vector2",[]],["terminal",{"sourceInterval":[763,766]},")"]]],"Distance":["define",{"sourceInterval":[718,778]},null,[],["app",{"sourceInterval":[730,778]},"Distance_function",[]]],"Normalise_function":["define",{"sourceInterval":[794,831]},null,[],["seq",{"sourceInterval":[794,819]},["app",{"sourceInterval":[794,803]},"normalise",[]],["terminal",{"sourceInterval":[804,807]},"("],["app",{"sourceInterval":[808,815]},"Vector2",[]],["terminal",{"sourceInterval":[816,819]},")"]]],"Normalise":["define",{"sourceInterval":[782,831]},null,[],["app",{"sourceInterval":[794,831]},"Normalise_function",[]]],"Dot_function":["define",{"sourceInterval":[841,884]},null,[],["seq",{"sourceInterval":[841,872]},["app",{"sourceInterval":[841,844]},"dot",[]],["terminal",{"sourceInterval":[845,848]},"("],["app",{"sourceInterval":[849,856]},"Vector2",[]],["terminal",{"sourceInterval":[857,860]},","],["app",{"sourceInterval":[861,868]},"Vector2",[]],["terminal",{"sourceInterval":[869,872]},")"]]],"Dot":["define",{"sourceInterval":[835,884]},null,[],["app",{"sourceInterval":[841,884]},"Dot_function",[]]],"AngleBetween_function":["define",{"sourceInterval":[903,955]},null,[],["seq",{"sourceInterval":[903,943]},["app",{"sourceInterval":[903,915]},"angleBetween",[]],["terminal",{"sourceInterval":[916,919]},"("],["app",{"sourceInterval":[920,927]},"Vector2",[]],["terminal",{"sourceInterval":[928,931]},","],["app",{"sourceInterval":[932,939]},"Vector2",[]],["terminal",{"sourceInterval":[940,943]},")"]]],"AngleBetween":["define",{"sourceInterval":[888,955]},null,[],["app",{"sourceInterval":[903,955]},"AngleBetween_function",[]]],"Cross_function":["define",{"sourceInterval":[967,1012]},null,[],["seq",{"sourceInterval":[967,1000]},["app",{"sourceInterval":[967,972]},"cross",[]],["terminal",{"sourceInterval":[973,976]},"("],["app",{"sourceInterval":[977,984]},"Vector2",[]],["terminal",{"sourceInterval":[985,988]},","],["app",{"sourceInterval":[989,996]},"Vector2",[]],["terminal",{"sourceInterval":[997,1000]},")"]]],"Cross":["define",{"sourceInterval":[959,1012]},null,[],["app",{"sourceInterval":[967,1012]},"Cross_function",[]]],"Lerp_function":["define",{"sourceInterval":[1023,1078]},null,[],["seq",{"sourceInterval":[1023,1066]},["app",{"sourceInterval":[1023,1027]},"lerp",[]],["terminal",{"sourceInterval":[1028,1031]},"("],["app",{"sourceInterval":[1032,1039]},"Vector2",[]],["terminal",{"sourceInterval":[1040,1043]},","],["app",{"sourceInterval":[1044,1051]},"Vector2",[]],["terminal",{"sourceInterval":[1052,1055]},","],["app",{"sourceInterval":[1056,1062]},"number",[]],["terminal",{"sourceInterval":[1063,1066]},")"]]],"Lerp":["define",{"sourceInterval":[1016,1078]},null,[],["app",{"sourceInterval":[1023,1078]},"Lerp_function",[]]],"vector2":["define",{"sourceInterval":[1084,1157]},null,[],["alt",{"sourceInterval":[1100,1157]},["app",{"sourceInterval":[1100,1126]},"caseInsensitive",[["terminal",{"sourceInterval":[1116,1125]},"Vector2"]]],["app",{"sourceInterval":[1134,1157]},"caseInsensitive",[["terminal",{"sourceInterval":[1150,1156]},"Vec2"]]]]],"lengthSq":["define",{"sourceInterval":[1163,1245]},null,[],["alt",{"sourceInterval":[1180,1245]},["app",{"sourceInterval":[1180,1207]},"caseInsensitive",[["terminal",{"sourceInterval":[1196,1206]},"lengthSq"]]],["app",{"sourceInterval":[1215,1245]},"caseInsensitive",[["terminal",{"sourceInterval":[1231,1244]},"magnitudeSq"]]]]],"distanceSq":["define",{"sourceInterval":[1251,1298]},null,[],["app",{"sourceInterval":[1269,1298]},"caseInsensitive",[["terminal",{"sourceInterval":[1285,1297]},"distanceSq"]]]],"length":["define",{"sourceInterval":[1304,1379]},null,[],["alt",{"sourceInterval":[1318,1379]},["app",{"sourceInterval":[1318,1343]},"caseInsensitive",[["terminal",{"sourceInterval":[1334,1342]},"length"]]],["app",{"sourceInterval":[1351,1379]},"caseInsensitive",[["terminal",{"sourceInterval":[1367,1378]},"magnitude"]]]]],"distance":["define",{"sourceInterval":[1385,1428]},null,[],["app",{"sourceInterval":[1401,1428]},"caseInsensitive",[["terminal",{"sourceInterval":[1417,1427]},"distance"]]]],"normalise":["define",{"sourceInterval":[1434,1516]},null,[],["alt",{"sourceInterval":[1452,1516]},["app",{"sourceInterval":[1452,1480]},"caseInsensitive",[["terminal",{"sourceInterval":[1468,1479]},"normalise"]]],["app",{"sourceInterval":[1488,1516]},"caseInsensitive",[["terminal",{"sourceInterval":[1504,1515]},"normalize"]]]]],"dot":["define",{"sourceInterval":[1522,1592]},null,[],["alt",{"sourceInterval":[1533,1592]},["app",{"sourceInterval":[1533,1562]},"caseInsensitive",[["terminal",{"sourceInterval":[1549,1561]},"dotproduct"]]],["app",{"sourceInterval":[1570,1592]},"caseInsensitive",[["terminal",{"sourceInterval":[1586,1591]},"dot"]]]]],"angleBetween":["define",{"sourceInterval":[1598,1649]},null,[],["app",{"sourceInterval":[1618,1649]},"caseInsensitive",[["terminal",{"sourceInterval":[1634,1648]},"angleBetween"]]]],"cross":["define",{"sourceInterval":[1655,1731]},null,[],["alt",{"sourceInterval":[1668,1731]},["app",{"sourceInterval":[1668,1699]},"caseInsensitive",[["terminal",{"sourceInterval":[1684,1698]},"crossproduct"]]],["app",{"sourceInterval":[1707,1731]},"caseInsensitive",[["terminal",{"sourceInterval":[1723,1730]},"cross"]]]]],"lerp":["define",{"sourceInterval":[1737,1772]},null,[],["app",{"sourceInterval":[1749,1772]},"caseInsensitive",[["terminal",{"sourceInterval":[1765,1771]},"lerp"]]]]}]);module.exports=result; \ No newline at end of file diff --git a/src/grammars/vector/Vector3Arithmetic.ohm-bundle.js b/src/grammars/vector/Vector3Arithmetic.ohm-bundle.js index bf91c7e..8c63aeb 100644 --- a/src/grammars/vector/Vector3Arithmetic.ohm-bundle.js +++ b/src/grammars/vector/Vector3Arithmetic.ohm-bundle.js @@ -1 +1 @@ -'use strict';const {makeRecipe}=require('ohm-js');const result={};result.BasicArithmetic=makeRecipe(["grammar",{"source":"BasicArithmetic {\r\n Expression\r\n = LogicalShift\r\n\r\n LogicalShift\r\n = LogicalShift \"<<\" LogicalShift -- left\r\n | LogicalShift \">>\" LogicalShift -- right\r\n | AS \r\n\r\n // Addition or Subtraction\r\n AS\r\n = AS add MD -- addition\r\n | AS subtract MD -- subtraction\r\n | MD\r\n\r\n // Multiply or Divide\r\n MD\r\n = MD multiply E -- multiplication\r\n | MD divide E -- division\r\n | MD modulo E -- modulo\r\n | E\r\n\r\n // Exponent\r\n E\r\n = P exponent E -- exponent\r\n | P\r\n\r\n // Parenthesis\r\n P\r\n = \"(\" Expression \")\" -- parenthesis\r\n | Primitive\r\n \r\n Primitive\r\n = \"+\" Primitive -- positive\r\n | \"-\" Primitive -- negative\r\n | constant\r\n | hex\r\n | number\r\n \r\n // Lexical Rules\r\n add \r\n \t= \"+\"\r\n | caseInsensitive<\"plus\">\r\n \t| caseInsensitive<\"add\">\r\n | caseInsensitive<\"and\">\r\n \r\n subtract \r\n = \"-\"\r\n | caseInsensitive<\"minus\">\r\n | caseInsensitive<\"subtract\">\r\n | caseInsensitive<\"remove\">\r\n | caseInsensitive<\"take\">\r\n \r\n multiply \r\n = \"*\"\r\n | caseInsensitive<\"times by\">\r\n | caseInsensitive<\"times\">\r\n | caseInsensitive<\"multiply by\">\r\n | caseInsensitive<\"multiply\">\r\n \r\n divide\r\n = \"/\"\r\n | caseInsensitive<\"divide by\">\r\n | caseInsensitive<\"divide\">\r\n\r\n modulo\r\n = \"%\"\r\n | caseInsensitive<\"modulo\">\r\n | caseInsensitive<\"mod\">\r\n\r\n exponent\r\n = \"^\"\r\n | caseInsensitive<\"to the power of\">\r\n | caseInsensitive<\"power of\">\r\n | caseInsensitive<\"exponent\">\r\n | caseInsensitive<\"prime\">\r\n\r\n constant \r\n \t= caseInsensitive<\"PI\"> \r\n | caseInsensitive<\"E\">\r\n\r\n number\r\n = digit* \".\" digit+ -- fract\r\n | digit+ -- whole\r\n \r\n hex\r\n = \"0x\" hexDigit+\r\n | hexDigit+ \"h\"\r\n}"},"BasicArithmetic",null,"Expression",{"Expression":["define",{"sourceInterval":[21,51]},null,[],["app",{"sourceInterval":[39,51]},"LogicalShift",[]]],"LogicalShift_left":["define",{"sourceInterval":[77,115]},null,[],["seq",{"sourceInterval":[77,107]},["app",{"sourceInterval":[77,89]},"LogicalShift",[]],["terminal",{"sourceInterval":[90,94]},"<<"],["app",{"sourceInterval":[95,107]},"LogicalShift",[]]]],"LogicalShift_right":["define",{"sourceInterval":[123,162]},null,[],["seq",{"sourceInterval":[123,153]},["app",{"sourceInterval":[123,135]},"LogicalShift",[]],["terminal",{"sourceInterval":[136,140]},">>"],["app",{"sourceInterval":[141,153]},"LogicalShift",[]]]],"LogicalShift":["define",{"sourceInterval":[57,172]},null,[],["alt",{"sourceInterval":[77,172]},["app",{"sourceInterval":[77,107]},"LogicalShift_left",[]],["app",{"sourceInterval":[123,153]},"LogicalShift_right",[]],["app",{"sourceInterval":[170,172]},"AS",[]]]],"AS_addition":["define",{"sourceInterval":[219,241]},null,[],["seq",{"sourceInterval":[219,228]},["app",{"sourceInterval":[219,221]},"AS",[]],["app",{"sourceInterval":[222,225]},"add",[]],["app",{"sourceInterval":[226,228]},"MD",[]]]],"AS_subtraction":["define",{"sourceInterval":[249,279]},null,[],["seq",{"sourceInterval":[249,263]},["app",{"sourceInterval":[249,251]},"AS",[]],["app",{"sourceInterval":[252,260]},"subtract",[]],["app",{"sourceInterval":[261,263]},"MD",[]]]],"AS":["define",{"sourceInterval":[209,289]},null,[],["alt",{"sourceInterval":[219,289]},["app",{"sourceInterval":[219,228]},"AS_addition",[]],["app",{"sourceInterval":[249,263]},"AS_subtraction",[]],["app",{"sourceInterval":[287,289]},"MD",[]]]],"MD_multiplication":["define",{"sourceInterval":[330,362]},null,[],["seq",{"sourceInterval":[330,343]},["app",{"sourceInterval":[330,332]},"MD",[]],["app",{"sourceInterval":[333,341]},"multiply",[]],["app",{"sourceInterval":[342,343]},"E",[]]]],"MD_division":["define",{"sourceInterval":[370,394]},null,[],["seq",{"sourceInterval":[370,381]},["app",{"sourceInterval":[370,372]},"MD",[]],["app",{"sourceInterval":[373,379]},"divide",[]],["app",{"sourceInterval":[380,381]},"E",[]]]],"MD_modulo":["define",{"sourceInterval":[402,424]},null,[],["seq",{"sourceInterval":[402,413]},["app",{"sourceInterval":[402,404]},"MD",[]],["app",{"sourceInterval":[405,411]},"modulo",[]],["app",{"sourceInterval":[412,413]},"E",[]]]],"MD":["define",{"sourceInterval":[320,433]},null,[],["alt",{"sourceInterval":[330,433]},["app",{"sourceInterval":[330,343]},"MD_multiplication",[]],["app",{"sourceInterval":[370,381]},"MD_division",[]],["app",{"sourceInterval":[402,413]},"MD_modulo",[]],["app",{"sourceInterval":[432,433]},"E",[]]]],"E_exponent":["define",{"sourceInterval":[463,488]},null,[],["seq",{"sourceInterval":[463,475]},["app",{"sourceInterval":[463,464]},"P",[]],["app",{"sourceInterval":[465,473]},"exponent",[]],["app",{"sourceInterval":[474,475]},"E",[]]]],"E":["define",{"sourceInterval":[454,497]},null,[],["alt",{"sourceInterval":[463,497]},["app",{"sourceInterval":[463,475]},"E_exponent",[]],["app",{"sourceInterval":[496,497]},"P",[]]]],"P_parenthesis":["define",{"sourceInterval":[530,564]},null,[],["seq",{"sourceInterval":[530,548]},["terminal",{"sourceInterval":[530,533]},"("],["app",{"sourceInterval":[534,544]},"Expression",[]],["terminal",{"sourceInterval":[545,548]},")"]]],"P":["define",{"sourceInterval":[521,581]},null,[],["alt",{"sourceInterval":[530,581]},["app",{"sourceInterval":[530,548]},"P_parenthesis",[]],["app",{"sourceInterval":[572,581]},"Primitive",[]]]],"Primitive_positive":["define",{"sourceInterval":[608,633]},null,[],["seq",{"sourceInterval":[608,621]},["terminal",{"sourceInterval":[608,611]},"+"],["app",{"sourceInterval":[612,621]},"Primitive",[]]]],"Primitive_negative":["define",{"sourceInterval":[641,666]},null,[],["seq",{"sourceInterval":[641,654]},["terminal",{"sourceInterval":[641,644]},"-"],["app",{"sourceInterval":[645,654]},"Primitive",[]]]],"Primitive":["define",{"sourceInterval":[591,707]},null,[],["alt",{"sourceInterval":[608,707]},["app",{"sourceInterval":[608,621]},"Primitive_positive",[]],["app",{"sourceInterval":[641,654]},"Primitive_negative",[]],["app",{"sourceInterval":[674,682]},"constant",[]],["app",{"sourceInterval":[690,693]},"hex",[]],["app",{"sourceInterval":[701,707]},"number",[]]]],"add":["define",{"sourceInterval":[734,838]},null,[],["alt",{"sourceInterval":[745,838]},["terminal",{"sourceInterval":[745,748]},"+"],["app",{"sourceInterval":[756,779]},"caseInsensitive",[["terminal",{"sourceInterval":[772,778]},"plus"]]],["app",{"sourceInterval":[786,808]},"caseInsensitive",[["terminal",{"sourceInterval":[802,807]},"add"]]],["app",{"sourceInterval":[816,838]},"caseInsensitive",[["terminal",{"sourceInterval":[832,837]},"and"]]]]],"subtract":["define",{"sourceInterval":[848,999]},null,[],["alt",{"sourceInterval":[865,999]},["terminal",{"sourceInterval":[865,868]},"-"],["app",{"sourceInterval":[876,900]},"caseInsensitive",[["terminal",{"sourceInterval":[892,899]},"minus"]]],["app",{"sourceInterval":[908,935]},"caseInsensitive",[["terminal",{"sourceInterval":[924,934]},"subtract"]]],["app",{"sourceInterval":[943,968]},"caseInsensitive",[["terminal",{"sourceInterval":[959,967]},"remove"]]],["app",{"sourceInterval":[976,999]},"caseInsensitive",[["terminal",{"sourceInterval":[992,998]},"take"]]]]],"multiply":["define",{"sourceInterval":[1011,1171]},null,[],["alt",{"sourceInterval":[1028,1171]},["terminal",{"sourceInterval":[1028,1031]},"*"],["app",{"sourceInterval":[1039,1066]},"caseInsensitive",[["terminal",{"sourceInterval":[1055,1065]},"times by"]]],["app",{"sourceInterval":[1074,1098]},"caseInsensitive",[["terminal",{"sourceInterval":[1090,1097]},"times"]]],["app",{"sourceInterval":[1106,1136]},"caseInsensitive",[["terminal",{"sourceInterval":[1122,1135]},"multiply by"]]],["app",{"sourceInterval":[1144,1171]},"caseInsensitive",[["terminal",{"sourceInterval":[1160,1170]},"multiply"]]]]],"divide":["define",{"sourceInterval":[1183,1269]},null,[],["alt",{"sourceInterval":[1197,1269]},["terminal",{"sourceInterval":[1197,1200]},"/"],["app",{"sourceInterval":[1208,1236]},"caseInsensitive",[["terminal",{"sourceInterval":[1224,1235]},"divide by"]]],["app",{"sourceInterval":[1244,1269]},"caseInsensitive",[["terminal",{"sourceInterval":[1260,1268]},"divide"]]]]],"modulo":["define",{"sourceInterval":[1275,1355]},null,[],["alt",{"sourceInterval":[1289,1355]},["terminal",{"sourceInterval":[1289,1292]},"%"],["app",{"sourceInterval":[1300,1325]},"caseInsensitive",[["terminal",{"sourceInterval":[1316,1324]},"modulo"]]],["app",{"sourceInterval":[1333,1355]},"caseInsensitive",[["terminal",{"sourceInterval":[1349,1354]},"mod"]]]]],"exponent":["define",{"sourceInterval":[1361,1524]},null,[],["alt",{"sourceInterval":[1377,1524]},["terminal",{"sourceInterval":[1377,1380]},"^"],["app",{"sourceInterval":[1388,1422]},"caseInsensitive",[["terminal",{"sourceInterval":[1404,1421]},"to the power of"]]],["app",{"sourceInterval":[1430,1457]},"caseInsensitive",[["terminal",{"sourceInterval":[1446,1456]},"power of"]]],["app",{"sourceInterval":[1465,1492]},"caseInsensitive",[["terminal",{"sourceInterval":[1481,1491]},"exponent"]]],["app",{"sourceInterval":[1500,1524]},"caseInsensitive",[["terminal",{"sourceInterval":[1516,1523]},"prime"]]]]],"constant":["define",{"sourceInterval":[1530,1597]},null,[],["alt",{"sourceInterval":[1547,1597]},["app",{"sourceInterval":[1547,1568]},"caseInsensitive",[["terminal",{"sourceInterval":[1563,1567]},"PI"]]],["app",{"sourceInterval":[1577,1597]},"caseInsensitive",[["terminal",{"sourceInterval":[1593,1596]},"E"]]]]],"number_fract":["define",{"sourceInterval":[1617,1644]},null,[],["seq",{"sourceInterval":[1617,1634]},["star",{"sourceInterval":[1617,1623]},["app",{"sourceInterval":[1617,1622]},"digit",[]]],["terminal",{"sourceInterval":[1624,1627]},"."],["plus",{"sourceInterval":[1628,1634]},["app",{"sourceInterval":[1628,1633]},"digit",[]]]]],"number_whole":["define",{"sourceInterval":[1652,1679]},null,[],["plus",{"sourceInterval":[1652,1658]},["app",{"sourceInterval":[1652,1657]},"digit",[]]]],"number":["define",{"sourceInterval":[1603,1679]},null,[],["alt",{"sourceInterval":[1617,1679]},["app",{"sourceInterval":[1617,1634]},"number_fract",[]],["app",{"sourceInterval":[1652,1658]},"number_whole",[]]]],"hex":["define",{"sourceInterval":[1687,1733]},null,[],["alt",{"sourceInterval":[1698,1733]},["seq",{"sourceInterval":[1698,1712]},["terminal",{"sourceInterval":[1698,1702]},"0x"],["plus",{"sourceInterval":[1703,1712]},["app",{"sourceInterval":[1703,1711]},"hexDigit",[]]]],["seq",{"sourceInterval":[1720,1733]},["plus",{"sourceInterval":[1720,1729]},["app",{"sourceInterval":[1720,1728]},"hexDigit",[]]],["terminal",{"sourceInterval":[1730,1733]},"h"]]]]}]);result.Vector3Arithmetic=makeRecipe(["grammar",{"source":"Vector3Arithmetic <: BasicArithmetic {\r\n // Remove support for logical shift\r\n Expression \r\n \t:= AS\r\n\r\n P\r\n := \"(\" Expression \")\" -- parenthesis\r\n | Vector3\r\n | Function\r\n | Primitive\r\n\r\n // Remove modulo support for vector\r\n MD\r\n := MD multiply E -- multiplication\r\n | MD divide E -- division\r\n | E\r\n\r\n Vector3\r\n = vector3? \"(\" Expression \",\" Expression \",\" Expression \")\" -- parse\r\n\r\n Function\r\n = LengthSq\r\n | DistanceSq\r\n | Length\r\n | Distance\r\n | Normalise\r\n | Dot\r\n | AngleBetween\r\n | Cross\r\n | Lerp\r\n\r\n LengthSq = lengthSq \"(\" Vector3 \")\" -- function\r\n DistanceSq = distanceSq \"(\" Vector3 \",\" Vector3 \")\" -- function\r\n Length = length \"(\" Vector3 \")\" -- function\r\n Distance = distance \"(\" Vector3 \",\" Vector3 \")\" -- function\r\n Normalise = normalise \"(\" Vector3 \")\" -- function\r\n Dot = dot \"(\" Vector3 \",\" Vector3 \")\" -- function\r\n AngleBetween = angleBetween \"(\" Vector3 \",\" Vector3 \")\" -- function\r\n Cross = cross \"(\" Vector3 \",\" Vector3 \")\" -- function\r\n Lerp = lerp \"(\" Vector3 \",\" Vector3 \",\" number \")\" -- function\r\n\r\n vector3 \r\n \t = caseInsensitive<\"Vector3\">\r\n | caseInsensitive<\"Vec3\">\r\n\r\n lengthSq \r\n \t = caseInsensitive<\"lengthSq\">\r\n | caseInsensitive<\"magnitudeSq\">\r\n\r\n distanceSq\r\n = caseInsensitive<\"distanceSq\">\r\n\r\n length\r\n \t = caseInsensitive<\"length\">\r\n | caseInsensitive<\"magnitude\">\r\n\r\n distance\r\n = caseInsensitive<\"distance\">\r\n\r\n normalise \r\n \t = caseInsensitive<\"normalise\">\r\n \t | caseInsensitive<\"normalize\">\r\n\r\n dot\r\n = caseInsensitive<\"dotproduct\">\r\n | caseInsensitive<\"dot\">\r\n\r\n angleBetween\r\n = caseInsensitive<\"angleBetween\">\r\n\r\n cross\r\n = caseInsensitive<\"crossproduct\">\r\n | caseInsensitive<\"cross\">\r\n\r\n lerp\r\n = caseInsensitive<\"lerp\">\r\n}"},"Vector3Arithmetic",result.BasicArithmetic,"Expression",{"Expression":["override",{"sourceInterval":[81,103]},null,[],["app",{"sourceInterval":[101,103]},"AS",[]]],"P_parenthesis":["override",{"sourceInterval":[119,153]},null,[],["seq",{"sourceInterval":[119,137]},["terminal",{"sourceInterval":[119,122]},"("],["app",{"sourceInterval":[123,133]},"Expression",[]],["terminal",{"sourceInterval":[134,137]},")"]]],"P":["override",{"sourceInterval":[109,201]},null,[],["alt",{"sourceInterval":[119,201]},["app",{"sourceInterval":[119,137]},"P_parenthesis",[]],["app",{"sourceInterval":[161,168]},"Vector3",[]],["app",{"sourceInterval":[176,184]},"Function",[]],["app",{"sourceInterval":[192,201]},"Primitive",[]]]],"MD_multiplication":["override",{"sourceInterval":[257,289]},null,[],["seq",{"sourceInterval":[257,270]},["app",{"sourceInterval":[257,259]},"MD",[]],["app",{"sourceInterval":[260,268]},"multiply",[]],["app",{"sourceInterval":[269,270]},"E",[]]]],"MD_division":["override",{"sourceInterval":[297,321]},null,[],["seq",{"sourceInterval":[297,308]},["app",{"sourceInterval":[297,299]},"MD",[]],["app",{"sourceInterval":[300,306]},"divide",[]],["app",{"sourceInterval":[307,308]},"E",[]]]],"MD":["override",{"sourceInterval":[246,330]},null,[],["alt",{"sourceInterval":[257,330]},["app",{"sourceInterval":[257,270]},"MD_multiplication",[]],["app",{"sourceInterval":[297,308]},"MD_division",[]],["app",{"sourceInterval":[329,330]},"E",[]]]],"Vector3_parse":["define",{"sourceInterval":[351,417]},null,[],["seq",{"sourceInterval":[351,408]},["opt",{"sourceInterval":[351,359]},["app",{"sourceInterval":[351,358]},"vector3",[]]],["terminal",{"sourceInterval":[360,363]},"("],["app",{"sourceInterval":[364,374]},"Expression",[]],["terminal",{"sourceInterval":[375,378]},","],["app",{"sourceInterval":[379,389]},"Expression",[]],["terminal",{"sourceInterval":[390,393]},","],["app",{"sourceInterval":[394,404]},"Expression",[]],["terminal",{"sourceInterval":[405,408]},")"]]],"Vector3":["define",{"sourceInterval":[336,417]},null,[],["app",{"sourceInterval":[351,417]},"Vector3_parse",[]]],"Function":["define",{"sourceInterval":[423,559]},null,[],["alt",{"sourceInterval":[438,559]},["app",{"sourceInterval":[438,446]},"LengthSq",[]],["app",{"sourceInterval":[453,463]},"DistanceSq",[]],["app",{"sourceInterval":[470,476]},"Length",[]],["app",{"sourceInterval":[483,491]},"Distance",[]],["app",{"sourceInterval":[498,507]},"Normalise",[]],["app",{"sourceInterval":[514,517]},"Dot",[]],["app",{"sourceInterval":[524,536]},"AngleBetween",[]],["app",{"sourceInterval":[543,548]},"Cross",[]],["app",{"sourceInterval":[555,559]},"Lerp",[]]]],"LengthSq_function":["define",{"sourceInterval":[577,613]},null,[],["seq",{"sourceInterval":[577,601]},["app",{"sourceInterval":[577,585]},"lengthSq",[]],["terminal",{"sourceInterval":[586,589]},"("],["app",{"sourceInterval":[590,597]},"Vector3",[]],["terminal",{"sourceInterval":[598,601]},")"]]],"LengthSq":["define",{"sourceInterval":[565,613]},null,[],["app",{"sourceInterval":[577,613]},"LengthSq_function",[]]],"DistanceSq_function":["define",{"sourceInterval":[631,681]},null,[],["seq",{"sourceInterval":[631,669]},["app",{"sourceInterval":[631,641]},"distanceSq",[]],["terminal",{"sourceInterval":[642,645]},"("],["app",{"sourceInterval":[646,653]},"Vector3",[]],["terminal",{"sourceInterval":[654,657]},","],["app",{"sourceInterval":[658,665]},"Vector3",[]],["terminal",{"sourceInterval":[666,669]},")"]]],"DistanceSq":["define",{"sourceInterval":[617,681]},null,[],["app",{"sourceInterval":[631,681]},"DistanceSq_function",[]]],"Length_function":["define",{"sourceInterval":[695,729]},null,[],["seq",{"sourceInterval":[695,717]},["app",{"sourceInterval":[695,701]},"length",[]],["terminal",{"sourceInterval":[702,705]},"("],["app",{"sourceInterval":[706,713]},"Vector3",[]],["terminal",{"sourceInterval":[714,717]},")"]]],"Length":["define",{"sourceInterval":[685,729]},null,[],["app",{"sourceInterval":[695,729]},"Length_function",[]]],"Distance_function":["define",{"sourceInterval":[745,793]},null,[],["seq",{"sourceInterval":[745,781]},["app",{"sourceInterval":[745,753]},"distance",[]],["terminal",{"sourceInterval":[754,757]},"("],["app",{"sourceInterval":[758,765]},"Vector3",[]],["terminal",{"sourceInterval":[766,769]},","],["app",{"sourceInterval":[770,777]},"Vector3",[]],["terminal",{"sourceInterval":[778,781]},")"]]],"Distance":["define",{"sourceInterval":[733,793]},null,[],["app",{"sourceInterval":[745,793]},"Distance_function",[]]],"Normalise_function":["define",{"sourceInterval":[809,846]},null,[],["seq",{"sourceInterval":[809,834]},["app",{"sourceInterval":[809,818]},"normalise",[]],["terminal",{"sourceInterval":[819,822]},"("],["app",{"sourceInterval":[823,830]},"Vector3",[]],["terminal",{"sourceInterval":[831,834]},")"]]],"Normalise":["define",{"sourceInterval":[797,846]},null,[],["app",{"sourceInterval":[809,846]},"Normalise_function",[]]],"Dot_function":["define",{"sourceInterval":[856,899]},null,[],["seq",{"sourceInterval":[856,887]},["app",{"sourceInterval":[856,859]},"dot",[]],["terminal",{"sourceInterval":[860,863]},"("],["app",{"sourceInterval":[864,871]},"Vector3",[]],["terminal",{"sourceInterval":[872,875]},","],["app",{"sourceInterval":[876,883]},"Vector3",[]],["terminal",{"sourceInterval":[884,887]},")"]]],"Dot":["define",{"sourceInterval":[850,899]},null,[],["app",{"sourceInterval":[856,899]},"Dot_function",[]]],"AngleBetween_function":["define",{"sourceInterval":[918,970]},null,[],["seq",{"sourceInterval":[918,958]},["app",{"sourceInterval":[918,930]},"angleBetween",[]],["terminal",{"sourceInterval":[931,934]},"("],["app",{"sourceInterval":[935,942]},"Vector3",[]],["terminal",{"sourceInterval":[943,946]},","],["app",{"sourceInterval":[947,954]},"Vector3",[]],["terminal",{"sourceInterval":[955,958]},")"]]],"AngleBetween":["define",{"sourceInterval":[903,970]},null,[],["app",{"sourceInterval":[918,970]},"AngleBetween_function",[]]],"Cross_function":["define",{"sourceInterval":[982,1027]},null,[],["seq",{"sourceInterval":[982,1015]},["app",{"sourceInterval":[982,987]},"cross",[]],["terminal",{"sourceInterval":[988,991]},"("],["app",{"sourceInterval":[992,999]},"Vector3",[]],["terminal",{"sourceInterval":[1000,1003]},","],["app",{"sourceInterval":[1004,1011]},"Vector3",[]],["terminal",{"sourceInterval":[1012,1015]},")"]]],"Cross":["define",{"sourceInterval":[974,1027]},null,[],["app",{"sourceInterval":[982,1027]},"Cross_function",[]]],"Lerp_function":["define",{"sourceInterval":[1038,1093]},null,[],["seq",{"sourceInterval":[1038,1081]},["app",{"sourceInterval":[1038,1042]},"lerp",[]],["terminal",{"sourceInterval":[1043,1046]},"("],["app",{"sourceInterval":[1047,1054]},"Vector3",[]],["terminal",{"sourceInterval":[1055,1058]},","],["app",{"sourceInterval":[1059,1066]},"Vector3",[]],["terminal",{"sourceInterval":[1067,1070]},","],["app",{"sourceInterval":[1071,1077]},"number",[]],["terminal",{"sourceInterval":[1078,1081]},")"]]],"Lerp":["define",{"sourceInterval":[1031,1093]},null,[],["app",{"sourceInterval":[1038,1093]},"Lerp_function",[]]],"vector3":["define",{"sourceInterval":[1099,1172]},null,[],["alt",{"sourceInterval":[1115,1172]},["app",{"sourceInterval":[1115,1141]},"caseInsensitive",[["terminal",{"sourceInterval":[1131,1140]},"Vector3"]]],["app",{"sourceInterval":[1149,1172]},"caseInsensitive",[["terminal",{"sourceInterval":[1165,1171]},"Vec3"]]]]],"lengthSq":["define",{"sourceInterval":[1178,1260]},null,[],["alt",{"sourceInterval":[1195,1260]},["app",{"sourceInterval":[1195,1222]},"caseInsensitive",[["terminal",{"sourceInterval":[1211,1221]},"lengthSq"]]],["app",{"sourceInterval":[1230,1260]},"caseInsensitive",[["terminal",{"sourceInterval":[1246,1259]},"magnitudeSq"]]]]],"distanceSq":["define",{"sourceInterval":[1266,1313]},null,[],["app",{"sourceInterval":[1284,1313]},"caseInsensitive",[["terminal",{"sourceInterval":[1300,1312]},"distanceSq"]]]],"length":["define",{"sourceInterval":[1319,1394]},null,[],["alt",{"sourceInterval":[1333,1394]},["app",{"sourceInterval":[1333,1358]},"caseInsensitive",[["terminal",{"sourceInterval":[1349,1357]},"length"]]],["app",{"sourceInterval":[1366,1394]},"caseInsensitive",[["terminal",{"sourceInterval":[1382,1393]},"magnitude"]]]]],"distance":["define",{"sourceInterval":[1400,1443]},null,[],["app",{"sourceInterval":[1416,1443]},"caseInsensitive",[["terminal",{"sourceInterval":[1432,1442]},"distance"]]]],"normalise":["define",{"sourceInterval":[1449,1531]},null,[],["alt",{"sourceInterval":[1467,1531]},["app",{"sourceInterval":[1467,1495]},"caseInsensitive",[["terminal",{"sourceInterval":[1483,1494]},"normalise"]]],["app",{"sourceInterval":[1503,1531]},"caseInsensitive",[["terminal",{"sourceInterval":[1519,1530]},"normalize"]]]]],"dot":["define",{"sourceInterval":[1537,1607]},null,[],["alt",{"sourceInterval":[1548,1607]},["app",{"sourceInterval":[1548,1577]},"caseInsensitive",[["terminal",{"sourceInterval":[1564,1576]},"dotproduct"]]],["app",{"sourceInterval":[1585,1607]},"caseInsensitive",[["terminal",{"sourceInterval":[1601,1606]},"dot"]]]]],"angleBetween":["define",{"sourceInterval":[1613,1664]},null,[],["app",{"sourceInterval":[1633,1664]},"caseInsensitive",[["terminal",{"sourceInterval":[1649,1663]},"angleBetween"]]]],"cross":["define",{"sourceInterval":[1670,1746]},null,[],["alt",{"sourceInterval":[1683,1746]},["app",{"sourceInterval":[1683,1714]},"caseInsensitive",[["terminal",{"sourceInterval":[1699,1713]},"crossproduct"]]],["app",{"sourceInterval":[1722,1746]},"caseInsensitive",[["terminal",{"sourceInterval":[1738,1745]},"cross"]]]]],"lerp":["define",{"sourceInterval":[1752,1787]},null,[],["app",{"sourceInterval":[1764,1787]},"caseInsensitive",[["terminal",{"sourceInterval":[1780,1786]},"lerp"]]]]}]);module.exports=result; \ No newline at end of file +'use strict';const {makeRecipe}=require('ohm-js');const result={};result.BasicArithmetic=makeRecipe(["grammar",{"source":"BasicArithmetic {\r\n Expression\r\n = LogicalShift\r\n\r\n LogicalShift\r\n = LogicalShift \"<<\" LogicalShift -- left\r\n | LogicalShift \">>\" LogicalShift -- right\r\n | AS \r\n\r\n // Addition or Subtraction\r\n AS\r\n = AS add MD -- addition\r\n | AS subtract MD -- subtraction\r\n | MD\r\n\r\n // Multiply or Divide\r\n MD\r\n = MD multiply E -- multiplication\r\n | MD divide E -- division\r\n | MD modulo E -- modulo\r\n | E\r\n\r\n // Exponent\r\n E\r\n = P exponent E -- exponent\r\n | P\r\n\r\n // Parenthesis\r\n P\r\n = \"(\" Expression \")\" -- parenthesis\r\n | Primitive\r\n \r\n Primitive\r\n = \"+\" Primitive -- positive\r\n | \"-\" Primitive -- negative\r\n | constant\r\n | hex\r\n | number\r\n \r\n // Lexical Rules\r\n add \r\n \t= \"+\"\r\n | caseInsensitive<\"plus\">\r\n \t| caseInsensitive<\"add\">\r\n | caseInsensitive<\"and\">\r\n \r\n subtract \r\n = \"-\"\r\n | caseInsensitive<\"minus\">\r\n | caseInsensitive<\"subtract\">\r\n | caseInsensitive<\"remove\">\r\n | caseInsensitive<\"take\">\r\n \r\n multiply \r\n = \"*\"\r\n | \"\\\\*\" // Escaped e.g. \\* for markdown\r\n | \"\\u{00D7}\" // Multiplication Symbol ×\r\n | caseInsensitive<\"x\">\r\n | caseInsensitive<\"times by\">\r\n | caseInsensitive<\"times\">\r\n | caseInsensitive<\"multiply by\">\r\n | caseInsensitive<\"multiply\">\r\n \r\n divide\r\n = \"/\"\r\n | \"\\u{00F7}\" // Division Symbol ÷\r\n | caseInsensitive<\"divide by\">\r\n | caseInsensitive<\"divide\">\r\n\r\n modulo\r\n = \"%\"\r\n | caseInsensitive<\"modulo\">\r\n | caseInsensitive<\"mod\">\r\n\r\n exponent\r\n = \"^\"\r\n | caseInsensitive<\"to the power of\">\r\n | caseInsensitive<\"power of\">\r\n | caseInsensitive<\"exponent\">\r\n | caseInsensitive<\"prime\">\r\n\r\n constant \r\n \t= caseInsensitive<\"PI\"> \r\n | caseInsensitive<\"E\">\r\n\r\n number\r\n = digit* \".\" digit+ -- fract\r\n | digit+ -- whole\r\n \r\n hex\r\n = \"0x\" hexDigit+\r\n | hexDigit+ \"h\"\r\n}"},"BasicArithmetic",null,"Expression",{"Expression":["define",{"sourceInterval":[21,51]},null,[],["app",{"sourceInterval":[39,51]},"LogicalShift",[]]],"LogicalShift_left":["define",{"sourceInterval":[77,115]},null,[],["seq",{"sourceInterval":[77,107]},["app",{"sourceInterval":[77,89]},"LogicalShift",[]],["terminal",{"sourceInterval":[90,94]},"<<"],["app",{"sourceInterval":[95,107]},"LogicalShift",[]]]],"LogicalShift_right":["define",{"sourceInterval":[123,162]},null,[],["seq",{"sourceInterval":[123,153]},["app",{"sourceInterval":[123,135]},"LogicalShift",[]],["terminal",{"sourceInterval":[136,140]},">>"],["app",{"sourceInterval":[141,153]},"LogicalShift",[]]]],"LogicalShift":["define",{"sourceInterval":[57,172]},null,[],["alt",{"sourceInterval":[77,172]},["app",{"sourceInterval":[77,107]},"LogicalShift_left",[]],["app",{"sourceInterval":[123,153]},"LogicalShift_right",[]],["app",{"sourceInterval":[170,172]},"AS",[]]]],"AS_addition":["define",{"sourceInterval":[219,241]},null,[],["seq",{"sourceInterval":[219,228]},["app",{"sourceInterval":[219,221]},"AS",[]],["app",{"sourceInterval":[222,225]},"add",[]],["app",{"sourceInterval":[226,228]},"MD",[]]]],"AS_subtraction":["define",{"sourceInterval":[249,279]},null,[],["seq",{"sourceInterval":[249,263]},["app",{"sourceInterval":[249,251]},"AS",[]],["app",{"sourceInterval":[252,260]},"subtract",[]],["app",{"sourceInterval":[261,263]},"MD",[]]]],"AS":["define",{"sourceInterval":[209,289]},null,[],["alt",{"sourceInterval":[219,289]},["app",{"sourceInterval":[219,228]},"AS_addition",[]],["app",{"sourceInterval":[249,263]},"AS_subtraction",[]],["app",{"sourceInterval":[287,289]},"MD",[]]]],"MD_multiplication":["define",{"sourceInterval":[330,362]},null,[],["seq",{"sourceInterval":[330,343]},["app",{"sourceInterval":[330,332]},"MD",[]],["app",{"sourceInterval":[333,341]},"multiply",[]],["app",{"sourceInterval":[342,343]},"E",[]]]],"MD_division":["define",{"sourceInterval":[370,394]},null,[],["seq",{"sourceInterval":[370,381]},["app",{"sourceInterval":[370,372]},"MD",[]],["app",{"sourceInterval":[373,379]},"divide",[]],["app",{"sourceInterval":[380,381]},"E",[]]]],"MD_modulo":["define",{"sourceInterval":[402,424]},null,[],["seq",{"sourceInterval":[402,413]},["app",{"sourceInterval":[402,404]},"MD",[]],["app",{"sourceInterval":[405,411]},"modulo",[]],["app",{"sourceInterval":[412,413]},"E",[]]]],"MD":["define",{"sourceInterval":[320,433]},null,[],["alt",{"sourceInterval":[330,433]},["app",{"sourceInterval":[330,343]},"MD_multiplication",[]],["app",{"sourceInterval":[370,381]},"MD_division",[]],["app",{"sourceInterval":[402,413]},"MD_modulo",[]],["app",{"sourceInterval":[432,433]},"E",[]]]],"E_exponent":["define",{"sourceInterval":[463,488]},null,[],["seq",{"sourceInterval":[463,475]},["app",{"sourceInterval":[463,464]},"P",[]],["app",{"sourceInterval":[465,473]},"exponent",[]],["app",{"sourceInterval":[474,475]},"E",[]]]],"E":["define",{"sourceInterval":[454,497]},null,[],["alt",{"sourceInterval":[463,497]},["app",{"sourceInterval":[463,475]},"E_exponent",[]],["app",{"sourceInterval":[496,497]},"P",[]]]],"P_parenthesis":["define",{"sourceInterval":[530,564]},null,[],["seq",{"sourceInterval":[530,548]},["terminal",{"sourceInterval":[530,533]},"("],["app",{"sourceInterval":[534,544]},"Expression",[]],["terminal",{"sourceInterval":[545,548]},")"]]],"P":["define",{"sourceInterval":[521,581]},null,[],["alt",{"sourceInterval":[530,581]},["app",{"sourceInterval":[530,548]},"P_parenthesis",[]],["app",{"sourceInterval":[572,581]},"Primitive",[]]]],"Primitive_positive":["define",{"sourceInterval":[608,633]},null,[],["seq",{"sourceInterval":[608,621]},["terminal",{"sourceInterval":[608,611]},"+"],["app",{"sourceInterval":[612,621]},"Primitive",[]]]],"Primitive_negative":["define",{"sourceInterval":[641,666]},null,[],["seq",{"sourceInterval":[641,654]},["terminal",{"sourceInterval":[641,644]},"-"],["app",{"sourceInterval":[645,654]},"Primitive",[]]]],"Primitive":["define",{"sourceInterval":[591,707]},null,[],["alt",{"sourceInterval":[608,707]},["app",{"sourceInterval":[608,621]},"Primitive_positive",[]],["app",{"sourceInterval":[641,654]},"Primitive_negative",[]],["app",{"sourceInterval":[674,682]},"constant",[]],["app",{"sourceInterval":[690,693]},"hex",[]],["app",{"sourceInterval":[701,707]},"number",[]]]],"add":["define",{"sourceInterval":[734,838]},null,[],["alt",{"sourceInterval":[745,838]},["terminal",{"sourceInterval":[745,748]},"+"],["app",{"sourceInterval":[756,779]},"caseInsensitive",[["terminal",{"sourceInterval":[772,778]},"plus"]]],["app",{"sourceInterval":[786,808]},"caseInsensitive",[["terminal",{"sourceInterval":[802,807]},"add"]]],["app",{"sourceInterval":[816,838]},"caseInsensitive",[["terminal",{"sourceInterval":[832,837]},"and"]]]]],"subtract":["define",{"sourceInterval":[848,999]},null,[],["alt",{"sourceInterval":[865,999]},["terminal",{"sourceInterval":[865,868]},"-"],["app",{"sourceInterval":[876,900]},"caseInsensitive",[["terminal",{"sourceInterval":[892,899]},"minus"]]],["app",{"sourceInterval":[908,935]},"caseInsensitive",[["terminal",{"sourceInterval":[924,934]},"subtract"]]],["app",{"sourceInterval":[943,968]},"caseInsensitive",[["terminal",{"sourceInterval":[959,967]},"remove"]]],["app",{"sourceInterval":[976,999]},"caseInsensitive",[["terminal",{"sourceInterval":[992,998]},"take"]]]]],"multiply":["define",{"sourceInterval":[1011,1289]},null,[],["alt",{"sourceInterval":[1028,1289]},["terminal",{"sourceInterval":[1028,1031]},"*"],["terminal",{"sourceInterval":[1039,1044]},"\\*"],["terminal",{"sourceInterval":[1084,1094]},"×"],["app",{"sourceInterval":[1129,1149]},"caseInsensitive",[["terminal",{"sourceInterval":[1145,1148]},"x"]]],["app",{"sourceInterval":[1157,1184]},"caseInsensitive",[["terminal",{"sourceInterval":[1173,1183]},"times by"]]],["app",{"sourceInterval":[1192,1216]},"caseInsensitive",[["terminal",{"sourceInterval":[1208,1215]},"times"]]],["app",{"sourceInterval":[1224,1254]},"caseInsensitive",[["terminal",{"sourceInterval":[1240,1253]},"multiply by"]]],["app",{"sourceInterval":[1262,1289]},"caseInsensitive",[["terminal",{"sourceInterval":[1278,1288]},"multiply"]]]]],"divide":["define",{"sourceInterval":[1301,1426]},null,[],["alt",{"sourceInterval":[1315,1426]},["terminal",{"sourceInterval":[1315,1318]},"/"],["terminal",{"sourceInterval":[1326,1336]},"÷"],["app",{"sourceInterval":[1365,1393]},"caseInsensitive",[["terminal",{"sourceInterval":[1381,1392]},"divide by"]]],["app",{"sourceInterval":[1401,1426]},"caseInsensitive",[["terminal",{"sourceInterval":[1417,1425]},"divide"]]]]],"modulo":["define",{"sourceInterval":[1432,1512]},null,[],["alt",{"sourceInterval":[1446,1512]},["terminal",{"sourceInterval":[1446,1449]},"%"],["app",{"sourceInterval":[1457,1482]},"caseInsensitive",[["terminal",{"sourceInterval":[1473,1481]},"modulo"]]],["app",{"sourceInterval":[1490,1512]},"caseInsensitive",[["terminal",{"sourceInterval":[1506,1511]},"mod"]]]]],"exponent":["define",{"sourceInterval":[1518,1681]},null,[],["alt",{"sourceInterval":[1534,1681]},["terminal",{"sourceInterval":[1534,1537]},"^"],["app",{"sourceInterval":[1545,1579]},"caseInsensitive",[["terminal",{"sourceInterval":[1561,1578]},"to the power of"]]],["app",{"sourceInterval":[1587,1614]},"caseInsensitive",[["terminal",{"sourceInterval":[1603,1613]},"power of"]]],["app",{"sourceInterval":[1622,1649]},"caseInsensitive",[["terminal",{"sourceInterval":[1638,1648]},"exponent"]]],["app",{"sourceInterval":[1657,1681]},"caseInsensitive",[["terminal",{"sourceInterval":[1673,1680]},"prime"]]]]],"constant":["define",{"sourceInterval":[1687,1754]},null,[],["alt",{"sourceInterval":[1704,1754]},["app",{"sourceInterval":[1704,1725]},"caseInsensitive",[["terminal",{"sourceInterval":[1720,1724]},"PI"]]],["app",{"sourceInterval":[1734,1754]},"caseInsensitive",[["terminal",{"sourceInterval":[1750,1753]},"E"]]]]],"number_fract":["define",{"sourceInterval":[1774,1801]},null,[],["seq",{"sourceInterval":[1774,1791]},["star",{"sourceInterval":[1774,1780]},["app",{"sourceInterval":[1774,1779]},"digit",[]]],["terminal",{"sourceInterval":[1781,1784]},"."],["plus",{"sourceInterval":[1785,1791]},["app",{"sourceInterval":[1785,1790]},"digit",[]]]]],"number_whole":["define",{"sourceInterval":[1809,1836]},null,[],["plus",{"sourceInterval":[1809,1815]},["app",{"sourceInterval":[1809,1814]},"digit",[]]]],"number":["define",{"sourceInterval":[1760,1836]},null,[],["alt",{"sourceInterval":[1774,1836]},["app",{"sourceInterval":[1774,1791]},"number_fract",[]],["app",{"sourceInterval":[1809,1815]},"number_whole",[]]]],"hex":["define",{"sourceInterval":[1844,1890]},null,[],["alt",{"sourceInterval":[1855,1890]},["seq",{"sourceInterval":[1855,1869]},["terminal",{"sourceInterval":[1855,1859]},"0x"],["plus",{"sourceInterval":[1860,1869]},["app",{"sourceInterval":[1860,1868]},"hexDigit",[]]]],["seq",{"sourceInterval":[1877,1890]},["plus",{"sourceInterval":[1877,1886]},["app",{"sourceInterval":[1877,1885]},"hexDigit",[]]],["terminal",{"sourceInterval":[1887,1890]},"h"]]]]}]);result.Vector3Arithmetic=makeRecipe(["grammar",{"source":"Vector3Arithmetic <: BasicArithmetic {\r\n // Remove support for logical shift\r\n Expression \r\n \t:= AS\r\n\r\n P\r\n := \"(\" Expression \")\" -- parenthesis\r\n | Vector3\r\n | Function\r\n | Primitive\r\n\r\n // Remove modulo support for vector\r\n MD\r\n := MD multiply E -- multiplication\r\n | MD divide E -- division\r\n | E\r\n\r\n Vector3\r\n = vector3? \"(\" Expression \",\" Expression \",\" Expression \")\" -- parse\r\n\r\n Function\r\n = LengthSq\r\n | DistanceSq\r\n | Length\r\n | Distance\r\n | Normalise\r\n | Dot\r\n | AngleBetween\r\n | Cross\r\n | Lerp\r\n\r\n LengthSq = lengthSq \"(\" Vector3 \")\" -- function\r\n DistanceSq = distanceSq \"(\" Vector3 \",\" Vector3 \")\" -- function\r\n Length = length \"(\" Vector3 \")\" -- function\r\n Distance = distance \"(\" Vector3 \",\" Vector3 \")\" -- function\r\n Normalise = normalise \"(\" Vector3 \")\" -- function\r\n Dot = dot \"(\" Vector3 \",\" Vector3 \")\" -- function\r\n AngleBetween = angleBetween \"(\" Vector3 \",\" Vector3 \")\" -- function\r\n Cross = cross \"(\" Vector3 \",\" Vector3 \")\" -- function\r\n Lerp = lerp \"(\" Vector3 \",\" Vector3 \",\" number \")\" -- function\r\n\r\n vector3 \r\n \t = caseInsensitive<\"Vector3\">\r\n | caseInsensitive<\"Vec3\">\r\n\r\n lengthSq \r\n \t = caseInsensitive<\"lengthSq\">\r\n | caseInsensitive<\"magnitudeSq\">\r\n\r\n distanceSq\r\n = caseInsensitive<\"distanceSq\">\r\n\r\n length\r\n \t = caseInsensitive<\"length\">\r\n | caseInsensitive<\"magnitude\">\r\n\r\n distance\r\n = caseInsensitive<\"distance\">\r\n\r\n normalise \r\n \t = caseInsensitive<\"normalise\">\r\n \t | caseInsensitive<\"normalize\">\r\n\r\n dot\r\n = caseInsensitive<\"dotproduct\">\r\n | caseInsensitive<\"dot\">\r\n\r\n angleBetween\r\n = caseInsensitive<\"angleBetween\">\r\n\r\n cross\r\n = caseInsensitive<\"crossproduct\">\r\n | caseInsensitive<\"cross\">\r\n\r\n lerp\r\n = caseInsensitive<\"lerp\">\r\n}"},"Vector3Arithmetic",result.BasicArithmetic,"Expression",{"Expression":["override",{"sourceInterval":[81,103]},null,[],["app",{"sourceInterval":[101,103]},"AS",[]]],"P_parenthesis":["override",{"sourceInterval":[119,153]},null,[],["seq",{"sourceInterval":[119,137]},["terminal",{"sourceInterval":[119,122]},"("],["app",{"sourceInterval":[123,133]},"Expression",[]],["terminal",{"sourceInterval":[134,137]},")"]]],"P":["override",{"sourceInterval":[109,201]},null,[],["alt",{"sourceInterval":[119,201]},["app",{"sourceInterval":[119,137]},"P_parenthesis",[]],["app",{"sourceInterval":[161,168]},"Vector3",[]],["app",{"sourceInterval":[176,184]},"Function",[]],["app",{"sourceInterval":[192,201]},"Primitive",[]]]],"MD_multiplication":["override",{"sourceInterval":[257,289]},null,[],["seq",{"sourceInterval":[257,270]},["app",{"sourceInterval":[257,259]},"MD",[]],["app",{"sourceInterval":[260,268]},"multiply",[]],["app",{"sourceInterval":[269,270]},"E",[]]]],"MD_division":["override",{"sourceInterval":[297,321]},null,[],["seq",{"sourceInterval":[297,308]},["app",{"sourceInterval":[297,299]},"MD",[]],["app",{"sourceInterval":[300,306]},"divide",[]],["app",{"sourceInterval":[307,308]},"E",[]]]],"MD":["override",{"sourceInterval":[246,330]},null,[],["alt",{"sourceInterval":[257,330]},["app",{"sourceInterval":[257,270]},"MD_multiplication",[]],["app",{"sourceInterval":[297,308]},"MD_division",[]],["app",{"sourceInterval":[329,330]},"E",[]]]],"Vector3_parse":["define",{"sourceInterval":[351,417]},null,[],["seq",{"sourceInterval":[351,408]},["opt",{"sourceInterval":[351,359]},["app",{"sourceInterval":[351,358]},"vector3",[]]],["terminal",{"sourceInterval":[360,363]},"("],["app",{"sourceInterval":[364,374]},"Expression",[]],["terminal",{"sourceInterval":[375,378]},","],["app",{"sourceInterval":[379,389]},"Expression",[]],["terminal",{"sourceInterval":[390,393]},","],["app",{"sourceInterval":[394,404]},"Expression",[]],["terminal",{"sourceInterval":[405,408]},")"]]],"Vector3":["define",{"sourceInterval":[336,417]},null,[],["app",{"sourceInterval":[351,417]},"Vector3_parse",[]]],"Function":["define",{"sourceInterval":[423,559]},null,[],["alt",{"sourceInterval":[438,559]},["app",{"sourceInterval":[438,446]},"LengthSq",[]],["app",{"sourceInterval":[453,463]},"DistanceSq",[]],["app",{"sourceInterval":[470,476]},"Length",[]],["app",{"sourceInterval":[483,491]},"Distance",[]],["app",{"sourceInterval":[498,507]},"Normalise",[]],["app",{"sourceInterval":[514,517]},"Dot",[]],["app",{"sourceInterval":[524,536]},"AngleBetween",[]],["app",{"sourceInterval":[543,548]},"Cross",[]],["app",{"sourceInterval":[555,559]},"Lerp",[]]]],"LengthSq_function":["define",{"sourceInterval":[577,613]},null,[],["seq",{"sourceInterval":[577,601]},["app",{"sourceInterval":[577,585]},"lengthSq",[]],["terminal",{"sourceInterval":[586,589]},"("],["app",{"sourceInterval":[590,597]},"Vector3",[]],["terminal",{"sourceInterval":[598,601]},")"]]],"LengthSq":["define",{"sourceInterval":[565,613]},null,[],["app",{"sourceInterval":[577,613]},"LengthSq_function",[]]],"DistanceSq_function":["define",{"sourceInterval":[631,681]},null,[],["seq",{"sourceInterval":[631,669]},["app",{"sourceInterval":[631,641]},"distanceSq",[]],["terminal",{"sourceInterval":[642,645]},"("],["app",{"sourceInterval":[646,653]},"Vector3",[]],["terminal",{"sourceInterval":[654,657]},","],["app",{"sourceInterval":[658,665]},"Vector3",[]],["terminal",{"sourceInterval":[666,669]},")"]]],"DistanceSq":["define",{"sourceInterval":[617,681]},null,[],["app",{"sourceInterval":[631,681]},"DistanceSq_function",[]]],"Length_function":["define",{"sourceInterval":[695,729]},null,[],["seq",{"sourceInterval":[695,717]},["app",{"sourceInterval":[695,701]},"length",[]],["terminal",{"sourceInterval":[702,705]},"("],["app",{"sourceInterval":[706,713]},"Vector3",[]],["terminal",{"sourceInterval":[714,717]},")"]]],"Length":["define",{"sourceInterval":[685,729]},null,[],["app",{"sourceInterval":[695,729]},"Length_function",[]]],"Distance_function":["define",{"sourceInterval":[745,793]},null,[],["seq",{"sourceInterval":[745,781]},["app",{"sourceInterval":[745,753]},"distance",[]],["terminal",{"sourceInterval":[754,757]},"("],["app",{"sourceInterval":[758,765]},"Vector3",[]],["terminal",{"sourceInterval":[766,769]},","],["app",{"sourceInterval":[770,777]},"Vector3",[]],["terminal",{"sourceInterval":[778,781]},")"]]],"Distance":["define",{"sourceInterval":[733,793]},null,[],["app",{"sourceInterval":[745,793]},"Distance_function",[]]],"Normalise_function":["define",{"sourceInterval":[809,846]},null,[],["seq",{"sourceInterval":[809,834]},["app",{"sourceInterval":[809,818]},"normalise",[]],["terminal",{"sourceInterval":[819,822]},"("],["app",{"sourceInterval":[823,830]},"Vector3",[]],["terminal",{"sourceInterval":[831,834]},")"]]],"Normalise":["define",{"sourceInterval":[797,846]},null,[],["app",{"sourceInterval":[809,846]},"Normalise_function",[]]],"Dot_function":["define",{"sourceInterval":[856,899]},null,[],["seq",{"sourceInterval":[856,887]},["app",{"sourceInterval":[856,859]},"dot",[]],["terminal",{"sourceInterval":[860,863]},"("],["app",{"sourceInterval":[864,871]},"Vector3",[]],["terminal",{"sourceInterval":[872,875]},","],["app",{"sourceInterval":[876,883]},"Vector3",[]],["terminal",{"sourceInterval":[884,887]},")"]]],"Dot":["define",{"sourceInterval":[850,899]},null,[],["app",{"sourceInterval":[856,899]},"Dot_function",[]]],"AngleBetween_function":["define",{"sourceInterval":[918,970]},null,[],["seq",{"sourceInterval":[918,958]},["app",{"sourceInterval":[918,930]},"angleBetween",[]],["terminal",{"sourceInterval":[931,934]},"("],["app",{"sourceInterval":[935,942]},"Vector3",[]],["terminal",{"sourceInterval":[943,946]},","],["app",{"sourceInterval":[947,954]},"Vector3",[]],["terminal",{"sourceInterval":[955,958]},")"]]],"AngleBetween":["define",{"sourceInterval":[903,970]},null,[],["app",{"sourceInterval":[918,970]},"AngleBetween_function",[]]],"Cross_function":["define",{"sourceInterval":[982,1027]},null,[],["seq",{"sourceInterval":[982,1015]},["app",{"sourceInterval":[982,987]},"cross",[]],["terminal",{"sourceInterval":[988,991]},"("],["app",{"sourceInterval":[992,999]},"Vector3",[]],["terminal",{"sourceInterval":[1000,1003]},","],["app",{"sourceInterval":[1004,1011]},"Vector3",[]],["terminal",{"sourceInterval":[1012,1015]},")"]]],"Cross":["define",{"sourceInterval":[974,1027]},null,[],["app",{"sourceInterval":[982,1027]},"Cross_function",[]]],"Lerp_function":["define",{"sourceInterval":[1038,1093]},null,[],["seq",{"sourceInterval":[1038,1081]},["app",{"sourceInterval":[1038,1042]},"lerp",[]],["terminal",{"sourceInterval":[1043,1046]},"("],["app",{"sourceInterval":[1047,1054]},"Vector3",[]],["terminal",{"sourceInterval":[1055,1058]},","],["app",{"sourceInterval":[1059,1066]},"Vector3",[]],["terminal",{"sourceInterval":[1067,1070]},","],["app",{"sourceInterval":[1071,1077]},"number",[]],["terminal",{"sourceInterval":[1078,1081]},")"]]],"Lerp":["define",{"sourceInterval":[1031,1093]},null,[],["app",{"sourceInterval":[1038,1093]},"Lerp_function",[]]],"vector3":["define",{"sourceInterval":[1099,1172]},null,[],["alt",{"sourceInterval":[1115,1172]},["app",{"sourceInterval":[1115,1141]},"caseInsensitive",[["terminal",{"sourceInterval":[1131,1140]},"Vector3"]]],["app",{"sourceInterval":[1149,1172]},"caseInsensitive",[["terminal",{"sourceInterval":[1165,1171]},"Vec3"]]]]],"lengthSq":["define",{"sourceInterval":[1178,1260]},null,[],["alt",{"sourceInterval":[1195,1260]},["app",{"sourceInterval":[1195,1222]},"caseInsensitive",[["terminal",{"sourceInterval":[1211,1221]},"lengthSq"]]],["app",{"sourceInterval":[1230,1260]},"caseInsensitive",[["terminal",{"sourceInterval":[1246,1259]},"magnitudeSq"]]]]],"distanceSq":["define",{"sourceInterval":[1266,1313]},null,[],["app",{"sourceInterval":[1284,1313]},"caseInsensitive",[["terminal",{"sourceInterval":[1300,1312]},"distanceSq"]]]],"length":["define",{"sourceInterval":[1319,1394]},null,[],["alt",{"sourceInterval":[1333,1394]},["app",{"sourceInterval":[1333,1358]},"caseInsensitive",[["terminal",{"sourceInterval":[1349,1357]},"length"]]],["app",{"sourceInterval":[1366,1394]},"caseInsensitive",[["terminal",{"sourceInterval":[1382,1393]},"magnitude"]]]]],"distance":["define",{"sourceInterval":[1400,1443]},null,[],["app",{"sourceInterval":[1416,1443]},"caseInsensitive",[["terminal",{"sourceInterval":[1432,1442]},"distance"]]]],"normalise":["define",{"sourceInterval":[1449,1531]},null,[],["alt",{"sourceInterval":[1467,1531]},["app",{"sourceInterval":[1467,1495]},"caseInsensitive",[["terminal",{"sourceInterval":[1483,1494]},"normalise"]]],["app",{"sourceInterval":[1503,1531]},"caseInsensitive",[["terminal",{"sourceInterval":[1519,1530]},"normalize"]]]]],"dot":["define",{"sourceInterval":[1537,1607]},null,[],["alt",{"sourceInterval":[1548,1607]},["app",{"sourceInterval":[1548,1577]},"caseInsensitive",[["terminal",{"sourceInterval":[1564,1576]},"dotproduct"]]],["app",{"sourceInterval":[1585,1607]},"caseInsensitive",[["terminal",{"sourceInterval":[1601,1606]},"dot"]]]]],"angleBetween":["define",{"sourceInterval":[1613,1664]},null,[],["app",{"sourceInterval":[1633,1664]},"caseInsensitive",[["terminal",{"sourceInterval":[1649,1663]},"angleBetween"]]]],"cross":["define",{"sourceInterval":[1670,1746]},null,[],["alt",{"sourceInterval":[1683,1746]},["app",{"sourceInterval":[1683,1714]},"caseInsensitive",[["terminal",{"sourceInterval":[1699,1713]},"crossproduct"]]],["app",{"sourceInterval":[1722,1746]},"caseInsensitive",[["terminal",{"sourceInterval":[1738,1745]},"cross"]]]]],"lerp":["define",{"sourceInterval":[1752,1787]},null,[],["app",{"sourceInterval":[1764,1787]},"caseInsensitive",[["terminal",{"sourceInterval":[1780,1786]},"lerp"]]]]}]);module.exports=result; \ No newline at end of file diff --git a/src/grammars/vector/Vector4Arithmetic.ohm-bundle.js b/src/grammars/vector/Vector4Arithmetic.ohm-bundle.js index 0602080..3d75a67 100644 --- a/src/grammars/vector/Vector4Arithmetic.ohm-bundle.js +++ b/src/grammars/vector/Vector4Arithmetic.ohm-bundle.js @@ -1 +1 @@ -'use strict';const {makeRecipe}=require('ohm-js');const result={};result.BasicArithmetic=makeRecipe(["grammar",{"source":"BasicArithmetic {\r\n Expression\r\n = LogicalShift\r\n\r\n LogicalShift\r\n = LogicalShift \"<<\" LogicalShift -- left\r\n | LogicalShift \">>\" LogicalShift -- right\r\n | AS \r\n\r\n // Addition or Subtraction\r\n AS\r\n = AS add MD -- addition\r\n | AS subtract MD -- subtraction\r\n | MD\r\n\r\n // Multiply or Divide\r\n MD\r\n = MD multiply E -- multiplication\r\n | MD divide E -- division\r\n | MD modulo E -- modulo\r\n | E\r\n\r\n // Exponent\r\n E\r\n = P exponent E -- exponent\r\n | P\r\n\r\n // Parenthesis\r\n P\r\n = \"(\" Expression \")\" -- parenthesis\r\n | Primitive\r\n \r\n Primitive\r\n = \"+\" Primitive -- positive\r\n | \"-\" Primitive -- negative\r\n | constant\r\n | hex\r\n | number\r\n \r\n // Lexical Rules\r\n add \r\n \t= \"+\"\r\n | caseInsensitive<\"plus\">\r\n \t| caseInsensitive<\"add\">\r\n | caseInsensitive<\"and\">\r\n \r\n subtract \r\n = \"-\"\r\n | caseInsensitive<\"minus\">\r\n | caseInsensitive<\"subtract\">\r\n | caseInsensitive<\"remove\">\r\n | caseInsensitive<\"take\">\r\n \r\n multiply \r\n = \"*\"\r\n | caseInsensitive<\"times by\">\r\n | caseInsensitive<\"times\">\r\n | caseInsensitive<\"multiply by\">\r\n | caseInsensitive<\"multiply\">\r\n \r\n divide\r\n = \"/\"\r\n | caseInsensitive<\"divide by\">\r\n | caseInsensitive<\"divide\">\r\n\r\n modulo\r\n = \"%\"\r\n | caseInsensitive<\"modulo\">\r\n | caseInsensitive<\"mod\">\r\n\r\n exponent\r\n = \"^\"\r\n | caseInsensitive<\"to the power of\">\r\n | caseInsensitive<\"power of\">\r\n | caseInsensitive<\"exponent\">\r\n | caseInsensitive<\"prime\">\r\n\r\n constant \r\n \t= caseInsensitive<\"PI\"> \r\n | caseInsensitive<\"E\">\r\n\r\n number\r\n = digit* \".\" digit+ -- fract\r\n | digit+ -- whole\r\n \r\n hex\r\n = \"0x\" hexDigit+\r\n | hexDigit+ \"h\"\r\n}"},"BasicArithmetic",null,"Expression",{"Expression":["define",{"sourceInterval":[21,51]},null,[],["app",{"sourceInterval":[39,51]},"LogicalShift",[]]],"LogicalShift_left":["define",{"sourceInterval":[77,115]},null,[],["seq",{"sourceInterval":[77,107]},["app",{"sourceInterval":[77,89]},"LogicalShift",[]],["terminal",{"sourceInterval":[90,94]},"<<"],["app",{"sourceInterval":[95,107]},"LogicalShift",[]]]],"LogicalShift_right":["define",{"sourceInterval":[123,162]},null,[],["seq",{"sourceInterval":[123,153]},["app",{"sourceInterval":[123,135]},"LogicalShift",[]],["terminal",{"sourceInterval":[136,140]},">>"],["app",{"sourceInterval":[141,153]},"LogicalShift",[]]]],"LogicalShift":["define",{"sourceInterval":[57,172]},null,[],["alt",{"sourceInterval":[77,172]},["app",{"sourceInterval":[77,107]},"LogicalShift_left",[]],["app",{"sourceInterval":[123,153]},"LogicalShift_right",[]],["app",{"sourceInterval":[170,172]},"AS",[]]]],"AS_addition":["define",{"sourceInterval":[219,241]},null,[],["seq",{"sourceInterval":[219,228]},["app",{"sourceInterval":[219,221]},"AS",[]],["app",{"sourceInterval":[222,225]},"add",[]],["app",{"sourceInterval":[226,228]},"MD",[]]]],"AS_subtraction":["define",{"sourceInterval":[249,279]},null,[],["seq",{"sourceInterval":[249,263]},["app",{"sourceInterval":[249,251]},"AS",[]],["app",{"sourceInterval":[252,260]},"subtract",[]],["app",{"sourceInterval":[261,263]},"MD",[]]]],"AS":["define",{"sourceInterval":[209,289]},null,[],["alt",{"sourceInterval":[219,289]},["app",{"sourceInterval":[219,228]},"AS_addition",[]],["app",{"sourceInterval":[249,263]},"AS_subtraction",[]],["app",{"sourceInterval":[287,289]},"MD",[]]]],"MD_multiplication":["define",{"sourceInterval":[330,362]},null,[],["seq",{"sourceInterval":[330,343]},["app",{"sourceInterval":[330,332]},"MD",[]],["app",{"sourceInterval":[333,341]},"multiply",[]],["app",{"sourceInterval":[342,343]},"E",[]]]],"MD_division":["define",{"sourceInterval":[370,394]},null,[],["seq",{"sourceInterval":[370,381]},["app",{"sourceInterval":[370,372]},"MD",[]],["app",{"sourceInterval":[373,379]},"divide",[]],["app",{"sourceInterval":[380,381]},"E",[]]]],"MD_modulo":["define",{"sourceInterval":[402,424]},null,[],["seq",{"sourceInterval":[402,413]},["app",{"sourceInterval":[402,404]},"MD",[]],["app",{"sourceInterval":[405,411]},"modulo",[]],["app",{"sourceInterval":[412,413]},"E",[]]]],"MD":["define",{"sourceInterval":[320,433]},null,[],["alt",{"sourceInterval":[330,433]},["app",{"sourceInterval":[330,343]},"MD_multiplication",[]],["app",{"sourceInterval":[370,381]},"MD_division",[]],["app",{"sourceInterval":[402,413]},"MD_modulo",[]],["app",{"sourceInterval":[432,433]},"E",[]]]],"E_exponent":["define",{"sourceInterval":[463,488]},null,[],["seq",{"sourceInterval":[463,475]},["app",{"sourceInterval":[463,464]},"P",[]],["app",{"sourceInterval":[465,473]},"exponent",[]],["app",{"sourceInterval":[474,475]},"E",[]]]],"E":["define",{"sourceInterval":[454,497]},null,[],["alt",{"sourceInterval":[463,497]},["app",{"sourceInterval":[463,475]},"E_exponent",[]],["app",{"sourceInterval":[496,497]},"P",[]]]],"P_parenthesis":["define",{"sourceInterval":[530,564]},null,[],["seq",{"sourceInterval":[530,548]},["terminal",{"sourceInterval":[530,533]},"("],["app",{"sourceInterval":[534,544]},"Expression",[]],["terminal",{"sourceInterval":[545,548]},")"]]],"P":["define",{"sourceInterval":[521,581]},null,[],["alt",{"sourceInterval":[530,581]},["app",{"sourceInterval":[530,548]},"P_parenthesis",[]],["app",{"sourceInterval":[572,581]},"Primitive",[]]]],"Primitive_positive":["define",{"sourceInterval":[608,633]},null,[],["seq",{"sourceInterval":[608,621]},["terminal",{"sourceInterval":[608,611]},"+"],["app",{"sourceInterval":[612,621]},"Primitive",[]]]],"Primitive_negative":["define",{"sourceInterval":[641,666]},null,[],["seq",{"sourceInterval":[641,654]},["terminal",{"sourceInterval":[641,644]},"-"],["app",{"sourceInterval":[645,654]},"Primitive",[]]]],"Primitive":["define",{"sourceInterval":[591,707]},null,[],["alt",{"sourceInterval":[608,707]},["app",{"sourceInterval":[608,621]},"Primitive_positive",[]],["app",{"sourceInterval":[641,654]},"Primitive_negative",[]],["app",{"sourceInterval":[674,682]},"constant",[]],["app",{"sourceInterval":[690,693]},"hex",[]],["app",{"sourceInterval":[701,707]},"number",[]]]],"add":["define",{"sourceInterval":[734,838]},null,[],["alt",{"sourceInterval":[745,838]},["terminal",{"sourceInterval":[745,748]},"+"],["app",{"sourceInterval":[756,779]},"caseInsensitive",[["terminal",{"sourceInterval":[772,778]},"plus"]]],["app",{"sourceInterval":[786,808]},"caseInsensitive",[["terminal",{"sourceInterval":[802,807]},"add"]]],["app",{"sourceInterval":[816,838]},"caseInsensitive",[["terminal",{"sourceInterval":[832,837]},"and"]]]]],"subtract":["define",{"sourceInterval":[848,999]},null,[],["alt",{"sourceInterval":[865,999]},["terminal",{"sourceInterval":[865,868]},"-"],["app",{"sourceInterval":[876,900]},"caseInsensitive",[["terminal",{"sourceInterval":[892,899]},"minus"]]],["app",{"sourceInterval":[908,935]},"caseInsensitive",[["terminal",{"sourceInterval":[924,934]},"subtract"]]],["app",{"sourceInterval":[943,968]},"caseInsensitive",[["terminal",{"sourceInterval":[959,967]},"remove"]]],["app",{"sourceInterval":[976,999]},"caseInsensitive",[["terminal",{"sourceInterval":[992,998]},"take"]]]]],"multiply":["define",{"sourceInterval":[1011,1171]},null,[],["alt",{"sourceInterval":[1028,1171]},["terminal",{"sourceInterval":[1028,1031]},"*"],["app",{"sourceInterval":[1039,1066]},"caseInsensitive",[["terminal",{"sourceInterval":[1055,1065]},"times by"]]],["app",{"sourceInterval":[1074,1098]},"caseInsensitive",[["terminal",{"sourceInterval":[1090,1097]},"times"]]],["app",{"sourceInterval":[1106,1136]},"caseInsensitive",[["terminal",{"sourceInterval":[1122,1135]},"multiply by"]]],["app",{"sourceInterval":[1144,1171]},"caseInsensitive",[["terminal",{"sourceInterval":[1160,1170]},"multiply"]]]]],"divide":["define",{"sourceInterval":[1183,1269]},null,[],["alt",{"sourceInterval":[1197,1269]},["terminal",{"sourceInterval":[1197,1200]},"/"],["app",{"sourceInterval":[1208,1236]},"caseInsensitive",[["terminal",{"sourceInterval":[1224,1235]},"divide by"]]],["app",{"sourceInterval":[1244,1269]},"caseInsensitive",[["terminal",{"sourceInterval":[1260,1268]},"divide"]]]]],"modulo":["define",{"sourceInterval":[1275,1355]},null,[],["alt",{"sourceInterval":[1289,1355]},["terminal",{"sourceInterval":[1289,1292]},"%"],["app",{"sourceInterval":[1300,1325]},"caseInsensitive",[["terminal",{"sourceInterval":[1316,1324]},"modulo"]]],["app",{"sourceInterval":[1333,1355]},"caseInsensitive",[["terminal",{"sourceInterval":[1349,1354]},"mod"]]]]],"exponent":["define",{"sourceInterval":[1361,1524]},null,[],["alt",{"sourceInterval":[1377,1524]},["terminal",{"sourceInterval":[1377,1380]},"^"],["app",{"sourceInterval":[1388,1422]},"caseInsensitive",[["terminal",{"sourceInterval":[1404,1421]},"to the power of"]]],["app",{"sourceInterval":[1430,1457]},"caseInsensitive",[["terminal",{"sourceInterval":[1446,1456]},"power of"]]],["app",{"sourceInterval":[1465,1492]},"caseInsensitive",[["terminal",{"sourceInterval":[1481,1491]},"exponent"]]],["app",{"sourceInterval":[1500,1524]},"caseInsensitive",[["terminal",{"sourceInterval":[1516,1523]},"prime"]]]]],"constant":["define",{"sourceInterval":[1530,1597]},null,[],["alt",{"sourceInterval":[1547,1597]},["app",{"sourceInterval":[1547,1568]},"caseInsensitive",[["terminal",{"sourceInterval":[1563,1567]},"PI"]]],["app",{"sourceInterval":[1577,1597]},"caseInsensitive",[["terminal",{"sourceInterval":[1593,1596]},"E"]]]]],"number_fract":["define",{"sourceInterval":[1617,1644]},null,[],["seq",{"sourceInterval":[1617,1634]},["star",{"sourceInterval":[1617,1623]},["app",{"sourceInterval":[1617,1622]},"digit",[]]],["terminal",{"sourceInterval":[1624,1627]},"."],["plus",{"sourceInterval":[1628,1634]},["app",{"sourceInterval":[1628,1633]},"digit",[]]]]],"number_whole":["define",{"sourceInterval":[1652,1679]},null,[],["plus",{"sourceInterval":[1652,1658]},["app",{"sourceInterval":[1652,1657]},"digit",[]]]],"number":["define",{"sourceInterval":[1603,1679]},null,[],["alt",{"sourceInterval":[1617,1679]},["app",{"sourceInterval":[1617,1634]},"number_fract",[]],["app",{"sourceInterval":[1652,1658]},"number_whole",[]]]],"hex":["define",{"sourceInterval":[1687,1733]},null,[],["alt",{"sourceInterval":[1698,1733]},["seq",{"sourceInterval":[1698,1712]},["terminal",{"sourceInterval":[1698,1702]},"0x"],["plus",{"sourceInterval":[1703,1712]},["app",{"sourceInterval":[1703,1711]},"hexDigit",[]]]],["seq",{"sourceInterval":[1720,1733]},["plus",{"sourceInterval":[1720,1729]},["app",{"sourceInterval":[1720,1728]},"hexDigit",[]]],["terminal",{"sourceInterval":[1730,1733]},"h"]]]]}]);result.Vector4Arithmetic=makeRecipe(["grammar",{"source":"Vector4Arithmetic <: BasicArithmetic {\r\n // Remove support for logical shift\r\n Expression \r\n \t:= AS\r\n\r\n P\r\n := \"(\" Expression \")\" -- parenthesis\r\n | Vector4\r\n | Function\r\n | Primitive\r\n\r\n // Remove modulo support for vector\r\n MD\r\n := MD multiply E -- multiplication\r\n | MD divide E -- division\r\n | E\r\n\r\n Vector4\r\n = vector4? \"(\" Expression \",\" Expression \",\" Expression \",\" Expression \")\" -- parse\r\n\r\n Function\r\n = LengthSq\r\n | DistanceSq\r\n | Length\r\n | Distance\r\n | Normalise\r\n | Dot\r\n | AngleBetween\r\n | Lerp\r\n\r\n LengthSq = lengthSq \"(\" Vector4 \")\" -- function\r\n DistanceSq = distanceSq \"(\" Vector4 \",\" Vector4 \")\" -- function\r\n Length = length \"(\" Vector4 \")\" -- function\r\n Distance = distance \"(\" Vector4 \",\" Vector4 \")\" -- function\r\n Normalise = normalise \"(\" Vector4 \")\" -- function\r\n Dot = dot \"(\" Vector4 \",\" Vector4 \")\" -- function\r\n AngleBetween = angleBetween \"(\" Vector4 \",\" Vector4 \")\" -- function\r\n Lerp = lerp \"(\" Vector4 \",\" Vector4 \",\" number \")\" -- function\r\n\r\n vector4 \r\n \t = caseInsensitive<\"Vector4\">\r\n | caseInsensitive<\"Vec4\">\r\n\r\n lengthSq \r\n \t = caseInsensitive<\"lengthSq\">\r\n | caseInsensitive<\"magnitudeSq\">\r\n\r\n distanceSq\r\n = caseInsensitive<\"distanceSq\">\r\n\r\n length\r\n \t = caseInsensitive<\"length\">\r\n | caseInsensitive<\"magnitude\">\r\n\r\n distance\r\n = caseInsensitive<\"distance\">\r\n\r\n normalise \r\n \t = caseInsensitive<\"normalise\">\r\n \t | caseInsensitive<\"normalize\">\r\n\r\n dot\r\n = caseInsensitive<\"dotproduct\">\r\n | caseInsensitive<\"dot\">\r\n\r\n angleBetween\r\n = caseInsensitive<\"angleBetween\">\r\n\r\n lerp\r\n = caseInsensitive<\"lerp\">\r\n}"},"Vector4Arithmetic",result.BasicArithmetic,"Expression",{"Expression":["override",{"sourceInterval":[81,103]},null,[],["app",{"sourceInterval":[101,103]},"AS",[]]],"P_parenthesis":["override",{"sourceInterval":[119,153]},null,[],["seq",{"sourceInterval":[119,137]},["terminal",{"sourceInterval":[119,122]},"("],["app",{"sourceInterval":[123,133]},"Expression",[]],["terminal",{"sourceInterval":[134,137]},")"]]],"P":["override",{"sourceInterval":[109,201]},null,[],["alt",{"sourceInterval":[119,201]},["app",{"sourceInterval":[119,137]},"P_parenthesis",[]],["app",{"sourceInterval":[161,168]},"Vector4",[]],["app",{"sourceInterval":[176,184]},"Function",[]],["app",{"sourceInterval":[192,201]},"Primitive",[]]]],"MD_multiplication":["override",{"sourceInterval":[257,289]},null,[],["seq",{"sourceInterval":[257,270]},["app",{"sourceInterval":[257,259]},"MD",[]],["app",{"sourceInterval":[260,268]},"multiply",[]],["app",{"sourceInterval":[269,270]},"E",[]]]],"MD_division":["override",{"sourceInterval":[297,321]},null,[],["seq",{"sourceInterval":[297,308]},["app",{"sourceInterval":[297,299]},"MD",[]],["app",{"sourceInterval":[300,306]},"divide",[]],["app",{"sourceInterval":[307,308]},"E",[]]]],"MD":["override",{"sourceInterval":[246,330]},null,[],["alt",{"sourceInterval":[257,330]},["app",{"sourceInterval":[257,270]},"MD_multiplication",[]],["app",{"sourceInterval":[297,308]},"MD_division",[]],["app",{"sourceInterval":[329,330]},"E",[]]]],"Vector4_parse":["define",{"sourceInterval":[351,432]},null,[],["seq",{"sourceInterval":[351,423]},["opt",{"sourceInterval":[351,359]},["app",{"sourceInterval":[351,358]},"vector4",[]]],["terminal",{"sourceInterval":[360,363]},"("],["app",{"sourceInterval":[364,374]},"Expression",[]],["terminal",{"sourceInterval":[375,378]},","],["app",{"sourceInterval":[379,389]},"Expression",[]],["terminal",{"sourceInterval":[390,393]},","],["app",{"sourceInterval":[394,404]},"Expression",[]],["terminal",{"sourceInterval":[405,408]},","],["app",{"sourceInterval":[409,419]},"Expression",[]],["terminal",{"sourceInterval":[420,423]},")"]]],"Vector4":["define",{"sourceInterval":[336,432]},null,[],["app",{"sourceInterval":[351,432]},"Vector4_parse",[]]],"Function":["define",{"sourceInterval":[438,562]},null,[],["alt",{"sourceInterval":[453,562]},["app",{"sourceInterval":[453,461]},"LengthSq",[]],["app",{"sourceInterval":[468,478]},"DistanceSq",[]],["app",{"sourceInterval":[485,491]},"Length",[]],["app",{"sourceInterval":[498,506]},"Distance",[]],["app",{"sourceInterval":[513,522]},"Normalise",[]],["app",{"sourceInterval":[529,532]},"Dot",[]],["app",{"sourceInterval":[539,551]},"AngleBetween",[]],["app",{"sourceInterval":[558,562]},"Lerp",[]]]],"LengthSq_function":["define",{"sourceInterval":[580,616]},null,[],["seq",{"sourceInterval":[580,604]},["app",{"sourceInterval":[580,588]},"lengthSq",[]],["terminal",{"sourceInterval":[589,592]},"("],["app",{"sourceInterval":[593,600]},"Vector4",[]],["terminal",{"sourceInterval":[601,604]},")"]]],"LengthSq":["define",{"sourceInterval":[568,616]},null,[],["app",{"sourceInterval":[580,616]},"LengthSq_function",[]]],"DistanceSq_function":["define",{"sourceInterval":[634,684]},null,[],["seq",{"sourceInterval":[634,672]},["app",{"sourceInterval":[634,644]},"distanceSq",[]],["terminal",{"sourceInterval":[645,648]},"("],["app",{"sourceInterval":[649,656]},"Vector4",[]],["terminal",{"sourceInterval":[657,660]},","],["app",{"sourceInterval":[661,668]},"Vector4",[]],["terminal",{"sourceInterval":[669,672]},")"]]],"DistanceSq":["define",{"sourceInterval":[620,684]},null,[],["app",{"sourceInterval":[634,684]},"DistanceSq_function",[]]],"Length_function":["define",{"sourceInterval":[698,732]},null,[],["seq",{"sourceInterval":[698,720]},["app",{"sourceInterval":[698,704]},"length",[]],["terminal",{"sourceInterval":[705,708]},"("],["app",{"sourceInterval":[709,716]},"Vector4",[]],["terminal",{"sourceInterval":[717,720]},")"]]],"Length":["define",{"sourceInterval":[688,732]},null,[],["app",{"sourceInterval":[698,732]},"Length_function",[]]],"Distance_function":["define",{"sourceInterval":[748,796]},null,[],["seq",{"sourceInterval":[748,784]},["app",{"sourceInterval":[748,756]},"distance",[]],["terminal",{"sourceInterval":[757,760]},"("],["app",{"sourceInterval":[761,768]},"Vector4",[]],["terminal",{"sourceInterval":[769,772]},","],["app",{"sourceInterval":[773,780]},"Vector4",[]],["terminal",{"sourceInterval":[781,784]},")"]]],"Distance":["define",{"sourceInterval":[736,796]},null,[],["app",{"sourceInterval":[748,796]},"Distance_function",[]]],"Normalise_function":["define",{"sourceInterval":[812,849]},null,[],["seq",{"sourceInterval":[812,837]},["app",{"sourceInterval":[812,821]},"normalise",[]],["terminal",{"sourceInterval":[822,825]},"("],["app",{"sourceInterval":[826,833]},"Vector4",[]],["terminal",{"sourceInterval":[834,837]},")"]]],"Normalise":["define",{"sourceInterval":[800,849]},null,[],["app",{"sourceInterval":[812,849]},"Normalise_function",[]]],"Dot_function":["define",{"sourceInterval":[859,902]},null,[],["seq",{"sourceInterval":[859,890]},["app",{"sourceInterval":[859,862]},"dot",[]],["terminal",{"sourceInterval":[863,866]},"("],["app",{"sourceInterval":[867,874]},"Vector4",[]],["terminal",{"sourceInterval":[875,878]},","],["app",{"sourceInterval":[879,886]},"Vector4",[]],["terminal",{"sourceInterval":[887,890]},")"]]],"Dot":["define",{"sourceInterval":[853,902]},null,[],["app",{"sourceInterval":[859,902]},"Dot_function",[]]],"AngleBetween_function":["define",{"sourceInterval":[921,973]},null,[],["seq",{"sourceInterval":[921,961]},["app",{"sourceInterval":[921,933]},"angleBetween",[]],["terminal",{"sourceInterval":[934,937]},"("],["app",{"sourceInterval":[938,945]},"Vector4",[]],["terminal",{"sourceInterval":[946,949]},","],["app",{"sourceInterval":[950,957]},"Vector4",[]],["terminal",{"sourceInterval":[958,961]},")"]]],"AngleBetween":["define",{"sourceInterval":[906,973]},null,[],["app",{"sourceInterval":[921,973]},"AngleBetween_function",[]]],"Lerp_function":["define",{"sourceInterval":[984,1039]},null,[],["seq",{"sourceInterval":[984,1027]},["app",{"sourceInterval":[984,988]},"lerp",[]],["terminal",{"sourceInterval":[989,992]},"("],["app",{"sourceInterval":[993,1000]},"Vector4",[]],["terminal",{"sourceInterval":[1001,1004]},","],["app",{"sourceInterval":[1005,1012]},"Vector4",[]],["terminal",{"sourceInterval":[1013,1016]},","],["app",{"sourceInterval":[1017,1023]},"number",[]],["terminal",{"sourceInterval":[1024,1027]},")"]]],"Lerp":["define",{"sourceInterval":[977,1039]},null,[],["app",{"sourceInterval":[984,1039]},"Lerp_function",[]]],"vector4":["define",{"sourceInterval":[1045,1118]},null,[],["alt",{"sourceInterval":[1061,1118]},["app",{"sourceInterval":[1061,1087]},"caseInsensitive",[["terminal",{"sourceInterval":[1077,1086]},"Vector4"]]],["app",{"sourceInterval":[1095,1118]},"caseInsensitive",[["terminal",{"sourceInterval":[1111,1117]},"Vec4"]]]]],"lengthSq":["define",{"sourceInterval":[1124,1206]},null,[],["alt",{"sourceInterval":[1141,1206]},["app",{"sourceInterval":[1141,1168]},"caseInsensitive",[["terminal",{"sourceInterval":[1157,1167]},"lengthSq"]]],["app",{"sourceInterval":[1176,1206]},"caseInsensitive",[["terminal",{"sourceInterval":[1192,1205]},"magnitudeSq"]]]]],"distanceSq":["define",{"sourceInterval":[1212,1259]},null,[],["app",{"sourceInterval":[1230,1259]},"caseInsensitive",[["terminal",{"sourceInterval":[1246,1258]},"distanceSq"]]]],"length":["define",{"sourceInterval":[1265,1340]},null,[],["alt",{"sourceInterval":[1279,1340]},["app",{"sourceInterval":[1279,1304]},"caseInsensitive",[["terminal",{"sourceInterval":[1295,1303]},"length"]]],["app",{"sourceInterval":[1312,1340]},"caseInsensitive",[["terminal",{"sourceInterval":[1328,1339]},"magnitude"]]]]],"distance":["define",{"sourceInterval":[1346,1389]},null,[],["app",{"sourceInterval":[1362,1389]},"caseInsensitive",[["terminal",{"sourceInterval":[1378,1388]},"distance"]]]],"normalise":["define",{"sourceInterval":[1395,1477]},null,[],["alt",{"sourceInterval":[1413,1477]},["app",{"sourceInterval":[1413,1441]},"caseInsensitive",[["terminal",{"sourceInterval":[1429,1440]},"normalise"]]],["app",{"sourceInterval":[1449,1477]},"caseInsensitive",[["terminal",{"sourceInterval":[1465,1476]},"normalize"]]]]],"dot":["define",{"sourceInterval":[1483,1553]},null,[],["alt",{"sourceInterval":[1494,1553]},["app",{"sourceInterval":[1494,1523]},"caseInsensitive",[["terminal",{"sourceInterval":[1510,1522]},"dotproduct"]]],["app",{"sourceInterval":[1531,1553]},"caseInsensitive",[["terminal",{"sourceInterval":[1547,1552]},"dot"]]]]],"angleBetween":["define",{"sourceInterval":[1559,1610]},null,[],["app",{"sourceInterval":[1579,1610]},"caseInsensitive",[["terminal",{"sourceInterval":[1595,1609]},"angleBetween"]]]],"lerp":["define",{"sourceInterval":[1616,1651]},null,[],["app",{"sourceInterval":[1628,1651]},"caseInsensitive",[["terminal",{"sourceInterval":[1644,1650]},"lerp"]]]]}]);module.exports=result; \ No newline at end of file +'use strict';const {makeRecipe}=require('ohm-js');const result={};result.BasicArithmetic=makeRecipe(["grammar",{"source":"BasicArithmetic {\r\n Expression\r\n = LogicalShift\r\n\r\n LogicalShift\r\n = LogicalShift \"<<\" LogicalShift -- left\r\n | LogicalShift \">>\" LogicalShift -- right\r\n | AS \r\n\r\n // Addition or Subtraction\r\n AS\r\n = AS add MD -- addition\r\n | AS subtract MD -- subtraction\r\n | MD\r\n\r\n // Multiply or Divide\r\n MD\r\n = MD multiply E -- multiplication\r\n | MD divide E -- division\r\n | MD modulo E -- modulo\r\n | E\r\n\r\n // Exponent\r\n E\r\n = P exponent E -- exponent\r\n | P\r\n\r\n // Parenthesis\r\n P\r\n = \"(\" Expression \")\" -- parenthesis\r\n | Primitive\r\n \r\n Primitive\r\n = \"+\" Primitive -- positive\r\n | \"-\" Primitive -- negative\r\n | constant\r\n | hex\r\n | number\r\n \r\n // Lexical Rules\r\n add \r\n \t= \"+\"\r\n | caseInsensitive<\"plus\">\r\n \t| caseInsensitive<\"add\">\r\n | caseInsensitive<\"and\">\r\n \r\n subtract \r\n = \"-\"\r\n | caseInsensitive<\"minus\">\r\n | caseInsensitive<\"subtract\">\r\n | caseInsensitive<\"remove\">\r\n | caseInsensitive<\"take\">\r\n \r\n multiply \r\n = \"*\"\r\n | \"\\\\*\" // Escaped e.g. \\* for markdown\r\n | \"\\u{00D7}\" // Multiplication Symbol ×\r\n | caseInsensitive<\"x\">\r\n | caseInsensitive<\"times by\">\r\n | caseInsensitive<\"times\">\r\n | caseInsensitive<\"multiply by\">\r\n | caseInsensitive<\"multiply\">\r\n \r\n divide\r\n = \"/\"\r\n | \"\\u{00F7}\" // Division Symbol ÷\r\n | caseInsensitive<\"divide by\">\r\n | caseInsensitive<\"divide\">\r\n\r\n modulo\r\n = \"%\"\r\n | caseInsensitive<\"modulo\">\r\n | caseInsensitive<\"mod\">\r\n\r\n exponent\r\n = \"^\"\r\n | caseInsensitive<\"to the power of\">\r\n | caseInsensitive<\"power of\">\r\n | caseInsensitive<\"exponent\">\r\n | caseInsensitive<\"prime\">\r\n\r\n constant \r\n \t= caseInsensitive<\"PI\"> \r\n | caseInsensitive<\"E\">\r\n\r\n number\r\n = digit* \".\" digit+ -- fract\r\n | digit+ -- whole\r\n \r\n hex\r\n = \"0x\" hexDigit+\r\n | hexDigit+ \"h\"\r\n}"},"BasicArithmetic",null,"Expression",{"Expression":["define",{"sourceInterval":[21,51]},null,[],["app",{"sourceInterval":[39,51]},"LogicalShift",[]]],"LogicalShift_left":["define",{"sourceInterval":[77,115]},null,[],["seq",{"sourceInterval":[77,107]},["app",{"sourceInterval":[77,89]},"LogicalShift",[]],["terminal",{"sourceInterval":[90,94]},"<<"],["app",{"sourceInterval":[95,107]},"LogicalShift",[]]]],"LogicalShift_right":["define",{"sourceInterval":[123,162]},null,[],["seq",{"sourceInterval":[123,153]},["app",{"sourceInterval":[123,135]},"LogicalShift",[]],["terminal",{"sourceInterval":[136,140]},">>"],["app",{"sourceInterval":[141,153]},"LogicalShift",[]]]],"LogicalShift":["define",{"sourceInterval":[57,172]},null,[],["alt",{"sourceInterval":[77,172]},["app",{"sourceInterval":[77,107]},"LogicalShift_left",[]],["app",{"sourceInterval":[123,153]},"LogicalShift_right",[]],["app",{"sourceInterval":[170,172]},"AS",[]]]],"AS_addition":["define",{"sourceInterval":[219,241]},null,[],["seq",{"sourceInterval":[219,228]},["app",{"sourceInterval":[219,221]},"AS",[]],["app",{"sourceInterval":[222,225]},"add",[]],["app",{"sourceInterval":[226,228]},"MD",[]]]],"AS_subtraction":["define",{"sourceInterval":[249,279]},null,[],["seq",{"sourceInterval":[249,263]},["app",{"sourceInterval":[249,251]},"AS",[]],["app",{"sourceInterval":[252,260]},"subtract",[]],["app",{"sourceInterval":[261,263]},"MD",[]]]],"AS":["define",{"sourceInterval":[209,289]},null,[],["alt",{"sourceInterval":[219,289]},["app",{"sourceInterval":[219,228]},"AS_addition",[]],["app",{"sourceInterval":[249,263]},"AS_subtraction",[]],["app",{"sourceInterval":[287,289]},"MD",[]]]],"MD_multiplication":["define",{"sourceInterval":[330,362]},null,[],["seq",{"sourceInterval":[330,343]},["app",{"sourceInterval":[330,332]},"MD",[]],["app",{"sourceInterval":[333,341]},"multiply",[]],["app",{"sourceInterval":[342,343]},"E",[]]]],"MD_division":["define",{"sourceInterval":[370,394]},null,[],["seq",{"sourceInterval":[370,381]},["app",{"sourceInterval":[370,372]},"MD",[]],["app",{"sourceInterval":[373,379]},"divide",[]],["app",{"sourceInterval":[380,381]},"E",[]]]],"MD_modulo":["define",{"sourceInterval":[402,424]},null,[],["seq",{"sourceInterval":[402,413]},["app",{"sourceInterval":[402,404]},"MD",[]],["app",{"sourceInterval":[405,411]},"modulo",[]],["app",{"sourceInterval":[412,413]},"E",[]]]],"MD":["define",{"sourceInterval":[320,433]},null,[],["alt",{"sourceInterval":[330,433]},["app",{"sourceInterval":[330,343]},"MD_multiplication",[]],["app",{"sourceInterval":[370,381]},"MD_division",[]],["app",{"sourceInterval":[402,413]},"MD_modulo",[]],["app",{"sourceInterval":[432,433]},"E",[]]]],"E_exponent":["define",{"sourceInterval":[463,488]},null,[],["seq",{"sourceInterval":[463,475]},["app",{"sourceInterval":[463,464]},"P",[]],["app",{"sourceInterval":[465,473]},"exponent",[]],["app",{"sourceInterval":[474,475]},"E",[]]]],"E":["define",{"sourceInterval":[454,497]},null,[],["alt",{"sourceInterval":[463,497]},["app",{"sourceInterval":[463,475]},"E_exponent",[]],["app",{"sourceInterval":[496,497]},"P",[]]]],"P_parenthesis":["define",{"sourceInterval":[530,564]},null,[],["seq",{"sourceInterval":[530,548]},["terminal",{"sourceInterval":[530,533]},"("],["app",{"sourceInterval":[534,544]},"Expression",[]],["terminal",{"sourceInterval":[545,548]},")"]]],"P":["define",{"sourceInterval":[521,581]},null,[],["alt",{"sourceInterval":[530,581]},["app",{"sourceInterval":[530,548]},"P_parenthesis",[]],["app",{"sourceInterval":[572,581]},"Primitive",[]]]],"Primitive_positive":["define",{"sourceInterval":[608,633]},null,[],["seq",{"sourceInterval":[608,621]},["terminal",{"sourceInterval":[608,611]},"+"],["app",{"sourceInterval":[612,621]},"Primitive",[]]]],"Primitive_negative":["define",{"sourceInterval":[641,666]},null,[],["seq",{"sourceInterval":[641,654]},["terminal",{"sourceInterval":[641,644]},"-"],["app",{"sourceInterval":[645,654]},"Primitive",[]]]],"Primitive":["define",{"sourceInterval":[591,707]},null,[],["alt",{"sourceInterval":[608,707]},["app",{"sourceInterval":[608,621]},"Primitive_positive",[]],["app",{"sourceInterval":[641,654]},"Primitive_negative",[]],["app",{"sourceInterval":[674,682]},"constant",[]],["app",{"sourceInterval":[690,693]},"hex",[]],["app",{"sourceInterval":[701,707]},"number",[]]]],"add":["define",{"sourceInterval":[734,838]},null,[],["alt",{"sourceInterval":[745,838]},["terminal",{"sourceInterval":[745,748]},"+"],["app",{"sourceInterval":[756,779]},"caseInsensitive",[["terminal",{"sourceInterval":[772,778]},"plus"]]],["app",{"sourceInterval":[786,808]},"caseInsensitive",[["terminal",{"sourceInterval":[802,807]},"add"]]],["app",{"sourceInterval":[816,838]},"caseInsensitive",[["terminal",{"sourceInterval":[832,837]},"and"]]]]],"subtract":["define",{"sourceInterval":[848,999]},null,[],["alt",{"sourceInterval":[865,999]},["terminal",{"sourceInterval":[865,868]},"-"],["app",{"sourceInterval":[876,900]},"caseInsensitive",[["terminal",{"sourceInterval":[892,899]},"minus"]]],["app",{"sourceInterval":[908,935]},"caseInsensitive",[["terminal",{"sourceInterval":[924,934]},"subtract"]]],["app",{"sourceInterval":[943,968]},"caseInsensitive",[["terminal",{"sourceInterval":[959,967]},"remove"]]],["app",{"sourceInterval":[976,999]},"caseInsensitive",[["terminal",{"sourceInterval":[992,998]},"take"]]]]],"multiply":["define",{"sourceInterval":[1011,1289]},null,[],["alt",{"sourceInterval":[1028,1289]},["terminal",{"sourceInterval":[1028,1031]},"*"],["terminal",{"sourceInterval":[1039,1044]},"\\*"],["terminal",{"sourceInterval":[1084,1094]},"×"],["app",{"sourceInterval":[1129,1149]},"caseInsensitive",[["terminal",{"sourceInterval":[1145,1148]},"x"]]],["app",{"sourceInterval":[1157,1184]},"caseInsensitive",[["terminal",{"sourceInterval":[1173,1183]},"times by"]]],["app",{"sourceInterval":[1192,1216]},"caseInsensitive",[["terminal",{"sourceInterval":[1208,1215]},"times"]]],["app",{"sourceInterval":[1224,1254]},"caseInsensitive",[["terminal",{"sourceInterval":[1240,1253]},"multiply by"]]],["app",{"sourceInterval":[1262,1289]},"caseInsensitive",[["terminal",{"sourceInterval":[1278,1288]},"multiply"]]]]],"divide":["define",{"sourceInterval":[1301,1426]},null,[],["alt",{"sourceInterval":[1315,1426]},["terminal",{"sourceInterval":[1315,1318]},"/"],["terminal",{"sourceInterval":[1326,1336]},"÷"],["app",{"sourceInterval":[1365,1393]},"caseInsensitive",[["terminal",{"sourceInterval":[1381,1392]},"divide by"]]],["app",{"sourceInterval":[1401,1426]},"caseInsensitive",[["terminal",{"sourceInterval":[1417,1425]},"divide"]]]]],"modulo":["define",{"sourceInterval":[1432,1512]},null,[],["alt",{"sourceInterval":[1446,1512]},["terminal",{"sourceInterval":[1446,1449]},"%"],["app",{"sourceInterval":[1457,1482]},"caseInsensitive",[["terminal",{"sourceInterval":[1473,1481]},"modulo"]]],["app",{"sourceInterval":[1490,1512]},"caseInsensitive",[["terminal",{"sourceInterval":[1506,1511]},"mod"]]]]],"exponent":["define",{"sourceInterval":[1518,1681]},null,[],["alt",{"sourceInterval":[1534,1681]},["terminal",{"sourceInterval":[1534,1537]},"^"],["app",{"sourceInterval":[1545,1579]},"caseInsensitive",[["terminal",{"sourceInterval":[1561,1578]},"to the power of"]]],["app",{"sourceInterval":[1587,1614]},"caseInsensitive",[["terminal",{"sourceInterval":[1603,1613]},"power of"]]],["app",{"sourceInterval":[1622,1649]},"caseInsensitive",[["terminal",{"sourceInterval":[1638,1648]},"exponent"]]],["app",{"sourceInterval":[1657,1681]},"caseInsensitive",[["terminal",{"sourceInterval":[1673,1680]},"prime"]]]]],"constant":["define",{"sourceInterval":[1687,1754]},null,[],["alt",{"sourceInterval":[1704,1754]},["app",{"sourceInterval":[1704,1725]},"caseInsensitive",[["terminal",{"sourceInterval":[1720,1724]},"PI"]]],["app",{"sourceInterval":[1734,1754]},"caseInsensitive",[["terminal",{"sourceInterval":[1750,1753]},"E"]]]]],"number_fract":["define",{"sourceInterval":[1774,1801]},null,[],["seq",{"sourceInterval":[1774,1791]},["star",{"sourceInterval":[1774,1780]},["app",{"sourceInterval":[1774,1779]},"digit",[]]],["terminal",{"sourceInterval":[1781,1784]},"."],["plus",{"sourceInterval":[1785,1791]},["app",{"sourceInterval":[1785,1790]},"digit",[]]]]],"number_whole":["define",{"sourceInterval":[1809,1836]},null,[],["plus",{"sourceInterval":[1809,1815]},["app",{"sourceInterval":[1809,1814]},"digit",[]]]],"number":["define",{"sourceInterval":[1760,1836]},null,[],["alt",{"sourceInterval":[1774,1836]},["app",{"sourceInterval":[1774,1791]},"number_fract",[]],["app",{"sourceInterval":[1809,1815]},"number_whole",[]]]],"hex":["define",{"sourceInterval":[1844,1890]},null,[],["alt",{"sourceInterval":[1855,1890]},["seq",{"sourceInterval":[1855,1869]},["terminal",{"sourceInterval":[1855,1859]},"0x"],["plus",{"sourceInterval":[1860,1869]},["app",{"sourceInterval":[1860,1868]},"hexDigit",[]]]],["seq",{"sourceInterval":[1877,1890]},["plus",{"sourceInterval":[1877,1886]},["app",{"sourceInterval":[1877,1885]},"hexDigit",[]]],["terminal",{"sourceInterval":[1887,1890]},"h"]]]]}]);result.Vector4Arithmetic=makeRecipe(["grammar",{"source":"Vector4Arithmetic <: BasicArithmetic {\r\n // Remove support for logical shift\r\n Expression \r\n \t:= AS\r\n\r\n P\r\n := \"(\" Expression \")\" -- parenthesis\r\n | Vector4\r\n | Function\r\n | Primitive\r\n\r\n // Remove modulo support for vector\r\n MD\r\n := MD multiply E -- multiplication\r\n | MD divide E -- division\r\n | E\r\n\r\n Vector4\r\n = vector4? \"(\" Expression \",\" Expression \",\" Expression \",\" Expression \")\" -- parse\r\n\r\n Function\r\n = LengthSq\r\n | DistanceSq\r\n | Length\r\n | Distance\r\n | Normalise\r\n | Dot\r\n | AngleBetween\r\n | Lerp\r\n\r\n LengthSq = lengthSq \"(\" Vector4 \")\" -- function\r\n DistanceSq = distanceSq \"(\" Vector4 \",\" Vector4 \")\" -- function\r\n Length = length \"(\" Vector4 \")\" -- function\r\n Distance = distance \"(\" Vector4 \",\" Vector4 \")\" -- function\r\n Normalise = normalise \"(\" Vector4 \")\" -- function\r\n Dot = dot \"(\" Vector4 \",\" Vector4 \")\" -- function\r\n AngleBetween = angleBetween \"(\" Vector4 \",\" Vector4 \")\" -- function\r\n Lerp = lerp \"(\" Vector4 \",\" Vector4 \",\" number \")\" -- function\r\n\r\n vector4 \r\n \t = caseInsensitive<\"Vector4\">\r\n | caseInsensitive<\"Vec4\">\r\n\r\n lengthSq \r\n \t = caseInsensitive<\"lengthSq\">\r\n | caseInsensitive<\"magnitudeSq\">\r\n\r\n distanceSq\r\n = caseInsensitive<\"distanceSq\">\r\n\r\n length\r\n \t = caseInsensitive<\"length\">\r\n | caseInsensitive<\"magnitude\">\r\n\r\n distance\r\n = caseInsensitive<\"distance\">\r\n\r\n normalise \r\n \t = caseInsensitive<\"normalise\">\r\n \t | caseInsensitive<\"normalize\">\r\n\r\n dot\r\n = caseInsensitive<\"dotproduct\">\r\n | caseInsensitive<\"dot\">\r\n\r\n angleBetween\r\n = caseInsensitive<\"angleBetween\">\r\n\r\n lerp\r\n = caseInsensitive<\"lerp\">\r\n}"},"Vector4Arithmetic",result.BasicArithmetic,"Expression",{"Expression":["override",{"sourceInterval":[81,103]},null,[],["app",{"sourceInterval":[101,103]},"AS",[]]],"P_parenthesis":["override",{"sourceInterval":[119,153]},null,[],["seq",{"sourceInterval":[119,137]},["terminal",{"sourceInterval":[119,122]},"("],["app",{"sourceInterval":[123,133]},"Expression",[]],["terminal",{"sourceInterval":[134,137]},")"]]],"P":["override",{"sourceInterval":[109,201]},null,[],["alt",{"sourceInterval":[119,201]},["app",{"sourceInterval":[119,137]},"P_parenthesis",[]],["app",{"sourceInterval":[161,168]},"Vector4",[]],["app",{"sourceInterval":[176,184]},"Function",[]],["app",{"sourceInterval":[192,201]},"Primitive",[]]]],"MD_multiplication":["override",{"sourceInterval":[257,289]},null,[],["seq",{"sourceInterval":[257,270]},["app",{"sourceInterval":[257,259]},"MD",[]],["app",{"sourceInterval":[260,268]},"multiply",[]],["app",{"sourceInterval":[269,270]},"E",[]]]],"MD_division":["override",{"sourceInterval":[297,321]},null,[],["seq",{"sourceInterval":[297,308]},["app",{"sourceInterval":[297,299]},"MD",[]],["app",{"sourceInterval":[300,306]},"divide",[]],["app",{"sourceInterval":[307,308]},"E",[]]]],"MD":["override",{"sourceInterval":[246,330]},null,[],["alt",{"sourceInterval":[257,330]},["app",{"sourceInterval":[257,270]},"MD_multiplication",[]],["app",{"sourceInterval":[297,308]},"MD_division",[]],["app",{"sourceInterval":[329,330]},"E",[]]]],"Vector4_parse":["define",{"sourceInterval":[351,432]},null,[],["seq",{"sourceInterval":[351,423]},["opt",{"sourceInterval":[351,359]},["app",{"sourceInterval":[351,358]},"vector4",[]]],["terminal",{"sourceInterval":[360,363]},"("],["app",{"sourceInterval":[364,374]},"Expression",[]],["terminal",{"sourceInterval":[375,378]},","],["app",{"sourceInterval":[379,389]},"Expression",[]],["terminal",{"sourceInterval":[390,393]},","],["app",{"sourceInterval":[394,404]},"Expression",[]],["terminal",{"sourceInterval":[405,408]},","],["app",{"sourceInterval":[409,419]},"Expression",[]],["terminal",{"sourceInterval":[420,423]},")"]]],"Vector4":["define",{"sourceInterval":[336,432]},null,[],["app",{"sourceInterval":[351,432]},"Vector4_parse",[]]],"Function":["define",{"sourceInterval":[438,562]},null,[],["alt",{"sourceInterval":[453,562]},["app",{"sourceInterval":[453,461]},"LengthSq",[]],["app",{"sourceInterval":[468,478]},"DistanceSq",[]],["app",{"sourceInterval":[485,491]},"Length",[]],["app",{"sourceInterval":[498,506]},"Distance",[]],["app",{"sourceInterval":[513,522]},"Normalise",[]],["app",{"sourceInterval":[529,532]},"Dot",[]],["app",{"sourceInterval":[539,551]},"AngleBetween",[]],["app",{"sourceInterval":[558,562]},"Lerp",[]]]],"LengthSq_function":["define",{"sourceInterval":[580,616]},null,[],["seq",{"sourceInterval":[580,604]},["app",{"sourceInterval":[580,588]},"lengthSq",[]],["terminal",{"sourceInterval":[589,592]},"("],["app",{"sourceInterval":[593,600]},"Vector4",[]],["terminal",{"sourceInterval":[601,604]},")"]]],"LengthSq":["define",{"sourceInterval":[568,616]},null,[],["app",{"sourceInterval":[580,616]},"LengthSq_function",[]]],"DistanceSq_function":["define",{"sourceInterval":[634,684]},null,[],["seq",{"sourceInterval":[634,672]},["app",{"sourceInterval":[634,644]},"distanceSq",[]],["terminal",{"sourceInterval":[645,648]},"("],["app",{"sourceInterval":[649,656]},"Vector4",[]],["terminal",{"sourceInterval":[657,660]},","],["app",{"sourceInterval":[661,668]},"Vector4",[]],["terminal",{"sourceInterval":[669,672]},")"]]],"DistanceSq":["define",{"sourceInterval":[620,684]},null,[],["app",{"sourceInterval":[634,684]},"DistanceSq_function",[]]],"Length_function":["define",{"sourceInterval":[698,732]},null,[],["seq",{"sourceInterval":[698,720]},["app",{"sourceInterval":[698,704]},"length",[]],["terminal",{"sourceInterval":[705,708]},"("],["app",{"sourceInterval":[709,716]},"Vector4",[]],["terminal",{"sourceInterval":[717,720]},")"]]],"Length":["define",{"sourceInterval":[688,732]},null,[],["app",{"sourceInterval":[698,732]},"Length_function",[]]],"Distance_function":["define",{"sourceInterval":[748,796]},null,[],["seq",{"sourceInterval":[748,784]},["app",{"sourceInterval":[748,756]},"distance",[]],["terminal",{"sourceInterval":[757,760]},"("],["app",{"sourceInterval":[761,768]},"Vector4",[]],["terminal",{"sourceInterval":[769,772]},","],["app",{"sourceInterval":[773,780]},"Vector4",[]],["terminal",{"sourceInterval":[781,784]},")"]]],"Distance":["define",{"sourceInterval":[736,796]},null,[],["app",{"sourceInterval":[748,796]},"Distance_function",[]]],"Normalise_function":["define",{"sourceInterval":[812,849]},null,[],["seq",{"sourceInterval":[812,837]},["app",{"sourceInterval":[812,821]},"normalise",[]],["terminal",{"sourceInterval":[822,825]},"("],["app",{"sourceInterval":[826,833]},"Vector4",[]],["terminal",{"sourceInterval":[834,837]},")"]]],"Normalise":["define",{"sourceInterval":[800,849]},null,[],["app",{"sourceInterval":[812,849]},"Normalise_function",[]]],"Dot_function":["define",{"sourceInterval":[859,902]},null,[],["seq",{"sourceInterval":[859,890]},["app",{"sourceInterval":[859,862]},"dot",[]],["terminal",{"sourceInterval":[863,866]},"("],["app",{"sourceInterval":[867,874]},"Vector4",[]],["terminal",{"sourceInterval":[875,878]},","],["app",{"sourceInterval":[879,886]},"Vector4",[]],["terminal",{"sourceInterval":[887,890]},")"]]],"Dot":["define",{"sourceInterval":[853,902]},null,[],["app",{"sourceInterval":[859,902]},"Dot_function",[]]],"AngleBetween_function":["define",{"sourceInterval":[921,973]},null,[],["seq",{"sourceInterval":[921,961]},["app",{"sourceInterval":[921,933]},"angleBetween",[]],["terminal",{"sourceInterval":[934,937]},"("],["app",{"sourceInterval":[938,945]},"Vector4",[]],["terminal",{"sourceInterval":[946,949]},","],["app",{"sourceInterval":[950,957]},"Vector4",[]],["terminal",{"sourceInterval":[958,961]},")"]]],"AngleBetween":["define",{"sourceInterval":[906,973]},null,[],["app",{"sourceInterval":[921,973]},"AngleBetween_function",[]]],"Lerp_function":["define",{"sourceInterval":[984,1039]},null,[],["seq",{"sourceInterval":[984,1027]},["app",{"sourceInterval":[984,988]},"lerp",[]],["terminal",{"sourceInterval":[989,992]},"("],["app",{"sourceInterval":[993,1000]},"Vector4",[]],["terminal",{"sourceInterval":[1001,1004]},","],["app",{"sourceInterval":[1005,1012]},"Vector4",[]],["terminal",{"sourceInterval":[1013,1016]},","],["app",{"sourceInterval":[1017,1023]},"number",[]],["terminal",{"sourceInterval":[1024,1027]},")"]]],"Lerp":["define",{"sourceInterval":[977,1039]},null,[],["app",{"sourceInterval":[984,1039]},"Lerp_function",[]]],"vector4":["define",{"sourceInterval":[1045,1118]},null,[],["alt",{"sourceInterval":[1061,1118]},["app",{"sourceInterval":[1061,1087]},"caseInsensitive",[["terminal",{"sourceInterval":[1077,1086]},"Vector4"]]],["app",{"sourceInterval":[1095,1118]},"caseInsensitive",[["terminal",{"sourceInterval":[1111,1117]},"Vec4"]]]]],"lengthSq":["define",{"sourceInterval":[1124,1206]},null,[],["alt",{"sourceInterval":[1141,1206]},["app",{"sourceInterval":[1141,1168]},"caseInsensitive",[["terminal",{"sourceInterval":[1157,1167]},"lengthSq"]]],["app",{"sourceInterval":[1176,1206]},"caseInsensitive",[["terminal",{"sourceInterval":[1192,1205]},"magnitudeSq"]]]]],"distanceSq":["define",{"sourceInterval":[1212,1259]},null,[],["app",{"sourceInterval":[1230,1259]},"caseInsensitive",[["terminal",{"sourceInterval":[1246,1258]},"distanceSq"]]]],"length":["define",{"sourceInterval":[1265,1340]},null,[],["alt",{"sourceInterval":[1279,1340]},["app",{"sourceInterval":[1279,1304]},"caseInsensitive",[["terminal",{"sourceInterval":[1295,1303]},"length"]]],["app",{"sourceInterval":[1312,1340]},"caseInsensitive",[["terminal",{"sourceInterval":[1328,1339]},"magnitude"]]]]],"distance":["define",{"sourceInterval":[1346,1389]},null,[],["app",{"sourceInterval":[1362,1389]},"caseInsensitive",[["terminal",{"sourceInterval":[1378,1388]},"distance"]]]],"normalise":["define",{"sourceInterval":[1395,1477]},null,[],["alt",{"sourceInterval":[1413,1477]},["app",{"sourceInterval":[1413,1441]},"caseInsensitive",[["terminal",{"sourceInterval":[1429,1440]},"normalise"]]],["app",{"sourceInterval":[1449,1477]},"caseInsensitive",[["terminal",{"sourceInterval":[1465,1476]},"normalize"]]]]],"dot":["define",{"sourceInterval":[1483,1553]},null,[],["alt",{"sourceInterval":[1494,1553]},["app",{"sourceInterval":[1494,1523]},"caseInsensitive",[["terminal",{"sourceInterval":[1510,1522]},"dotproduct"]]],["app",{"sourceInterval":[1531,1553]},"caseInsensitive",[["terminal",{"sourceInterval":[1547,1552]},"dot"]]]]],"angleBetween":["define",{"sourceInterval":[1559,1610]},null,[],["app",{"sourceInterval":[1579,1610]},"caseInsensitive",[["terminal",{"sourceInterval":[1595,1609]},"angleBetween"]]]],"lerp":["define",{"sourceInterval":[1616,1651]},null,[],["app",{"sourceInterval":[1628,1651]},"caseInsensitive",[["terminal",{"sourceInterval":[1644,1650]},"lerp"]]]]}]);module.exports=result; \ No newline at end of file diff --git a/src/main.ts b/src/main.ts index d2927da..ef7a44d 100644 --- a/src/main.ts +++ b/src/main.ts @@ -8,9 +8,11 @@ import { solveProviderManager } from "@/providers/ProviderManager"; import { DEFAULT_SETTINGS } from "@/settings/PluginSettings"; import { SettingTab } from "@/settings/SettingsTab"; import UserSettings from "@/settings/UserSettings"; +import { minValueExcludingBelow } from "@/utilities/Array"; import { logger } from "@/utilities/Logger"; +import { insertAtIndex } from "@/utilities/String"; import { ViewPlugin } from "@codemirror/view"; -import { Plugin } from "obsidian"; +import { Notice, Plugin } from "obsidian"; export default class SolvePlugin extends Plugin { settings: UserSettings; @@ -54,6 +56,8 @@ export default class SolvePlugin extends Plugin { await this.addStatusBarCompanion(); logger.debug(`[Solve] Added: Status Bar Companion`); + + await this.registerCommands(); } public onunload() { @@ -132,6 +136,50 @@ export default class SolvePlugin extends Plugin { pluginEventBus.emit(EPluginEvent.StatusBarUpdate, EPluginStatus.Idle); } + private async registerCommands() { + this.addCommand({ + id: "commit-result-current-line", + name: "Commit result on current line", + editorCallback(editor, ctx) { + const currentLineNumber = editor.getCursor("head").line + 1; + + const { containerEl } = editor as any; + + const resultElement = ( + containerEl as HTMLElement + ).querySelector(`#osr-${currentLineNumber}`); + + if (resultElement) { + resultElement.click(); + } else { + new Notice( + "Solve: Failed to commit, no result found on the current line." + ); + } + }, + }); + + this.addCommand({ + id: "commit-result-all-visible", + name: "Commit all visible results", + editorCallback(editor, ctx) { + const { containerEl } = editor as any; + + const resultElements = ( + containerEl as HTMLElement + ).querySelectorAll(`.os-result`); + + for (let i = 0; i < resultElements.length; i++) { + const resultElement = resultElements[i]; + + if (resultElement) { + resultElement.click(); + } + } + }, + }); + } + public async setStatusBarCompanionVisibility(visible: boolean) { if (visible) { this.statusBarItemEl.style.display = "inline-block"; @@ -155,13 +203,32 @@ export default class SolvePlugin extends Plugin { private async onWriteResultEvent(lineNumber: number, resultValue: string) { const lineNumberZeroIndexed = Math.max(0, lineNumber - 1); - const lineText = this.app.workspace.activeEditor?.editor?.getLine( + let lineText = this.app.workspace.activeEditor?.editor?.getLine( lineNumberZeroIndexed ); + if (typeof lineText === "undefined") { + return; + } + + const commentsBeginIndex = minValueExcludingBelow([ + lineText.indexOf("#"), + lineText.indexOf("//"), + ]); + + if (commentsBeginIndex > -1) { + lineText = insertAtIndex( + lineText, + commentsBeginIndex, + ` ${resultValue} ` // Whitespace normalised for format.. Expression Result Comment + ); + } else { + lineText = `${lineText?.trimEnd()} ${resultValue}`; + } + this.app.workspace.activeEditor?.editor?.setLine( lineNumberZeroIndexed, - `${lineText?.trimEnd()} ${resultValue}` + lineText ); } } diff --git a/src/pipelines/definition/Pipeline.ts b/src/pipelines/definition/Pipeline.ts new file mode 100644 index 0000000..74cd753 --- /dev/null +++ b/src/pipelines/definition/Pipeline.ts @@ -0,0 +1,28 @@ +import { EmptyPipelineError } from "@/errors/EmptyPipelineError"; +import { IPipelineStage } from "@/pipelines/definition/stages/IPipelineStage"; + +export class Pipeline { + private firstStage: IPipelineStage | null = null; + private lastStage: IPipelineStage | null = null; + + addStage(stage: IPipelineStage): Pipeline { + if (!this.firstStage) { + this.firstStage = this.lastStage = stage; + } else { + if (this.lastStage) { + this.lastStage.next(stage); + } + this.lastStage = stage; + } + + return this; + } + + process(request: T): T { + if (!this.firstStage) { + throw new EmptyPipelineError(); + } + + return this.firstStage.process(request); + } +} diff --git a/src/pipelines/definition/PipelineAsync.ts b/src/pipelines/definition/PipelineAsync.ts new file mode 100644 index 0000000..af8099d --- /dev/null +++ b/src/pipelines/definition/PipelineAsync.ts @@ -0,0 +1,29 @@ +import { EmptyPipelineError } from "@/errors/EmptyPipelineError"; +import { IPipelineAsyncStage } from "@/pipelines/definition/stages/IPipelineAsyncStage"; + +export class PipelineAsync { + private firstStage: IPipelineAsyncStage | null = null; + private lastStage: IPipelineAsyncStage | null = null; + + addStage(stage: IPipelineAsyncStage): PipelineAsync { + if (!this.firstStage) { + this.firstStage = this.lastStage = stage; + } else { + if (this.lastStage) { + this.lastStage.next(stage); + } + + this.lastStage = stage; + } + + return this; + } + + async process(request: T): Promise { + if (!this.firstStage) { + throw new EmptyPipelineError(); + } + + return this.firstStage.process(request); + } +} diff --git a/src/pipelines/definition/stages/BasePipelineAsyncStage.ts b/src/pipelines/definition/stages/BasePipelineAsyncStage.ts new file mode 100644 index 0000000..487cba5 --- /dev/null +++ b/src/pipelines/definition/stages/BasePipelineAsyncStage.ts @@ -0,0 +1,20 @@ +import { IPipelineAsyncStage } from "@/pipelines/definition/stages/IPipelineAsyncStage"; + +export abstract class BasePipelineAsyncStage + implements IPipelineAsyncStage +{ + private nextStage: IPipelineAsyncStage | null = null; + + next(stage: IPipelineAsyncStage): IPipelineAsyncStage { + this.nextStage = stage; + return stage; + } + + async process(request: T): Promise { + request = await this.execute(request); + return this.nextStage ? this.nextStage.process(request) : request; + } + + // Execute the stages user code. + protected abstract execute(request: T): Promise; +} diff --git a/src/pipelines/definition/stages/BasePipelineStage.ts b/src/pipelines/definition/stages/BasePipelineStage.ts new file mode 100644 index 0000000..17d5020 --- /dev/null +++ b/src/pipelines/definition/stages/BasePipelineStage.ts @@ -0,0 +1,18 @@ +import { IPipelineStage } from "@/pipelines/definition/stages/IPipelineStage"; + +export abstract class BasePipelineStage implements IPipelineStage { + private nextStage: IPipelineStage | null = null; + + next(stage: IPipelineStage): IPipelineStage { + this.nextStage = stage; + return stage; + } + + process(request: T): T { + request = this.execute(request); + return this.nextStage ? this.nextStage.process(request) : request; + } + + // Execute the stage's user code. + protected abstract execute(request: T): T; +} diff --git a/src/pipelines/definition/stages/IPipelineAsyncStage.ts b/src/pipelines/definition/stages/IPipelineAsyncStage.ts new file mode 100644 index 0000000..41c24c5 --- /dev/null +++ b/src/pipelines/definition/stages/IPipelineAsyncStage.ts @@ -0,0 +1,4 @@ +export interface IPipelineAsyncStage { + next(stage: IPipelineAsyncStage): IPipelineAsyncStage; + process(request: T): Promise; +} diff --git a/src/pipelines/definition/stages/IPipelineStage.ts b/src/pipelines/definition/stages/IPipelineStage.ts new file mode 100644 index 0000000..f49db32 --- /dev/null +++ b/src/pipelines/definition/stages/IPipelineStage.ts @@ -0,0 +1,4 @@ +export interface IPipelineStage { + next(stage: IPipelineStage): IPipelineStage; + process(request: T): T; +} diff --git a/src/pipelines/stages/CommentsRemovalStage.ts b/src/pipelines/stages/CommentsRemovalStage.ts new file mode 100644 index 0000000..7cc4762 --- /dev/null +++ b/src/pipelines/stages/CommentsRemovalStage.ts @@ -0,0 +1,12 @@ +import { BasePipelineStage } from "@/pipelines/definition/stages/BasePipelineStage"; + +export class CommentsRemovalStage extends BasePipelineStage { + // Matches for either # or // followed by any text. + private commentsRemovalRegex = new RegExp(/((?:#|\/\/).+)/); + + protected execute(request: string): string { + return request.replace(this.commentsRemovalRegex, ""); + } +} + +export const SharedCommentsRemovalStage = new CommentsRemovalStage(); diff --git a/src/pipelines/stages/MarkdownRemovalStage.ts b/src/pipelines/stages/MarkdownRemovalStage.ts new file mode 100644 index 0000000..29d465e --- /dev/null +++ b/src/pipelines/stages/MarkdownRemovalStage.ts @@ -0,0 +1,14 @@ +import { BasePipelineStage } from "@/pipelines/definition/stages/BasePipelineStage"; + +export class MarkdownRemovalStage extends BasePipelineStage { + // Ignored nodes e.g. block qoutes (>), lists (-), checked list ([ ]) will remove the + private markdownReplacementRegex = new RegExp( + /^(?:(?:[-+*>]|(?:\[\s\])|(?:\d+\.))\s)+/m + ); + + protected execute(request: string): string { + return request.replace(this.markdownReplacementRegex, ""); + } +} + +export const SharedMarkdownRemovalStage = new MarkdownRemovalStage(); diff --git a/src/pipelines/stages/VariableProcessingStage.ts b/src/pipelines/stages/VariableProcessingStage.ts new file mode 100644 index 0000000..2cc9c0d --- /dev/null +++ b/src/pipelines/stages/VariableProcessingStage.ts @@ -0,0 +1,56 @@ +import { BasePipelineStage } from "@/pipelines/definition/stages/BasePipelineStage"; +import { solveProviderManager } from "@/providers/ProviderManager"; +import { IResult } from "@/results/definition/IResult"; + +// Important: Since this stage is stateful it can not be used in a shared context. +export class VariableProcessingStage extends BasePipelineStage { + private variableAssignmentRegex = new RegExp(/^(\$\w+)\s+=/); + private variableSubstitutionRegex = new RegExp(/(\$\w+)/g); + private variableMap = new Map>(); + + protected execute(request: string): string { + // Check for variable assignment + const assignmentMatch = request.match(this.variableAssignmentRegex); + + if (assignmentMatch) { + const variableName = assignmentMatch[1]; + this.assignVariable(variableName, request); + } else { + // Perform variable substitution + request = this.substituteVariables(request); + } + + return request; + } + + private assignVariable(variableName: string, expression: string): void { + // Locate the index of = in the variable assignment e.g $someVar (=) expression + const assignmentPosition = expression.indexOf("="); + + if (assignmentPosition === -1) { + return; + } + + // Get the solvable expression after the = + const assignmentExpression = expression.substring( + assignmentPosition + 1 + ); + + // Solve the expression + const result = solveProviderManager.provideFirst( + assignmentExpression, + true + ); + + if (result !== undefined) { + this.variableMap.set(variableName, result as any as IResult); + } + } + + private substituteVariables(expression: string): string { + return expression.replace(this.variableSubstitutionRegex, (match) => { + const variableValue = this.variableMap.get(match)?.value; + return variableValue !== undefined ? variableValue : match; + }); + } +} diff --git a/src/utilities/Array.ts b/src/utilities/Array.ts new file mode 100644 index 0000000..b83c87e --- /dev/null +++ b/src/utilities/Array.ts @@ -0,0 +1,13 @@ +export function minValueExcludingBelow( + values: number[], + threshold: number = -1 +): number { + // Filter out values below the threshold and find the minimum value + const validValues = values.filter((value) => value > threshold); + + if (validValues.length === 0) { + return threshold; + } + + return Math.min(...validValues); +} diff --git a/src/utilities/String.ts b/src/utilities/String.ts new file mode 100644 index 0000000..9efb504 --- /dev/null +++ b/src/utilities/String.ts @@ -0,0 +1,16 @@ +export function insertAtIndex( + str: string, + index: number, + value: string, + trim: boolean = true +) { + if (trim) { + return ( + str.substring(0, index).trimEnd() + + value + + str.substring(index).trim() + ); + } + + return str.substring(0, index) + value + str.substring(index); +} diff --git a/styles.css b/styles.css index 8108a05..ba58a2a 100644 --- a/styles.css +++ b/styles.css @@ -62,7 +62,3623 @@ settings: default-light: '#00000000' default-dark: '#00000000' */ -@charset "UTF-8";:root{--animate-duration:1s;--animate-delay:1s;--animate-repeat:1}.animate__animated{-webkit-animation-duration:1s;animation-duration:1s;-webkit-animation-duration:var(--animate-duration);animation-duration:var(--animate-duration);-webkit-animation-fill-mode:both;animation-fill-mode:both}.animate__animated.animate__infinite{-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite}.animate__animated.animate__repeat-1{-webkit-animation-iteration-count:1;animation-iteration-count:1;-webkit-animation-iteration-count:var(--animate-repeat);animation-iteration-count:var(--animate-repeat)}.animate__animated.animate__repeat-2{-webkit-animation-iteration-count:2;animation-iteration-count:2;-webkit-animation-iteration-count:calc(var(--animate-repeat)*2);animation-iteration-count:calc(var(--animate-repeat)*2)}.animate__animated.animate__repeat-3{-webkit-animation-iteration-count:3;animation-iteration-count:3;-webkit-animation-iteration-count:calc(var(--animate-repeat)*3);animation-iteration-count:calc(var(--animate-repeat)*3)}.animate__animated.animate__delay-1s{-webkit-animation-delay:1s;animation-delay:1s;-webkit-animation-delay:var(--animate-delay);animation-delay:var(--animate-delay)}.animate__animated.animate__delay-2s{-webkit-animation-delay:2s;animation-delay:2s;-webkit-animation-delay:calc(var(--animate-delay)*2);animation-delay:calc(var(--animate-delay)*2)}.animate__animated.animate__delay-3s{-webkit-animation-delay:3s;animation-delay:3s;-webkit-animation-delay:calc(var(--animate-delay)*3);animation-delay:calc(var(--animate-delay)*3)}.animate__animated.animate__delay-4s{-webkit-animation-delay:4s;animation-delay:4s;-webkit-animation-delay:calc(var(--animate-delay)*4);animation-delay:calc(var(--animate-delay)*4)}.animate__animated.animate__delay-5s{-webkit-animation-delay:5s;animation-delay:5s;-webkit-animation-delay:calc(var(--animate-delay)*5);animation-delay:calc(var(--animate-delay)*5)}.animate__animated.animate__faster{-webkit-animation-duration:.5s;animation-duration:.5s;-webkit-animation-duration:calc(var(--animate-duration)/2);animation-duration:calc(var(--animate-duration)/2)}.animate__animated.animate__fast{-webkit-animation-duration:.8s;animation-duration:.8s;-webkit-animation-duration:calc(var(--animate-duration)*.8);animation-duration:calc(var(--animate-duration)*.8)}.animate__animated.animate__slow{-webkit-animation-duration:2s;animation-duration:2s;-webkit-animation-duration:calc(var(--animate-duration)*2);animation-duration:calc(var(--animate-duration)*2)}.animate__animated.animate__slower{-webkit-animation-duration:3s;animation-duration:3s;-webkit-animation-duration:calc(var(--animate-duration)*3);animation-duration:calc(var(--animate-duration)*3)}@media (prefers-reduced-motion:reduce),print{.animate__animated{-webkit-animation-duration:1ms!important;animation-duration:1ms!important;-webkit-transition-duration:1ms!important;transition-duration:1ms!important;-webkit-animation-iteration-count:1!important;animation-iteration-count:1!important}.animate__animated[class*=Out]{opacity:0}}@-webkit-keyframes bounce{0%,20%,53%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1);-webkit-transform:translateZ(0);transform:translateZ(0)}40%,43%{-webkit-animation-timing-function:cubic-bezier(.755,.05,.855,.06);animation-timing-function:cubic-bezier(.755,.05,.855,.06);-webkit-transform:translate3d(0,-30px,0) scaleY(1.1);transform:translate3d(0,-30px,0) scaleY(1.1)}70%{-webkit-animation-timing-function:cubic-bezier(.755,.05,.855,.06);animation-timing-function:cubic-bezier(.755,.05,.855,.06);-webkit-transform:translate3d(0,-15px,0) scaleY(1.05);transform:translate3d(0,-15px,0) scaleY(1.05)}80%{-webkit-transition-timing-function:cubic-bezier(.215,.61,.355,1);transition-timing-function:cubic-bezier(.215,.61,.355,1);-webkit-transform:translateZ(0) scaleY(.95);transform:translateZ(0) scaleY(.95)}90%{-webkit-transform:translate3d(0,-4px,0) scaleY(1.02);transform:translate3d(0,-4px,0) scaleY(1.02)}}@keyframes bounce{0%,20%,53%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1);-webkit-transform:translateZ(0);transform:translateZ(0)}40%,43%{-webkit-animation-timing-function:cubic-bezier(.755,.05,.855,.06);animation-timing-function:cubic-bezier(.755,.05,.855,.06);-webkit-transform:translate3d(0,-30px,0) scaleY(1.1);transform:translate3d(0,-30px,0) scaleY(1.1)}70%{-webkit-animation-timing-function:cubic-bezier(.755,.05,.855,.06);animation-timing-function:cubic-bezier(.755,.05,.855,.06);-webkit-transform:translate3d(0,-15px,0) scaleY(1.05);transform:translate3d(0,-15px,0) scaleY(1.05)}80%{-webkit-transition-timing-function:cubic-bezier(.215,.61,.355,1);transition-timing-function:cubic-bezier(.215,.61,.355,1);-webkit-transform:translateZ(0) scaleY(.95);transform:translateZ(0) scaleY(.95)}90%{-webkit-transform:translate3d(0,-4px,0) scaleY(1.02);transform:translate3d(0,-4px,0) scaleY(1.02)}}.animate__bounce{-webkit-animation-name:bounce;animation-name:bounce;-webkit-transform-origin:center bottom;transform-origin:center bottom}@-webkit-keyframes flash{0%,50%,to{opacity:1}25%,75%{opacity:0}}@keyframes flash{0%,50%,to{opacity:1}25%,75%{opacity:0}}.animate__flash{-webkit-animation-name:flash;animation-name:flash}@-webkit-keyframes pulse{0%{-webkit-transform:scaleX(1);transform:scaleX(1)}50%{-webkit-transform:scale3d(1.05,1.05,1.05);transform:scale3d(1.05,1.05,1.05)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes pulse{0%{-webkit-transform:scaleX(1);transform:scaleX(1)}50%{-webkit-transform:scale3d(1.05,1.05,1.05);transform:scale3d(1.05,1.05,1.05)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}.animate__pulse{-webkit-animation-name:pulse;animation-name:pulse;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}@-webkit-keyframes rubberBand{0%{-webkit-transform:scaleX(1);transform:scaleX(1)}30%{-webkit-transform:scale3d(1.25,.75,1);transform:scale3d(1.25,.75,1)}40%{-webkit-transform:scale3d(.75,1.25,1);transform:scale3d(.75,1.25,1)}50%{-webkit-transform:scale3d(1.15,.85,1);transform:scale3d(1.15,.85,1)}65%{-webkit-transform:scale3d(.95,1.05,1);transform:scale3d(.95,1.05,1)}75%{-webkit-transform:scale3d(1.05,.95,1);transform:scale3d(1.05,.95,1)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes rubberBand{0%{-webkit-transform:scaleX(1);transform:scaleX(1)}30%{-webkit-transform:scale3d(1.25,.75,1);transform:scale3d(1.25,.75,1)}40%{-webkit-transform:scale3d(.75,1.25,1);transform:scale3d(.75,1.25,1)}50%{-webkit-transform:scale3d(1.15,.85,1);transform:scale3d(1.15,.85,1)}65%{-webkit-transform:scale3d(.95,1.05,1);transform:scale3d(.95,1.05,1)}75%{-webkit-transform:scale3d(1.05,.95,1);transform:scale3d(1.05,.95,1)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}.animate__rubberBand{-webkit-animation-name:rubberBand;animation-name:rubberBand}@-webkit-keyframes shakeX{0%,to{-webkit-transform:translateZ(0);transform:translateZ(0)}10%,30%,50%,70%,90%{-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}20%,40%,60%,80%{-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}}@keyframes shakeX{0%,to{-webkit-transform:translateZ(0);transform:translateZ(0)}10%,30%,50%,70%,90%{-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}20%,40%,60%,80%{-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}}.animate__shakeX{-webkit-animation-name:shakeX;animation-name:shakeX}@-webkit-keyframes shakeY{0%,to{-webkit-transform:translateZ(0);transform:translateZ(0)}10%,30%,50%,70%,90%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}20%,40%,60%,80%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}}@keyframes shakeY{0%,to{-webkit-transform:translateZ(0);transform:translateZ(0)}10%,30%,50%,70%,90%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}20%,40%,60%,80%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}}.animate__shakeY{-webkit-animation-name:shakeY;animation-name:shakeY}@-webkit-keyframes headShake{0%{-webkit-transform:translateX(0);transform:translate(0)}6.5%{-webkit-transform:translateX(-6px) rotateY(-9deg);transform:translate(-6px) rotateY(-9deg)}18.5%{-webkit-transform:translateX(5px) rotateY(7deg);transform:translate(5px) rotateY(7deg)}31.5%{-webkit-transform:translateX(-3px) rotateY(-5deg);transform:translate(-3px) rotateY(-5deg)}43.5%{-webkit-transform:translateX(2px) rotateY(3deg);transform:translate(2px) rotateY(3deg)}50%{-webkit-transform:translateX(0);transform:translate(0)}}@keyframes headShake{0%{-webkit-transform:translateX(0);transform:translate(0)}6.5%{-webkit-transform:translateX(-6px) rotateY(-9deg);transform:translate(-6px) rotateY(-9deg)}18.5%{-webkit-transform:translateX(5px) rotateY(7deg);transform:translate(5px) rotateY(7deg)}31.5%{-webkit-transform:translateX(-3px) rotateY(-5deg);transform:translate(-3px) rotateY(-5deg)}43.5%{-webkit-transform:translateX(2px) rotateY(3deg);transform:translate(2px) rotateY(3deg)}50%{-webkit-transform:translateX(0);transform:translate(0)}}.animate__headShake{-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out;-webkit-animation-name:headShake;animation-name:headShake}@-webkit-keyframes swing{20%{-webkit-transform:rotate(15deg);transform:rotate(15deg)}40%{-webkit-transform:rotate(-10deg);transform:rotate(-10deg)}60%{-webkit-transform:rotate(5deg);transform:rotate(5deg)}80%{-webkit-transform:rotate(-5deg);transform:rotate(-5deg)}to{-webkit-transform:rotate(0deg);transform:rotate(0)}}@keyframes swing{20%{-webkit-transform:rotate(15deg);transform:rotate(15deg)}40%{-webkit-transform:rotate(-10deg);transform:rotate(-10deg)}60%{-webkit-transform:rotate(5deg);transform:rotate(5deg)}80%{-webkit-transform:rotate(-5deg);transform:rotate(-5deg)}to{-webkit-transform:rotate(0deg);transform:rotate(0)}}.animate__swing{-webkit-transform-origin:top center;transform-origin:top center;-webkit-animation-name:swing;animation-name:swing}@-webkit-keyframes tada{0%{-webkit-transform:scaleX(1);transform:scaleX(1)}10%,20%{-webkit-transform:scale3d(.9,.9,.9) rotate(-3deg);transform:scale3d(.9,.9,.9) rotate(-3deg)}30%,50%,70%,90%{-webkit-transform:scale3d(1.1,1.1,1.1) rotate(3deg);transform:scale3d(1.1,1.1,1.1) rotate(3deg)}40%,60%,80%{-webkit-transform:scale3d(1.1,1.1,1.1) rotate(-3deg);transform:scale3d(1.1,1.1,1.1) rotate(-3deg)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes tada{0%{-webkit-transform:scaleX(1);transform:scaleX(1)}10%,20%{-webkit-transform:scale3d(.9,.9,.9) rotate(-3deg);transform:scale3d(.9,.9,.9) rotate(-3deg)}30%,50%,70%,90%{-webkit-transform:scale3d(1.1,1.1,1.1) rotate(3deg);transform:scale3d(1.1,1.1,1.1) rotate(3deg)}40%,60%,80%{-webkit-transform:scale3d(1.1,1.1,1.1) rotate(-3deg);transform:scale3d(1.1,1.1,1.1) rotate(-3deg)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}.animate__tada{-webkit-animation-name:tada;animation-name:tada}@-webkit-keyframes wobble{0%{-webkit-transform:translateZ(0);transform:translateZ(0)}15%{-webkit-transform:translate3d(-25%,0,0) rotate(-5deg);transform:translate3d(-25%,0,0) rotate(-5deg)}30%{-webkit-transform:translate3d(20%,0,0) rotate(3deg);transform:translate3d(20%,0,0) rotate(3deg)}45%{-webkit-transform:translate3d(-15%,0,0) rotate(-3deg);transform:translate3d(-15%,0,0) rotate(-3deg)}60%{-webkit-transform:translate3d(10%,0,0) rotate(2deg);transform:translate3d(10%,0,0) rotate(2deg)}75%{-webkit-transform:translate3d(-5%,0,0) rotate(-1deg);transform:translate3d(-5%,0,0) rotate(-1deg)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes wobble{0%{-webkit-transform:translateZ(0);transform:translateZ(0)}15%{-webkit-transform:translate3d(-25%,0,0) rotate(-5deg);transform:translate3d(-25%,0,0) rotate(-5deg)}30%{-webkit-transform:translate3d(20%,0,0) rotate(3deg);transform:translate3d(20%,0,0) rotate(3deg)}45%{-webkit-transform:translate3d(-15%,0,0) rotate(-3deg);transform:translate3d(-15%,0,0) rotate(-3deg)}60%{-webkit-transform:translate3d(10%,0,0) rotate(2deg);transform:translate3d(10%,0,0) rotate(2deg)}75%{-webkit-transform:translate3d(-5%,0,0) rotate(-1deg);transform:translate3d(-5%,0,0) rotate(-1deg)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}.animate__wobble{-webkit-animation-name:wobble;animation-name:wobble}@-webkit-keyframes jello{0%,11.1%,to{-webkit-transform:translateZ(0);transform:translateZ(0)}22.2%{-webkit-transform:skewX(-12.5deg) skewY(-12.5deg);transform:skew(-12.5deg) skewY(-12.5deg)}33.3%{-webkit-transform:skewX(6.25deg) skewY(6.25deg);transform:skew(6.25deg) skewY(6.25deg)}44.4%{-webkit-transform:skewX(-3.125deg) skewY(-3.125deg);transform:skew(-3.125deg) skewY(-3.125deg)}55.5%{-webkit-transform:skewX(1.5625deg) skewY(1.5625deg);transform:skew(1.5625deg) skewY(1.5625deg)}66.6%{-webkit-transform:skewX(-.78125deg) skewY(-.78125deg);transform:skew(-.78125deg) skewY(-.78125deg)}77.7%{-webkit-transform:skewX(.390625deg) skewY(.390625deg);transform:skew(.390625deg) skewY(.390625deg)}88.8%{-webkit-transform:skewX(-.1953125deg) skewY(-.1953125deg);transform:skew(-.1953125deg) skewY(-.1953125deg)}}@keyframes jello{0%,11.1%,to{-webkit-transform:translateZ(0);transform:translateZ(0)}22.2%{-webkit-transform:skewX(-12.5deg) skewY(-12.5deg);transform:skew(-12.5deg) skewY(-12.5deg)}33.3%{-webkit-transform:skewX(6.25deg) skewY(6.25deg);transform:skew(6.25deg) skewY(6.25deg)}44.4%{-webkit-transform:skewX(-3.125deg) skewY(-3.125deg);transform:skew(-3.125deg) skewY(-3.125deg)}55.5%{-webkit-transform:skewX(1.5625deg) skewY(1.5625deg);transform:skew(1.5625deg) skewY(1.5625deg)}66.6%{-webkit-transform:skewX(-.78125deg) skewY(-.78125deg);transform:skew(-.78125deg) skewY(-.78125deg)}77.7%{-webkit-transform:skewX(.390625deg) skewY(.390625deg);transform:skew(.390625deg) skewY(.390625deg)}88.8%{-webkit-transform:skewX(-.1953125deg) skewY(-.1953125deg);transform:skew(-.1953125deg) skewY(-.1953125deg)}}.animate__jello{-webkit-animation-name:jello;animation-name:jello;-webkit-transform-origin:center;transform-origin:center}@-webkit-keyframes heartBeat{0%{-webkit-transform:scale(1);transform:scale(1)}14%{-webkit-transform:scale(1.3);transform:scale(1.3)}28%{-webkit-transform:scale(1);transform:scale(1)}42%{-webkit-transform:scale(1.3);transform:scale(1.3)}70%{-webkit-transform:scale(1);transform:scale(1)}}@keyframes heartBeat{0%{-webkit-transform:scale(1);transform:scale(1)}14%{-webkit-transform:scale(1.3);transform:scale(1.3)}28%{-webkit-transform:scale(1);transform:scale(1)}42%{-webkit-transform:scale(1.3);transform:scale(1.3)}70%{-webkit-transform:scale(1);transform:scale(1)}}.animate__heartBeat{-webkit-animation-name:heartBeat;animation-name:heartBeat;-webkit-animation-duration:1.3s;animation-duration:1.3s;-webkit-animation-duration:calc(var(--animate-duration)*1.3);animation-duration:calc(var(--animate-duration)*1.3);-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}@-webkit-keyframes backInDown{0%{-webkit-transform:translateY(-1200px) scale(.7);transform:translateY(-1200px) scale(.7);opacity:.7}80%{-webkit-transform:translateY(0) scale(.7);transform:translateY(0) scale(.7);opacity:.7}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}@keyframes backInDown{0%{-webkit-transform:translateY(-1200px) scale(.7);transform:translateY(-1200px) scale(.7);opacity:.7}80%{-webkit-transform:translateY(0) scale(.7);transform:translateY(0) scale(.7);opacity:.7}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}.animate__backInDown{-webkit-animation-name:backInDown;animation-name:backInDown}@-webkit-keyframes backInLeft{0%{-webkit-transform:translateX(-2000px) scale(.7);transform:translate(-2000px) scale(.7);opacity:.7}80%{-webkit-transform:translateX(0) scale(.7);transform:translate(0) scale(.7);opacity:.7}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}@keyframes backInLeft{0%{-webkit-transform:translateX(-2000px) scale(.7);transform:translate(-2000px) scale(.7);opacity:.7}80%{-webkit-transform:translateX(0) scale(.7);transform:translate(0) scale(.7);opacity:.7}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}.animate__backInLeft{-webkit-animation-name:backInLeft;animation-name:backInLeft}@-webkit-keyframes backInRight{0%{-webkit-transform:translateX(2000px) scale(.7);transform:translate(2000px) scale(.7);opacity:.7}80%{-webkit-transform:translateX(0) scale(.7);transform:translate(0) scale(.7);opacity:.7}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}@keyframes backInRight{0%{-webkit-transform:translateX(2000px) scale(.7);transform:translate(2000px) scale(.7);opacity:.7}80%{-webkit-transform:translateX(0) scale(.7);transform:translate(0) scale(.7);opacity:.7}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}.animate__backInRight{-webkit-animation-name:backInRight;animation-name:backInRight}@-webkit-keyframes backInUp{0%{-webkit-transform:translateY(1200px) scale(.7);transform:translateY(1200px) scale(.7);opacity:.7}80%{-webkit-transform:translateY(0) scale(.7);transform:translateY(0) scale(.7);opacity:.7}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}@keyframes backInUp{0%{-webkit-transform:translateY(1200px) scale(.7);transform:translateY(1200px) scale(.7);opacity:.7}80%{-webkit-transform:translateY(0) scale(.7);transform:translateY(0) scale(.7);opacity:.7}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}.animate__backInUp{-webkit-animation-name:backInUp;animation-name:backInUp}@-webkit-keyframes backOutDown{0%{-webkit-transform:scale(1);transform:scale(1);opacity:1}20%{-webkit-transform:translateY(0) scale(.7);transform:translateY(0) scale(.7);opacity:.7}to{-webkit-transform:translateY(700px) scale(.7);transform:translateY(700px) scale(.7);opacity:.7}}@keyframes backOutDown{0%{-webkit-transform:scale(1);transform:scale(1);opacity:1}20%{-webkit-transform:translateY(0) scale(.7);transform:translateY(0) scale(.7);opacity:.7}to{-webkit-transform:translateY(700px) scale(.7);transform:translateY(700px) scale(.7);opacity:.7}}.animate__backOutDown{-webkit-animation-name:backOutDown;animation-name:backOutDown}@-webkit-keyframes backOutLeft{0%{-webkit-transform:scale(1);transform:scale(1);opacity:1}20%{-webkit-transform:translateX(0) scale(.7);transform:translate(0) scale(.7);opacity:.7}to{-webkit-transform:translateX(-2000px) scale(.7);transform:translate(-2000px) scale(.7);opacity:.7}}@keyframes backOutLeft{0%{-webkit-transform:scale(1);transform:scale(1);opacity:1}20%{-webkit-transform:translateX(0) scale(.7);transform:translate(0) scale(.7);opacity:.7}to{-webkit-transform:translateX(-2000px) scale(.7);transform:translate(-2000px) scale(.7);opacity:.7}}.animate__backOutLeft{-webkit-animation-name:backOutLeft;animation-name:backOutLeft}@-webkit-keyframes backOutRight{0%{-webkit-transform:scale(1);transform:scale(1);opacity:1}20%{-webkit-transform:translateX(0) scale(.7);transform:translate(0) scale(.7);opacity:.7}to{-webkit-transform:translateX(2000px) scale(.7);transform:translate(2000px) scale(.7);opacity:.7}}@keyframes backOutRight{0%{-webkit-transform:scale(1);transform:scale(1);opacity:1}20%{-webkit-transform:translateX(0) scale(.7);transform:translate(0) scale(.7);opacity:.7}to{-webkit-transform:translateX(2000px) scale(.7);transform:translate(2000px) scale(.7);opacity:.7}}.animate__backOutRight{-webkit-animation-name:backOutRight;animation-name:backOutRight}@-webkit-keyframes backOutUp{0%{-webkit-transform:scale(1);transform:scale(1);opacity:1}20%{-webkit-transform:translateY(0) scale(.7);transform:translateY(0) scale(.7);opacity:.7}to{-webkit-transform:translateY(-700px) scale(.7);transform:translateY(-700px) scale(.7);opacity:.7}}@keyframes backOutUp{0%{-webkit-transform:scale(1);transform:scale(1);opacity:1}20%{-webkit-transform:translateY(0) scale(.7);transform:translateY(0) scale(.7);opacity:.7}to{-webkit-transform:translateY(-700px) scale(.7);transform:translateY(-700px) scale(.7);opacity:.7}}.animate__backOutUp{-webkit-animation-name:backOutUp;animation-name:backOutUp}@-webkit-keyframes bounceIn{0%,20%,40%,60%,80%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}20%{-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}40%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}60%{opacity:1;-webkit-transform:scale3d(1.03,1.03,1.03);transform:scale3d(1.03,1.03,1.03)}80%{-webkit-transform:scale3d(.97,.97,.97);transform:scale3d(.97,.97,.97)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes bounceIn{0%,20%,40%,60%,80%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}20%{-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}40%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}60%{opacity:1;-webkit-transform:scale3d(1.03,1.03,1.03);transform:scale3d(1.03,1.03,1.03)}80%{-webkit-transform:scale3d(.97,.97,.97);transform:scale3d(.97,.97,.97)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}.animate__bounceIn{-webkit-animation-duration:.75s;animation-duration:.75s;-webkit-animation-duration:calc(var(--animate-duration)*.75);animation-duration:calc(var(--animate-duration)*.75);-webkit-animation-name:bounceIn;animation-name:bounceIn}@-webkit-keyframes bounceInDown{0%,60%,75%,90%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(0,-3000px,0) scaleY(3);transform:translate3d(0,-3000px,0) scaleY(3)}60%{opacity:1;-webkit-transform:translate3d(0,25px,0) scaleY(.9);transform:translate3d(0,25px,0) scaleY(.9)}75%{-webkit-transform:translate3d(0,-10px,0) scaleY(.95);transform:translate3d(0,-10px,0) scaleY(.95)}90%{-webkit-transform:translate3d(0,5px,0) scaleY(.985);transform:translate3d(0,5px,0) scaleY(.985)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes bounceInDown{0%,60%,75%,90%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(0,-3000px,0) scaleY(3);transform:translate3d(0,-3000px,0) scaleY(3)}60%{opacity:1;-webkit-transform:translate3d(0,25px,0) scaleY(.9);transform:translate3d(0,25px,0) scaleY(.9)}75%{-webkit-transform:translate3d(0,-10px,0) scaleY(.95);transform:translate3d(0,-10px,0) scaleY(.95)}90%{-webkit-transform:translate3d(0,5px,0) scaleY(.985);transform:translate3d(0,5px,0) scaleY(.985)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}.animate__bounceInDown{-webkit-animation-name:bounceInDown;animation-name:bounceInDown}@-webkit-keyframes bounceInLeft{0%,60%,75%,90%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(-3000px,0,0) scaleX(3);transform:translate3d(-3000px,0,0) scaleX(3)}60%{opacity:1;-webkit-transform:translate3d(25px,0,0) scaleX(1);transform:translate3d(25px,0,0) scaleX(1)}75%{-webkit-transform:translate3d(-10px,0,0) scaleX(.98);transform:translate3d(-10px,0,0) scaleX(.98)}90%{-webkit-transform:translate3d(5px,0,0) scaleX(.995);transform:translate3d(5px,0,0) scaleX(.995)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes bounceInLeft{0%,60%,75%,90%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(-3000px,0,0) scaleX(3);transform:translate3d(-3000px,0,0) scaleX(3)}60%{opacity:1;-webkit-transform:translate3d(25px,0,0) scaleX(1);transform:translate3d(25px,0,0) scaleX(1)}75%{-webkit-transform:translate3d(-10px,0,0) scaleX(.98);transform:translate3d(-10px,0,0) scaleX(.98)}90%{-webkit-transform:translate3d(5px,0,0) scaleX(.995);transform:translate3d(5px,0,0) scaleX(.995)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}.animate__bounceInLeft{-webkit-animation-name:bounceInLeft;animation-name:bounceInLeft}@-webkit-keyframes bounceInRight{0%,60%,75%,90%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(3000px,0,0) scaleX(3);transform:translate3d(3000px,0,0) scaleX(3)}60%{opacity:1;-webkit-transform:translate3d(-25px,0,0) scaleX(1);transform:translate3d(-25px,0,0) scaleX(1)}75%{-webkit-transform:translate3d(10px,0,0) scaleX(.98);transform:translate3d(10px,0,0) scaleX(.98)}90%{-webkit-transform:translate3d(-5px,0,0) scaleX(.995);transform:translate3d(-5px,0,0) scaleX(.995)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes bounceInRight{0%,60%,75%,90%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(3000px,0,0) scaleX(3);transform:translate3d(3000px,0,0) scaleX(3)}60%{opacity:1;-webkit-transform:translate3d(-25px,0,0) scaleX(1);transform:translate3d(-25px,0,0) scaleX(1)}75%{-webkit-transform:translate3d(10px,0,0) scaleX(.98);transform:translate3d(10px,0,0) scaleX(.98)}90%{-webkit-transform:translate3d(-5px,0,0) scaleX(.995);transform:translate3d(-5px,0,0) scaleX(.995)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}.animate__bounceInRight{-webkit-animation-name:bounceInRight;animation-name:bounceInRight}@-webkit-keyframes bounceInUp{0%,60%,75%,90%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(0,3000px,0) scaleY(5);transform:translate3d(0,3000px,0) scaleY(5)}60%{opacity:1;-webkit-transform:translate3d(0,-20px,0) scaleY(.9);transform:translate3d(0,-20px,0) scaleY(.9)}75%{-webkit-transform:translate3d(0,10px,0) scaleY(.95);transform:translate3d(0,10px,0) scaleY(.95)}90%{-webkit-transform:translate3d(0,-5px,0) scaleY(.985);transform:translate3d(0,-5px,0) scaleY(.985)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes bounceInUp{0%,60%,75%,90%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(0,3000px,0) scaleY(5);transform:translate3d(0,3000px,0) scaleY(5)}60%{opacity:1;-webkit-transform:translate3d(0,-20px,0) scaleY(.9);transform:translate3d(0,-20px,0) scaleY(.9)}75%{-webkit-transform:translate3d(0,10px,0) scaleY(.95);transform:translate3d(0,10px,0) scaleY(.95)}90%{-webkit-transform:translate3d(0,-5px,0) scaleY(.985);transform:translate3d(0,-5px,0) scaleY(.985)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}.animate__bounceInUp{-webkit-animation-name:bounceInUp;animation-name:bounceInUp}@-webkit-keyframes bounceOut{20%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}50%,55%{opacity:1;-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}to{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}}@keyframes bounceOut{20%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}50%,55%{opacity:1;-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}to{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}}.animate__bounceOut{-webkit-animation-duration:.75s;animation-duration:.75s;-webkit-animation-duration:calc(var(--animate-duration)*.75);animation-duration:calc(var(--animate-duration)*.75);-webkit-animation-name:bounceOut;animation-name:bounceOut}@-webkit-keyframes bounceOutDown{20%{-webkit-transform:translate3d(0,10px,0) scaleY(.985);transform:translate3d(0,10px,0) scaleY(.985)}40%,45%{opacity:1;-webkit-transform:translate3d(0,-20px,0) scaleY(.9);transform:translate3d(0,-20px,0) scaleY(.9)}to{opacity:0;-webkit-transform:translate3d(0,2000px,0) scaleY(3);transform:translate3d(0,2000px,0) scaleY(3)}}@keyframes bounceOutDown{20%{-webkit-transform:translate3d(0,10px,0) scaleY(.985);transform:translate3d(0,10px,0) scaleY(.985)}40%,45%{opacity:1;-webkit-transform:translate3d(0,-20px,0) scaleY(.9);transform:translate3d(0,-20px,0) scaleY(.9)}to{opacity:0;-webkit-transform:translate3d(0,2000px,0) scaleY(3);transform:translate3d(0,2000px,0) scaleY(3)}}.animate__bounceOutDown{-webkit-animation-name:bounceOutDown;animation-name:bounceOutDown}@-webkit-keyframes bounceOutLeft{20%{opacity:1;-webkit-transform:translate3d(20px,0,0) scaleX(.9);transform:translate3d(20px,0,0) scaleX(.9)}to{opacity:0;-webkit-transform:translate3d(-2000px,0,0) scaleX(2);transform:translate3d(-2000px,0,0) scaleX(2)}}@keyframes bounceOutLeft{20%{opacity:1;-webkit-transform:translate3d(20px,0,0) scaleX(.9);transform:translate3d(20px,0,0) scaleX(.9)}to{opacity:0;-webkit-transform:translate3d(-2000px,0,0) scaleX(2);transform:translate3d(-2000px,0,0) scaleX(2)}}.animate__bounceOutLeft{-webkit-animation-name:bounceOutLeft;animation-name:bounceOutLeft}@-webkit-keyframes bounceOutRight{20%{opacity:1;-webkit-transform:translate3d(-20px,0,0) scaleX(.9);transform:translate3d(-20px,0,0) scaleX(.9)}to{opacity:0;-webkit-transform:translate3d(2000px,0,0) scaleX(2);transform:translate3d(2000px,0,0) scaleX(2)}}@keyframes bounceOutRight{20%{opacity:1;-webkit-transform:translate3d(-20px,0,0) scaleX(.9);transform:translate3d(-20px,0,0) scaleX(.9)}to{opacity:0;-webkit-transform:translate3d(2000px,0,0) scaleX(2);transform:translate3d(2000px,0,0) scaleX(2)}}.animate__bounceOutRight{-webkit-animation-name:bounceOutRight;animation-name:bounceOutRight}@-webkit-keyframes bounceOutUp{20%{-webkit-transform:translate3d(0,-10px,0) scaleY(.985);transform:translate3d(0,-10px,0) scaleY(.985)}40%,45%{opacity:1;-webkit-transform:translate3d(0,20px,0) scaleY(.9);transform:translate3d(0,20px,0) scaleY(.9)}to{opacity:0;-webkit-transform:translate3d(0,-2000px,0) scaleY(3);transform:translate3d(0,-2000px,0) scaleY(3)}}@keyframes bounceOutUp{20%{-webkit-transform:translate3d(0,-10px,0) scaleY(.985);transform:translate3d(0,-10px,0) scaleY(.985)}40%,45%{opacity:1;-webkit-transform:translate3d(0,20px,0) scaleY(.9);transform:translate3d(0,20px,0) scaleY(.9)}to{opacity:0;-webkit-transform:translate3d(0,-2000px,0) scaleY(3);transform:translate3d(0,-2000px,0) scaleY(3)}}.animate__bounceOutUp{-webkit-animation-name:bounceOutUp;animation-name:bounceOutUp}@-webkit-keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.animate__fadeIn{-webkit-animation-name:fadeIn;animation-name:fadeIn}@-webkit-keyframes fadeInDown{0%{opacity:0;-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes fadeInDown{0%{opacity:0;-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}.animate__fadeInDown{-webkit-animation-name:fadeInDown;animation-name:fadeInDown}@-webkit-keyframes fadeInDownBig{0%{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes fadeInDownBig{0%{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}.animate__fadeInDownBig{-webkit-animation-name:fadeInDownBig;animation-name:fadeInDownBig}@-webkit-keyframes fadeInLeft{0%{opacity:0;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes fadeInLeft{0%{opacity:0;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}.animate__fadeInLeft{-webkit-animation-name:fadeInLeft;animation-name:fadeInLeft}@-webkit-keyframes fadeInLeftBig{0%{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes fadeInLeftBig{0%{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}.animate__fadeInLeftBig{-webkit-animation-name:fadeInLeftBig;animation-name:fadeInLeftBig}@-webkit-keyframes fadeInRight{0%{opacity:0;-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes fadeInRight{0%{opacity:0;-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}.animate__fadeInRight{-webkit-animation-name:fadeInRight;animation-name:fadeInRight}@-webkit-keyframes fadeInRightBig{0%{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes fadeInRightBig{0%{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}.animate__fadeInRightBig{-webkit-animation-name:fadeInRightBig;animation-name:fadeInRightBig}@-webkit-keyframes fadeInUp{0%{opacity:0;-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes fadeInUp{0%{opacity:0;-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}.animate__fadeInUp{-webkit-animation-name:fadeInUp;animation-name:fadeInUp}@-webkit-keyframes fadeInUpBig{0%{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes fadeInUpBig{0%{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}.animate__fadeInUpBig{-webkit-animation-name:fadeInUpBig;animation-name:fadeInUpBig}@-webkit-keyframes fadeInTopLeft{0%{opacity:0;-webkit-transform:translate3d(-100%,-100%,0);transform:translate3d(-100%,-100%,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes fadeInTopLeft{0%{opacity:0;-webkit-transform:translate3d(-100%,-100%,0);transform:translate3d(-100%,-100%,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}.animate__fadeInTopLeft{-webkit-animation-name:fadeInTopLeft;animation-name:fadeInTopLeft}@-webkit-keyframes fadeInTopRight{0%{opacity:0;-webkit-transform:translate3d(100%,-100%,0);transform:translate3d(100%,-100%,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes fadeInTopRight{0%{opacity:0;-webkit-transform:translate3d(100%,-100%,0);transform:translate3d(100%,-100%,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}.animate__fadeInTopRight{-webkit-animation-name:fadeInTopRight;animation-name:fadeInTopRight}@-webkit-keyframes fadeInBottomLeft{0%{opacity:0;-webkit-transform:translate3d(-100%,100%,0);transform:translate3d(-100%,100%,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes fadeInBottomLeft{0%{opacity:0;-webkit-transform:translate3d(-100%,100%,0);transform:translate3d(-100%,100%,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}.animate__fadeInBottomLeft{-webkit-animation-name:fadeInBottomLeft;animation-name:fadeInBottomLeft}@-webkit-keyframes fadeInBottomRight{0%{opacity:0;-webkit-transform:translate3d(100%,100%,0);transform:translate3d(100%,100%,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes fadeInBottomRight{0%{opacity:0;-webkit-transform:translate3d(100%,100%,0);transform:translate3d(100%,100%,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}.animate__fadeInBottomRight{-webkit-animation-name:fadeInBottomRight;animation-name:fadeInBottomRight}@-webkit-keyframes fadeOut{0%{opacity:1}to{opacity:0}}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}.animate__fadeOut{-webkit-animation-name:fadeOut;animation-name:fadeOut}@-webkit-keyframes fadeOutDown{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}}@keyframes fadeOutDown{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}}.animate__fadeOutDown{-webkit-animation-name:fadeOutDown;animation-name:fadeOutDown}@-webkit-keyframes fadeOutDownBig{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}}@keyframes fadeOutDownBig{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}}.animate__fadeOutDownBig{-webkit-animation-name:fadeOutDownBig;animation-name:fadeOutDownBig}@-webkit-keyframes fadeOutLeft{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}}@keyframes fadeOutLeft{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}}.animate__fadeOutLeft{-webkit-animation-name:fadeOutLeft;animation-name:fadeOutLeft}@-webkit-keyframes fadeOutLeftBig{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}}@keyframes fadeOutLeftBig{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}}.animate__fadeOutLeftBig{-webkit-animation-name:fadeOutLeftBig;animation-name:fadeOutLeftBig}@-webkit-keyframes fadeOutRight{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}}@keyframes fadeOutRight{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}}.animate__fadeOutRight{-webkit-animation-name:fadeOutRight;animation-name:fadeOutRight}@-webkit-keyframes fadeOutRightBig{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}}@keyframes fadeOutRightBig{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}}.animate__fadeOutRightBig{-webkit-animation-name:fadeOutRightBig;animation-name:fadeOutRightBig}@-webkit-keyframes fadeOutUp{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0)}}@keyframes fadeOutUp{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0)}}.animate__fadeOutUp{-webkit-animation-name:fadeOutUp;animation-name:fadeOutUp}@-webkit-keyframes fadeOutUpBig{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}}@keyframes fadeOutUpBig{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}}.animate__fadeOutUpBig{-webkit-animation-name:fadeOutUpBig;animation-name:fadeOutUpBig}@-webkit-keyframes fadeOutTopLeft{0%{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}to{opacity:0;-webkit-transform:translate3d(-100%,-100%,0);transform:translate3d(-100%,-100%,0)}}@keyframes fadeOutTopLeft{0%{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}to{opacity:0;-webkit-transform:translate3d(-100%,-100%,0);transform:translate3d(-100%,-100%,0)}}.animate__fadeOutTopLeft{-webkit-animation-name:fadeOutTopLeft;animation-name:fadeOutTopLeft}@-webkit-keyframes fadeOutTopRight{0%{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}to{opacity:0;-webkit-transform:translate3d(100%,-100%,0);transform:translate3d(100%,-100%,0)}}@keyframes fadeOutTopRight{0%{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}to{opacity:0;-webkit-transform:translate3d(100%,-100%,0);transform:translate3d(100%,-100%,0)}}.animate__fadeOutTopRight{-webkit-animation-name:fadeOutTopRight;animation-name:fadeOutTopRight}@-webkit-keyframes fadeOutBottomRight{0%{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}to{opacity:0;-webkit-transform:translate3d(100%,100%,0);transform:translate3d(100%,100%,0)}}@keyframes fadeOutBottomRight{0%{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}to{opacity:0;-webkit-transform:translate3d(100%,100%,0);transform:translate3d(100%,100%,0)}}.animate__fadeOutBottomRight{-webkit-animation-name:fadeOutBottomRight;animation-name:fadeOutBottomRight}@-webkit-keyframes fadeOutBottomLeft{0%{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}to{opacity:0;-webkit-transform:translate3d(-100%,100%,0);transform:translate3d(-100%,100%,0)}}@keyframes fadeOutBottomLeft{0%{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}to{opacity:0;-webkit-transform:translate3d(-100%,100%,0);transform:translate3d(-100%,100%,0)}}.animate__fadeOutBottomLeft{-webkit-animation-name:fadeOutBottomLeft;animation-name:fadeOutBottomLeft}@-webkit-keyframes flip{0%{-webkit-transform:perspective(400px) scaleX(1) translateZ(0) rotateY(-1turn);transform:perspective(400px) scaleX(1) translateZ(0) rotateY(-1turn);-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}40%{-webkit-transform:perspective(400px) scaleX(1) translateZ(150px) rotateY(-190deg);transform:perspective(400px) scaleX(1) translateZ(150px) rotateY(-190deg);-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}50%{-webkit-transform:perspective(400px) scaleX(1) translateZ(150px) rotateY(-170deg);transform:perspective(400px) scaleX(1) translateZ(150px) rotateY(-170deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}80%{-webkit-transform:perspective(400px) scale3d(.95,.95,.95) translateZ(0) rotateY(0deg);transform:perspective(400px) scale3d(.95,.95,.95) translateZ(0) rotateY(0);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}to{-webkit-transform:perspective(400px) scaleX(1) translateZ(0) rotateY(0deg);transform:perspective(400px) scaleX(1) translateZ(0) rotateY(0);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}}@keyframes flip{0%{-webkit-transform:perspective(400px) scaleX(1) translateZ(0) rotateY(-1turn);transform:perspective(400px) scaleX(1) translateZ(0) rotateY(-1turn);-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}40%{-webkit-transform:perspective(400px) scaleX(1) translateZ(150px) rotateY(-190deg);transform:perspective(400px) scaleX(1) translateZ(150px) rotateY(-190deg);-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}50%{-webkit-transform:perspective(400px) scaleX(1) translateZ(150px) rotateY(-170deg);transform:perspective(400px) scaleX(1) translateZ(150px) rotateY(-170deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}80%{-webkit-transform:perspective(400px) scale3d(.95,.95,.95) translateZ(0) rotateY(0deg);transform:perspective(400px) scale3d(.95,.95,.95) translateZ(0) rotateY(0);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}to{-webkit-transform:perspective(400px) scaleX(1) translateZ(0) rotateY(0deg);transform:perspective(400px) scaleX(1) translateZ(0) rotateY(0);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}}.animate__animated.animate__flip{-webkit-backface-visibility:visible;backface-visibility:visible;-webkit-animation-name:flip;animation-name:flip}@-webkit-keyframes flipInX{0%{-webkit-transform:perspective(400px) rotateX(90deg);transform:perspective(400px) rotateX(90deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in;opacity:0}40%{-webkit-transform:perspective(400px) rotateX(-20deg);transform:perspective(400px) rotateX(-20deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}60%{-webkit-transform:perspective(400px) rotateX(10deg);transform:perspective(400px) rotateX(10deg);opacity:1}80%{-webkit-transform:perspective(400px) rotateX(-5deg);transform:perspective(400px) rotateX(-5deg)}to{-webkit-transform:perspective(400px);transform:perspective(400px)}}@keyframes flipInX{0%{-webkit-transform:perspective(400px) rotateX(90deg);transform:perspective(400px) rotateX(90deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in;opacity:0}40%{-webkit-transform:perspective(400px) rotateX(-20deg);transform:perspective(400px) rotateX(-20deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}60%{-webkit-transform:perspective(400px) rotateX(10deg);transform:perspective(400px) rotateX(10deg);opacity:1}80%{-webkit-transform:perspective(400px) rotateX(-5deg);transform:perspective(400px) rotateX(-5deg)}to{-webkit-transform:perspective(400px);transform:perspective(400px)}}.animate__flipInX{-webkit-backface-visibility:visible!important;backface-visibility:visible!important;-webkit-animation-name:flipInX;animation-name:flipInX}@-webkit-keyframes flipInY{0%{-webkit-transform:perspective(400px) rotateY(90deg);transform:perspective(400px) rotateY(90deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in;opacity:0}40%{-webkit-transform:perspective(400px) rotateY(-20deg);transform:perspective(400px) rotateY(-20deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}60%{-webkit-transform:perspective(400px) rotateY(10deg);transform:perspective(400px) rotateY(10deg);opacity:1}80%{-webkit-transform:perspective(400px) rotateY(-5deg);transform:perspective(400px) rotateY(-5deg)}to{-webkit-transform:perspective(400px);transform:perspective(400px)}}@keyframes flipInY{0%{-webkit-transform:perspective(400px) rotateY(90deg);transform:perspective(400px) rotateY(90deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in;opacity:0}40%{-webkit-transform:perspective(400px) rotateY(-20deg);transform:perspective(400px) rotateY(-20deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}60%{-webkit-transform:perspective(400px) rotateY(10deg);transform:perspective(400px) rotateY(10deg);opacity:1}80%{-webkit-transform:perspective(400px) rotateY(-5deg);transform:perspective(400px) rotateY(-5deg)}to{-webkit-transform:perspective(400px);transform:perspective(400px)}}.animate__flipInY{-webkit-backface-visibility:visible!important;backface-visibility:visible!important;-webkit-animation-name:flipInY;animation-name:flipInY}@-webkit-keyframes flipOutX{0%{-webkit-transform:perspective(400px);transform:perspective(400px)}30%{-webkit-transform:perspective(400px) rotateX(-20deg);transform:perspective(400px) rotateX(-20deg);opacity:1}to{-webkit-transform:perspective(400px) rotateX(90deg);transform:perspective(400px) rotateX(90deg);opacity:0}}@keyframes flipOutX{0%{-webkit-transform:perspective(400px);transform:perspective(400px)}30%{-webkit-transform:perspective(400px) rotateX(-20deg);transform:perspective(400px) rotateX(-20deg);opacity:1}to{-webkit-transform:perspective(400px) rotateX(90deg);transform:perspective(400px) rotateX(90deg);opacity:0}}.animate__flipOutX{-webkit-animation-duration:.75s;animation-duration:.75s;-webkit-animation-duration:calc(var(--animate-duration)*.75);animation-duration:calc(var(--animate-duration)*.75);-webkit-animation-name:flipOutX;animation-name:flipOutX;-webkit-backface-visibility:visible!important;backface-visibility:visible!important}@-webkit-keyframes flipOutY{0%{-webkit-transform:perspective(400px);transform:perspective(400px)}30%{-webkit-transform:perspective(400px) rotateY(-15deg);transform:perspective(400px) rotateY(-15deg);opacity:1}to{-webkit-transform:perspective(400px) rotateY(90deg);transform:perspective(400px) rotateY(90deg);opacity:0}}@keyframes flipOutY{0%{-webkit-transform:perspective(400px);transform:perspective(400px)}30%{-webkit-transform:perspective(400px) rotateY(-15deg);transform:perspective(400px) rotateY(-15deg);opacity:1}to{-webkit-transform:perspective(400px) rotateY(90deg);transform:perspective(400px) rotateY(90deg);opacity:0}}.animate__flipOutY{-webkit-animation-duration:.75s;animation-duration:.75s;-webkit-animation-duration:calc(var(--animate-duration)*.75);animation-duration:calc(var(--animate-duration)*.75);-webkit-backface-visibility:visible!important;backface-visibility:visible!important;-webkit-animation-name:flipOutY;animation-name:flipOutY}@-webkit-keyframes lightSpeedInRight{0%{-webkit-transform:translate3d(100%,0,0) skewX(-30deg);transform:translate3d(100%,0,0) skew(-30deg);opacity:0}60%{-webkit-transform:skewX(20deg);transform:skew(20deg);opacity:1}80%{-webkit-transform:skewX(-5deg);transform:skew(-5deg)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes lightSpeedInRight{0%{-webkit-transform:translate3d(100%,0,0) skewX(-30deg);transform:translate3d(100%,0,0) skew(-30deg);opacity:0}60%{-webkit-transform:skewX(20deg);transform:skew(20deg);opacity:1}80%{-webkit-transform:skewX(-5deg);transform:skew(-5deg)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}.animate__lightSpeedInRight{-webkit-animation-name:lightSpeedInRight;animation-name:lightSpeedInRight;-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}@-webkit-keyframes lightSpeedInLeft{0%{-webkit-transform:translate3d(-100%,0,0) skewX(30deg);transform:translate3d(-100%,0,0) skew(30deg);opacity:0}60%{-webkit-transform:skewX(-20deg);transform:skew(-20deg);opacity:1}80%{-webkit-transform:skewX(5deg);transform:skew(5deg)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes lightSpeedInLeft{0%{-webkit-transform:translate3d(-100%,0,0) skewX(30deg);transform:translate3d(-100%,0,0) skew(30deg);opacity:0}60%{-webkit-transform:skewX(-20deg);transform:skew(-20deg);opacity:1}80%{-webkit-transform:skewX(5deg);transform:skew(5deg)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}.animate__lightSpeedInLeft{-webkit-animation-name:lightSpeedInLeft;animation-name:lightSpeedInLeft;-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}@-webkit-keyframes lightSpeedOutRight{0%{opacity:1}to{-webkit-transform:translate3d(100%,0,0) skewX(30deg);transform:translate3d(100%,0,0) skew(30deg);opacity:0}}@keyframes lightSpeedOutRight{0%{opacity:1}to{-webkit-transform:translate3d(100%,0,0) skewX(30deg);transform:translate3d(100%,0,0) skew(30deg);opacity:0}}.animate__lightSpeedOutRight{-webkit-animation-name:lightSpeedOutRight;animation-name:lightSpeedOutRight;-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}@-webkit-keyframes lightSpeedOutLeft{0%{opacity:1}to{-webkit-transform:translate3d(-100%,0,0) skewX(-30deg);transform:translate3d(-100%,0,0) skew(-30deg);opacity:0}}@keyframes lightSpeedOutLeft{0%{opacity:1}to{-webkit-transform:translate3d(-100%,0,0) skewX(-30deg);transform:translate3d(-100%,0,0) skew(-30deg);opacity:0}}.animate__lightSpeedOutLeft{-webkit-animation-name:lightSpeedOutLeft;animation-name:lightSpeedOutLeft;-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}@-webkit-keyframes rotateIn{0%{-webkit-transform:rotate(-200deg);transform:rotate(-200deg);opacity:0}to{-webkit-transform:translateZ(0);transform:translateZ(0);opacity:1}}@keyframes rotateIn{0%{-webkit-transform:rotate(-200deg);transform:rotate(-200deg);opacity:0}to{-webkit-transform:translateZ(0);transform:translateZ(0);opacity:1}}.animate__rotateIn{-webkit-animation-name:rotateIn;animation-name:rotateIn;-webkit-transform-origin:center;transform-origin:center}@-webkit-keyframes rotateInDownLeft{0%{-webkit-transform:rotate(-45deg);transform:rotate(-45deg);opacity:0}to{-webkit-transform:translateZ(0);transform:translateZ(0);opacity:1}}@keyframes rotateInDownLeft{0%{-webkit-transform:rotate(-45deg);transform:rotate(-45deg);opacity:0}to{-webkit-transform:translateZ(0);transform:translateZ(0);opacity:1}}.animate__rotateInDownLeft{-webkit-animation-name:rotateInDownLeft;animation-name:rotateInDownLeft;-webkit-transform-origin:left bottom;transform-origin:left bottom}@-webkit-keyframes rotateInDownRight{0%{-webkit-transform:rotate(45deg);transform:rotate(45deg);opacity:0}to{-webkit-transform:translateZ(0);transform:translateZ(0);opacity:1}}@keyframes rotateInDownRight{0%{-webkit-transform:rotate(45deg);transform:rotate(45deg);opacity:0}to{-webkit-transform:translateZ(0);transform:translateZ(0);opacity:1}}.animate__rotateInDownRight{-webkit-animation-name:rotateInDownRight;animation-name:rotateInDownRight;-webkit-transform-origin:right bottom;transform-origin:right bottom}@-webkit-keyframes rotateInUpLeft{0%{-webkit-transform:rotate(45deg);transform:rotate(45deg);opacity:0}to{-webkit-transform:translateZ(0);transform:translateZ(0);opacity:1}}@keyframes rotateInUpLeft{0%{-webkit-transform:rotate(45deg);transform:rotate(45deg);opacity:0}to{-webkit-transform:translateZ(0);transform:translateZ(0);opacity:1}}.animate__rotateInUpLeft{-webkit-animation-name:rotateInUpLeft;animation-name:rotateInUpLeft;-webkit-transform-origin:left bottom;transform-origin:left bottom}@-webkit-keyframes rotateInUpRight{0%{-webkit-transform:rotate(-90deg);transform:rotate(-90deg);opacity:0}to{-webkit-transform:translateZ(0);transform:translateZ(0);opacity:1}}@keyframes rotateInUpRight{0%{-webkit-transform:rotate(-90deg);transform:rotate(-90deg);opacity:0}to{-webkit-transform:translateZ(0);transform:translateZ(0);opacity:1}}.animate__rotateInUpRight{-webkit-animation-name:rotateInUpRight;animation-name:rotateInUpRight;-webkit-transform-origin:right bottom;transform-origin:right bottom}@-webkit-keyframes rotateOut{0%{opacity:1}to{-webkit-transform:rotate(200deg);transform:rotate(200deg);opacity:0}}@keyframes rotateOut{0%{opacity:1}to{-webkit-transform:rotate(200deg);transform:rotate(200deg);opacity:0}}.animate__rotateOut{-webkit-animation-name:rotateOut;animation-name:rotateOut;-webkit-transform-origin:center;transform-origin:center}@-webkit-keyframes rotateOutDownLeft{0%{opacity:1}to{-webkit-transform:rotate(45deg);transform:rotate(45deg);opacity:0}}@keyframes rotateOutDownLeft{0%{opacity:1}to{-webkit-transform:rotate(45deg);transform:rotate(45deg);opacity:0}}.animate__rotateOutDownLeft{-webkit-animation-name:rotateOutDownLeft;animation-name:rotateOutDownLeft;-webkit-transform-origin:left bottom;transform-origin:left bottom}@-webkit-keyframes rotateOutDownRight{0%{opacity:1}to{-webkit-transform:rotate(-45deg);transform:rotate(-45deg);opacity:0}}@keyframes rotateOutDownRight{0%{opacity:1}to{-webkit-transform:rotate(-45deg);transform:rotate(-45deg);opacity:0}}.animate__rotateOutDownRight{-webkit-animation-name:rotateOutDownRight;animation-name:rotateOutDownRight;-webkit-transform-origin:right bottom;transform-origin:right bottom}@-webkit-keyframes rotateOutUpLeft{0%{opacity:1}to{-webkit-transform:rotate(-45deg);transform:rotate(-45deg);opacity:0}}@keyframes rotateOutUpLeft{0%{opacity:1}to{-webkit-transform:rotate(-45deg);transform:rotate(-45deg);opacity:0}}.animate__rotateOutUpLeft{-webkit-animation-name:rotateOutUpLeft;animation-name:rotateOutUpLeft;-webkit-transform-origin:left bottom;transform-origin:left bottom}@-webkit-keyframes rotateOutUpRight{0%{opacity:1}to{-webkit-transform:rotate(90deg);transform:rotate(90deg);opacity:0}}@keyframes rotateOutUpRight{0%{opacity:1}to{-webkit-transform:rotate(90deg);transform:rotate(90deg);opacity:0}}.animate__rotateOutUpRight{-webkit-animation-name:rotateOutUpRight;animation-name:rotateOutUpRight;-webkit-transform-origin:right bottom;transform-origin:right bottom}@-webkit-keyframes hinge{0%{-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}20%,60%{-webkit-transform:rotate(80deg);transform:rotate(80deg);-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}40%,80%{-webkit-transform:rotate(60deg);transform:rotate(60deg);-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out;opacity:1}to{-webkit-transform:translate3d(0,700px,0);transform:translate3d(0,700px,0);opacity:0}}@keyframes hinge{0%{-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}20%,60%{-webkit-transform:rotate(80deg);transform:rotate(80deg);-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}40%,80%{-webkit-transform:rotate(60deg);transform:rotate(60deg);-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out;opacity:1}to{-webkit-transform:translate3d(0,700px,0);transform:translate3d(0,700px,0);opacity:0}}.animate__hinge{-webkit-animation-duration:2s;animation-duration:2s;-webkit-animation-duration:calc(var(--animate-duration)*2);animation-duration:calc(var(--animate-duration)*2);-webkit-animation-name:hinge;animation-name:hinge;-webkit-transform-origin:top left;transform-origin:top left}@-webkit-keyframes jackInTheBox{0%{opacity:0;-webkit-transform:scale(.1) rotate(30deg);transform:scale(.1) rotate(30deg);-webkit-transform-origin:center bottom;transform-origin:center bottom}50%{-webkit-transform:rotate(-10deg);transform:rotate(-10deg)}70%{-webkit-transform:rotate(3deg);transform:rotate(3deg)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes jackInTheBox{0%{opacity:0;-webkit-transform:scale(.1) rotate(30deg);transform:scale(.1) rotate(30deg);-webkit-transform-origin:center bottom;transform-origin:center bottom}50%{-webkit-transform:rotate(-10deg);transform:rotate(-10deg)}70%{-webkit-transform:rotate(3deg);transform:rotate(3deg)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}.animate__jackInTheBox{-webkit-animation-name:jackInTheBox;animation-name:jackInTheBox}@-webkit-keyframes rollIn{0%{opacity:0;-webkit-transform:translate3d(-100%,0,0) rotate(-120deg);transform:translate3d(-100%,0,0) rotate(-120deg)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes rollIn{0%{opacity:0;-webkit-transform:translate3d(-100%,0,0) rotate(-120deg);transform:translate3d(-100%,0,0) rotate(-120deg)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}.animate__rollIn{-webkit-animation-name:rollIn;animation-name:rollIn}@-webkit-keyframes rollOut{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(100%,0,0) rotate(120deg);transform:translate3d(100%,0,0) rotate(120deg)}}@keyframes rollOut{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(100%,0,0) rotate(120deg);transform:translate3d(100%,0,0) rotate(120deg)}}.animate__rollOut{-webkit-animation-name:rollOut;animation-name:rollOut}@-webkit-keyframes zoomIn{0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}50%{opacity:1}}@keyframes zoomIn{0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}50%{opacity:1}}.animate__zoomIn{-webkit-animation-name:zoomIn;animation-name:zoomIn}@-webkit-keyframes zoomInDown{0%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,-1000px,0);transform:scale3d(.1,.1,.1) translate3d(0,-1000px,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,60px,0);transform:scale3d(.475,.475,.475) translate3d(0,60px,0);-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}@keyframes zoomInDown{0%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,-1000px,0);transform:scale3d(.1,.1,.1) translate3d(0,-1000px,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,60px,0);transform:scale3d(.475,.475,.475) translate3d(0,60px,0);-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}.animate__zoomInDown{-webkit-animation-name:zoomInDown;animation-name:zoomInDown}@-webkit-keyframes zoomInLeft{0%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(-1000px,0,0);transform:scale3d(.1,.1,.1) translate3d(-1000px,0,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(10px,0,0);transform:scale3d(.475,.475,.475) translate3d(10px,0,0);-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}@keyframes zoomInLeft{0%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(-1000px,0,0);transform:scale3d(.1,.1,.1) translate3d(-1000px,0,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(10px,0,0);transform:scale3d(.475,.475,.475) translate3d(10px,0,0);-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}.animate__zoomInLeft{-webkit-animation-name:zoomInLeft;animation-name:zoomInLeft}@-webkit-keyframes zoomInRight{0%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(1000px,0,0);transform:scale3d(.1,.1,.1) translate3d(1000px,0,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(-10px,0,0);transform:scale3d(.475,.475,.475) translate3d(-10px,0,0);-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}@keyframes zoomInRight{0%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(1000px,0,0);transform:scale3d(.1,.1,.1) translate3d(1000px,0,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(-10px,0,0);transform:scale3d(.475,.475,.475) translate3d(-10px,0,0);-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}.animate__zoomInRight{-webkit-animation-name:zoomInRight;animation-name:zoomInRight}@-webkit-keyframes zoomInUp{0%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,1000px,0);transform:scale3d(.1,.1,.1) translate3d(0,1000px,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}@keyframes zoomInUp{0%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,1000px,0);transform:scale3d(.1,.1,.1) translate3d(0,1000px,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}.animate__zoomInUp{-webkit-animation-name:zoomInUp;animation-name:zoomInUp}@-webkit-keyframes zoomOut{0%{opacity:1}50%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}to{opacity:0}}@keyframes zoomOut{0%{opacity:1}50%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}to{opacity:0}}.animate__zoomOut{-webkit-animation-name:zoomOut;animation-name:zoomOut}@-webkit-keyframes zoomOutDown{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}to{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,2000px,0);transform:scale3d(.1,.1,.1) translate3d(0,2000px,0);-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}@keyframes zoomOutDown{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}to{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,2000px,0);transform:scale3d(.1,.1,.1) translate3d(0,2000px,0);-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}.animate__zoomOutDown{-webkit-animation-name:zoomOutDown;animation-name:zoomOutDown;-webkit-transform-origin:center bottom;transform-origin:center bottom}@-webkit-keyframes zoomOutLeft{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(42px,0,0);transform:scale3d(.475,.475,.475) translate3d(42px,0,0)}to{opacity:0;-webkit-transform:scale(.1) translate3d(-2000px,0,0);transform:scale(.1) translate3d(-2000px,0,0)}}@keyframes zoomOutLeft{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(42px,0,0);transform:scale3d(.475,.475,.475) translate3d(42px,0,0)}to{opacity:0;-webkit-transform:scale(.1) translate3d(-2000px,0,0);transform:scale(.1) translate3d(-2000px,0,0)}}.animate__zoomOutLeft{-webkit-animation-name:zoomOutLeft;animation-name:zoomOutLeft;-webkit-transform-origin:left center;transform-origin:left center}@-webkit-keyframes zoomOutRight{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(-42px,0,0);transform:scale3d(.475,.475,.475) translate3d(-42px,0,0)}to{opacity:0;-webkit-transform:scale(.1) translate3d(2000px,0,0);transform:scale(.1) translate3d(2000px,0,0)}}@keyframes zoomOutRight{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(-42px,0,0);transform:scale3d(.475,.475,.475) translate3d(-42px,0,0)}to{opacity:0;-webkit-transform:scale(.1) translate3d(2000px,0,0);transform:scale(.1) translate3d(2000px,0,0)}}.animate__zoomOutRight{-webkit-animation-name:zoomOutRight;animation-name:zoomOutRight;-webkit-transform-origin:right center;transform-origin:right center}@-webkit-keyframes zoomOutUp{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,60px,0);transform:scale3d(.475,.475,.475) translate3d(0,60px,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}to{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,-2000px,0);transform:scale3d(.1,.1,.1) translate3d(0,-2000px,0);-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}@keyframes zoomOutUp{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,60px,0);transform:scale3d(.475,.475,.475) translate3d(0,60px,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}to{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,-2000px,0);transform:scale3d(.1,.1,.1) translate3d(0,-2000px,0);-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}.animate__zoomOutUp{-webkit-animation-name:zoomOutUp;animation-name:zoomOutUp;-webkit-transform-origin:center bottom;transform-origin:center bottom}@-webkit-keyframes slideInDown{0%{-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0);visibility:visible}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes slideInDown{0%{-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0);visibility:visible}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}.animate__slideInDown{-webkit-animation-name:slideInDown;animation-name:slideInDown}@-webkit-keyframes slideInLeft{0%{-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0);visibility:visible}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes slideInLeft{0%{-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0);visibility:visible}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}.animate__slideInLeft{-webkit-animation-name:slideInLeft;animation-name:slideInLeft}@-webkit-keyframes slideInRight{0%{-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0);visibility:visible}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes slideInRight{0%{-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0);visibility:visible}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}.animate__slideInRight{-webkit-animation-name:slideInRight;animation-name:slideInRight}@-webkit-keyframes slideInUp{0%{-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0);visibility:visible}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes slideInUp{0%{-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0);visibility:visible}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}.animate__slideInUp{-webkit-animation-name:slideInUp;animation-name:slideInUp}@-webkit-keyframes slideOutDown{0%{-webkit-transform:translateZ(0);transform:translateZ(0)}to{visibility:hidden;-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}}@keyframes slideOutDown{0%{-webkit-transform:translateZ(0);transform:translateZ(0)}to{visibility:hidden;-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}}.animate__slideOutDown{-webkit-animation-name:slideOutDown;animation-name:slideOutDown}@-webkit-keyframes slideOutLeft{0%{-webkit-transform:translateZ(0);transform:translateZ(0)}to{visibility:hidden;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}}@keyframes slideOutLeft{0%{-webkit-transform:translateZ(0);transform:translateZ(0)}to{visibility:hidden;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}}.animate__slideOutLeft{-webkit-animation-name:slideOutLeft;animation-name:slideOutLeft}@-webkit-keyframes slideOutRight{0%{-webkit-transform:translateZ(0);transform:translateZ(0)}to{visibility:hidden;-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}}@keyframes slideOutRight{0%{-webkit-transform:translateZ(0);transform:translateZ(0)}to{visibility:hidden;-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}}.animate__slideOutRight{-webkit-animation-name:slideOutRight;animation-name:slideOutRight}@-webkit-keyframes slideOutUp{0%{-webkit-transform:translateZ(0);transform:translateZ(0)}to{visibility:hidden;-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0)}}@keyframes slideOutUp{0%{-webkit-transform:translateZ(0);transform:translateZ(0)}to{visibility:hidden;-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0)}}.animate__slideOutUp{-webkit-animation-name:slideOutUp;animation-name:slideOutUp}.os--beta-tag :after{content:"BETA";font-size:var(--font-ui-smaller);font-weight:var(--font-semibold);vertical-align:top;background-color:var(--interactive-accent);margin-left:8px;height:20px;width:34px;display:inline-flex;justify-content:center;align-items:center;border-radius:var(--radius-s)}.osf--result-eol .os-result{position:absolute;right:0}.os-result{display:inline-flex;margin:var(--solve-result-margin, 0 0 0 4px);padding:var(--solve-result-padding, 0 0 0 4px);line-height:var(--line-height-normal);color:var(--solve-result-text, #29ce99e8);background-color:var(--solve-result-background, #22ce9900);font-family:var(--font-text);font-size:var(--font-text-size, 16px);border-color:var(--solve-result-border-color, transparent);border-style:var(--solve-result-border-style, solid);border-width:var(--solve-result-border-width, 0);border-radius:var(--solve-result-border-radius, 4px);text-decoration:dotted;text-decoration-line:underline;text-underline-offset:2px;text-decoration-color:transparent;transition:all .15s;-webkit-font-smoothing:antialiased;backface-visibility:hidden;transform:translateZ(0)}.os-result:hover{cursor:pointer;text-decoration-color:var( --solve-result-hover-underline-color, currentColor )} +@charset "UTF-8"; + +/* node_modules/animate.css/animate.min.css */ +:root { + --animate-duration:1s; + --animate-delay:1s; + --animate-repeat:1; +} +.animate__animated { + -webkit-animation-duration: 1s; + animation-duration: 1s; + -webkit-animation-duration: var(--animate-duration); + animation-duration: var(--animate-duration); + -webkit-animation-fill-mode: both; + animation-fill-mode: both; +} +.animate__animated.animate__infinite { + -webkit-animation-iteration-count: infinite; + animation-iteration-count: infinite; +} +.animate__animated.animate__repeat-1 { + -webkit-animation-iteration-count: 1; + animation-iteration-count: 1; + -webkit-animation-iteration-count: var(--animate-repeat); + animation-iteration-count: var(--animate-repeat); +} +.animate__animated.animate__repeat-2 { + -webkit-animation-iteration-count: 2; + animation-iteration-count: 2; + -webkit-animation-iteration-count: calc(var(--animate-repeat)*2); + animation-iteration-count: calc(var(--animate-repeat)*2); +} +.animate__animated.animate__repeat-3 { + -webkit-animation-iteration-count: 3; + animation-iteration-count: 3; + -webkit-animation-iteration-count: calc(var(--animate-repeat)*3); + animation-iteration-count: calc(var(--animate-repeat)*3); +} +.animate__animated.animate__delay-1s { + -webkit-animation-delay: 1s; + animation-delay: 1s; + -webkit-animation-delay: var(--animate-delay); + animation-delay: var(--animate-delay); +} +.animate__animated.animate__delay-2s { + -webkit-animation-delay: 2s; + animation-delay: 2s; + -webkit-animation-delay: calc(var(--animate-delay)*2); + animation-delay: calc(var(--animate-delay)*2); +} +.animate__animated.animate__delay-3s { + -webkit-animation-delay: 3s; + animation-delay: 3s; + -webkit-animation-delay: calc(var(--animate-delay)*3); + animation-delay: calc(var(--animate-delay)*3); +} +.animate__animated.animate__delay-4s { + -webkit-animation-delay: 4s; + animation-delay: 4s; + -webkit-animation-delay: calc(var(--animate-delay)*4); + animation-delay: calc(var(--animate-delay)*4); +} +.animate__animated.animate__delay-5s { + -webkit-animation-delay: 5s; + animation-delay: 5s; + -webkit-animation-delay: calc(var(--animate-delay)*5); + animation-delay: calc(var(--animate-delay)*5); +} +.animate__animated.animate__faster { + -webkit-animation-duration: .5s; + animation-duration: .5s; + -webkit-animation-duration: calc(var(--animate-duration)/2); + animation-duration: calc(var(--animate-duration)/2); +} +.animate__animated.animate__fast { + -webkit-animation-duration: .8s; + animation-duration: .8s; + -webkit-animation-duration: calc(var(--animate-duration)*0.8); + animation-duration: calc(var(--animate-duration)*0.8); +} +.animate__animated.animate__slow { + -webkit-animation-duration: 2s; + animation-duration: 2s; + -webkit-animation-duration: calc(var(--animate-duration)*2); + animation-duration: calc(var(--animate-duration)*2); +} +.animate__animated.animate__slower { + -webkit-animation-duration: 3s; + animation-duration: 3s; + -webkit-animation-duration: calc(var(--animate-duration)*3); + animation-duration: calc(var(--animate-duration)*3); +} +@media (prefers-reduced-motion:reduce), print { + .animate__animated { + -webkit-animation-duration: 1ms !important; + animation-duration: 1ms !important; + -webkit-transition-duration: 1ms !important; + transition-duration: 1ms !important; + -webkit-animation-iteration-count: 1 !important; + animation-iteration-count: 1 !important; + } + .animate__animated[class*=Out] { + opacity: 0; + } +} +@-webkit-keyframes bounce { + 0%, 20%, 53%, to { + -webkit-animation-timing-function: cubic-bezier(.215, .61, .355, 1); + animation-timing-function: cubic-bezier(.215, .61, .355, 1); + -webkit-transform: translateZ(0); + transform: translateZ(0); + } + 40%, 43% { + -webkit-animation-timing-function: cubic-bezier(.755, .05, .855, .06); + animation-timing-function: cubic-bezier(.755, .05, .855, .06); + -webkit-transform: translate3d(0, -30px, 0) scaleY(1.1); + transform: translate3d(0, -30px, 0) scaleY(1.1); + } + 70% { + -webkit-animation-timing-function: cubic-bezier(.755, .05, .855, .06); + animation-timing-function: cubic-bezier(.755, .05, .855, .06); + -webkit-transform: translate3d(0, -15px, 0) scaleY(1.05); + transform: translate3d(0, -15px, 0) scaleY(1.05); + } + 80% { + -webkit-transition-timing-function: cubic-bezier(.215, .61, .355, 1); + transition-timing-function: cubic-bezier(.215, .61, .355, 1); + -webkit-transform: translateZ(0) scaleY(.95); + transform: translateZ(0) scaleY(.95); + } + 90% { + -webkit-transform: translate3d(0, -4px, 0) scaleY(1.02); + transform: translate3d(0, -4px, 0) scaleY(1.02); + } +} +@keyframes bounce { + 0%, 20%, 53%, to { + -webkit-animation-timing-function: cubic-bezier(.215, .61, .355, 1); + animation-timing-function: cubic-bezier(.215, .61, .355, 1); + -webkit-transform: translateZ(0); + transform: translateZ(0); + } + 40%, 43% { + -webkit-animation-timing-function: cubic-bezier(.755, .05, .855, .06); + animation-timing-function: cubic-bezier(.755, .05, .855, .06); + -webkit-transform: translate3d(0, -30px, 0) scaleY(1.1); + transform: translate3d(0, -30px, 0) scaleY(1.1); + } + 70% { + -webkit-animation-timing-function: cubic-bezier(.755, .05, .855, .06); + animation-timing-function: cubic-bezier(.755, .05, .855, .06); + -webkit-transform: translate3d(0, -15px, 0) scaleY(1.05); + transform: translate3d(0, -15px, 0) scaleY(1.05); + } + 80% { + -webkit-transition-timing-function: cubic-bezier(.215, .61, .355, 1); + transition-timing-function: cubic-bezier(.215, .61, .355, 1); + -webkit-transform: translateZ(0) scaleY(.95); + transform: translateZ(0) scaleY(.95); + } + 90% { + -webkit-transform: translate3d(0, -4px, 0) scaleY(1.02); + transform: translate3d(0, -4px, 0) scaleY(1.02); + } +} +.animate__bounce { + -webkit-animation-name: bounce; + animation-name: bounce; + -webkit-transform-origin: center bottom; + transform-origin: center bottom; +} +@-webkit-keyframes flash { + 0%, 50%, to { + opacity: 1; + } + 25%, 75% { + opacity: 0; + } +} +@keyframes flash { + 0%, 50%, to { + opacity: 1; + } + 25%, 75% { + opacity: 0; + } +} +.animate__flash { + -webkit-animation-name: flash; + animation-name: flash; +} +@-webkit-keyframes pulse { + 0% { + -webkit-transform: scaleX(1); + transform: scaleX(1); + } + 50% { + -webkit-transform: scale3d(1.05, 1.05, 1.05); + transform: scale3d(1.05, 1.05, 1.05); + } + to { + -webkit-transform: scaleX(1); + transform: scaleX(1); + } +} +@keyframes pulse { + 0% { + -webkit-transform: scaleX(1); + transform: scaleX(1); + } + 50% { + -webkit-transform: scale3d(1.05, 1.05, 1.05); + transform: scale3d(1.05, 1.05, 1.05); + } + to { + -webkit-transform: scaleX(1); + transform: scaleX(1); + } +} +.animate__pulse { + -webkit-animation-name: pulse; + animation-name: pulse; + -webkit-animation-timing-function: ease-in-out; + animation-timing-function: ease-in-out; +} +@-webkit-keyframes rubberBand { + 0% { + -webkit-transform: scaleX(1); + transform: scaleX(1); + } + 30% { + -webkit-transform: scale3d(1.25, .75, 1); + transform: scale3d(1.25, .75, 1); + } + 40% { + -webkit-transform: scale3d(.75, 1.25, 1); + transform: scale3d(.75, 1.25, 1); + } + 50% { + -webkit-transform: scale3d(1.15, .85, 1); + transform: scale3d(1.15, .85, 1); + } + 65% { + -webkit-transform: scale3d(.95, 1.05, 1); + transform: scale3d(.95, 1.05, 1); + } + 75% { + -webkit-transform: scale3d(1.05, .95, 1); + transform: scale3d(1.05, .95, 1); + } + to { + -webkit-transform: scaleX(1); + transform: scaleX(1); + } +} +@keyframes rubberBand { + 0% { + -webkit-transform: scaleX(1); + transform: scaleX(1); + } + 30% { + -webkit-transform: scale3d(1.25, .75, 1); + transform: scale3d(1.25, .75, 1); + } + 40% { + -webkit-transform: scale3d(.75, 1.25, 1); + transform: scale3d(.75, 1.25, 1); + } + 50% { + -webkit-transform: scale3d(1.15, .85, 1); + transform: scale3d(1.15, .85, 1); + } + 65% { + -webkit-transform: scale3d(.95, 1.05, 1); + transform: scale3d(.95, 1.05, 1); + } + 75% { + -webkit-transform: scale3d(1.05, .95, 1); + transform: scale3d(1.05, .95, 1); + } + to { + -webkit-transform: scaleX(1); + transform: scaleX(1); + } +} +.animate__rubberBand { + -webkit-animation-name: rubberBand; + animation-name: rubberBand; +} +@-webkit-keyframes shakeX { + 0%, to { + -webkit-transform: translateZ(0); + transform: translateZ(0); + } + 10%, 30%, 50%, 70%, 90% { + -webkit-transform: translate3d(-10px, 0, 0); + transform: translate3d(-10px, 0, 0); + } + 20%, 40%, 60%, 80% { + -webkit-transform: translate3d(10px, 0, 0); + transform: translate3d(10px, 0, 0); + } +} +@keyframes shakeX { + 0%, to { + -webkit-transform: translateZ(0); + transform: translateZ(0); + } + 10%, 30%, 50%, 70%, 90% { + -webkit-transform: translate3d(-10px, 0, 0); + transform: translate3d(-10px, 0, 0); + } + 20%, 40%, 60%, 80% { + -webkit-transform: translate3d(10px, 0, 0); + transform: translate3d(10px, 0, 0); + } +} +.animate__shakeX { + -webkit-animation-name: shakeX; + animation-name: shakeX; +} +@-webkit-keyframes shakeY { + 0%, to { + -webkit-transform: translateZ(0); + transform: translateZ(0); + } + 10%, 30%, 50%, 70%, 90% { + -webkit-transform: translate3d(0, -10px, 0); + transform: translate3d(0, -10px, 0); + } + 20%, 40%, 60%, 80% { + -webkit-transform: translate3d(0, 10px, 0); + transform: translate3d(0, 10px, 0); + } +} +@keyframes shakeY { + 0%, to { + -webkit-transform: translateZ(0); + transform: translateZ(0); + } + 10%, 30%, 50%, 70%, 90% { + -webkit-transform: translate3d(0, -10px, 0); + transform: translate3d(0, -10px, 0); + } + 20%, 40%, 60%, 80% { + -webkit-transform: translate3d(0, 10px, 0); + transform: translate3d(0, 10px, 0); + } +} +.animate__shakeY { + -webkit-animation-name: shakeY; + animation-name: shakeY; +} +@-webkit-keyframes headShake { + 0% { + -webkit-transform: translateX(0); + transform: translateX(0); + } + 6.5% { + -webkit-transform: translateX(-6px) rotateY(-9deg); + transform: translateX(-6px) rotateY(-9deg); + } + 18.5% { + -webkit-transform: translateX(5px) rotateY(7deg); + transform: translateX(5px) rotateY(7deg); + } + 31.5% { + -webkit-transform: translateX(-3px) rotateY(-5deg); + transform: translateX(-3px) rotateY(-5deg); + } + 43.5% { + -webkit-transform: translateX(2px) rotateY(3deg); + transform: translateX(2px) rotateY(3deg); + } + 50% { + -webkit-transform: translateX(0); + transform: translateX(0); + } +} +@keyframes headShake { + 0% { + -webkit-transform: translateX(0); + transform: translateX(0); + } + 6.5% { + -webkit-transform: translateX(-6px) rotateY(-9deg); + transform: translateX(-6px) rotateY(-9deg); + } + 18.5% { + -webkit-transform: translateX(5px) rotateY(7deg); + transform: translateX(5px) rotateY(7deg); + } + 31.5% { + -webkit-transform: translateX(-3px) rotateY(-5deg); + transform: translateX(-3px) rotateY(-5deg); + } + 43.5% { + -webkit-transform: translateX(2px) rotateY(3deg); + transform: translateX(2px) rotateY(3deg); + } + 50% { + -webkit-transform: translateX(0); + transform: translateX(0); + } +} +.animate__headShake { + -webkit-animation-timing-function: ease-in-out; + animation-timing-function: ease-in-out; + -webkit-animation-name: headShake; + animation-name: headShake; +} +@-webkit-keyframes swing { + 20% { + -webkit-transform: rotate(15deg); + transform: rotate(15deg); + } + 40% { + -webkit-transform: rotate(-10deg); + transform: rotate(-10deg); + } + 60% { + -webkit-transform: rotate(5deg); + transform: rotate(5deg); + } + 80% { + -webkit-transform: rotate(-5deg); + transform: rotate(-5deg); + } + to { + -webkit-transform: rotate(0deg); + transform: rotate(0deg); + } +} +@keyframes swing { + 20% { + -webkit-transform: rotate(15deg); + transform: rotate(15deg); + } + 40% { + -webkit-transform: rotate(-10deg); + transform: rotate(-10deg); + } + 60% { + -webkit-transform: rotate(5deg); + transform: rotate(5deg); + } + 80% { + -webkit-transform: rotate(-5deg); + transform: rotate(-5deg); + } + to { + -webkit-transform: rotate(0deg); + transform: rotate(0deg); + } +} +.animate__swing { + -webkit-transform-origin: top center; + transform-origin: top center; + -webkit-animation-name: swing; + animation-name: swing; +} +@-webkit-keyframes tada { + 0% { + -webkit-transform: scaleX(1); + transform: scaleX(1); + } + 10%, 20% { + -webkit-transform: scale3d(.9, .9, .9) rotate(-3deg); + transform: scale3d(.9, .9, .9) rotate(-3deg); + } + 30%, 50%, 70%, 90% { + -webkit-transform: scale3d(1.1, 1.1, 1.1) rotate(3deg); + transform: scale3d(1.1, 1.1, 1.1) rotate(3deg); + } + 40%, 60%, 80% { + -webkit-transform: scale3d(1.1, 1.1, 1.1) rotate(-3deg); + transform: scale3d(1.1, 1.1, 1.1) rotate(-3deg); + } + to { + -webkit-transform: scaleX(1); + transform: scaleX(1); + } +} +@keyframes tada { + 0% { + -webkit-transform: scaleX(1); + transform: scaleX(1); + } + 10%, 20% { + -webkit-transform: scale3d(.9, .9, .9) rotate(-3deg); + transform: scale3d(.9, .9, .9) rotate(-3deg); + } + 30%, 50%, 70%, 90% { + -webkit-transform: scale3d(1.1, 1.1, 1.1) rotate(3deg); + transform: scale3d(1.1, 1.1, 1.1) rotate(3deg); + } + 40%, 60%, 80% { + -webkit-transform: scale3d(1.1, 1.1, 1.1) rotate(-3deg); + transform: scale3d(1.1, 1.1, 1.1) rotate(-3deg); + } + to { + -webkit-transform: scaleX(1); + transform: scaleX(1); + } +} +.animate__tada { + -webkit-animation-name: tada; + animation-name: tada; +} +@-webkit-keyframes wobble { + 0% { + -webkit-transform: translateZ(0); + transform: translateZ(0); + } + 15% { + -webkit-transform: translate3d(-25%, 0, 0) rotate(-5deg); + transform: translate3d(-25%, 0, 0) rotate(-5deg); + } + 30% { + -webkit-transform: translate3d(20%, 0, 0) rotate(3deg); + transform: translate3d(20%, 0, 0) rotate(3deg); + } + 45% { + -webkit-transform: translate3d(-15%, 0, 0) rotate(-3deg); + transform: translate3d(-15%, 0, 0) rotate(-3deg); + } + 60% { + -webkit-transform: translate3d(10%, 0, 0) rotate(2deg); + transform: translate3d(10%, 0, 0) rotate(2deg); + } + 75% { + -webkit-transform: translate3d(-5%, 0, 0) rotate(-1deg); + transform: translate3d(-5%, 0, 0) rotate(-1deg); + } + to { + -webkit-transform: translateZ(0); + transform: translateZ(0); + } +} +@keyframes wobble { + 0% { + -webkit-transform: translateZ(0); + transform: translateZ(0); + } + 15% { + -webkit-transform: translate3d(-25%, 0, 0) rotate(-5deg); + transform: translate3d(-25%, 0, 0) rotate(-5deg); + } + 30% { + -webkit-transform: translate3d(20%, 0, 0) rotate(3deg); + transform: translate3d(20%, 0, 0) rotate(3deg); + } + 45% { + -webkit-transform: translate3d(-15%, 0, 0) rotate(-3deg); + transform: translate3d(-15%, 0, 0) rotate(-3deg); + } + 60% { + -webkit-transform: translate3d(10%, 0, 0) rotate(2deg); + transform: translate3d(10%, 0, 0) rotate(2deg); + } + 75% { + -webkit-transform: translate3d(-5%, 0, 0) rotate(-1deg); + transform: translate3d(-5%, 0, 0) rotate(-1deg); + } + to { + -webkit-transform: translateZ(0); + transform: translateZ(0); + } +} +.animate__wobble { + -webkit-animation-name: wobble; + animation-name: wobble; +} +@-webkit-keyframes jello { + 0%, 11.1%, to { + -webkit-transform: translateZ(0); + transform: translateZ(0); + } + 22.2% { + -webkit-transform: skewX(-12.5deg) skewY(-12.5deg); + transform: skewX(-12.5deg) skewY(-12.5deg); + } + 33.3% { + -webkit-transform: skewX(6.25deg) skewY(6.25deg); + transform: skewX(6.25deg) skewY(6.25deg); + } + 44.4% { + -webkit-transform: skewX(-3.125deg) skewY(-3.125deg); + transform: skewX(-3.125deg) skewY(-3.125deg); + } + 55.5% { + -webkit-transform: skewX(1.5625deg) skewY(1.5625deg); + transform: skewX(1.5625deg) skewY(1.5625deg); + } + 66.6% { + -webkit-transform: skewX(-.78125deg) skewY(-.78125deg); + transform: skewX(-.78125deg) skewY(-.78125deg); + } + 77.7% { + -webkit-transform: skewX(.390625deg) skewY(.390625deg); + transform: skewX(.390625deg) skewY(.390625deg); + } + 88.8% { + -webkit-transform: skewX(-.1953125deg) skewY(-.1953125deg); + transform: skewX(-.1953125deg) skewY(-.1953125deg); + } +} +@keyframes jello { + 0%, 11.1%, to { + -webkit-transform: translateZ(0); + transform: translateZ(0); + } + 22.2% { + -webkit-transform: skewX(-12.5deg) skewY(-12.5deg); + transform: skewX(-12.5deg) skewY(-12.5deg); + } + 33.3% { + -webkit-transform: skewX(6.25deg) skewY(6.25deg); + transform: skewX(6.25deg) skewY(6.25deg); + } + 44.4% { + -webkit-transform: skewX(-3.125deg) skewY(-3.125deg); + transform: skewX(-3.125deg) skewY(-3.125deg); + } + 55.5% { + -webkit-transform: skewX(1.5625deg) skewY(1.5625deg); + transform: skewX(1.5625deg) skewY(1.5625deg); + } + 66.6% { + -webkit-transform: skewX(-.78125deg) skewY(-.78125deg); + transform: skewX(-.78125deg) skewY(-.78125deg); + } + 77.7% { + -webkit-transform: skewX(.390625deg) skewY(.390625deg); + transform: skewX(.390625deg) skewY(.390625deg); + } + 88.8% { + -webkit-transform: skewX(-.1953125deg) skewY(-.1953125deg); + transform: skewX(-.1953125deg) skewY(-.1953125deg); + } +} +.animate__jello { + -webkit-animation-name: jello; + animation-name: jello; + -webkit-transform-origin: center; + transform-origin: center; +} +@-webkit-keyframes heartBeat { + 0% { + -webkit-transform: scale(1); + transform: scale(1); + } + 14% { + -webkit-transform: scale(1.3); + transform: scale(1.3); + } + 28% { + -webkit-transform: scale(1); + transform: scale(1); + } + 42% { + -webkit-transform: scale(1.3); + transform: scale(1.3); + } + 70% { + -webkit-transform: scale(1); + transform: scale(1); + } +} +@keyframes heartBeat { + 0% { + -webkit-transform: scale(1); + transform: scale(1); + } + 14% { + -webkit-transform: scale(1.3); + transform: scale(1.3); + } + 28% { + -webkit-transform: scale(1); + transform: scale(1); + } + 42% { + -webkit-transform: scale(1.3); + transform: scale(1.3); + } + 70% { + -webkit-transform: scale(1); + transform: scale(1); + } +} +.animate__heartBeat { + -webkit-animation-name: heartBeat; + animation-name: heartBeat; + -webkit-animation-duration: 1.3s; + animation-duration: 1.3s; + -webkit-animation-duration: calc(var(--animate-duration)*1.3); + animation-duration: calc(var(--animate-duration)*1.3); + -webkit-animation-timing-function: ease-in-out; + animation-timing-function: ease-in-out; +} +@-webkit-keyframes backInDown { + 0% { + -webkit-transform: translateY(-1200px) scale(.7); + transform: translateY(-1200px) scale(.7); + opacity: .7; + } + 80% { + -webkit-transform: translateY(0) scale(.7); + transform: translateY(0) scale(.7); + opacity: .7; + } + to { + -webkit-transform: scale(1); + transform: scale(1); + opacity: 1; + } +} +@keyframes backInDown { + 0% { + -webkit-transform: translateY(-1200px) scale(.7); + transform: translateY(-1200px) scale(.7); + opacity: .7; + } + 80% { + -webkit-transform: translateY(0) scale(.7); + transform: translateY(0) scale(.7); + opacity: .7; + } + to { + -webkit-transform: scale(1); + transform: scale(1); + opacity: 1; + } +} +.animate__backInDown { + -webkit-animation-name: backInDown; + animation-name: backInDown; +} +@-webkit-keyframes backInLeft { + 0% { + -webkit-transform: translateX(-2000px) scale(.7); + transform: translateX(-2000px) scale(.7); + opacity: .7; + } + 80% { + -webkit-transform: translateX(0) scale(.7); + transform: translateX(0) scale(.7); + opacity: .7; + } + to { + -webkit-transform: scale(1); + transform: scale(1); + opacity: 1; + } +} +@keyframes backInLeft { + 0% { + -webkit-transform: translateX(-2000px) scale(.7); + transform: translateX(-2000px) scale(.7); + opacity: .7; + } + 80% { + -webkit-transform: translateX(0) scale(.7); + transform: translateX(0) scale(.7); + opacity: .7; + } + to { + -webkit-transform: scale(1); + transform: scale(1); + opacity: 1; + } +} +.animate__backInLeft { + -webkit-animation-name: backInLeft; + animation-name: backInLeft; +} +@-webkit-keyframes backInRight { + 0% { + -webkit-transform: translateX(2000px) scale(.7); + transform: translateX(2000px) scale(.7); + opacity: .7; + } + 80% { + -webkit-transform: translateX(0) scale(.7); + transform: translateX(0) scale(.7); + opacity: .7; + } + to { + -webkit-transform: scale(1); + transform: scale(1); + opacity: 1; + } +} +@keyframes backInRight { + 0% { + -webkit-transform: translateX(2000px) scale(.7); + transform: translateX(2000px) scale(.7); + opacity: .7; + } + 80% { + -webkit-transform: translateX(0) scale(.7); + transform: translateX(0) scale(.7); + opacity: .7; + } + to { + -webkit-transform: scale(1); + transform: scale(1); + opacity: 1; + } +} +.animate__backInRight { + -webkit-animation-name: backInRight; + animation-name: backInRight; +} +@-webkit-keyframes backInUp { + 0% { + -webkit-transform: translateY(1200px) scale(.7); + transform: translateY(1200px) scale(.7); + opacity: .7; + } + 80% { + -webkit-transform: translateY(0) scale(.7); + transform: translateY(0) scale(.7); + opacity: .7; + } + to { + -webkit-transform: scale(1); + transform: scale(1); + opacity: 1; + } +} +@keyframes backInUp { + 0% { + -webkit-transform: translateY(1200px) scale(.7); + transform: translateY(1200px) scale(.7); + opacity: .7; + } + 80% { + -webkit-transform: translateY(0) scale(.7); + transform: translateY(0) scale(.7); + opacity: .7; + } + to { + -webkit-transform: scale(1); + transform: scale(1); + opacity: 1; + } +} +.animate__backInUp { + -webkit-animation-name: backInUp; + animation-name: backInUp; +} +@-webkit-keyframes backOutDown { + 0% { + -webkit-transform: scale(1); + transform: scale(1); + opacity: 1; + } + 20% { + -webkit-transform: translateY(0) scale(.7); + transform: translateY(0) scale(.7); + opacity: .7; + } + to { + -webkit-transform: translateY(700px) scale(.7); + transform: translateY(700px) scale(.7); + opacity: .7; + } +} +@keyframes backOutDown { + 0% { + -webkit-transform: scale(1); + transform: scale(1); + opacity: 1; + } + 20% { + -webkit-transform: translateY(0) scale(.7); + transform: translateY(0) scale(.7); + opacity: .7; + } + to { + -webkit-transform: translateY(700px) scale(.7); + transform: translateY(700px) scale(.7); + opacity: .7; + } +} +.animate__backOutDown { + -webkit-animation-name: backOutDown; + animation-name: backOutDown; +} +@-webkit-keyframes backOutLeft { + 0% { + -webkit-transform: scale(1); + transform: scale(1); + opacity: 1; + } + 20% { + -webkit-transform: translateX(0) scale(.7); + transform: translateX(0) scale(.7); + opacity: .7; + } + to { + -webkit-transform: translateX(-2000px) scale(.7); + transform: translateX(-2000px) scale(.7); + opacity: .7; + } +} +@keyframes backOutLeft { + 0% { + -webkit-transform: scale(1); + transform: scale(1); + opacity: 1; + } + 20% { + -webkit-transform: translateX(0) scale(.7); + transform: translateX(0) scale(.7); + opacity: .7; + } + to { + -webkit-transform: translateX(-2000px) scale(.7); + transform: translateX(-2000px) scale(.7); + opacity: .7; + } +} +.animate__backOutLeft { + -webkit-animation-name: backOutLeft; + animation-name: backOutLeft; +} +@-webkit-keyframes backOutRight { + 0% { + -webkit-transform: scale(1); + transform: scale(1); + opacity: 1; + } + 20% { + -webkit-transform: translateX(0) scale(.7); + transform: translateX(0) scale(.7); + opacity: .7; + } + to { + -webkit-transform: translateX(2000px) scale(.7); + transform: translateX(2000px) scale(.7); + opacity: .7; + } +} +@keyframes backOutRight { + 0% { + -webkit-transform: scale(1); + transform: scale(1); + opacity: 1; + } + 20% { + -webkit-transform: translateX(0) scale(.7); + transform: translateX(0) scale(.7); + opacity: .7; + } + to { + -webkit-transform: translateX(2000px) scale(.7); + transform: translateX(2000px) scale(.7); + opacity: .7; + } +} +.animate__backOutRight { + -webkit-animation-name: backOutRight; + animation-name: backOutRight; +} +@-webkit-keyframes backOutUp { + 0% { + -webkit-transform: scale(1); + transform: scale(1); + opacity: 1; + } + 20% { + -webkit-transform: translateY(0) scale(.7); + transform: translateY(0) scale(.7); + opacity: .7; + } + to { + -webkit-transform: translateY(-700px) scale(.7); + transform: translateY(-700px) scale(.7); + opacity: .7; + } +} +@keyframes backOutUp { + 0% { + -webkit-transform: scale(1); + transform: scale(1); + opacity: 1; + } + 20% { + -webkit-transform: translateY(0) scale(.7); + transform: translateY(0) scale(.7); + opacity: .7; + } + to { + -webkit-transform: translateY(-700px) scale(.7); + transform: translateY(-700px) scale(.7); + opacity: .7; + } +} +.animate__backOutUp { + -webkit-animation-name: backOutUp; + animation-name: backOutUp; +} +@-webkit-keyframes bounceIn { + 0%, 20%, 40%, 60%, 80%, to { + -webkit-animation-timing-function: cubic-bezier(.215, .61, .355, 1); + animation-timing-function: cubic-bezier(.215, .61, .355, 1); + } + 0% { + opacity: 0; + -webkit-transform: scale3d(.3, .3, .3); + transform: scale3d(.3, .3, .3); + } + 20% { + -webkit-transform: scale3d(1.1, 1.1, 1.1); + transform: scale3d(1.1, 1.1, 1.1); + } + 40% { + -webkit-transform: scale3d(.9, .9, .9); + transform: scale3d(.9, .9, .9); + } + 60% { + opacity: 1; + -webkit-transform: scale3d(1.03, 1.03, 1.03); + transform: scale3d(1.03, 1.03, 1.03); + } + 80% { + -webkit-transform: scale3d(.97, .97, .97); + transform: scale3d(.97, .97, .97); + } + to { + opacity: 1; + -webkit-transform: scaleX(1); + transform: scaleX(1); + } +} +@keyframes bounceIn { + 0%, 20%, 40%, 60%, 80%, to { + -webkit-animation-timing-function: cubic-bezier(.215, .61, .355, 1); + animation-timing-function: cubic-bezier(.215, .61, .355, 1); + } + 0% { + opacity: 0; + -webkit-transform: scale3d(.3, .3, .3); + transform: scale3d(.3, .3, .3); + } + 20% { + -webkit-transform: scale3d(1.1, 1.1, 1.1); + transform: scale3d(1.1, 1.1, 1.1); + } + 40% { + -webkit-transform: scale3d(.9, .9, .9); + transform: scale3d(.9, .9, .9); + } + 60% { + opacity: 1; + -webkit-transform: scale3d(1.03, 1.03, 1.03); + transform: scale3d(1.03, 1.03, 1.03); + } + 80% { + -webkit-transform: scale3d(.97, .97, .97); + transform: scale3d(.97, .97, .97); + } + to { + opacity: 1; + -webkit-transform: scaleX(1); + transform: scaleX(1); + } +} +.animate__bounceIn { + -webkit-animation-duration: .75s; + animation-duration: .75s; + -webkit-animation-duration: calc(var(--animate-duration)*0.75); + animation-duration: calc(var(--animate-duration)*0.75); + -webkit-animation-name: bounceIn; + animation-name: bounceIn; +} +@-webkit-keyframes bounceInDown { + 0%, 60%, 75%, 90%, to { + -webkit-animation-timing-function: cubic-bezier(.215, .61, .355, 1); + animation-timing-function: cubic-bezier(.215, .61, .355, 1); + } + 0% { + opacity: 0; + -webkit-transform: translate3d(0, -3000px, 0) scaleY(3); + transform: translate3d(0, -3000px, 0) scaleY(3); + } + 60% { + opacity: 1; + -webkit-transform: translate3d(0, 25px, 0) scaleY(.9); + transform: translate3d(0, 25px, 0) scaleY(.9); + } + 75% { + -webkit-transform: translate3d(0, -10px, 0) scaleY(.95); + transform: translate3d(0, -10px, 0) scaleY(.95); + } + 90% { + -webkit-transform: translate3d(0, 5px, 0) scaleY(.985); + transform: translate3d(0, 5px, 0) scaleY(.985); + } + to { + -webkit-transform: translateZ(0); + transform: translateZ(0); + } +} +@keyframes bounceInDown { + 0%, 60%, 75%, 90%, to { + -webkit-animation-timing-function: cubic-bezier(.215, .61, .355, 1); + animation-timing-function: cubic-bezier(.215, .61, .355, 1); + } + 0% { + opacity: 0; + -webkit-transform: translate3d(0, -3000px, 0) scaleY(3); + transform: translate3d(0, -3000px, 0) scaleY(3); + } + 60% { + opacity: 1; + -webkit-transform: translate3d(0, 25px, 0) scaleY(.9); + transform: translate3d(0, 25px, 0) scaleY(.9); + } + 75% { + -webkit-transform: translate3d(0, -10px, 0) scaleY(.95); + transform: translate3d(0, -10px, 0) scaleY(.95); + } + 90% { + -webkit-transform: translate3d(0, 5px, 0) scaleY(.985); + transform: translate3d(0, 5px, 0) scaleY(.985); + } + to { + -webkit-transform: translateZ(0); + transform: translateZ(0); + } +} +.animate__bounceInDown { + -webkit-animation-name: bounceInDown; + animation-name: bounceInDown; +} +@-webkit-keyframes bounceInLeft { + 0%, 60%, 75%, 90%, to { + -webkit-animation-timing-function: cubic-bezier(.215, .61, .355, 1); + animation-timing-function: cubic-bezier(.215, .61, .355, 1); + } + 0% { + opacity: 0; + -webkit-transform: translate3d(-3000px, 0, 0) scaleX(3); + transform: translate3d(-3000px, 0, 0) scaleX(3); + } + 60% { + opacity: 1; + -webkit-transform: translate3d(25px, 0, 0) scaleX(1); + transform: translate3d(25px, 0, 0) scaleX(1); + } + 75% { + -webkit-transform: translate3d(-10px, 0, 0) scaleX(.98); + transform: translate3d(-10px, 0, 0) scaleX(.98); + } + 90% { + -webkit-transform: translate3d(5px, 0, 0) scaleX(.995); + transform: translate3d(5px, 0, 0) scaleX(.995); + } + to { + -webkit-transform: translateZ(0); + transform: translateZ(0); + } +} +@keyframes bounceInLeft { + 0%, 60%, 75%, 90%, to { + -webkit-animation-timing-function: cubic-bezier(.215, .61, .355, 1); + animation-timing-function: cubic-bezier(.215, .61, .355, 1); + } + 0% { + opacity: 0; + -webkit-transform: translate3d(-3000px, 0, 0) scaleX(3); + transform: translate3d(-3000px, 0, 0) scaleX(3); + } + 60% { + opacity: 1; + -webkit-transform: translate3d(25px, 0, 0) scaleX(1); + transform: translate3d(25px, 0, 0) scaleX(1); + } + 75% { + -webkit-transform: translate3d(-10px, 0, 0) scaleX(.98); + transform: translate3d(-10px, 0, 0) scaleX(.98); + } + 90% { + -webkit-transform: translate3d(5px, 0, 0) scaleX(.995); + transform: translate3d(5px, 0, 0) scaleX(.995); + } + to { + -webkit-transform: translateZ(0); + transform: translateZ(0); + } +} +.animate__bounceInLeft { + -webkit-animation-name: bounceInLeft; + animation-name: bounceInLeft; +} +@-webkit-keyframes bounceInRight { + 0%, 60%, 75%, 90%, to { + -webkit-animation-timing-function: cubic-bezier(.215, .61, .355, 1); + animation-timing-function: cubic-bezier(.215, .61, .355, 1); + } + 0% { + opacity: 0; + -webkit-transform: translate3d(3000px, 0, 0) scaleX(3); + transform: translate3d(3000px, 0, 0) scaleX(3); + } + 60% { + opacity: 1; + -webkit-transform: translate3d(-25px, 0, 0) scaleX(1); + transform: translate3d(-25px, 0, 0) scaleX(1); + } + 75% { + -webkit-transform: translate3d(10px, 0, 0) scaleX(.98); + transform: translate3d(10px, 0, 0) scaleX(.98); + } + 90% { + -webkit-transform: translate3d(-5px, 0, 0) scaleX(.995); + transform: translate3d(-5px, 0, 0) scaleX(.995); + } + to { + -webkit-transform: translateZ(0); + transform: translateZ(0); + } +} +@keyframes bounceInRight { + 0%, 60%, 75%, 90%, to { + -webkit-animation-timing-function: cubic-bezier(.215, .61, .355, 1); + animation-timing-function: cubic-bezier(.215, .61, .355, 1); + } + 0% { + opacity: 0; + -webkit-transform: translate3d(3000px, 0, 0) scaleX(3); + transform: translate3d(3000px, 0, 0) scaleX(3); + } + 60% { + opacity: 1; + -webkit-transform: translate3d(-25px, 0, 0) scaleX(1); + transform: translate3d(-25px, 0, 0) scaleX(1); + } + 75% { + -webkit-transform: translate3d(10px, 0, 0) scaleX(.98); + transform: translate3d(10px, 0, 0) scaleX(.98); + } + 90% { + -webkit-transform: translate3d(-5px, 0, 0) scaleX(.995); + transform: translate3d(-5px, 0, 0) scaleX(.995); + } + to { + -webkit-transform: translateZ(0); + transform: translateZ(0); + } +} +.animate__bounceInRight { + -webkit-animation-name: bounceInRight; + animation-name: bounceInRight; +} +@-webkit-keyframes bounceInUp { + 0%, 60%, 75%, 90%, to { + -webkit-animation-timing-function: cubic-bezier(.215, .61, .355, 1); + animation-timing-function: cubic-bezier(.215, .61, .355, 1); + } + 0% { + opacity: 0; + -webkit-transform: translate3d(0, 3000px, 0) scaleY(5); + transform: translate3d(0, 3000px, 0) scaleY(5); + } + 60% { + opacity: 1; + -webkit-transform: translate3d(0, -20px, 0) scaleY(.9); + transform: translate3d(0, -20px, 0) scaleY(.9); + } + 75% { + -webkit-transform: translate3d(0, 10px, 0) scaleY(.95); + transform: translate3d(0, 10px, 0) scaleY(.95); + } + 90% { + -webkit-transform: translate3d(0, -5px, 0) scaleY(.985); + transform: translate3d(0, -5px, 0) scaleY(.985); + } + to { + -webkit-transform: translateZ(0); + transform: translateZ(0); + } +} +@keyframes bounceInUp { + 0%, 60%, 75%, 90%, to { + -webkit-animation-timing-function: cubic-bezier(.215, .61, .355, 1); + animation-timing-function: cubic-bezier(.215, .61, .355, 1); + } + 0% { + opacity: 0; + -webkit-transform: translate3d(0, 3000px, 0) scaleY(5); + transform: translate3d(0, 3000px, 0) scaleY(5); + } + 60% { + opacity: 1; + -webkit-transform: translate3d(0, -20px, 0) scaleY(.9); + transform: translate3d(0, -20px, 0) scaleY(.9); + } + 75% { + -webkit-transform: translate3d(0, 10px, 0) scaleY(.95); + transform: translate3d(0, 10px, 0) scaleY(.95); + } + 90% { + -webkit-transform: translate3d(0, -5px, 0) scaleY(.985); + transform: translate3d(0, -5px, 0) scaleY(.985); + } + to { + -webkit-transform: translateZ(0); + transform: translateZ(0); + } +} +.animate__bounceInUp { + -webkit-animation-name: bounceInUp; + animation-name: bounceInUp; +} +@-webkit-keyframes bounceOut { + 20% { + -webkit-transform: scale3d(.9, .9, .9); + transform: scale3d(.9, .9, .9); + } + 50%, 55% { + opacity: 1; + -webkit-transform: scale3d(1.1, 1.1, 1.1); + transform: scale3d(1.1, 1.1, 1.1); + } + to { + opacity: 0; + -webkit-transform: scale3d(.3, .3, .3); + transform: scale3d(.3, .3, .3); + } +} +@keyframes bounceOut { + 20% { + -webkit-transform: scale3d(.9, .9, .9); + transform: scale3d(.9, .9, .9); + } + 50%, 55% { + opacity: 1; + -webkit-transform: scale3d(1.1, 1.1, 1.1); + transform: scale3d(1.1, 1.1, 1.1); + } + to { + opacity: 0; + -webkit-transform: scale3d(.3, .3, .3); + transform: scale3d(.3, .3, .3); + } +} +.animate__bounceOut { + -webkit-animation-duration: .75s; + animation-duration: .75s; + -webkit-animation-duration: calc(var(--animate-duration)*0.75); + animation-duration: calc(var(--animate-duration)*0.75); + -webkit-animation-name: bounceOut; + animation-name: bounceOut; +} +@-webkit-keyframes bounceOutDown { + 20% { + -webkit-transform: translate3d(0, 10px, 0) scaleY(.985); + transform: translate3d(0, 10px, 0) scaleY(.985); + } + 40%, 45% { + opacity: 1; + -webkit-transform: translate3d(0, -20px, 0) scaleY(.9); + transform: translate3d(0, -20px, 0) scaleY(.9); + } + to { + opacity: 0; + -webkit-transform: translate3d(0, 2000px, 0) scaleY(3); + transform: translate3d(0, 2000px, 0) scaleY(3); + } +} +@keyframes bounceOutDown { + 20% { + -webkit-transform: translate3d(0, 10px, 0) scaleY(.985); + transform: translate3d(0, 10px, 0) scaleY(.985); + } + 40%, 45% { + opacity: 1; + -webkit-transform: translate3d(0, -20px, 0) scaleY(.9); + transform: translate3d(0, -20px, 0) scaleY(.9); + } + to { + opacity: 0; + -webkit-transform: translate3d(0, 2000px, 0) scaleY(3); + transform: translate3d(0, 2000px, 0) scaleY(3); + } +} +.animate__bounceOutDown { + -webkit-animation-name: bounceOutDown; + animation-name: bounceOutDown; +} +@-webkit-keyframes bounceOutLeft { + 20% { + opacity: 1; + -webkit-transform: translate3d(20px, 0, 0) scaleX(.9); + transform: translate3d(20px, 0, 0) scaleX(.9); + } + to { + opacity: 0; + -webkit-transform: translate3d(-2000px, 0, 0) scaleX(2); + transform: translate3d(-2000px, 0, 0) scaleX(2); + } +} +@keyframes bounceOutLeft { + 20% { + opacity: 1; + -webkit-transform: translate3d(20px, 0, 0) scaleX(.9); + transform: translate3d(20px, 0, 0) scaleX(.9); + } + to { + opacity: 0; + -webkit-transform: translate3d(-2000px, 0, 0) scaleX(2); + transform: translate3d(-2000px, 0, 0) scaleX(2); + } +} +.animate__bounceOutLeft { + -webkit-animation-name: bounceOutLeft; + animation-name: bounceOutLeft; +} +@-webkit-keyframes bounceOutRight { + 20% { + opacity: 1; + -webkit-transform: translate3d(-20px, 0, 0) scaleX(.9); + transform: translate3d(-20px, 0, 0) scaleX(.9); + } + to { + opacity: 0; + -webkit-transform: translate3d(2000px, 0, 0) scaleX(2); + transform: translate3d(2000px, 0, 0) scaleX(2); + } +} +@keyframes bounceOutRight { + 20% { + opacity: 1; + -webkit-transform: translate3d(-20px, 0, 0) scaleX(.9); + transform: translate3d(-20px, 0, 0) scaleX(.9); + } + to { + opacity: 0; + -webkit-transform: translate3d(2000px, 0, 0) scaleX(2); + transform: translate3d(2000px, 0, 0) scaleX(2); + } +} +.animate__bounceOutRight { + -webkit-animation-name: bounceOutRight; + animation-name: bounceOutRight; +} +@-webkit-keyframes bounceOutUp { + 20% { + -webkit-transform: translate3d(0, -10px, 0) scaleY(.985); + transform: translate3d(0, -10px, 0) scaleY(.985); + } + 40%, 45% { + opacity: 1; + -webkit-transform: translate3d(0, 20px, 0) scaleY(.9); + transform: translate3d(0, 20px, 0) scaleY(.9); + } + to { + opacity: 0; + -webkit-transform: translate3d(0, -2000px, 0) scaleY(3); + transform: translate3d(0, -2000px, 0) scaleY(3); + } +} +@keyframes bounceOutUp { + 20% { + -webkit-transform: translate3d(0, -10px, 0) scaleY(.985); + transform: translate3d(0, -10px, 0) scaleY(.985); + } + 40%, 45% { + opacity: 1; + -webkit-transform: translate3d(0, 20px, 0) scaleY(.9); + transform: translate3d(0, 20px, 0) scaleY(.9); + } + to { + opacity: 0; + -webkit-transform: translate3d(0, -2000px, 0) scaleY(3); + transform: translate3d(0, -2000px, 0) scaleY(3); + } +} +.animate__bounceOutUp { + -webkit-animation-name: bounceOutUp; + animation-name: bounceOutUp; +} +@-webkit-keyframes fadeIn { + 0% { + opacity: 0; + } + to { + opacity: 1; + } +} +@keyframes fadeIn { + 0% { + opacity: 0; + } + to { + opacity: 1; + } +} +.animate__fadeIn { + -webkit-animation-name: fadeIn; + animation-name: fadeIn; +} +@-webkit-keyframes fadeInDown { + 0% { + opacity: 0; + -webkit-transform: translate3d(0, -100%, 0); + transform: translate3d(0, -100%, 0); + } + to { + opacity: 1; + -webkit-transform: translateZ(0); + transform: translateZ(0); + } +} +@keyframes fadeInDown { + 0% { + opacity: 0; + -webkit-transform: translate3d(0, -100%, 0); + transform: translate3d(0, -100%, 0); + } + to { + opacity: 1; + -webkit-transform: translateZ(0); + transform: translateZ(0); + } +} +.animate__fadeInDown { + -webkit-animation-name: fadeInDown; + animation-name: fadeInDown; +} +@-webkit-keyframes fadeInDownBig { + 0% { + opacity: 0; + -webkit-transform: translate3d(0, -2000px, 0); + transform: translate3d(0, -2000px, 0); + } + to { + opacity: 1; + -webkit-transform: translateZ(0); + transform: translateZ(0); + } +} +@keyframes fadeInDownBig { + 0% { + opacity: 0; + -webkit-transform: translate3d(0, -2000px, 0); + transform: translate3d(0, -2000px, 0); + } + to { + opacity: 1; + -webkit-transform: translateZ(0); + transform: translateZ(0); + } +} +.animate__fadeInDownBig { + -webkit-animation-name: fadeInDownBig; + animation-name: fadeInDownBig; +} +@-webkit-keyframes fadeInLeft { + 0% { + opacity: 0; + -webkit-transform: translate3d(-100%, 0, 0); + transform: translate3d(-100%, 0, 0); + } + to { + opacity: 1; + -webkit-transform: translateZ(0); + transform: translateZ(0); + } +} +@keyframes fadeInLeft { + 0% { + opacity: 0; + -webkit-transform: translate3d(-100%, 0, 0); + transform: translate3d(-100%, 0, 0); + } + to { + opacity: 1; + -webkit-transform: translateZ(0); + transform: translateZ(0); + } +} +.animate__fadeInLeft { + -webkit-animation-name: fadeInLeft; + animation-name: fadeInLeft; +} +@-webkit-keyframes fadeInLeftBig { + 0% { + opacity: 0; + -webkit-transform: translate3d(-2000px, 0, 0); + transform: translate3d(-2000px, 0, 0); + } + to { + opacity: 1; + -webkit-transform: translateZ(0); + transform: translateZ(0); + } +} +@keyframes fadeInLeftBig { + 0% { + opacity: 0; + -webkit-transform: translate3d(-2000px, 0, 0); + transform: translate3d(-2000px, 0, 0); + } + to { + opacity: 1; + -webkit-transform: translateZ(0); + transform: translateZ(0); + } +} +.animate__fadeInLeftBig { + -webkit-animation-name: fadeInLeftBig; + animation-name: fadeInLeftBig; +} +@-webkit-keyframes fadeInRight { + 0% { + opacity: 0; + -webkit-transform: translate3d(100%, 0, 0); + transform: translate3d(100%, 0, 0); + } + to { + opacity: 1; + -webkit-transform: translateZ(0); + transform: translateZ(0); + } +} +@keyframes fadeInRight { + 0% { + opacity: 0; + -webkit-transform: translate3d(100%, 0, 0); + transform: translate3d(100%, 0, 0); + } + to { + opacity: 1; + -webkit-transform: translateZ(0); + transform: translateZ(0); + } +} +.animate__fadeInRight { + -webkit-animation-name: fadeInRight; + animation-name: fadeInRight; +} +@-webkit-keyframes fadeInRightBig { + 0% { + opacity: 0; + -webkit-transform: translate3d(2000px, 0, 0); + transform: translate3d(2000px, 0, 0); + } + to { + opacity: 1; + -webkit-transform: translateZ(0); + transform: translateZ(0); + } +} +@keyframes fadeInRightBig { + 0% { + opacity: 0; + -webkit-transform: translate3d(2000px, 0, 0); + transform: translate3d(2000px, 0, 0); + } + to { + opacity: 1; + -webkit-transform: translateZ(0); + transform: translateZ(0); + } +} +.animate__fadeInRightBig { + -webkit-animation-name: fadeInRightBig; + animation-name: fadeInRightBig; +} +@-webkit-keyframes fadeInUp { + 0% { + opacity: 0; + -webkit-transform: translate3d(0, 100%, 0); + transform: translate3d(0, 100%, 0); + } + to { + opacity: 1; + -webkit-transform: translateZ(0); + transform: translateZ(0); + } +} +@keyframes fadeInUp { + 0% { + opacity: 0; + -webkit-transform: translate3d(0, 100%, 0); + transform: translate3d(0, 100%, 0); + } + to { + opacity: 1; + -webkit-transform: translateZ(0); + transform: translateZ(0); + } +} +.animate__fadeInUp { + -webkit-animation-name: fadeInUp; + animation-name: fadeInUp; +} +@-webkit-keyframes fadeInUpBig { + 0% { + opacity: 0; + -webkit-transform: translate3d(0, 2000px, 0); + transform: translate3d(0, 2000px, 0); + } + to { + opacity: 1; + -webkit-transform: translateZ(0); + transform: translateZ(0); + } +} +@keyframes fadeInUpBig { + 0% { + opacity: 0; + -webkit-transform: translate3d(0, 2000px, 0); + transform: translate3d(0, 2000px, 0); + } + to { + opacity: 1; + -webkit-transform: translateZ(0); + transform: translateZ(0); + } +} +.animate__fadeInUpBig { + -webkit-animation-name: fadeInUpBig; + animation-name: fadeInUpBig; +} +@-webkit-keyframes fadeInTopLeft { + 0% { + opacity: 0; + -webkit-transform: translate3d(-100%, -100%, 0); + transform: translate3d(-100%, -100%, 0); + } + to { + opacity: 1; + -webkit-transform: translateZ(0); + transform: translateZ(0); + } +} +@keyframes fadeInTopLeft { + 0% { + opacity: 0; + -webkit-transform: translate3d(-100%, -100%, 0); + transform: translate3d(-100%, -100%, 0); + } + to { + opacity: 1; + -webkit-transform: translateZ(0); + transform: translateZ(0); + } +} +.animate__fadeInTopLeft { + -webkit-animation-name: fadeInTopLeft; + animation-name: fadeInTopLeft; +} +@-webkit-keyframes fadeInTopRight { + 0% { + opacity: 0; + -webkit-transform: translate3d(100%, -100%, 0); + transform: translate3d(100%, -100%, 0); + } + to { + opacity: 1; + -webkit-transform: translateZ(0); + transform: translateZ(0); + } +} +@keyframes fadeInTopRight { + 0% { + opacity: 0; + -webkit-transform: translate3d(100%, -100%, 0); + transform: translate3d(100%, -100%, 0); + } + to { + opacity: 1; + -webkit-transform: translateZ(0); + transform: translateZ(0); + } +} +.animate__fadeInTopRight { + -webkit-animation-name: fadeInTopRight; + animation-name: fadeInTopRight; +} +@-webkit-keyframes fadeInBottomLeft { + 0% { + opacity: 0; + -webkit-transform: translate3d(-100%, 100%, 0); + transform: translate3d(-100%, 100%, 0); + } + to { + opacity: 1; + -webkit-transform: translateZ(0); + transform: translateZ(0); + } +} +@keyframes fadeInBottomLeft { + 0% { + opacity: 0; + -webkit-transform: translate3d(-100%, 100%, 0); + transform: translate3d(-100%, 100%, 0); + } + to { + opacity: 1; + -webkit-transform: translateZ(0); + transform: translateZ(0); + } +} +.animate__fadeInBottomLeft { + -webkit-animation-name: fadeInBottomLeft; + animation-name: fadeInBottomLeft; +} +@-webkit-keyframes fadeInBottomRight { + 0% { + opacity: 0; + -webkit-transform: translate3d(100%, 100%, 0); + transform: translate3d(100%, 100%, 0); + } + to { + opacity: 1; + -webkit-transform: translateZ(0); + transform: translateZ(0); + } +} +@keyframes fadeInBottomRight { + 0% { + opacity: 0; + -webkit-transform: translate3d(100%, 100%, 0); + transform: translate3d(100%, 100%, 0); + } + to { + opacity: 1; + -webkit-transform: translateZ(0); + transform: translateZ(0); + } +} +.animate__fadeInBottomRight { + -webkit-animation-name: fadeInBottomRight; + animation-name: fadeInBottomRight; +} +@-webkit-keyframes fadeOut { + 0% { + opacity: 1; + } + to { + opacity: 0; + } +} +@keyframes fadeOut { + 0% { + opacity: 1; + } + to { + opacity: 0; + } +} +.animate__fadeOut { + -webkit-animation-name: fadeOut; + animation-name: fadeOut; +} +@-webkit-keyframes fadeOutDown { + 0% { + opacity: 1; + } + to { + opacity: 0; + -webkit-transform: translate3d(0, 100%, 0); + transform: translate3d(0, 100%, 0); + } +} +@keyframes fadeOutDown { + 0% { + opacity: 1; + } + to { + opacity: 0; + -webkit-transform: translate3d(0, 100%, 0); + transform: translate3d(0, 100%, 0); + } +} +.animate__fadeOutDown { + -webkit-animation-name: fadeOutDown; + animation-name: fadeOutDown; +} +@-webkit-keyframes fadeOutDownBig { + 0% { + opacity: 1; + } + to { + opacity: 0; + -webkit-transform: translate3d(0, 2000px, 0); + transform: translate3d(0, 2000px, 0); + } +} +@keyframes fadeOutDownBig { + 0% { + opacity: 1; + } + to { + opacity: 0; + -webkit-transform: translate3d(0, 2000px, 0); + transform: translate3d(0, 2000px, 0); + } +} +.animate__fadeOutDownBig { + -webkit-animation-name: fadeOutDownBig; + animation-name: fadeOutDownBig; +} +@-webkit-keyframes fadeOutLeft { + 0% { + opacity: 1; + } + to { + opacity: 0; + -webkit-transform: translate3d(-100%, 0, 0); + transform: translate3d(-100%, 0, 0); + } +} +@keyframes fadeOutLeft { + 0% { + opacity: 1; + } + to { + opacity: 0; + -webkit-transform: translate3d(-100%, 0, 0); + transform: translate3d(-100%, 0, 0); + } +} +.animate__fadeOutLeft { + -webkit-animation-name: fadeOutLeft; + animation-name: fadeOutLeft; +} +@-webkit-keyframes fadeOutLeftBig { + 0% { + opacity: 1; + } + to { + opacity: 0; + -webkit-transform: translate3d(-2000px, 0, 0); + transform: translate3d(-2000px, 0, 0); + } +} +@keyframes fadeOutLeftBig { + 0% { + opacity: 1; + } + to { + opacity: 0; + -webkit-transform: translate3d(-2000px, 0, 0); + transform: translate3d(-2000px, 0, 0); + } +} +.animate__fadeOutLeftBig { + -webkit-animation-name: fadeOutLeftBig; + animation-name: fadeOutLeftBig; +} +@-webkit-keyframes fadeOutRight { + 0% { + opacity: 1; + } + to { + opacity: 0; + -webkit-transform: translate3d(100%, 0, 0); + transform: translate3d(100%, 0, 0); + } +} +@keyframes fadeOutRight { + 0% { + opacity: 1; + } + to { + opacity: 0; + -webkit-transform: translate3d(100%, 0, 0); + transform: translate3d(100%, 0, 0); + } +} +.animate__fadeOutRight { + -webkit-animation-name: fadeOutRight; + animation-name: fadeOutRight; +} +@-webkit-keyframes fadeOutRightBig { + 0% { + opacity: 1; + } + to { + opacity: 0; + -webkit-transform: translate3d(2000px, 0, 0); + transform: translate3d(2000px, 0, 0); + } +} +@keyframes fadeOutRightBig { + 0% { + opacity: 1; + } + to { + opacity: 0; + -webkit-transform: translate3d(2000px, 0, 0); + transform: translate3d(2000px, 0, 0); + } +} +.animate__fadeOutRightBig { + -webkit-animation-name: fadeOutRightBig; + animation-name: fadeOutRightBig; +} +@-webkit-keyframes fadeOutUp { + 0% { + opacity: 1; + } + to { + opacity: 0; + -webkit-transform: translate3d(0, -100%, 0); + transform: translate3d(0, -100%, 0); + } +} +@keyframes fadeOutUp { + 0% { + opacity: 1; + } + to { + opacity: 0; + -webkit-transform: translate3d(0, -100%, 0); + transform: translate3d(0, -100%, 0); + } +} +.animate__fadeOutUp { + -webkit-animation-name: fadeOutUp; + animation-name: fadeOutUp; +} +@-webkit-keyframes fadeOutUpBig { + 0% { + opacity: 1; + } + to { + opacity: 0; + -webkit-transform: translate3d(0, -2000px, 0); + transform: translate3d(0, -2000px, 0); + } +} +@keyframes fadeOutUpBig { + 0% { + opacity: 1; + } + to { + opacity: 0; + -webkit-transform: translate3d(0, -2000px, 0); + transform: translate3d(0, -2000px, 0); + } +} +.animate__fadeOutUpBig { + -webkit-animation-name: fadeOutUpBig; + animation-name: fadeOutUpBig; +} +@-webkit-keyframes fadeOutTopLeft { + 0% { + opacity: 1; + -webkit-transform: translateZ(0); + transform: translateZ(0); + } + to { + opacity: 0; + -webkit-transform: translate3d(-100%, -100%, 0); + transform: translate3d(-100%, -100%, 0); + } +} +@keyframes fadeOutTopLeft { + 0% { + opacity: 1; + -webkit-transform: translateZ(0); + transform: translateZ(0); + } + to { + opacity: 0; + -webkit-transform: translate3d(-100%, -100%, 0); + transform: translate3d(-100%, -100%, 0); + } +} +.animate__fadeOutTopLeft { + -webkit-animation-name: fadeOutTopLeft; + animation-name: fadeOutTopLeft; +} +@-webkit-keyframes fadeOutTopRight { + 0% { + opacity: 1; + -webkit-transform: translateZ(0); + transform: translateZ(0); + } + to { + opacity: 0; + -webkit-transform: translate3d(100%, -100%, 0); + transform: translate3d(100%, -100%, 0); + } +} +@keyframes fadeOutTopRight { + 0% { + opacity: 1; + -webkit-transform: translateZ(0); + transform: translateZ(0); + } + to { + opacity: 0; + -webkit-transform: translate3d(100%, -100%, 0); + transform: translate3d(100%, -100%, 0); + } +} +.animate__fadeOutTopRight { + -webkit-animation-name: fadeOutTopRight; + animation-name: fadeOutTopRight; +} +@-webkit-keyframes fadeOutBottomRight { + 0% { + opacity: 1; + -webkit-transform: translateZ(0); + transform: translateZ(0); + } + to { + opacity: 0; + -webkit-transform: translate3d(100%, 100%, 0); + transform: translate3d(100%, 100%, 0); + } +} +@keyframes fadeOutBottomRight { + 0% { + opacity: 1; + -webkit-transform: translateZ(0); + transform: translateZ(0); + } + to { + opacity: 0; + -webkit-transform: translate3d(100%, 100%, 0); + transform: translate3d(100%, 100%, 0); + } +} +.animate__fadeOutBottomRight { + -webkit-animation-name: fadeOutBottomRight; + animation-name: fadeOutBottomRight; +} +@-webkit-keyframes fadeOutBottomLeft { + 0% { + opacity: 1; + -webkit-transform: translateZ(0); + transform: translateZ(0); + } + to { + opacity: 0; + -webkit-transform: translate3d(-100%, 100%, 0); + transform: translate3d(-100%, 100%, 0); + } +} +@keyframes fadeOutBottomLeft { + 0% { + opacity: 1; + -webkit-transform: translateZ(0); + transform: translateZ(0); + } + to { + opacity: 0; + -webkit-transform: translate3d(-100%, 100%, 0); + transform: translate3d(-100%, 100%, 0); + } +} +.animate__fadeOutBottomLeft { + -webkit-animation-name: fadeOutBottomLeft; + animation-name: fadeOutBottomLeft; +} +@-webkit-keyframes flip { + 0% { + -webkit-transform: perspective(400px) scaleX(1) translateZ(0) rotateY(-1turn); + transform: perspective(400px) scaleX(1) translateZ(0) rotateY(-1turn); + -webkit-animation-timing-function: ease-out; + animation-timing-function: ease-out; + } + 40% { + -webkit-transform: perspective(400px) scaleX(1) translateZ(150px) rotateY(-190deg); + transform: perspective(400px) scaleX(1) translateZ(150px) rotateY(-190deg); + -webkit-animation-timing-function: ease-out; + animation-timing-function: ease-out; + } + 50% { + -webkit-transform: perspective(400px) scaleX(1) translateZ(150px) rotateY(-170deg); + transform: perspective(400px) scaleX(1) translateZ(150px) rotateY(-170deg); + -webkit-animation-timing-function: ease-in; + animation-timing-function: ease-in; + } + 80% { + -webkit-transform: perspective(400px) scale3d(.95, .95, .95) translateZ(0) rotateY(0deg); + transform: perspective(400px) scale3d(.95, .95, .95) translateZ(0) rotateY(0deg); + -webkit-animation-timing-function: ease-in; + animation-timing-function: ease-in; + } + to { + -webkit-transform: perspective(400px) scaleX(1) translateZ(0) rotateY(0deg); + transform: perspective(400px) scaleX(1) translateZ(0) rotateY(0deg); + -webkit-animation-timing-function: ease-in; + animation-timing-function: ease-in; + } +} +@keyframes flip { + 0% { + -webkit-transform: perspective(400px) scaleX(1) translateZ(0) rotateY(-1turn); + transform: perspective(400px) scaleX(1) translateZ(0) rotateY(-1turn); + -webkit-animation-timing-function: ease-out; + animation-timing-function: ease-out; + } + 40% { + -webkit-transform: perspective(400px) scaleX(1) translateZ(150px) rotateY(-190deg); + transform: perspective(400px) scaleX(1) translateZ(150px) rotateY(-190deg); + -webkit-animation-timing-function: ease-out; + animation-timing-function: ease-out; + } + 50% { + -webkit-transform: perspective(400px) scaleX(1) translateZ(150px) rotateY(-170deg); + transform: perspective(400px) scaleX(1) translateZ(150px) rotateY(-170deg); + -webkit-animation-timing-function: ease-in; + animation-timing-function: ease-in; + } + 80% { + -webkit-transform: perspective(400px) scale3d(.95, .95, .95) translateZ(0) rotateY(0deg); + transform: perspective(400px) scale3d(.95, .95, .95) translateZ(0) rotateY(0deg); + -webkit-animation-timing-function: ease-in; + animation-timing-function: ease-in; + } + to { + -webkit-transform: perspective(400px) scaleX(1) translateZ(0) rotateY(0deg); + transform: perspective(400px) scaleX(1) translateZ(0) rotateY(0deg); + -webkit-animation-timing-function: ease-in; + animation-timing-function: ease-in; + } +} +.animate__animated.animate__flip { + -webkit-backface-visibility: visible; + backface-visibility: visible; + -webkit-animation-name: flip; + animation-name: flip; +} +@-webkit-keyframes flipInX { + 0% { + -webkit-transform: perspective(400px) rotateX(90deg); + transform: perspective(400px) rotateX(90deg); + -webkit-animation-timing-function: ease-in; + animation-timing-function: ease-in; + opacity: 0; + } + 40% { + -webkit-transform: perspective(400px) rotateX(-20deg); + transform: perspective(400px) rotateX(-20deg); + -webkit-animation-timing-function: ease-in; + animation-timing-function: ease-in; + } + 60% { + -webkit-transform: perspective(400px) rotateX(10deg); + transform: perspective(400px) rotateX(10deg); + opacity: 1; + } + 80% { + -webkit-transform: perspective(400px) rotateX(-5deg); + transform: perspective(400px) rotateX(-5deg); + } + to { + -webkit-transform: perspective(400px); + transform: perspective(400px); + } +} +@keyframes flipInX { + 0% { + -webkit-transform: perspective(400px) rotateX(90deg); + transform: perspective(400px) rotateX(90deg); + -webkit-animation-timing-function: ease-in; + animation-timing-function: ease-in; + opacity: 0; + } + 40% { + -webkit-transform: perspective(400px) rotateX(-20deg); + transform: perspective(400px) rotateX(-20deg); + -webkit-animation-timing-function: ease-in; + animation-timing-function: ease-in; + } + 60% { + -webkit-transform: perspective(400px) rotateX(10deg); + transform: perspective(400px) rotateX(10deg); + opacity: 1; + } + 80% { + -webkit-transform: perspective(400px) rotateX(-5deg); + transform: perspective(400px) rotateX(-5deg); + } + to { + -webkit-transform: perspective(400px); + transform: perspective(400px); + } +} +.animate__flipInX { + -webkit-backface-visibility: visible !important; + backface-visibility: visible !important; + -webkit-animation-name: flipInX; + animation-name: flipInX; +} +@-webkit-keyframes flipInY { + 0% { + -webkit-transform: perspective(400px) rotateY(90deg); + transform: perspective(400px) rotateY(90deg); + -webkit-animation-timing-function: ease-in; + animation-timing-function: ease-in; + opacity: 0; + } + 40% { + -webkit-transform: perspective(400px) rotateY(-20deg); + transform: perspective(400px) rotateY(-20deg); + -webkit-animation-timing-function: ease-in; + animation-timing-function: ease-in; + } + 60% { + -webkit-transform: perspective(400px) rotateY(10deg); + transform: perspective(400px) rotateY(10deg); + opacity: 1; + } + 80% { + -webkit-transform: perspective(400px) rotateY(-5deg); + transform: perspective(400px) rotateY(-5deg); + } + to { + -webkit-transform: perspective(400px); + transform: perspective(400px); + } +} +@keyframes flipInY { + 0% { + -webkit-transform: perspective(400px) rotateY(90deg); + transform: perspective(400px) rotateY(90deg); + -webkit-animation-timing-function: ease-in; + animation-timing-function: ease-in; + opacity: 0; + } + 40% { + -webkit-transform: perspective(400px) rotateY(-20deg); + transform: perspective(400px) rotateY(-20deg); + -webkit-animation-timing-function: ease-in; + animation-timing-function: ease-in; + } + 60% { + -webkit-transform: perspective(400px) rotateY(10deg); + transform: perspective(400px) rotateY(10deg); + opacity: 1; + } + 80% { + -webkit-transform: perspective(400px) rotateY(-5deg); + transform: perspective(400px) rotateY(-5deg); + } + to { + -webkit-transform: perspective(400px); + transform: perspective(400px); + } +} +.animate__flipInY { + -webkit-backface-visibility: visible !important; + backface-visibility: visible !important; + -webkit-animation-name: flipInY; + animation-name: flipInY; +} +@-webkit-keyframes flipOutX { + 0% { + -webkit-transform: perspective(400px); + transform: perspective(400px); + } + 30% { + -webkit-transform: perspective(400px) rotateX(-20deg); + transform: perspective(400px) rotateX(-20deg); + opacity: 1; + } + to { + -webkit-transform: perspective(400px) rotateX(90deg); + transform: perspective(400px) rotateX(90deg); + opacity: 0; + } +} +@keyframes flipOutX { + 0% { + -webkit-transform: perspective(400px); + transform: perspective(400px); + } + 30% { + -webkit-transform: perspective(400px) rotateX(-20deg); + transform: perspective(400px) rotateX(-20deg); + opacity: 1; + } + to { + -webkit-transform: perspective(400px) rotateX(90deg); + transform: perspective(400px) rotateX(90deg); + opacity: 0; + } +} +.animate__flipOutX { + -webkit-animation-duration: .75s; + animation-duration: .75s; + -webkit-animation-duration: calc(var(--animate-duration)*0.75); + animation-duration: calc(var(--animate-duration)*0.75); + -webkit-animation-name: flipOutX; + animation-name: flipOutX; + -webkit-backface-visibility: visible !important; + backface-visibility: visible !important; +} +@-webkit-keyframes flipOutY { + 0% { + -webkit-transform: perspective(400px); + transform: perspective(400px); + } + 30% { + -webkit-transform: perspective(400px) rotateY(-15deg); + transform: perspective(400px) rotateY(-15deg); + opacity: 1; + } + to { + -webkit-transform: perspective(400px) rotateY(90deg); + transform: perspective(400px) rotateY(90deg); + opacity: 0; + } +} +@keyframes flipOutY { + 0% { + -webkit-transform: perspective(400px); + transform: perspective(400px); + } + 30% { + -webkit-transform: perspective(400px) rotateY(-15deg); + transform: perspective(400px) rotateY(-15deg); + opacity: 1; + } + to { + -webkit-transform: perspective(400px) rotateY(90deg); + transform: perspective(400px) rotateY(90deg); + opacity: 0; + } +} +.animate__flipOutY { + -webkit-animation-duration: .75s; + animation-duration: .75s; + -webkit-animation-duration: calc(var(--animate-duration)*0.75); + animation-duration: calc(var(--animate-duration)*0.75); + -webkit-backface-visibility: visible !important; + backface-visibility: visible !important; + -webkit-animation-name: flipOutY; + animation-name: flipOutY; +} +@-webkit-keyframes lightSpeedInRight { + 0% { + -webkit-transform: translate3d(100%, 0, 0) skewX(-30deg); + transform: translate3d(100%, 0, 0) skewX(-30deg); + opacity: 0; + } + 60% { + -webkit-transform: skewX(20deg); + transform: skewX(20deg); + opacity: 1; + } + 80% { + -webkit-transform: skewX(-5deg); + transform: skewX(-5deg); + } + to { + -webkit-transform: translateZ(0); + transform: translateZ(0); + } +} +@keyframes lightSpeedInRight { + 0% { + -webkit-transform: translate3d(100%, 0, 0) skewX(-30deg); + transform: translate3d(100%, 0, 0) skewX(-30deg); + opacity: 0; + } + 60% { + -webkit-transform: skewX(20deg); + transform: skewX(20deg); + opacity: 1; + } + 80% { + -webkit-transform: skewX(-5deg); + transform: skewX(-5deg); + } + to { + -webkit-transform: translateZ(0); + transform: translateZ(0); + } +} +.animate__lightSpeedInRight { + -webkit-animation-name: lightSpeedInRight; + animation-name: lightSpeedInRight; + -webkit-animation-timing-function: ease-out; + animation-timing-function: ease-out; +} +@-webkit-keyframes lightSpeedInLeft { + 0% { + -webkit-transform: translate3d(-100%, 0, 0) skewX(30deg); + transform: translate3d(-100%, 0, 0) skewX(30deg); + opacity: 0; + } + 60% { + -webkit-transform: skewX(-20deg); + transform: skewX(-20deg); + opacity: 1; + } + 80% { + -webkit-transform: skewX(5deg); + transform: skewX(5deg); + } + to { + -webkit-transform: translateZ(0); + transform: translateZ(0); + } +} +@keyframes lightSpeedInLeft { + 0% { + -webkit-transform: translate3d(-100%, 0, 0) skewX(30deg); + transform: translate3d(-100%, 0, 0) skewX(30deg); + opacity: 0; + } + 60% { + -webkit-transform: skewX(-20deg); + transform: skewX(-20deg); + opacity: 1; + } + 80% { + -webkit-transform: skewX(5deg); + transform: skewX(5deg); + } + to { + -webkit-transform: translateZ(0); + transform: translateZ(0); + } +} +.animate__lightSpeedInLeft { + -webkit-animation-name: lightSpeedInLeft; + animation-name: lightSpeedInLeft; + -webkit-animation-timing-function: ease-out; + animation-timing-function: ease-out; +} +@-webkit-keyframes lightSpeedOutRight { + 0% { + opacity: 1; + } + to { + -webkit-transform: translate3d(100%, 0, 0) skewX(30deg); + transform: translate3d(100%, 0, 0) skewX(30deg); + opacity: 0; + } +} +@keyframes lightSpeedOutRight { + 0% { + opacity: 1; + } + to { + -webkit-transform: translate3d(100%, 0, 0) skewX(30deg); + transform: translate3d(100%, 0, 0) skewX(30deg); + opacity: 0; + } +} +.animate__lightSpeedOutRight { + -webkit-animation-name: lightSpeedOutRight; + animation-name: lightSpeedOutRight; + -webkit-animation-timing-function: ease-in; + animation-timing-function: ease-in; +} +@-webkit-keyframes lightSpeedOutLeft { + 0% { + opacity: 1; + } + to { + -webkit-transform: translate3d(-100%, 0, 0) skewX(-30deg); + transform: translate3d(-100%, 0, 0) skewX(-30deg); + opacity: 0; + } +} +@keyframes lightSpeedOutLeft { + 0% { + opacity: 1; + } + to { + -webkit-transform: translate3d(-100%, 0, 0) skewX(-30deg); + transform: translate3d(-100%, 0, 0) skewX(-30deg); + opacity: 0; + } +} +.animate__lightSpeedOutLeft { + -webkit-animation-name: lightSpeedOutLeft; + animation-name: lightSpeedOutLeft; + -webkit-animation-timing-function: ease-in; + animation-timing-function: ease-in; +} +@-webkit-keyframes rotateIn { + 0% { + -webkit-transform: rotate(-200deg); + transform: rotate(-200deg); + opacity: 0; + } + to { + -webkit-transform: translateZ(0); + transform: translateZ(0); + opacity: 1; + } +} +@keyframes rotateIn { + 0% { + -webkit-transform: rotate(-200deg); + transform: rotate(-200deg); + opacity: 0; + } + to { + -webkit-transform: translateZ(0); + transform: translateZ(0); + opacity: 1; + } +} +.animate__rotateIn { + -webkit-animation-name: rotateIn; + animation-name: rotateIn; + -webkit-transform-origin: center; + transform-origin: center; +} +@-webkit-keyframes rotateInDownLeft { + 0% { + -webkit-transform: rotate(-45deg); + transform: rotate(-45deg); + opacity: 0; + } + to { + -webkit-transform: translateZ(0); + transform: translateZ(0); + opacity: 1; + } +} +@keyframes rotateInDownLeft { + 0% { + -webkit-transform: rotate(-45deg); + transform: rotate(-45deg); + opacity: 0; + } + to { + -webkit-transform: translateZ(0); + transform: translateZ(0); + opacity: 1; + } +} +.animate__rotateInDownLeft { + -webkit-animation-name: rotateInDownLeft; + animation-name: rotateInDownLeft; + -webkit-transform-origin: left bottom; + transform-origin: left bottom; +} +@-webkit-keyframes rotateInDownRight { + 0% { + -webkit-transform: rotate(45deg); + transform: rotate(45deg); + opacity: 0; + } + to { + -webkit-transform: translateZ(0); + transform: translateZ(0); + opacity: 1; + } +} +@keyframes rotateInDownRight { + 0% { + -webkit-transform: rotate(45deg); + transform: rotate(45deg); + opacity: 0; + } + to { + -webkit-transform: translateZ(0); + transform: translateZ(0); + opacity: 1; + } +} +.animate__rotateInDownRight { + -webkit-animation-name: rotateInDownRight; + animation-name: rotateInDownRight; + -webkit-transform-origin: right bottom; + transform-origin: right bottom; +} +@-webkit-keyframes rotateInUpLeft { + 0% { + -webkit-transform: rotate(45deg); + transform: rotate(45deg); + opacity: 0; + } + to { + -webkit-transform: translateZ(0); + transform: translateZ(0); + opacity: 1; + } +} +@keyframes rotateInUpLeft { + 0% { + -webkit-transform: rotate(45deg); + transform: rotate(45deg); + opacity: 0; + } + to { + -webkit-transform: translateZ(0); + transform: translateZ(0); + opacity: 1; + } +} +.animate__rotateInUpLeft { + -webkit-animation-name: rotateInUpLeft; + animation-name: rotateInUpLeft; + -webkit-transform-origin: left bottom; + transform-origin: left bottom; +} +@-webkit-keyframes rotateInUpRight { + 0% { + -webkit-transform: rotate(-90deg); + transform: rotate(-90deg); + opacity: 0; + } + to { + -webkit-transform: translateZ(0); + transform: translateZ(0); + opacity: 1; + } +} +@keyframes rotateInUpRight { + 0% { + -webkit-transform: rotate(-90deg); + transform: rotate(-90deg); + opacity: 0; + } + to { + -webkit-transform: translateZ(0); + transform: translateZ(0); + opacity: 1; + } +} +.animate__rotateInUpRight { + -webkit-animation-name: rotateInUpRight; + animation-name: rotateInUpRight; + -webkit-transform-origin: right bottom; + transform-origin: right bottom; +} +@-webkit-keyframes rotateOut { + 0% { + opacity: 1; + } + to { + -webkit-transform: rotate(200deg); + transform: rotate(200deg); + opacity: 0; + } +} +@keyframes rotateOut { + 0% { + opacity: 1; + } + to { + -webkit-transform: rotate(200deg); + transform: rotate(200deg); + opacity: 0; + } +} +.animate__rotateOut { + -webkit-animation-name: rotateOut; + animation-name: rotateOut; + -webkit-transform-origin: center; + transform-origin: center; +} +@-webkit-keyframes rotateOutDownLeft { + 0% { + opacity: 1; + } + to { + -webkit-transform: rotate(45deg); + transform: rotate(45deg); + opacity: 0; + } +} +@keyframes rotateOutDownLeft { + 0% { + opacity: 1; + } + to { + -webkit-transform: rotate(45deg); + transform: rotate(45deg); + opacity: 0; + } +} +.animate__rotateOutDownLeft { + -webkit-animation-name: rotateOutDownLeft; + animation-name: rotateOutDownLeft; + -webkit-transform-origin: left bottom; + transform-origin: left bottom; +} +@-webkit-keyframes rotateOutDownRight { + 0% { + opacity: 1; + } + to { + -webkit-transform: rotate(-45deg); + transform: rotate(-45deg); + opacity: 0; + } +} +@keyframes rotateOutDownRight { + 0% { + opacity: 1; + } + to { + -webkit-transform: rotate(-45deg); + transform: rotate(-45deg); + opacity: 0; + } +} +.animate__rotateOutDownRight { + -webkit-animation-name: rotateOutDownRight; + animation-name: rotateOutDownRight; + -webkit-transform-origin: right bottom; + transform-origin: right bottom; +} +@-webkit-keyframes rotateOutUpLeft { + 0% { + opacity: 1; + } + to { + -webkit-transform: rotate(-45deg); + transform: rotate(-45deg); + opacity: 0; + } +} +@keyframes rotateOutUpLeft { + 0% { + opacity: 1; + } + to { + -webkit-transform: rotate(-45deg); + transform: rotate(-45deg); + opacity: 0; + } +} +.animate__rotateOutUpLeft { + -webkit-animation-name: rotateOutUpLeft; + animation-name: rotateOutUpLeft; + -webkit-transform-origin: left bottom; + transform-origin: left bottom; +} +@-webkit-keyframes rotateOutUpRight { + 0% { + opacity: 1; + } + to { + -webkit-transform: rotate(90deg); + transform: rotate(90deg); + opacity: 0; + } +} +@keyframes rotateOutUpRight { + 0% { + opacity: 1; + } + to { + -webkit-transform: rotate(90deg); + transform: rotate(90deg); + opacity: 0; + } +} +.animate__rotateOutUpRight { + -webkit-animation-name: rotateOutUpRight; + animation-name: rotateOutUpRight; + -webkit-transform-origin: right bottom; + transform-origin: right bottom; +} +@-webkit-keyframes hinge { + 0% { + -webkit-animation-timing-function: ease-in-out; + animation-timing-function: ease-in-out; + } + 20%, 60% { + -webkit-transform: rotate(80deg); + transform: rotate(80deg); + -webkit-animation-timing-function: ease-in-out; + animation-timing-function: ease-in-out; + } + 40%, 80% { + -webkit-transform: rotate(60deg); + transform: rotate(60deg); + -webkit-animation-timing-function: ease-in-out; + animation-timing-function: ease-in-out; + opacity: 1; + } + to { + -webkit-transform: translate3d(0, 700px, 0); + transform: translate3d(0, 700px, 0); + opacity: 0; + } +} +@keyframes hinge { + 0% { + -webkit-animation-timing-function: ease-in-out; + animation-timing-function: ease-in-out; + } + 20%, 60% { + -webkit-transform: rotate(80deg); + transform: rotate(80deg); + -webkit-animation-timing-function: ease-in-out; + animation-timing-function: ease-in-out; + } + 40%, 80% { + -webkit-transform: rotate(60deg); + transform: rotate(60deg); + -webkit-animation-timing-function: ease-in-out; + animation-timing-function: ease-in-out; + opacity: 1; + } + to { + -webkit-transform: translate3d(0, 700px, 0); + transform: translate3d(0, 700px, 0); + opacity: 0; + } +} +.animate__hinge { + -webkit-animation-duration: 2s; + animation-duration: 2s; + -webkit-animation-duration: calc(var(--animate-duration)*2); + animation-duration: calc(var(--animate-duration)*2); + -webkit-animation-name: hinge; + animation-name: hinge; + -webkit-transform-origin: top left; + transform-origin: top left; +} +@-webkit-keyframes jackInTheBox { + 0% { + opacity: 0; + -webkit-transform: scale(.1) rotate(30deg); + transform: scale(.1) rotate(30deg); + -webkit-transform-origin: center bottom; + transform-origin: center bottom; + } + 50% { + -webkit-transform: rotate(-10deg); + transform: rotate(-10deg); + } + 70% { + -webkit-transform: rotate(3deg); + transform: rotate(3deg); + } + to { + opacity: 1; + -webkit-transform: scale(1); + transform: scale(1); + } +} +@keyframes jackInTheBox { + 0% { + opacity: 0; + -webkit-transform: scale(.1) rotate(30deg); + transform: scale(.1) rotate(30deg); + -webkit-transform-origin: center bottom; + transform-origin: center bottom; + } + 50% { + -webkit-transform: rotate(-10deg); + transform: rotate(-10deg); + } + 70% { + -webkit-transform: rotate(3deg); + transform: rotate(3deg); + } + to { + opacity: 1; + -webkit-transform: scale(1); + transform: scale(1); + } +} +.animate__jackInTheBox { + -webkit-animation-name: jackInTheBox; + animation-name: jackInTheBox; +} +@-webkit-keyframes rollIn { + 0% { + opacity: 0; + -webkit-transform: translate3d(-100%, 0, 0) rotate(-120deg); + transform: translate3d(-100%, 0, 0) rotate(-120deg); + } + to { + opacity: 1; + -webkit-transform: translateZ(0); + transform: translateZ(0); + } +} +@keyframes rollIn { + 0% { + opacity: 0; + -webkit-transform: translate3d(-100%, 0, 0) rotate(-120deg); + transform: translate3d(-100%, 0, 0) rotate(-120deg); + } + to { + opacity: 1; + -webkit-transform: translateZ(0); + transform: translateZ(0); + } +} +.animate__rollIn { + -webkit-animation-name: rollIn; + animation-name: rollIn; +} +@-webkit-keyframes rollOut { + 0% { + opacity: 1; + } + to { + opacity: 0; + -webkit-transform: translate3d(100%, 0, 0) rotate(120deg); + transform: translate3d(100%, 0, 0) rotate(120deg); + } +} +@keyframes rollOut { + 0% { + opacity: 1; + } + to { + opacity: 0; + -webkit-transform: translate3d(100%, 0, 0) rotate(120deg); + transform: translate3d(100%, 0, 0) rotate(120deg); + } +} +.animate__rollOut { + -webkit-animation-name: rollOut; + animation-name: rollOut; +} +@-webkit-keyframes zoomIn { + 0% { + opacity: 0; + -webkit-transform: scale3d(.3, .3, .3); + transform: scale3d(.3, .3, .3); + } + 50% { + opacity: 1; + } +} +@keyframes zoomIn { + 0% { + opacity: 0; + -webkit-transform: scale3d(.3, .3, .3); + transform: scale3d(.3, .3, .3); + } + 50% { + opacity: 1; + } +} +.animate__zoomIn { + -webkit-animation-name: zoomIn; + animation-name: zoomIn; +} +@-webkit-keyframes zoomInDown { + 0% { + opacity: 0; + -webkit-transform: scale3d(.1, .1, .1) translate3d(0, -1000px, 0); + transform: scale3d(.1, .1, .1) translate3d(0, -1000px, 0); + -webkit-animation-timing-function: cubic-bezier(.55, .055, .675, .19); + animation-timing-function: cubic-bezier(.55, .055, .675, .19); + } + 60% { + opacity: 1; + -webkit-transform: scale3d(.475, .475, .475) translate3d(0, 60px, 0); + transform: scale3d(.475, .475, .475) translate3d(0, 60px, 0); + -webkit-animation-timing-function: cubic-bezier(.175, .885, .32, 1); + animation-timing-function: cubic-bezier(.175, .885, .32, 1); + } +} +@keyframes zoomInDown { + 0% { + opacity: 0; + -webkit-transform: scale3d(.1, .1, .1) translate3d(0, -1000px, 0); + transform: scale3d(.1, .1, .1) translate3d(0, -1000px, 0); + -webkit-animation-timing-function: cubic-bezier(.55, .055, .675, .19); + animation-timing-function: cubic-bezier(.55, .055, .675, .19); + } + 60% { + opacity: 1; + -webkit-transform: scale3d(.475, .475, .475) translate3d(0, 60px, 0); + transform: scale3d(.475, .475, .475) translate3d(0, 60px, 0); + -webkit-animation-timing-function: cubic-bezier(.175, .885, .32, 1); + animation-timing-function: cubic-bezier(.175, .885, .32, 1); + } +} +.animate__zoomInDown { + -webkit-animation-name: zoomInDown; + animation-name: zoomInDown; +} +@-webkit-keyframes zoomInLeft { + 0% { + opacity: 0; + -webkit-transform: scale3d(.1, .1, .1) translate3d(-1000px, 0, 0); + transform: scale3d(.1, .1, .1) translate3d(-1000px, 0, 0); + -webkit-animation-timing-function: cubic-bezier(.55, .055, .675, .19); + animation-timing-function: cubic-bezier(.55, .055, .675, .19); + } + 60% { + opacity: 1; + -webkit-transform: scale3d(.475, .475, .475) translate3d(10px, 0, 0); + transform: scale3d(.475, .475, .475) translate3d(10px, 0, 0); + -webkit-animation-timing-function: cubic-bezier(.175, .885, .32, 1); + animation-timing-function: cubic-bezier(.175, .885, .32, 1); + } +} +@keyframes zoomInLeft { + 0% { + opacity: 0; + -webkit-transform: scale3d(.1, .1, .1) translate3d(-1000px, 0, 0); + transform: scale3d(.1, .1, .1) translate3d(-1000px, 0, 0); + -webkit-animation-timing-function: cubic-bezier(.55, .055, .675, .19); + animation-timing-function: cubic-bezier(.55, .055, .675, .19); + } + 60% { + opacity: 1; + -webkit-transform: scale3d(.475, .475, .475) translate3d(10px, 0, 0); + transform: scale3d(.475, .475, .475) translate3d(10px, 0, 0); + -webkit-animation-timing-function: cubic-bezier(.175, .885, .32, 1); + animation-timing-function: cubic-bezier(.175, .885, .32, 1); + } +} +.animate__zoomInLeft { + -webkit-animation-name: zoomInLeft; + animation-name: zoomInLeft; +} +@-webkit-keyframes zoomInRight { + 0% { + opacity: 0; + -webkit-transform: scale3d(.1, .1, .1) translate3d(1000px, 0, 0); + transform: scale3d(.1, .1, .1) translate3d(1000px, 0, 0); + -webkit-animation-timing-function: cubic-bezier(.55, .055, .675, .19); + animation-timing-function: cubic-bezier(.55, .055, .675, .19); + } + 60% { + opacity: 1; + -webkit-transform: scale3d(.475, .475, .475) translate3d(-10px, 0, 0); + transform: scale3d(.475, .475, .475) translate3d(-10px, 0, 0); + -webkit-animation-timing-function: cubic-bezier(.175, .885, .32, 1); + animation-timing-function: cubic-bezier(.175, .885, .32, 1); + } +} +@keyframes zoomInRight { + 0% { + opacity: 0; + -webkit-transform: scale3d(.1, .1, .1) translate3d(1000px, 0, 0); + transform: scale3d(.1, .1, .1) translate3d(1000px, 0, 0); + -webkit-animation-timing-function: cubic-bezier(.55, .055, .675, .19); + animation-timing-function: cubic-bezier(.55, .055, .675, .19); + } + 60% { + opacity: 1; + -webkit-transform: scale3d(.475, .475, .475) translate3d(-10px, 0, 0); + transform: scale3d(.475, .475, .475) translate3d(-10px, 0, 0); + -webkit-animation-timing-function: cubic-bezier(.175, .885, .32, 1); + animation-timing-function: cubic-bezier(.175, .885, .32, 1); + } +} +.animate__zoomInRight { + -webkit-animation-name: zoomInRight; + animation-name: zoomInRight; +} +@-webkit-keyframes zoomInUp { + 0% { + opacity: 0; + -webkit-transform: scale3d(.1, .1, .1) translate3d(0, 1000px, 0); + transform: scale3d(.1, .1, .1) translate3d(0, 1000px, 0); + -webkit-animation-timing-function: cubic-bezier(.55, .055, .675, .19); + animation-timing-function: cubic-bezier(.55, .055, .675, .19); + } + 60% { + opacity: 1; + -webkit-transform: scale3d(.475, .475, .475) translate3d(0, -60px, 0); + transform: scale3d(.475, .475, .475) translate3d(0, -60px, 0); + -webkit-animation-timing-function: cubic-bezier(.175, .885, .32, 1); + animation-timing-function: cubic-bezier(.175, .885, .32, 1); + } +} +@keyframes zoomInUp { + 0% { + opacity: 0; + -webkit-transform: scale3d(.1, .1, .1) translate3d(0, 1000px, 0); + transform: scale3d(.1, .1, .1) translate3d(0, 1000px, 0); + -webkit-animation-timing-function: cubic-bezier(.55, .055, .675, .19); + animation-timing-function: cubic-bezier(.55, .055, .675, .19); + } + 60% { + opacity: 1; + -webkit-transform: scale3d(.475, .475, .475) translate3d(0, -60px, 0); + transform: scale3d(.475, .475, .475) translate3d(0, -60px, 0); + -webkit-animation-timing-function: cubic-bezier(.175, .885, .32, 1); + animation-timing-function: cubic-bezier(.175, .885, .32, 1); + } +} +.animate__zoomInUp { + -webkit-animation-name: zoomInUp; + animation-name: zoomInUp; +} +@-webkit-keyframes zoomOut { + 0% { + opacity: 1; + } + 50% { + opacity: 0; + -webkit-transform: scale3d(.3, .3, .3); + transform: scale3d(.3, .3, .3); + } + to { + opacity: 0; + } +} +@keyframes zoomOut { + 0% { + opacity: 1; + } + 50% { + opacity: 0; + -webkit-transform: scale3d(.3, .3, .3); + transform: scale3d(.3, .3, .3); + } + to { + opacity: 0; + } +} +.animate__zoomOut { + -webkit-animation-name: zoomOut; + animation-name: zoomOut; +} +@-webkit-keyframes zoomOutDown { + 40% { + opacity: 1; + -webkit-transform: scale3d(.475, .475, .475) translate3d(0, -60px, 0); + transform: scale3d(.475, .475, .475) translate3d(0, -60px, 0); + -webkit-animation-timing-function: cubic-bezier(.55, .055, .675, .19); + animation-timing-function: cubic-bezier(.55, .055, .675, .19); + } + to { + opacity: 0; + -webkit-transform: scale3d(.1, .1, .1) translate3d(0, 2000px, 0); + transform: scale3d(.1, .1, .1) translate3d(0, 2000px, 0); + -webkit-animation-timing-function: cubic-bezier(.175, .885, .32, 1); + animation-timing-function: cubic-bezier(.175, .885, .32, 1); + } +} +@keyframes zoomOutDown { + 40% { + opacity: 1; + -webkit-transform: scale3d(.475, .475, .475) translate3d(0, -60px, 0); + transform: scale3d(.475, .475, .475) translate3d(0, -60px, 0); + -webkit-animation-timing-function: cubic-bezier(.55, .055, .675, .19); + animation-timing-function: cubic-bezier(.55, .055, .675, .19); + } + to { + opacity: 0; + -webkit-transform: scale3d(.1, .1, .1) translate3d(0, 2000px, 0); + transform: scale3d(.1, .1, .1) translate3d(0, 2000px, 0); + -webkit-animation-timing-function: cubic-bezier(.175, .885, .32, 1); + animation-timing-function: cubic-bezier(.175, .885, .32, 1); + } +} +.animate__zoomOutDown { + -webkit-animation-name: zoomOutDown; + animation-name: zoomOutDown; + -webkit-transform-origin: center bottom; + transform-origin: center bottom; +} +@-webkit-keyframes zoomOutLeft { + 40% { + opacity: 1; + -webkit-transform: scale3d(.475, .475, .475) translate3d(42px, 0, 0); + transform: scale3d(.475, .475, .475) translate3d(42px, 0, 0); + } + to { + opacity: 0; + -webkit-transform: scale(.1) translate3d(-2000px, 0, 0); + transform: scale(.1) translate3d(-2000px, 0, 0); + } +} +@keyframes zoomOutLeft { + 40% { + opacity: 1; + -webkit-transform: scale3d(.475, .475, .475) translate3d(42px, 0, 0); + transform: scale3d(.475, .475, .475) translate3d(42px, 0, 0); + } + to { + opacity: 0; + -webkit-transform: scale(.1) translate3d(-2000px, 0, 0); + transform: scale(.1) translate3d(-2000px, 0, 0); + } +} +.animate__zoomOutLeft { + -webkit-animation-name: zoomOutLeft; + animation-name: zoomOutLeft; + -webkit-transform-origin: left center; + transform-origin: left center; +} +@-webkit-keyframes zoomOutRight { + 40% { + opacity: 1; + -webkit-transform: scale3d(.475, .475, .475) translate3d(-42px, 0, 0); + transform: scale3d(.475, .475, .475) translate3d(-42px, 0, 0); + } + to { + opacity: 0; + -webkit-transform: scale(.1) translate3d(2000px, 0, 0); + transform: scale(.1) translate3d(2000px, 0, 0); + } +} +@keyframes zoomOutRight { + 40% { + opacity: 1; + -webkit-transform: scale3d(.475, .475, .475) translate3d(-42px, 0, 0); + transform: scale3d(.475, .475, .475) translate3d(-42px, 0, 0); + } + to { + opacity: 0; + -webkit-transform: scale(.1) translate3d(2000px, 0, 0); + transform: scale(.1) translate3d(2000px, 0, 0); + } +} +.animate__zoomOutRight { + -webkit-animation-name: zoomOutRight; + animation-name: zoomOutRight; + -webkit-transform-origin: right center; + transform-origin: right center; +} +@-webkit-keyframes zoomOutUp { + 40% { + opacity: 1; + -webkit-transform: scale3d(.475, .475, .475) translate3d(0, 60px, 0); + transform: scale3d(.475, .475, .475) translate3d(0, 60px, 0); + -webkit-animation-timing-function: cubic-bezier(.55, .055, .675, .19); + animation-timing-function: cubic-bezier(.55, .055, .675, .19); + } + to { + opacity: 0; + -webkit-transform: scale3d(.1, .1, .1) translate3d(0, -2000px, 0); + transform: scale3d(.1, .1, .1) translate3d(0, -2000px, 0); + -webkit-animation-timing-function: cubic-bezier(.175, .885, .32, 1); + animation-timing-function: cubic-bezier(.175, .885, .32, 1); + } +} +@keyframes zoomOutUp { + 40% { + opacity: 1; + -webkit-transform: scale3d(.475, .475, .475) translate3d(0, 60px, 0); + transform: scale3d(.475, .475, .475) translate3d(0, 60px, 0); + -webkit-animation-timing-function: cubic-bezier(.55, .055, .675, .19); + animation-timing-function: cubic-bezier(.55, .055, .675, .19); + } + to { + opacity: 0; + -webkit-transform: scale3d(.1, .1, .1) translate3d(0, -2000px, 0); + transform: scale3d(.1, .1, .1) translate3d(0, -2000px, 0); + -webkit-animation-timing-function: cubic-bezier(.175, .885, .32, 1); + animation-timing-function: cubic-bezier(.175, .885, .32, 1); + } +} +.animate__zoomOutUp { + -webkit-animation-name: zoomOutUp; + animation-name: zoomOutUp; + -webkit-transform-origin: center bottom; + transform-origin: center bottom; +} +@-webkit-keyframes slideInDown { + 0% { + -webkit-transform: translate3d(0, -100%, 0); + transform: translate3d(0, -100%, 0); + visibility: visible; + } + to { + -webkit-transform: translateZ(0); + transform: translateZ(0); + } +} +@keyframes slideInDown { + 0% { + -webkit-transform: translate3d(0, -100%, 0); + transform: translate3d(0, -100%, 0); + visibility: visible; + } + to { + -webkit-transform: translateZ(0); + transform: translateZ(0); + } +} +.animate__slideInDown { + -webkit-animation-name: slideInDown; + animation-name: slideInDown; +} +@-webkit-keyframes slideInLeft { + 0% { + -webkit-transform: translate3d(-100%, 0, 0); + transform: translate3d(-100%, 0, 0); + visibility: visible; + } + to { + -webkit-transform: translateZ(0); + transform: translateZ(0); + } +} +@keyframes slideInLeft { + 0% { + -webkit-transform: translate3d(-100%, 0, 0); + transform: translate3d(-100%, 0, 0); + visibility: visible; + } + to { + -webkit-transform: translateZ(0); + transform: translateZ(0); + } +} +.animate__slideInLeft { + -webkit-animation-name: slideInLeft; + animation-name: slideInLeft; +} +@-webkit-keyframes slideInRight { + 0% { + -webkit-transform: translate3d(100%, 0, 0); + transform: translate3d(100%, 0, 0); + visibility: visible; + } + to { + -webkit-transform: translateZ(0); + transform: translateZ(0); + } +} +@keyframes slideInRight { + 0% { + -webkit-transform: translate3d(100%, 0, 0); + transform: translate3d(100%, 0, 0); + visibility: visible; + } + to { + -webkit-transform: translateZ(0); + transform: translateZ(0); + } +} +.animate__slideInRight { + -webkit-animation-name: slideInRight; + animation-name: slideInRight; +} +@-webkit-keyframes slideInUp { + 0% { + -webkit-transform: translate3d(0, 100%, 0); + transform: translate3d(0, 100%, 0); + visibility: visible; + } + to { + -webkit-transform: translateZ(0); + transform: translateZ(0); + } +} +@keyframes slideInUp { + 0% { + -webkit-transform: translate3d(0, 100%, 0); + transform: translate3d(0, 100%, 0); + visibility: visible; + } + to { + -webkit-transform: translateZ(0); + transform: translateZ(0); + } +} +.animate__slideInUp { + -webkit-animation-name: slideInUp; + animation-name: slideInUp; +} +@-webkit-keyframes slideOutDown { + 0% { + -webkit-transform: translateZ(0); + transform: translateZ(0); + } + to { + visibility: hidden; + -webkit-transform: translate3d(0, 100%, 0); + transform: translate3d(0, 100%, 0); + } +} +@keyframes slideOutDown { + 0% { + -webkit-transform: translateZ(0); + transform: translateZ(0); + } + to { + visibility: hidden; + -webkit-transform: translate3d(0, 100%, 0); + transform: translate3d(0, 100%, 0); + } +} +.animate__slideOutDown { + -webkit-animation-name: slideOutDown; + animation-name: slideOutDown; +} +@-webkit-keyframes slideOutLeft { + 0% { + -webkit-transform: translateZ(0); + transform: translateZ(0); + } + to { + visibility: hidden; + -webkit-transform: translate3d(-100%, 0, 0); + transform: translate3d(-100%, 0, 0); + } +} +@keyframes slideOutLeft { + 0% { + -webkit-transform: translateZ(0); + transform: translateZ(0); + } + to { + visibility: hidden; + -webkit-transform: translate3d(-100%, 0, 0); + transform: translate3d(-100%, 0, 0); + } +} +.animate__slideOutLeft { + -webkit-animation-name: slideOutLeft; + animation-name: slideOutLeft; +} +@-webkit-keyframes slideOutRight { + 0% { + -webkit-transform: translateZ(0); + transform: translateZ(0); + } + to { + visibility: hidden; + -webkit-transform: translate3d(100%, 0, 0); + transform: translate3d(100%, 0, 0); + } +} +@keyframes slideOutRight { + 0% { + -webkit-transform: translateZ(0); + transform: translateZ(0); + } + to { + visibility: hidden; + -webkit-transform: translate3d(100%, 0, 0); + transform: translate3d(100%, 0, 0); + } +} +.animate__slideOutRight { + -webkit-animation-name: slideOutRight; + animation-name: slideOutRight; +} +@-webkit-keyframes slideOutUp { + 0% { + -webkit-transform: translateZ(0); + transform: translateZ(0); + } + to { + visibility: hidden; + -webkit-transform: translate3d(0, -100%, 0); + transform: translate3d(0, -100%, 0); + } +} +@keyframes slideOutUp { + 0% { + -webkit-transform: translateZ(0); + transform: translateZ(0); + } + to { + visibility: hidden; + -webkit-transform: translate3d(0, -100%, 0); + transform: translate3d(0, -100%, 0); + } +} +.animate__slideOutUp { + -webkit-animation-name: slideOutUp; + animation-name: slideOutUp; +} + +/* src/styles/result.css */ +.os--beta-tag ::after { + content: "BETA"; + font-size: var(--font-ui-smaller); + font-weight: var(--font-semibold); + vertical-align: top; + background-color: var(--interactive-accent); + margin-left: 8px; + height: 20px; + width: 34px; + display: inline-flex; + justify-content: center; + align-items: center; + border-radius: var(--radius-s); +} +.osf--result-eol .os-result { + position: absolute; + right: 0; +} +.os-result { + display: inline-flex; + margin: var(--solve-result-margin, 0 0 0 4px); + padding: var(--solve-result-padding, 0 0 0 4px); + line-height: var(--line-height-normal); + color: var(--solve-result-text, #29ce99e8); + background-color: var(--solve-result-background, #22ce9900); + font-family: var(--font-text); + font-size: var(--font-text-size, 16px); + border-color: var(--solve-result-border-color, transparent); + border-style: var(--solve-result-border-style, solid); + border-width: var(--solve-result-border-width, 0); + border-radius: var(--solve-result-border-radius, 4px); + text-decoration: dotted; + text-decoration-line: underline; + text-underline-offset: 2px; + text-decoration-color: transparent; + transition: all 150ms; + -webkit-font-smoothing: antialiased; + backface-visibility: hidden; + transform: translate3d(0, 0, 0); +} +.os-result:hover { + cursor: pointer; + text-decoration-color: var( --solve-result-hover-underline-color, currentColor ); +} + +/* src/styles.css */ /*! Bundled license information: animate.css/animate.min.css: @@ -74,3 +3690,4 @@ animate.css/animate.min.css: * Copyright (c) 2020 Animate.css *) */ +/*# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsibm9kZV9tb2R1bGVzL2FuaW1hdGUuY3NzL2FuaW1hdGUubWluLmNzcyIsICJzcmMvc3R5bGVzL3Jlc3VsdC5jc3MiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIkBjaGFyc2V0IFwiVVRGLThcIjsvKiFcbiAqIGFuaW1hdGUuY3NzIC0gaHR0cHM6Ly9hbmltYXRlLnN0eWxlL1xuICogVmVyc2lvbiAtIDQuMS4xXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UgLSBodHRwOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUXG4gKlxuICogQ29weXJpZ2h0IChjKSAyMDIwIEFuaW1hdGUuY3NzXG4gKi86cm9vdHstLWFuaW1hdGUtZHVyYXRpb246MXM7LS1hbmltYXRlLWRlbGF5OjFzOy0tYW5pbWF0ZS1yZXBlYXQ6MX0uYW5pbWF0ZV9fYW5pbWF0ZWR7LXdlYmtpdC1hbmltYXRpb24tZHVyYXRpb246MXM7YW5pbWF0aW9uLWR1cmF0aW9uOjFzOy13ZWJraXQtYW5pbWF0aW9uLWR1cmF0aW9uOnZhcigtLWFuaW1hdGUtZHVyYXRpb24pO2FuaW1hdGlvbi1kdXJhdGlvbjp2YXIoLS1hbmltYXRlLWR1cmF0aW9uKTstd2Via2l0LWFuaW1hdGlvbi1maWxsLW1vZGU6Ym90aDthbmltYXRpb24tZmlsbC1tb2RlOmJvdGh9LmFuaW1hdGVfX2FuaW1hdGVkLmFuaW1hdGVfX2luZmluaXRley13ZWJraXQtYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDppbmZpbml0ZTthbmltYXRpb24taXRlcmF0aW9uLWNvdW50OmluZmluaXRlfS5hbmltYXRlX19hbmltYXRlZC5hbmltYXRlX19yZXBlYXQtMXstd2Via2l0LWFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6MTthbmltYXRpb24taXRlcmF0aW9uLWNvdW50OjE7LXdlYmtpdC1hbmltYXRpb24taXRlcmF0aW9uLWNvdW50OnZhcigtLWFuaW1hdGUtcmVwZWF0KTthbmltYXRpb24taXRlcmF0aW9uLWNvdW50OnZhcigtLWFuaW1hdGUtcmVwZWF0KX0uYW5pbWF0ZV9fYW5pbWF0ZWQuYW5pbWF0ZV9fcmVwZWF0LTJ7LXdlYmtpdC1hbmltYXRpb24taXRlcmF0aW9uLWNvdW50OjI7YW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDoyOy13ZWJraXQtYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDpjYWxjKHZhcigtLWFuaW1hdGUtcmVwZWF0KSoyKTthbmltYXRpb24taXRlcmF0aW9uLWNvdW50OmNhbGModmFyKC0tYW5pbWF0ZS1yZXBlYXQpKjIpfS5hbmltYXRlX19hbmltYXRlZC5hbmltYXRlX19yZXBlYXQtM3std2Via2l0LWFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6MzthbmltYXRpb24taXRlcmF0aW9uLWNvdW50OjM7LXdlYmtpdC1hbmltYXRpb24taXRlcmF0aW9uLWNvdW50OmNhbGModmFyKC0tYW5pbWF0ZS1yZXBlYXQpKjMpO2FuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6Y2FsYyh2YXIoLS1hbmltYXRlLXJlcGVhdCkqMyl9LmFuaW1hdGVfX2FuaW1hdGVkLmFuaW1hdGVfX2RlbGF5LTFzey13ZWJraXQtYW5pbWF0aW9uLWRlbGF5OjFzO2FuaW1hdGlvbi1kZWxheToxczstd2Via2l0LWFuaW1hdGlvbi1kZWxheTp2YXIoLS1hbmltYXRlLWRlbGF5KTthbmltYXRpb24tZGVsYXk6dmFyKC0tYW5pbWF0ZS1kZWxheSl9LmFuaW1hdGVfX2FuaW1hdGVkLmFuaW1hdGVfX2RlbGF5LTJzey13ZWJraXQtYW5pbWF0aW9uLWRlbGF5OjJzO2FuaW1hdGlvbi1kZWxheToyczstd2Via2l0LWFuaW1hdGlvbi1kZWxheTpjYWxjKHZhcigtLWFuaW1hdGUtZGVsYXkpKjIpO2FuaW1hdGlvbi1kZWxheTpjYWxjKHZhcigtLWFuaW1hdGUtZGVsYXkpKjIpfS5hbmltYXRlX19hbmltYXRlZC5hbmltYXRlX19kZWxheS0zc3std2Via2l0LWFuaW1hdGlvbi1kZWxheTozczthbmltYXRpb24tZGVsYXk6M3M7LXdlYmtpdC1hbmltYXRpb24tZGVsYXk6Y2FsYyh2YXIoLS1hbmltYXRlLWRlbGF5KSozKTthbmltYXRpb24tZGVsYXk6Y2FsYyh2YXIoLS1hbmltYXRlLWRlbGF5KSozKX0uYW5pbWF0ZV9fYW5pbWF0ZWQuYW5pbWF0ZV9fZGVsYXktNHN7LXdlYmtpdC1hbmltYXRpb24tZGVsYXk6NHM7YW5pbWF0aW9uLWRlbGF5OjRzOy13ZWJraXQtYW5pbWF0aW9uLWRlbGF5OmNhbGModmFyKC0tYW5pbWF0ZS1kZWxheSkqNCk7YW5pbWF0aW9uLWRlbGF5OmNhbGModmFyKC0tYW5pbWF0ZS1kZWxheSkqNCl9LmFuaW1hdGVfX2FuaW1hdGVkLmFuaW1hdGVfX2RlbGF5LTVzey13ZWJraXQtYW5pbWF0aW9uLWRlbGF5OjVzO2FuaW1hdGlvbi1kZWxheTo1czstd2Via2l0LWFuaW1hdGlvbi1kZWxheTpjYWxjKHZhcigtLWFuaW1hdGUtZGVsYXkpKjUpO2FuaW1hdGlvbi1kZWxheTpjYWxjKHZhcigtLWFuaW1hdGUtZGVsYXkpKjUpfS5hbmltYXRlX19hbmltYXRlZC5hbmltYXRlX19mYXN0ZXJ7LXdlYmtpdC1hbmltYXRpb24tZHVyYXRpb246LjVzO2FuaW1hdGlvbi1kdXJhdGlvbjouNXM7LXdlYmtpdC1hbmltYXRpb24tZHVyYXRpb246Y2FsYyh2YXIoLS1hbmltYXRlLWR1cmF0aW9uKS8yKTthbmltYXRpb24tZHVyYXRpb246Y2FsYyh2YXIoLS1hbmltYXRlLWR1cmF0aW9uKS8yKX0uYW5pbWF0ZV9fYW5pbWF0ZWQuYW5pbWF0ZV9fZmFzdHstd2Via2l0LWFuaW1hdGlvbi1kdXJhdGlvbjouOHM7YW5pbWF0aW9uLWR1cmF0aW9uOi44czstd2Via2l0LWFuaW1hdGlvbi1kdXJhdGlvbjpjYWxjKHZhcigtLWFuaW1hdGUtZHVyYXRpb24pKjAuOCk7YW5pbWF0aW9uLWR1cmF0aW9uOmNhbGModmFyKC0tYW5pbWF0ZS1kdXJhdGlvbikqMC44KX0uYW5pbWF0ZV9fYW5pbWF0ZWQuYW5pbWF0ZV9fc2xvd3std2Via2l0LWFuaW1hdGlvbi1kdXJhdGlvbjoyczthbmltYXRpb24tZHVyYXRpb246MnM7LXdlYmtpdC1hbmltYXRpb24tZHVyYXRpb246Y2FsYyh2YXIoLS1hbmltYXRlLWR1cmF0aW9uKSoyKTthbmltYXRpb24tZHVyYXRpb246Y2FsYyh2YXIoLS1hbmltYXRlLWR1cmF0aW9uKSoyKX0uYW5pbWF0ZV9fYW5pbWF0ZWQuYW5pbWF0ZV9fc2xvd2Vyey13ZWJraXQtYW5pbWF0aW9uLWR1cmF0aW9uOjNzO2FuaW1hdGlvbi1kdXJhdGlvbjozczstd2Via2l0LWFuaW1hdGlvbi1kdXJhdGlvbjpjYWxjKHZhcigtLWFuaW1hdGUtZHVyYXRpb24pKjMpO2FuaW1hdGlvbi1kdXJhdGlvbjpjYWxjKHZhcigtLWFuaW1hdGUtZHVyYXRpb24pKjMpfUBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjpyZWR1Y2UpLHByaW50ey5hbmltYXRlX19hbmltYXRlZHstd2Via2l0LWFuaW1hdGlvbi1kdXJhdGlvbjoxbXMhaW1wb3J0YW50O2FuaW1hdGlvbi1kdXJhdGlvbjoxbXMhaW1wb3J0YW50Oy13ZWJraXQtdHJhbnNpdGlvbi1kdXJhdGlvbjoxbXMhaW1wb3J0YW50O3RyYW5zaXRpb24tZHVyYXRpb246MW1zIWltcG9ydGFudDstd2Via2l0LWFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6MSFpbXBvcnRhbnQ7YW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDoxIWltcG9ydGFudH0uYW5pbWF0ZV9fYW5pbWF0ZWRbY2xhc3MqPU91dF17b3BhY2l0eTowfX1ALXdlYmtpdC1rZXlmcmFtZXMgYm91bmNlezAlLDIwJSw1MyUsdG97LXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOmN1YmljLWJlemllciguMjE1LC42MSwuMzU1LDEpO2FuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246Y3ViaWMtYmV6aWVyKC4yMTUsLjYxLC4zNTUsMSk7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlWigwKTt0cmFuc2Zvcm06dHJhbnNsYXRlWigwKX00MCUsNDMley13ZWJraXQtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjpjdWJpYy1iZXppZXIoLjc1NSwuMDUsLjg1NSwuMDYpO2FuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246Y3ViaWMtYmV6aWVyKC43NTUsLjA1LC44NTUsLjA2KTstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGUzZCgwLC0zMHB4LDApIHNjYWxlWSgxLjEpO3RyYW5zZm9ybTp0cmFuc2xhdGUzZCgwLC0zMHB4LDApIHNjYWxlWSgxLjEpfTcwJXstd2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246Y3ViaWMtYmV6aWVyKC43NTUsLjA1LC44NTUsLjA2KTthbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOmN1YmljLWJlemllciguNzU1LC4wNSwuODU1LC4wNik7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlM2QoMCwtMTVweCwwKSBzY2FsZVkoMS4wNSk7dHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDAsLTE1cHgsMCkgc2NhbGVZKDEuMDUpfTgwJXstd2Via2l0LXRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOmN1YmljLWJlemllciguMjE1LC42MSwuMzU1LDEpO3RyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOmN1YmljLWJlemllciguMjE1LC42MSwuMzU1LDEpOy13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZVooMCkgc2NhbGVZKC45NSk7dHJhbnNmb3JtOnRyYW5zbGF0ZVooMCkgc2NhbGVZKC45NSl9OTAley13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDAsLTRweCwwKSBzY2FsZVkoMS4wMik7dHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDAsLTRweCwwKSBzY2FsZVkoMS4wMil9fUBrZXlmcmFtZXMgYm91bmNlezAlLDIwJSw1MyUsdG97LXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOmN1YmljLWJlemllciguMjE1LC42MSwuMzU1LDEpO2FuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246Y3ViaWMtYmV6aWVyKC4yMTUsLjYxLC4zNTUsMSk7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlWigwKTt0cmFuc2Zvcm06dHJhbnNsYXRlWigwKX00MCUsNDMley13ZWJraXQtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjpjdWJpYy1iZXppZXIoLjc1NSwuMDUsLjg1NSwuMDYpO2FuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246Y3ViaWMtYmV6aWVyKC43NTUsLjA1LC44NTUsLjA2KTstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGUzZCgwLC0zMHB4LDApIHNjYWxlWSgxLjEpO3RyYW5zZm9ybTp0cmFuc2xhdGUzZCgwLC0zMHB4LDApIHNjYWxlWSgxLjEpfTcwJXstd2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246Y3ViaWMtYmV6aWVyKC43NTUsLjA1LC44NTUsLjA2KTthbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOmN1YmljLWJlemllciguNzU1LC4wNSwuODU1LC4wNik7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlM2QoMCwtMTVweCwwKSBzY2FsZVkoMS4wNSk7dHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDAsLTE1cHgsMCkgc2NhbGVZKDEuMDUpfTgwJXstd2Via2l0LXRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOmN1YmljLWJlemllciguMjE1LC42MSwuMzU1LDEpO3RyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOmN1YmljLWJlemllciguMjE1LC42MSwuMzU1LDEpOy13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZVooMCkgc2NhbGVZKC45NSk7dHJhbnNmb3JtOnRyYW5zbGF0ZVooMCkgc2NhbGVZKC45NSl9OTAley13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDAsLTRweCwwKSBzY2FsZVkoMS4wMik7dHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDAsLTRweCwwKSBzY2FsZVkoMS4wMil9fS5hbmltYXRlX19ib3VuY2V7LXdlYmtpdC1hbmltYXRpb24tbmFtZTpib3VuY2U7YW5pbWF0aW9uLW5hbWU6Ym91bmNlOy13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjpjZW50ZXIgYm90dG9tO3RyYW5zZm9ybS1vcmlnaW46Y2VudGVyIGJvdHRvbX1ALXdlYmtpdC1rZXlmcmFtZXMgZmxhc2h7MCUsNTAlLHRve29wYWNpdHk6MX0yNSUsNzUle29wYWNpdHk6MH19QGtleWZyYW1lcyBmbGFzaHswJSw1MCUsdG97b3BhY2l0eToxfTI1JSw3NSV7b3BhY2l0eTowfX0uYW5pbWF0ZV9fZmxhc2h7LXdlYmtpdC1hbmltYXRpb24tbmFtZTpmbGFzaDthbmltYXRpb24tbmFtZTpmbGFzaH1ALXdlYmtpdC1rZXlmcmFtZXMgcHVsc2V7MCV7LXdlYmtpdC10cmFuc2Zvcm06c2NhbGVYKDEpO3RyYW5zZm9ybTpzY2FsZVgoMSl9NTAley13ZWJraXQtdHJhbnNmb3JtOnNjYWxlM2QoMS4wNSwxLjA1LDEuMDUpO3RyYW5zZm9ybTpzY2FsZTNkKDEuMDUsMS4wNSwxLjA1KX10b3std2Via2l0LXRyYW5zZm9ybTpzY2FsZVgoMSk7dHJhbnNmb3JtOnNjYWxlWCgxKX19QGtleWZyYW1lcyBwdWxzZXswJXstd2Via2l0LXRyYW5zZm9ybTpzY2FsZVgoMSk7dHJhbnNmb3JtOnNjYWxlWCgxKX01MCV7LXdlYmtpdC10cmFuc2Zvcm06c2NhbGUzZCgxLjA1LDEuMDUsMS4wNSk7dHJhbnNmb3JtOnNjYWxlM2QoMS4wNSwxLjA1LDEuMDUpfXRvey13ZWJraXQtdHJhbnNmb3JtOnNjYWxlWCgxKTt0cmFuc2Zvcm06c2NhbGVYKDEpfX0uYW5pbWF0ZV9fcHVsc2V7LXdlYmtpdC1hbmltYXRpb24tbmFtZTpwdWxzZTthbmltYXRpb24tbmFtZTpwdWxzZTstd2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246ZWFzZS1pbi1vdXQ7YW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjplYXNlLWluLW91dH1ALXdlYmtpdC1rZXlmcmFtZXMgcnViYmVyQmFuZHswJXstd2Via2l0LXRyYW5zZm9ybTpzY2FsZVgoMSk7dHJhbnNmb3JtOnNjYWxlWCgxKX0zMCV7LXdlYmtpdC10cmFuc2Zvcm06c2NhbGUzZCgxLjI1LC43NSwxKTt0cmFuc2Zvcm06c2NhbGUzZCgxLjI1LC43NSwxKX00MCV7LXdlYmtpdC10cmFuc2Zvcm06c2NhbGUzZCguNzUsMS4yNSwxKTt0cmFuc2Zvcm06c2NhbGUzZCguNzUsMS4yNSwxKX01MCV7LXdlYmtpdC10cmFuc2Zvcm06c2NhbGUzZCgxLjE1LC44NSwxKTt0cmFuc2Zvcm06c2NhbGUzZCgxLjE1LC44NSwxKX02NSV7LXdlYmtpdC10cmFuc2Zvcm06c2NhbGUzZCguOTUsMS4wNSwxKTt0cmFuc2Zvcm06c2NhbGUzZCguOTUsMS4wNSwxKX03NSV7LXdlYmtpdC10cmFuc2Zvcm06c2NhbGUzZCgxLjA1LC45NSwxKTt0cmFuc2Zvcm06c2NhbGUzZCgxLjA1LC45NSwxKX10b3std2Via2l0LXRyYW5zZm9ybTpzY2FsZVgoMSk7dHJhbnNmb3JtOnNjYWxlWCgxKX19QGtleWZyYW1lcyBydWJiZXJCYW5kezAley13ZWJraXQtdHJhbnNmb3JtOnNjYWxlWCgxKTt0cmFuc2Zvcm06c2NhbGVYKDEpfTMwJXstd2Via2l0LXRyYW5zZm9ybTpzY2FsZTNkKDEuMjUsLjc1LDEpO3RyYW5zZm9ybTpzY2FsZTNkKDEuMjUsLjc1LDEpfTQwJXstd2Via2l0LXRyYW5zZm9ybTpzY2FsZTNkKC43NSwxLjI1LDEpO3RyYW5zZm9ybTpzY2FsZTNkKC43NSwxLjI1LDEpfTUwJXstd2Via2l0LXRyYW5zZm9ybTpzY2FsZTNkKDEuMTUsLjg1LDEpO3RyYW5zZm9ybTpzY2FsZTNkKDEuMTUsLjg1LDEpfTY1JXstd2Via2l0LXRyYW5zZm9ybTpzY2FsZTNkKC45NSwxLjA1LDEpO3RyYW5zZm9ybTpzY2FsZTNkKC45NSwxLjA1LDEpfTc1JXstd2Via2l0LXRyYW5zZm9ybTpzY2FsZTNkKDEuMDUsLjk1LDEpO3RyYW5zZm9ybTpzY2FsZTNkKDEuMDUsLjk1LDEpfXRvey13ZWJraXQtdHJhbnNmb3JtOnNjYWxlWCgxKTt0cmFuc2Zvcm06c2NhbGVYKDEpfX0uYW5pbWF0ZV9fcnViYmVyQmFuZHstd2Via2l0LWFuaW1hdGlvbi1uYW1lOnJ1YmJlckJhbmQ7YW5pbWF0aW9uLW5hbWU6cnViYmVyQmFuZH1ALXdlYmtpdC1rZXlmcmFtZXMgc2hha2VYezAlLHRvey13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZVooMCk7dHJhbnNmb3JtOnRyYW5zbGF0ZVooMCl9MTAlLDMwJSw1MCUsNzAlLDkwJXstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGUzZCgtMTBweCwwLDApO3RyYW5zZm9ybTp0cmFuc2xhdGUzZCgtMTBweCwwLDApfTIwJSw0MCUsNjAlLDgwJXstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGUzZCgxMHB4LDAsMCk7dHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDEwcHgsMCwwKX19QGtleWZyYW1lcyBzaGFrZVh7MCUsdG97LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlWigwKTt0cmFuc2Zvcm06dHJhbnNsYXRlWigwKX0xMCUsMzAlLDUwJSw3MCUsOTAley13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZTNkKC0xMHB4LDAsMCk7dHJhbnNmb3JtOnRyYW5zbGF0ZTNkKC0xMHB4LDAsMCl9MjAlLDQwJSw2MCUsODAley13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDEwcHgsMCwwKTt0cmFuc2Zvcm06dHJhbnNsYXRlM2QoMTBweCwwLDApfX0uYW5pbWF0ZV9fc2hha2VYey13ZWJraXQtYW5pbWF0aW9uLW5hbWU6c2hha2VYO2FuaW1hdGlvbi1uYW1lOnNoYWtlWH1ALXdlYmtpdC1rZXlmcmFtZXMgc2hha2VZezAlLHRvey13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZVooMCk7dHJhbnNmb3JtOnRyYW5zbGF0ZVooMCl9MTAlLDMwJSw1MCUsNzAlLDkwJXstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGUzZCgwLC0xMHB4LDApO3RyYW5zZm9ybTp0cmFuc2xhdGUzZCgwLC0xMHB4LDApfTIwJSw0MCUsNjAlLDgwJXstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGUzZCgwLDEwcHgsMCk7dHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDAsMTBweCwwKX19QGtleWZyYW1lcyBzaGFrZVl7MCUsdG97LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlWigwKTt0cmFuc2Zvcm06dHJhbnNsYXRlWigwKX0xMCUsMzAlLDUwJSw3MCUsOTAley13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDAsLTEwcHgsMCk7dHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDAsLTEwcHgsMCl9MjAlLDQwJSw2MCUsODAley13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDAsMTBweCwwKTt0cmFuc2Zvcm06dHJhbnNsYXRlM2QoMCwxMHB4LDApfX0uYW5pbWF0ZV9fc2hha2VZey13ZWJraXQtYW5pbWF0aW9uLW5hbWU6c2hha2VZO2FuaW1hdGlvbi1uYW1lOnNoYWtlWX1ALXdlYmtpdC1rZXlmcmFtZXMgaGVhZFNoYWtlezAley13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZVgoMCk7dHJhbnNmb3JtOnRyYW5zbGF0ZVgoMCl9Ni41JXstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGVYKC02cHgpIHJvdGF0ZVkoLTlkZWcpO3RyYW5zZm9ybTp0cmFuc2xhdGVYKC02cHgpIHJvdGF0ZVkoLTlkZWcpfTE4LjUley13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZVgoNXB4KSByb3RhdGVZKDdkZWcpO3RyYW5zZm9ybTp0cmFuc2xhdGVYKDVweCkgcm90YXRlWSg3ZGVnKX0zMS41JXstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGVYKC0zcHgpIHJvdGF0ZVkoLTVkZWcpO3RyYW5zZm9ybTp0cmFuc2xhdGVYKC0zcHgpIHJvdGF0ZVkoLTVkZWcpfTQzLjUley13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZVgoMnB4KSByb3RhdGVZKDNkZWcpO3RyYW5zZm9ybTp0cmFuc2xhdGVYKDJweCkgcm90YXRlWSgzZGVnKX01MCV7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlWCgwKTt0cmFuc2Zvcm06dHJhbnNsYXRlWCgwKX19QGtleWZyYW1lcyBoZWFkU2hha2V7MCV7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlWCgwKTt0cmFuc2Zvcm06dHJhbnNsYXRlWCgwKX02LjUley13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZVgoLTZweCkgcm90YXRlWSgtOWRlZyk7dHJhbnNmb3JtOnRyYW5zbGF0ZVgoLTZweCkgcm90YXRlWSgtOWRlZyl9MTguNSV7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlWCg1cHgpIHJvdGF0ZVkoN2RlZyk7dHJhbnNmb3JtOnRyYW5zbGF0ZVgoNXB4KSByb3RhdGVZKDdkZWcpfTMxLjUley13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZVgoLTNweCkgcm90YXRlWSgtNWRlZyk7dHJhbnNmb3JtOnRyYW5zbGF0ZVgoLTNweCkgcm90YXRlWSgtNWRlZyl9NDMuNSV7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlWCgycHgpIHJvdGF0ZVkoM2RlZyk7dHJhbnNmb3JtOnRyYW5zbGF0ZVgoMnB4KSByb3RhdGVZKDNkZWcpfTUwJXstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGVYKDApO3RyYW5zZm9ybTp0cmFuc2xhdGVYKDApfX0uYW5pbWF0ZV9faGVhZFNoYWtley13ZWJraXQtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjplYXNlLWluLW91dDthbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOmVhc2UtaW4tb3V0Oy13ZWJraXQtYW5pbWF0aW9uLW5hbWU6aGVhZFNoYWtlO2FuaW1hdGlvbi1uYW1lOmhlYWRTaGFrZX1ALXdlYmtpdC1rZXlmcmFtZXMgc3dpbmd7MjAley13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSgxNWRlZyk7dHJhbnNmb3JtOnJvdGF0ZSgxNWRlZyl9NDAley13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSgtMTBkZWcpO3RyYW5zZm9ybTpyb3RhdGUoLTEwZGVnKX02MCV7LXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKDVkZWcpO3RyYW5zZm9ybTpyb3RhdGUoNWRlZyl9ODAley13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSgtNWRlZyk7dHJhbnNmb3JtOnJvdGF0ZSgtNWRlZyl9dG97LXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKDBkZWcpO3RyYW5zZm9ybTpyb3RhdGUoMGRlZyl9fUBrZXlmcmFtZXMgc3dpbmd7MjAley13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSgxNWRlZyk7dHJhbnNmb3JtOnJvdGF0ZSgxNWRlZyl9NDAley13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSgtMTBkZWcpO3RyYW5zZm9ybTpyb3RhdGUoLTEwZGVnKX02MCV7LXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKDVkZWcpO3RyYW5zZm9ybTpyb3RhdGUoNWRlZyl9ODAley13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSgtNWRlZyk7dHJhbnNmb3JtOnJvdGF0ZSgtNWRlZyl9dG97LXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKDBkZWcpO3RyYW5zZm9ybTpyb3RhdGUoMGRlZyl9fS5hbmltYXRlX19zd2luZ3std2Via2l0LXRyYW5zZm9ybS1vcmlnaW46dG9wIGNlbnRlcjt0cmFuc2Zvcm0tb3JpZ2luOnRvcCBjZW50ZXI7LXdlYmtpdC1hbmltYXRpb24tbmFtZTpzd2luZzthbmltYXRpb24tbmFtZTpzd2luZ31ALXdlYmtpdC1rZXlmcmFtZXMgdGFkYXswJXstd2Via2l0LXRyYW5zZm9ybTpzY2FsZVgoMSk7dHJhbnNmb3JtOnNjYWxlWCgxKX0xMCUsMjAley13ZWJraXQtdHJhbnNmb3JtOnNjYWxlM2QoLjksLjksLjkpIHJvdGF0ZSgtM2RlZyk7dHJhbnNmb3JtOnNjYWxlM2QoLjksLjksLjkpIHJvdGF0ZSgtM2RlZyl9MzAlLDUwJSw3MCUsOTAley13ZWJraXQtdHJhbnNmb3JtOnNjYWxlM2QoMS4xLDEuMSwxLjEpIHJvdGF0ZSgzZGVnKTt0cmFuc2Zvcm06c2NhbGUzZCgxLjEsMS4xLDEuMSkgcm90YXRlKDNkZWcpfTQwJSw2MCUsODAley13ZWJraXQtdHJhbnNmb3JtOnNjYWxlM2QoMS4xLDEuMSwxLjEpIHJvdGF0ZSgtM2RlZyk7dHJhbnNmb3JtOnNjYWxlM2QoMS4xLDEuMSwxLjEpIHJvdGF0ZSgtM2RlZyl9dG97LXdlYmtpdC10cmFuc2Zvcm06c2NhbGVYKDEpO3RyYW5zZm9ybTpzY2FsZVgoMSl9fUBrZXlmcmFtZXMgdGFkYXswJXstd2Via2l0LXRyYW5zZm9ybTpzY2FsZVgoMSk7dHJhbnNmb3JtOnNjYWxlWCgxKX0xMCUsMjAley13ZWJraXQtdHJhbnNmb3JtOnNjYWxlM2QoLjksLjksLjkpIHJvdGF0ZSgtM2RlZyk7dHJhbnNmb3JtOnNjYWxlM2QoLjksLjksLjkpIHJvdGF0ZSgtM2RlZyl9MzAlLDUwJSw3MCUsOTAley13ZWJraXQtdHJhbnNmb3JtOnNjYWxlM2QoMS4xLDEuMSwxLjEpIHJvdGF0ZSgzZGVnKTt0cmFuc2Zvcm06c2NhbGUzZCgxLjEsMS4xLDEuMSkgcm90YXRlKDNkZWcpfTQwJSw2MCUsODAley13ZWJraXQtdHJhbnNmb3JtOnNjYWxlM2QoMS4xLDEuMSwxLjEpIHJvdGF0ZSgtM2RlZyk7dHJhbnNmb3JtOnNjYWxlM2QoMS4xLDEuMSwxLjEpIHJvdGF0ZSgtM2RlZyl9dG97LXdlYmtpdC10cmFuc2Zvcm06c2NhbGVYKDEpO3RyYW5zZm9ybTpzY2FsZVgoMSl9fS5hbmltYXRlX190YWRhey13ZWJraXQtYW5pbWF0aW9uLW5hbWU6dGFkYTthbmltYXRpb24tbmFtZTp0YWRhfUAtd2Via2l0LWtleWZyYW1lcyB3b2JibGV7MCV7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlWigwKTt0cmFuc2Zvcm06dHJhbnNsYXRlWigwKX0xNSV7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlM2QoLTI1JSwwLDApIHJvdGF0ZSgtNWRlZyk7dHJhbnNmb3JtOnRyYW5zbGF0ZTNkKC0yNSUsMCwwKSByb3RhdGUoLTVkZWcpfTMwJXstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGUzZCgyMCUsMCwwKSByb3RhdGUoM2RlZyk7dHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDIwJSwwLDApIHJvdGF0ZSgzZGVnKX00NSV7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlM2QoLTE1JSwwLDApIHJvdGF0ZSgtM2RlZyk7dHJhbnNmb3JtOnRyYW5zbGF0ZTNkKC0xNSUsMCwwKSByb3RhdGUoLTNkZWcpfTYwJXstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGUzZCgxMCUsMCwwKSByb3RhdGUoMmRlZyk7dHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDEwJSwwLDApIHJvdGF0ZSgyZGVnKX03NSV7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlM2QoLTUlLDAsMCkgcm90YXRlKC0xZGVnKTt0cmFuc2Zvcm06dHJhbnNsYXRlM2QoLTUlLDAsMCkgcm90YXRlKC0xZGVnKX10b3std2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGVaKDApO3RyYW5zZm9ybTp0cmFuc2xhdGVaKDApfX1Aa2V5ZnJhbWVzIHdvYmJsZXswJXstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGVaKDApO3RyYW5zZm9ybTp0cmFuc2xhdGVaKDApfTE1JXstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGUzZCgtMjUlLDAsMCkgcm90YXRlKC01ZGVnKTt0cmFuc2Zvcm06dHJhbnNsYXRlM2QoLTI1JSwwLDApIHJvdGF0ZSgtNWRlZyl9MzAley13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDIwJSwwLDApIHJvdGF0ZSgzZGVnKTt0cmFuc2Zvcm06dHJhbnNsYXRlM2QoMjAlLDAsMCkgcm90YXRlKDNkZWcpfTQ1JXstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGUzZCgtMTUlLDAsMCkgcm90YXRlKC0zZGVnKTt0cmFuc2Zvcm06dHJhbnNsYXRlM2QoLTE1JSwwLDApIHJvdGF0ZSgtM2RlZyl9NjAley13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDEwJSwwLDApIHJvdGF0ZSgyZGVnKTt0cmFuc2Zvcm06dHJhbnNsYXRlM2QoMTAlLDAsMCkgcm90YXRlKDJkZWcpfTc1JXstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGUzZCgtNSUsMCwwKSByb3RhdGUoLTFkZWcpO3RyYW5zZm9ybTp0cmFuc2xhdGUzZCgtNSUsMCwwKSByb3RhdGUoLTFkZWcpfXRvey13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZVooMCk7dHJhbnNmb3JtOnRyYW5zbGF0ZVooMCl9fS5hbmltYXRlX193b2JibGV7LXdlYmtpdC1hbmltYXRpb24tbmFtZTp3b2JibGU7YW5pbWF0aW9uLW5hbWU6d29iYmxlfUAtd2Via2l0LWtleWZyYW1lcyBqZWxsb3swJSwxMS4xJSx0b3std2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGVaKDApO3RyYW5zZm9ybTp0cmFuc2xhdGVaKDApfTIyLjIley13ZWJraXQtdHJhbnNmb3JtOnNrZXdYKC0xMi41ZGVnKSBza2V3WSgtMTIuNWRlZyk7dHJhbnNmb3JtOnNrZXdYKC0xMi41ZGVnKSBza2V3WSgtMTIuNWRlZyl9MzMuMyV7LXdlYmtpdC10cmFuc2Zvcm06c2tld1goNi4yNWRlZykgc2tld1koNi4yNWRlZyk7dHJhbnNmb3JtOnNrZXdYKDYuMjVkZWcpIHNrZXdZKDYuMjVkZWcpfTQ0LjQley13ZWJraXQtdHJhbnNmb3JtOnNrZXdYKC0zLjEyNWRlZykgc2tld1koLTMuMTI1ZGVnKTt0cmFuc2Zvcm06c2tld1goLTMuMTI1ZGVnKSBza2V3WSgtMy4xMjVkZWcpfTU1LjUley13ZWJraXQtdHJhbnNmb3JtOnNrZXdYKDEuNTYyNWRlZykgc2tld1koMS41NjI1ZGVnKTt0cmFuc2Zvcm06c2tld1goMS41NjI1ZGVnKSBza2V3WSgxLjU2MjVkZWcpfTY2LjYley13ZWJraXQtdHJhbnNmb3JtOnNrZXdYKC0uNzgxMjVkZWcpIHNrZXdZKC0uNzgxMjVkZWcpO3RyYW5zZm9ybTpza2V3WCgtLjc4MTI1ZGVnKSBza2V3WSgtLjc4MTI1ZGVnKX03Ny43JXstd2Via2l0LXRyYW5zZm9ybTpza2V3WCguMzkwNjI1ZGVnKSBza2V3WSguMzkwNjI1ZGVnKTt0cmFuc2Zvcm06c2tld1goLjM5MDYyNWRlZykgc2tld1koLjM5MDYyNWRlZyl9ODguOCV7LXdlYmtpdC10cmFuc2Zvcm06c2tld1goLS4xOTUzMTI1ZGVnKSBza2V3WSgtLjE5NTMxMjVkZWcpO3RyYW5zZm9ybTpza2V3WCgtLjE5NTMxMjVkZWcpIHNrZXdZKC0uMTk1MzEyNWRlZyl9fUBrZXlmcmFtZXMgamVsbG97MCUsMTEuMSUsdG97LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlWigwKTt0cmFuc2Zvcm06dHJhbnNsYXRlWigwKX0yMi4yJXstd2Via2l0LXRyYW5zZm9ybTpza2V3WCgtMTIuNWRlZykgc2tld1koLTEyLjVkZWcpO3RyYW5zZm9ybTpza2V3WCgtMTIuNWRlZykgc2tld1koLTEyLjVkZWcpfTMzLjMley13ZWJraXQtdHJhbnNmb3JtOnNrZXdYKDYuMjVkZWcpIHNrZXdZKDYuMjVkZWcpO3RyYW5zZm9ybTpza2V3WCg2LjI1ZGVnKSBza2V3WSg2LjI1ZGVnKX00NC40JXstd2Via2l0LXRyYW5zZm9ybTpza2V3WCgtMy4xMjVkZWcpIHNrZXdZKC0zLjEyNWRlZyk7dHJhbnNmb3JtOnNrZXdYKC0zLjEyNWRlZykgc2tld1koLTMuMTI1ZGVnKX01NS41JXstd2Via2l0LXRyYW5zZm9ybTpza2V3WCgxLjU2MjVkZWcpIHNrZXdZKDEuNTYyNWRlZyk7dHJhbnNmb3JtOnNrZXdYKDEuNTYyNWRlZykgc2tld1koMS41NjI1ZGVnKX02Ni42JXstd2Via2l0LXRyYW5zZm9ybTpza2V3WCgtLjc4MTI1ZGVnKSBza2V3WSgtLjc4MTI1ZGVnKTt0cmFuc2Zvcm06c2tld1goLS43ODEyNWRlZykgc2tld1koLS43ODEyNWRlZyl9NzcuNyV7LXdlYmtpdC10cmFuc2Zvcm06c2tld1goLjM5MDYyNWRlZykgc2tld1koLjM5MDYyNWRlZyk7dHJhbnNmb3JtOnNrZXdYKC4zOTA2MjVkZWcpIHNrZXdZKC4zOTA2MjVkZWcpfTg4Ljgley13ZWJraXQtdHJhbnNmb3JtOnNrZXdYKC0uMTk1MzEyNWRlZykgc2tld1koLS4xOTUzMTI1ZGVnKTt0cmFuc2Zvcm06c2tld1goLS4xOTUzMTI1ZGVnKSBza2V3WSgtLjE5NTMxMjVkZWcpfX0uYW5pbWF0ZV9famVsbG97LXdlYmtpdC1hbmltYXRpb24tbmFtZTpqZWxsbzthbmltYXRpb24tbmFtZTpqZWxsbzstd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46Y2VudGVyO3RyYW5zZm9ybS1vcmlnaW46Y2VudGVyfUAtd2Via2l0LWtleWZyYW1lcyBoZWFydEJlYXR7MCV7LXdlYmtpdC10cmFuc2Zvcm06c2NhbGUoMSk7dHJhbnNmb3JtOnNjYWxlKDEpfTE0JXstd2Via2l0LXRyYW5zZm9ybTpzY2FsZSgxLjMpO3RyYW5zZm9ybTpzY2FsZSgxLjMpfTI4JXstd2Via2l0LXRyYW5zZm9ybTpzY2FsZSgxKTt0cmFuc2Zvcm06c2NhbGUoMSl9NDIley13ZWJraXQtdHJhbnNmb3JtOnNjYWxlKDEuMyk7dHJhbnNmb3JtOnNjYWxlKDEuMyl9NzAley13ZWJraXQtdHJhbnNmb3JtOnNjYWxlKDEpO3RyYW5zZm9ybTpzY2FsZSgxKX19QGtleWZyYW1lcyBoZWFydEJlYXR7MCV7LXdlYmtpdC10cmFuc2Zvcm06c2NhbGUoMSk7dHJhbnNmb3JtOnNjYWxlKDEpfTE0JXstd2Via2l0LXRyYW5zZm9ybTpzY2FsZSgxLjMpO3RyYW5zZm9ybTpzY2FsZSgxLjMpfTI4JXstd2Via2l0LXRyYW5zZm9ybTpzY2FsZSgxKTt0cmFuc2Zvcm06c2NhbGUoMSl9NDIley13ZWJraXQtdHJhbnNmb3JtOnNjYWxlKDEuMyk7dHJhbnNmb3JtOnNjYWxlKDEuMyl9NzAley13ZWJraXQtdHJhbnNmb3JtOnNjYWxlKDEpO3RyYW5zZm9ybTpzY2FsZSgxKX19LmFuaW1hdGVfX2hlYXJ0QmVhdHstd2Via2l0LWFuaW1hdGlvbi1uYW1lOmhlYXJ0QmVhdDthbmltYXRpb24tbmFtZTpoZWFydEJlYXQ7LXdlYmtpdC1hbmltYXRpb24tZHVyYXRpb246MS4zczthbmltYXRpb24tZHVyYXRpb246MS4zczstd2Via2l0LWFuaW1hdGlvbi1kdXJhdGlvbjpjYWxjKHZhcigtLWFuaW1hdGUtZHVyYXRpb24pKjEuMyk7YW5pbWF0aW9uLWR1cmF0aW9uOmNhbGModmFyKC0tYW5pbWF0ZS1kdXJhdGlvbikqMS4zKTstd2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246ZWFzZS1pbi1vdXQ7YW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjplYXNlLWluLW91dH1ALXdlYmtpdC1rZXlmcmFtZXMgYmFja0luRG93bnswJXstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGVZKC0xMjAwcHgpIHNjYWxlKC43KTt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMTIwMHB4KSBzY2FsZSguNyk7b3BhY2l0eTouN304MCV7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlWSgwKSBzY2FsZSguNyk7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoMCkgc2NhbGUoLjcpO29wYWNpdHk6Ljd9dG97LXdlYmtpdC10cmFuc2Zvcm06c2NhbGUoMSk7dHJhbnNmb3JtOnNjYWxlKDEpO29wYWNpdHk6MX19QGtleWZyYW1lcyBiYWNrSW5Eb3duezAley13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTEyMDBweCkgc2NhbGUoLjcpO3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xMjAwcHgpIHNjYWxlKC43KTtvcGFjaXR5Oi43fTgwJXstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGVZKDApIHNjYWxlKC43KTt0cmFuc2Zvcm06dHJhbnNsYXRlWSgwKSBzY2FsZSguNyk7b3BhY2l0eTouN310b3std2Via2l0LXRyYW5zZm9ybTpzY2FsZSgxKTt0cmFuc2Zvcm06c2NhbGUoMSk7b3BhY2l0eToxfX0uYW5pbWF0ZV9fYmFja0luRG93bnstd2Via2l0LWFuaW1hdGlvbi1uYW1lOmJhY2tJbkRvd247YW5pbWF0aW9uLW5hbWU6YmFja0luRG93bn1ALXdlYmtpdC1rZXlmcmFtZXMgYmFja0luTGVmdHswJXstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGVYKC0yMDAwcHgpIHNjYWxlKC43KTt0cmFuc2Zvcm06dHJhbnNsYXRlWCgtMjAwMHB4KSBzY2FsZSguNyk7b3BhY2l0eTouN304MCV7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlWCgwKSBzY2FsZSguNyk7dHJhbnNmb3JtOnRyYW5zbGF0ZVgoMCkgc2NhbGUoLjcpO29wYWNpdHk6Ljd9dG97LXdlYmtpdC10cmFuc2Zvcm06c2NhbGUoMSk7dHJhbnNmb3JtOnNjYWxlKDEpO29wYWNpdHk6MX19QGtleWZyYW1lcyBiYWNrSW5MZWZ0ezAley13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZVgoLTIwMDBweCkgc2NhbGUoLjcpO3RyYW5zZm9ybTp0cmFuc2xhdGVYKC0yMDAwcHgpIHNjYWxlKC43KTtvcGFjaXR5Oi43fTgwJXstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGVYKDApIHNjYWxlKC43KTt0cmFuc2Zvcm06dHJhbnNsYXRlWCgwKSBzY2FsZSguNyk7b3BhY2l0eTouN310b3std2Via2l0LXRyYW5zZm9ybTpzY2FsZSgxKTt0cmFuc2Zvcm06c2NhbGUoMSk7b3BhY2l0eToxfX0uYW5pbWF0ZV9fYmFja0luTGVmdHstd2Via2l0LWFuaW1hdGlvbi1uYW1lOmJhY2tJbkxlZnQ7YW5pbWF0aW9uLW5hbWU6YmFja0luTGVmdH1ALXdlYmtpdC1rZXlmcmFtZXMgYmFja0luUmlnaHR7MCV7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlWCgyMDAwcHgpIHNjYWxlKC43KTt0cmFuc2Zvcm06dHJhbnNsYXRlWCgyMDAwcHgpIHNjYWxlKC43KTtvcGFjaXR5Oi43fTgwJXstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGVYKDApIHNjYWxlKC43KTt0cmFuc2Zvcm06dHJhbnNsYXRlWCgwKSBzY2FsZSguNyk7b3BhY2l0eTouN310b3std2Via2l0LXRyYW5zZm9ybTpzY2FsZSgxKTt0cmFuc2Zvcm06c2NhbGUoMSk7b3BhY2l0eToxfX1Aa2V5ZnJhbWVzIGJhY2tJblJpZ2h0ezAley13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZVgoMjAwMHB4KSBzY2FsZSguNyk7dHJhbnNmb3JtOnRyYW5zbGF0ZVgoMjAwMHB4KSBzY2FsZSguNyk7b3BhY2l0eTouN304MCV7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlWCgwKSBzY2FsZSguNyk7dHJhbnNmb3JtOnRyYW5zbGF0ZVgoMCkgc2NhbGUoLjcpO29wYWNpdHk6Ljd9dG97LXdlYmtpdC10cmFuc2Zvcm06c2NhbGUoMSk7dHJhbnNmb3JtOnNjYWxlKDEpO29wYWNpdHk6MX19LmFuaW1hdGVfX2JhY2tJblJpZ2h0ey13ZWJraXQtYW5pbWF0aW9uLW5hbWU6YmFja0luUmlnaHQ7YW5pbWF0aW9uLW5hbWU6YmFja0luUmlnaHR9QC13ZWJraXQta2V5ZnJhbWVzIGJhY2tJblVwezAley13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoMTIwMHB4KSBzY2FsZSguNyk7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoMTIwMHB4KSBzY2FsZSguNyk7b3BhY2l0eTouN304MCV7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlWSgwKSBzY2FsZSguNyk7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoMCkgc2NhbGUoLjcpO29wYWNpdHk6Ljd9dG97LXdlYmtpdC10cmFuc2Zvcm06c2NhbGUoMSk7dHJhbnNmb3JtOnNjYWxlKDEpO29wYWNpdHk6MX19QGtleWZyYW1lcyBiYWNrSW5VcHswJXstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGVZKDEyMDBweCkgc2NhbGUoLjcpO3RyYW5zZm9ybTp0cmFuc2xhdGVZKDEyMDBweCkgc2NhbGUoLjcpO29wYWNpdHk6Ljd9ODAley13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoMCkgc2NhbGUoLjcpO3RyYW5zZm9ybTp0cmFuc2xhdGVZKDApIHNjYWxlKC43KTtvcGFjaXR5Oi43fXRvey13ZWJraXQtdHJhbnNmb3JtOnNjYWxlKDEpO3RyYW5zZm9ybTpzY2FsZSgxKTtvcGFjaXR5OjF9fS5hbmltYXRlX19iYWNrSW5VcHstd2Via2l0LWFuaW1hdGlvbi1uYW1lOmJhY2tJblVwO2FuaW1hdGlvbi1uYW1lOmJhY2tJblVwfUAtd2Via2l0LWtleWZyYW1lcyBiYWNrT3V0RG93bnswJXstd2Via2l0LXRyYW5zZm9ybTpzY2FsZSgxKTt0cmFuc2Zvcm06c2NhbGUoMSk7b3BhY2l0eToxfTIwJXstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGVZKDApIHNjYWxlKC43KTt0cmFuc2Zvcm06dHJhbnNsYXRlWSgwKSBzY2FsZSguNyk7b3BhY2l0eTouN310b3std2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGVZKDcwMHB4KSBzY2FsZSguNyk7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoNzAwcHgpIHNjYWxlKC43KTtvcGFjaXR5Oi43fX1Aa2V5ZnJhbWVzIGJhY2tPdXREb3duezAley13ZWJraXQtdHJhbnNmb3JtOnNjYWxlKDEpO3RyYW5zZm9ybTpzY2FsZSgxKTtvcGFjaXR5OjF9MjAley13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoMCkgc2NhbGUoLjcpO3RyYW5zZm9ybTp0cmFuc2xhdGVZKDApIHNjYWxlKC43KTtvcGFjaXR5Oi43fXRvey13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoNzAwcHgpIHNjYWxlKC43KTt0cmFuc2Zvcm06dHJhbnNsYXRlWSg3MDBweCkgc2NhbGUoLjcpO29wYWNpdHk6Ljd9fS5hbmltYXRlX19iYWNrT3V0RG93bnstd2Via2l0LWFuaW1hdGlvbi1uYW1lOmJhY2tPdXREb3duO2FuaW1hdGlvbi1uYW1lOmJhY2tPdXREb3dufUAtd2Via2l0LWtleWZyYW1lcyBiYWNrT3V0TGVmdHswJXstd2Via2l0LXRyYW5zZm9ybTpzY2FsZSgxKTt0cmFuc2Zvcm06c2NhbGUoMSk7b3BhY2l0eToxfTIwJXstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGVYKDApIHNjYWxlKC43KTt0cmFuc2Zvcm06dHJhbnNsYXRlWCgwKSBzY2FsZSguNyk7b3BhY2l0eTouN310b3std2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGVYKC0yMDAwcHgpIHNjYWxlKC43KTt0cmFuc2Zvcm06dHJhbnNsYXRlWCgtMjAwMHB4KSBzY2FsZSguNyk7b3BhY2l0eTouN319QGtleWZyYW1lcyBiYWNrT3V0TGVmdHswJXstd2Via2l0LXRyYW5zZm9ybTpzY2FsZSgxKTt0cmFuc2Zvcm06c2NhbGUoMSk7b3BhY2l0eToxfTIwJXstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGVYKDApIHNjYWxlKC43KTt0cmFuc2Zvcm06dHJhbnNsYXRlWCgwKSBzY2FsZSguNyk7b3BhY2l0eTouN310b3std2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGVYKC0yMDAwcHgpIHNjYWxlKC43KTt0cmFuc2Zvcm06dHJhbnNsYXRlWCgtMjAwMHB4KSBzY2FsZSguNyk7b3BhY2l0eTouN319LmFuaW1hdGVfX2JhY2tPdXRMZWZ0ey13ZWJraXQtYW5pbWF0aW9uLW5hbWU6YmFja091dExlZnQ7YW5pbWF0aW9uLW5hbWU6YmFja091dExlZnR9QC13ZWJraXQta2V5ZnJhbWVzIGJhY2tPdXRSaWdodHswJXstd2Via2l0LXRyYW5zZm9ybTpzY2FsZSgxKTt0cmFuc2Zvcm06c2NhbGUoMSk7b3BhY2l0eToxfTIwJXstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGVYKDApIHNjYWxlKC43KTt0cmFuc2Zvcm06dHJhbnNsYXRlWCgwKSBzY2FsZSguNyk7b3BhY2l0eTouN310b3std2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGVYKDIwMDBweCkgc2NhbGUoLjcpO3RyYW5zZm9ybTp0cmFuc2xhdGVYKDIwMDBweCkgc2NhbGUoLjcpO29wYWNpdHk6Ljd9fUBrZXlmcmFtZXMgYmFja091dFJpZ2h0ezAley13ZWJraXQtdHJhbnNmb3JtOnNjYWxlKDEpO3RyYW5zZm9ybTpzY2FsZSgxKTtvcGFjaXR5OjF9MjAley13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZVgoMCkgc2NhbGUoLjcpO3RyYW5zZm9ybTp0cmFuc2xhdGVYKDApIHNjYWxlKC43KTtvcGFjaXR5Oi43fXRvey13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZVgoMjAwMHB4KSBzY2FsZSguNyk7dHJhbnNmb3JtOnRyYW5zbGF0ZVgoMjAwMHB4KSBzY2FsZSguNyk7b3BhY2l0eTouN319LmFuaW1hdGVfX2JhY2tPdXRSaWdodHstd2Via2l0LWFuaW1hdGlvbi1uYW1lOmJhY2tPdXRSaWdodDthbmltYXRpb24tbmFtZTpiYWNrT3V0UmlnaHR9QC13ZWJraXQta2V5ZnJhbWVzIGJhY2tPdXRVcHswJXstd2Via2l0LXRyYW5zZm9ybTpzY2FsZSgxKTt0cmFuc2Zvcm06c2NhbGUoMSk7b3BhY2l0eToxfTIwJXstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGVZKDApIHNjYWxlKC43KTt0cmFuc2Zvcm06dHJhbnNsYXRlWSgwKSBzY2FsZSguNyk7b3BhY2l0eTouN310b3std2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGVZKC03MDBweCkgc2NhbGUoLjcpO3RyYW5zZm9ybTp0cmFuc2xhdGVZKC03MDBweCkgc2NhbGUoLjcpO29wYWNpdHk6Ljd9fUBrZXlmcmFtZXMgYmFja091dFVwezAley13ZWJraXQtdHJhbnNmb3JtOnNjYWxlKDEpO3RyYW5zZm9ybTpzY2FsZSgxKTtvcGFjaXR5OjF9MjAley13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoMCkgc2NhbGUoLjcpO3RyYW5zZm9ybTp0cmFuc2xhdGVZKDApIHNjYWxlKC43KTtvcGFjaXR5Oi43fXRvey13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTcwMHB4KSBzY2FsZSguNyk7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTcwMHB4KSBzY2FsZSguNyk7b3BhY2l0eTouN319LmFuaW1hdGVfX2JhY2tPdXRVcHstd2Via2l0LWFuaW1hdGlvbi1uYW1lOmJhY2tPdXRVcDthbmltYXRpb24tbmFtZTpiYWNrT3V0VXB9QC13ZWJraXQta2V5ZnJhbWVzIGJvdW5jZUluezAlLDIwJSw0MCUsNjAlLDgwJSx0b3std2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246Y3ViaWMtYmV6aWVyKC4yMTUsLjYxLC4zNTUsMSk7YW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjpjdWJpYy1iZXppZXIoLjIxNSwuNjEsLjM1NSwxKX0wJXtvcGFjaXR5OjA7LXdlYmtpdC10cmFuc2Zvcm06c2NhbGUzZCguMywuMywuMyk7dHJhbnNmb3JtOnNjYWxlM2QoLjMsLjMsLjMpfTIwJXstd2Via2l0LXRyYW5zZm9ybTpzY2FsZTNkKDEuMSwxLjEsMS4xKTt0cmFuc2Zvcm06c2NhbGUzZCgxLjEsMS4xLDEuMSl9NDAley13ZWJraXQtdHJhbnNmb3JtOnNjYWxlM2QoLjksLjksLjkpO3RyYW5zZm9ybTpzY2FsZTNkKC45LC45LC45KX02MCV7b3BhY2l0eToxOy13ZWJraXQtdHJhbnNmb3JtOnNjYWxlM2QoMS4wMywxLjAzLDEuMDMpO3RyYW5zZm9ybTpzY2FsZTNkKDEuMDMsMS4wMywxLjAzKX04MCV7LXdlYmtpdC10cmFuc2Zvcm06c2NhbGUzZCguOTcsLjk3LC45Nyk7dHJhbnNmb3JtOnNjYWxlM2QoLjk3LC45NywuOTcpfXRve29wYWNpdHk6MTstd2Via2l0LXRyYW5zZm9ybTpzY2FsZVgoMSk7dHJhbnNmb3JtOnNjYWxlWCgxKX19QGtleWZyYW1lcyBib3VuY2VJbnswJSwyMCUsNDAlLDYwJSw4MCUsdG97LXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOmN1YmljLWJlemllciguMjE1LC42MSwuMzU1LDEpO2FuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246Y3ViaWMtYmV6aWVyKC4yMTUsLjYxLC4zNTUsMSl9MCV7b3BhY2l0eTowOy13ZWJraXQtdHJhbnNmb3JtOnNjYWxlM2QoLjMsLjMsLjMpO3RyYW5zZm9ybTpzY2FsZTNkKC4zLC4zLC4zKX0yMCV7LXdlYmtpdC10cmFuc2Zvcm06c2NhbGUzZCgxLjEsMS4xLDEuMSk7dHJhbnNmb3JtOnNjYWxlM2QoMS4xLDEuMSwxLjEpfTQwJXstd2Via2l0LXRyYW5zZm9ybTpzY2FsZTNkKC45LC45LC45KTt0cmFuc2Zvcm06c2NhbGUzZCguOSwuOSwuOSl9NjAle29wYWNpdHk6MTstd2Via2l0LXRyYW5zZm9ybTpzY2FsZTNkKDEuMDMsMS4wMywxLjAzKTt0cmFuc2Zvcm06c2NhbGUzZCgxLjAzLDEuMDMsMS4wMyl9ODAley13ZWJraXQtdHJhbnNmb3JtOnNjYWxlM2QoLjk3LC45NywuOTcpO3RyYW5zZm9ybTpzY2FsZTNkKC45NywuOTcsLjk3KX10b3tvcGFjaXR5OjE7LXdlYmtpdC10cmFuc2Zvcm06c2NhbGVYKDEpO3RyYW5zZm9ybTpzY2FsZVgoMSl9fS5hbmltYXRlX19ib3VuY2VJbnstd2Via2l0LWFuaW1hdGlvbi1kdXJhdGlvbjouNzVzO2FuaW1hdGlvbi1kdXJhdGlvbjouNzVzOy13ZWJraXQtYW5pbWF0aW9uLWR1cmF0aW9uOmNhbGModmFyKC0tYW5pbWF0ZS1kdXJhdGlvbikqMC43NSk7YW5pbWF0aW9uLWR1cmF0aW9uOmNhbGModmFyKC0tYW5pbWF0ZS1kdXJhdGlvbikqMC43NSk7LXdlYmtpdC1hbmltYXRpb24tbmFtZTpib3VuY2VJbjthbmltYXRpb24tbmFtZTpib3VuY2VJbn1ALXdlYmtpdC1rZXlmcmFtZXMgYm91bmNlSW5Eb3duezAlLDYwJSw3NSUsOTAlLHRvey13ZWJraXQtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjpjdWJpYy1iZXppZXIoLjIxNSwuNjEsLjM1NSwxKTthbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOmN1YmljLWJlemllciguMjE1LC42MSwuMzU1LDEpfTAle29wYWNpdHk6MDstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGUzZCgwLC0zMDAwcHgsMCkgc2NhbGVZKDMpO3RyYW5zZm9ybTp0cmFuc2xhdGUzZCgwLC0zMDAwcHgsMCkgc2NhbGVZKDMpfTYwJXtvcGFjaXR5OjE7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlM2QoMCwyNXB4LDApIHNjYWxlWSguOSk7dHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDAsMjVweCwwKSBzY2FsZVkoLjkpfTc1JXstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGUzZCgwLC0xMHB4LDApIHNjYWxlWSguOTUpO3RyYW5zZm9ybTp0cmFuc2xhdGUzZCgwLC0xMHB4LDApIHNjYWxlWSguOTUpfTkwJXstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGUzZCgwLDVweCwwKSBzY2FsZVkoLjk4NSk7dHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDAsNXB4LDApIHNjYWxlWSguOTg1KX10b3std2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGVaKDApO3RyYW5zZm9ybTp0cmFuc2xhdGVaKDApfX1Aa2V5ZnJhbWVzIGJvdW5jZUluRG93bnswJSw2MCUsNzUlLDkwJSx0b3std2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246Y3ViaWMtYmV6aWVyKC4yMTUsLjYxLC4zNTUsMSk7YW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjpjdWJpYy1iZXppZXIoLjIxNSwuNjEsLjM1NSwxKX0wJXtvcGFjaXR5OjA7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlM2QoMCwtMzAwMHB4LDApIHNjYWxlWSgzKTt0cmFuc2Zvcm06dHJhbnNsYXRlM2QoMCwtMzAwMHB4LDApIHNjYWxlWSgzKX02MCV7b3BhY2l0eToxOy13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDAsMjVweCwwKSBzY2FsZVkoLjkpO3RyYW5zZm9ybTp0cmFuc2xhdGUzZCgwLDI1cHgsMCkgc2NhbGVZKC45KX03NSV7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlM2QoMCwtMTBweCwwKSBzY2FsZVkoLjk1KTt0cmFuc2Zvcm06dHJhbnNsYXRlM2QoMCwtMTBweCwwKSBzY2FsZVkoLjk1KX05MCV7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlM2QoMCw1cHgsMCkgc2NhbGVZKC45ODUpO3RyYW5zZm9ybTp0cmFuc2xhdGUzZCgwLDVweCwwKSBzY2FsZVkoLjk4NSl9dG97LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlWigwKTt0cmFuc2Zvcm06dHJhbnNsYXRlWigwKX19LmFuaW1hdGVfX2JvdW5jZUluRG93bnstd2Via2l0LWFuaW1hdGlvbi1uYW1lOmJvdW5jZUluRG93bjthbmltYXRpb24tbmFtZTpib3VuY2VJbkRvd259QC13ZWJraXQta2V5ZnJhbWVzIGJvdW5jZUluTGVmdHswJSw2MCUsNzUlLDkwJSx0b3std2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246Y3ViaWMtYmV6aWVyKC4yMTUsLjYxLC4zNTUsMSk7YW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjpjdWJpYy1iZXppZXIoLjIxNSwuNjEsLjM1NSwxKX0wJXtvcGFjaXR5OjA7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlM2QoLTMwMDBweCwwLDApIHNjYWxlWCgzKTt0cmFuc2Zvcm06dHJhbnNsYXRlM2QoLTMwMDBweCwwLDApIHNjYWxlWCgzKX02MCV7b3BhY2l0eToxOy13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDI1cHgsMCwwKSBzY2FsZVgoMSk7dHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDI1cHgsMCwwKSBzY2FsZVgoMSl9NzUley13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZTNkKC0xMHB4LDAsMCkgc2NhbGVYKC45OCk7dHJhbnNmb3JtOnRyYW5zbGF0ZTNkKC0xMHB4LDAsMCkgc2NhbGVYKC45OCl9OTAley13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDVweCwwLDApIHNjYWxlWCguOTk1KTt0cmFuc2Zvcm06dHJhbnNsYXRlM2QoNXB4LDAsMCkgc2NhbGVYKC45OTUpfXRvey13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZVooMCk7dHJhbnNmb3JtOnRyYW5zbGF0ZVooMCl9fUBrZXlmcmFtZXMgYm91bmNlSW5MZWZ0ezAlLDYwJSw3NSUsOTAlLHRvey13ZWJraXQtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjpjdWJpYy1iZXppZXIoLjIxNSwuNjEsLjM1NSwxKTthbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOmN1YmljLWJlemllciguMjE1LC42MSwuMzU1LDEpfTAle29wYWNpdHk6MDstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGUzZCgtMzAwMHB4LDAsMCkgc2NhbGVYKDMpO3RyYW5zZm9ybTp0cmFuc2xhdGUzZCgtMzAwMHB4LDAsMCkgc2NhbGVYKDMpfTYwJXtvcGFjaXR5OjE7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlM2QoMjVweCwwLDApIHNjYWxlWCgxKTt0cmFuc2Zvcm06dHJhbnNsYXRlM2QoMjVweCwwLDApIHNjYWxlWCgxKX03NSV7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlM2QoLTEwcHgsMCwwKSBzY2FsZVgoLjk4KTt0cmFuc2Zvcm06dHJhbnNsYXRlM2QoLTEwcHgsMCwwKSBzY2FsZVgoLjk4KX05MCV7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlM2QoNXB4LDAsMCkgc2NhbGVYKC45OTUpO3RyYW5zZm9ybTp0cmFuc2xhdGUzZCg1cHgsMCwwKSBzY2FsZVgoLjk5NSl9dG97LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlWigwKTt0cmFuc2Zvcm06dHJhbnNsYXRlWigwKX19LmFuaW1hdGVfX2JvdW5jZUluTGVmdHstd2Via2l0LWFuaW1hdGlvbi1uYW1lOmJvdW5jZUluTGVmdDthbmltYXRpb24tbmFtZTpib3VuY2VJbkxlZnR9QC13ZWJraXQta2V5ZnJhbWVzIGJvdW5jZUluUmlnaHR7MCUsNjAlLDc1JSw5MCUsdG97LXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOmN1YmljLWJlemllciguMjE1LC42MSwuMzU1LDEpO2FuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246Y3ViaWMtYmV6aWVyKC4yMTUsLjYxLC4zNTUsMSl9MCV7b3BhY2l0eTowOy13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDMwMDBweCwwLDApIHNjYWxlWCgzKTt0cmFuc2Zvcm06dHJhbnNsYXRlM2QoMzAwMHB4LDAsMCkgc2NhbGVYKDMpfTYwJXtvcGFjaXR5OjE7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlM2QoLTI1cHgsMCwwKSBzY2FsZVgoMSk7dHJhbnNmb3JtOnRyYW5zbGF0ZTNkKC0yNXB4LDAsMCkgc2NhbGVYKDEpfTc1JXstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGUzZCgxMHB4LDAsMCkgc2NhbGVYKC45OCk7dHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDEwcHgsMCwwKSBzY2FsZVgoLjk4KX05MCV7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlM2QoLTVweCwwLDApIHNjYWxlWCguOTk1KTt0cmFuc2Zvcm06dHJhbnNsYXRlM2QoLTVweCwwLDApIHNjYWxlWCguOTk1KX10b3std2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGVaKDApO3RyYW5zZm9ybTp0cmFuc2xhdGVaKDApfX1Aa2V5ZnJhbWVzIGJvdW5jZUluUmlnaHR7MCUsNjAlLDc1JSw5MCUsdG97LXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOmN1YmljLWJlemllciguMjE1LC42MSwuMzU1LDEpO2FuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246Y3ViaWMtYmV6aWVyKC4yMTUsLjYxLC4zNTUsMSl9MCV7b3BhY2l0eTowOy13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDMwMDBweCwwLDApIHNjYWxlWCgzKTt0cmFuc2Zvcm06dHJhbnNsYXRlM2QoMzAwMHB4LDAsMCkgc2NhbGVYKDMpfTYwJXtvcGFjaXR5OjE7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlM2QoLTI1cHgsMCwwKSBzY2FsZVgoMSk7dHJhbnNmb3JtOnRyYW5zbGF0ZTNkKC0yNXB4LDAsMCkgc2NhbGVYKDEpfTc1JXstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGUzZCgxMHB4LDAsMCkgc2NhbGVYKC45OCk7dHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDEwcHgsMCwwKSBzY2FsZVgoLjk4KX05MCV7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlM2QoLTVweCwwLDApIHNjYWxlWCguOTk1KTt0cmFuc2Zvcm06dHJhbnNsYXRlM2QoLTVweCwwLDApIHNjYWxlWCguOTk1KX10b3std2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGVaKDApO3RyYW5zZm9ybTp0cmFuc2xhdGVaKDApfX0uYW5pbWF0ZV9fYm91bmNlSW5SaWdodHstd2Via2l0LWFuaW1hdGlvbi1uYW1lOmJvdW5jZUluUmlnaHQ7YW5pbWF0aW9uLW5hbWU6Ym91bmNlSW5SaWdodH1ALXdlYmtpdC1rZXlmcmFtZXMgYm91bmNlSW5VcHswJSw2MCUsNzUlLDkwJSx0b3std2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246Y3ViaWMtYmV6aWVyKC4yMTUsLjYxLC4zNTUsMSk7YW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjpjdWJpYy1iZXppZXIoLjIxNSwuNjEsLjM1NSwxKX0wJXtvcGFjaXR5OjA7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlM2QoMCwzMDAwcHgsMCkgc2NhbGVZKDUpO3RyYW5zZm9ybTp0cmFuc2xhdGUzZCgwLDMwMDBweCwwKSBzY2FsZVkoNSl9NjAle29wYWNpdHk6MTstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGUzZCgwLC0yMHB4LDApIHNjYWxlWSguOSk7dHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDAsLTIwcHgsMCkgc2NhbGVZKC45KX03NSV7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlM2QoMCwxMHB4LDApIHNjYWxlWSguOTUpO3RyYW5zZm9ybTp0cmFuc2xhdGUzZCgwLDEwcHgsMCkgc2NhbGVZKC45NSl9OTAley13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDAsLTVweCwwKSBzY2FsZVkoLjk4NSk7dHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDAsLTVweCwwKSBzY2FsZVkoLjk4NSl9dG97LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlWigwKTt0cmFuc2Zvcm06dHJhbnNsYXRlWigwKX19QGtleWZyYW1lcyBib3VuY2VJblVwezAlLDYwJSw3NSUsOTAlLHRvey13ZWJraXQtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjpjdWJpYy1iZXppZXIoLjIxNSwuNjEsLjM1NSwxKTthbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOmN1YmljLWJlemllciguMjE1LC42MSwuMzU1LDEpfTAle29wYWNpdHk6MDstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGUzZCgwLDMwMDBweCwwKSBzY2FsZVkoNSk7dHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDAsMzAwMHB4LDApIHNjYWxlWSg1KX02MCV7b3BhY2l0eToxOy13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDAsLTIwcHgsMCkgc2NhbGVZKC45KTt0cmFuc2Zvcm06dHJhbnNsYXRlM2QoMCwtMjBweCwwKSBzY2FsZVkoLjkpfTc1JXstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGUzZCgwLDEwcHgsMCkgc2NhbGVZKC45NSk7dHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDAsMTBweCwwKSBzY2FsZVkoLjk1KX05MCV7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlM2QoMCwtNXB4LDApIHNjYWxlWSguOTg1KTt0cmFuc2Zvcm06dHJhbnNsYXRlM2QoMCwtNXB4LDApIHNjYWxlWSguOTg1KX10b3std2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGVaKDApO3RyYW5zZm9ybTp0cmFuc2xhdGVaKDApfX0uYW5pbWF0ZV9fYm91bmNlSW5VcHstd2Via2l0LWFuaW1hdGlvbi1uYW1lOmJvdW5jZUluVXA7YW5pbWF0aW9uLW5hbWU6Ym91bmNlSW5VcH1ALXdlYmtpdC1rZXlmcmFtZXMgYm91bmNlT3V0ezIwJXstd2Via2l0LXRyYW5zZm9ybTpzY2FsZTNkKC45LC45LC45KTt0cmFuc2Zvcm06c2NhbGUzZCguOSwuOSwuOSl9NTAlLDU1JXtvcGFjaXR5OjE7LXdlYmtpdC10cmFuc2Zvcm06c2NhbGUzZCgxLjEsMS4xLDEuMSk7dHJhbnNmb3JtOnNjYWxlM2QoMS4xLDEuMSwxLjEpfXRve29wYWNpdHk6MDstd2Via2l0LXRyYW5zZm9ybTpzY2FsZTNkKC4zLC4zLC4zKTt0cmFuc2Zvcm06c2NhbGUzZCguMywuMywuMyl9fUBrZXlmcmFtZXMgYm91bmNlT3V0ezIwJXstd2Via2l0LXRyYW5zZm9ybTpzY2FsZTNkKC45LC45LC45KTt0cmFuc2Zvcm06c2NhbGUzZCguOSwuOSwuOSl9NTAlLDU1JXtvcGFjaXR5OjE7LXdlYmtpdC10cmFuc2Zvcm06c2NhbGUzZCgxLjEsMS4xLDEuMSk7dHJhbnNmb3JtOnNjYWxlM2QoMS4xLDEuMSwxLjEpfXRve29wYWNpdHk6MDstd2Via2l0LXRyYW5zZm9ybTpzY2FsZTNkKC4zLC4zLC4zKTt0cmFuc2Zvcm06c2NhbGUzZCguMywuMywuMyl9fS5hbmltYXRlX19ib3VuY2VPdXR7LXdlYmtpdC1hbmltYXRpb24tZHVyYXRpb246Ljc1czthbmltYXRpb24tZHVyYXRpb246Ljc1czstd2Via2l0LWFuaW1hdGlvbi1kdXJhdGlvbjpjYWxjKHZhcigtLWFuaW1hdGUtZHVyYXRpb24pKjAuNzUpO2FuaW1hdGlvbi1kdXJhdGlvbjpjYWxjKHZhcigtLWFuaW1hdGUtZHVyYXRpb24pKjAuNzUpOy13ZWJraXQtYW5pbWF0aW9uLW5hbWU6Ym91bmNlT3V0O2FuaW1hdGlvbi1uYW1lOmJvdW5jZU91dH1ALXdlYmtpdC1rZXlmcmFtZXMgYm91bmNlT3V0RG93bnsyMCV7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlM2QoMCwxMHB4LDApIHNjYWxlWSguOTg1KTt0cmFuc2Zvcm06dHJhbnNsYXRlM2QoMCwxMHB4LDApIHNjYWxlWSguOTg1KX00MCUsNDUle29wYWNpdHk6MTstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGUzZCgwLC0yMHB4LDApIHNjYWxlWSguOSk7dHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDAsLTIwcHgsMCkgc2NhbGVZKC45KX10b3tvcGFjaXR5OjA7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlM2QoMCwyMDAwcHgsMCkgc2NhbGVZKDMpO3RyYW5zZm9ybTp0cmFuc2xhdGUzZCgwLDIwMDBweCwwKSBzY2FsZVkoMyl9fUBrZXlmcmFtZXMgYm91bmNlT3V0RG93bnsyMCV7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlM2QoMCwxMHB4LDApIHNjYWxlWSguOTg1KTt0cmFuc2Zvcm06dHJhbnNsYXRlM2QoMCwxMHB4LDApIHNjYWxlWSguOTg1KX00MCUsNDUle29wYWNpdHk6MTstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGUzZCgwLC0yMHB4LDApIHNjYWxlWSguOSk7dHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDAsLTIwcHgsMCkgc2NhbGVZKC45KX10b3tvcGFjaXR5OjA7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlM2QoMCwyMDAwcHgsMCkgc2NhbGVZKDMpO3RyYW5zZm9ybTp0cmFuc2xhdGUzZCgwLDIwMDBweCwwKSBzY2FsZVkoMyl9fS5hbmltYXRlX19ib3VuY2VPdXREb3duey13ZWJraXQtYW5pbWF0aW9uLW5hbWU6Ym91bmNlT3V0RG93bjthbmltYXRpb24tbmFtZTpib3VuY2VPdXREb3dufUAtd2Via2l0LWtleWZyYW1lcyBib3VuY2VPdXRMZWZ0ezIwJXtvcGFjaXR5OjE7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlM2QoMjBweCwwLDApIHNjYWxlWCguOSk7dHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDIwcHgsMCwwKSBzY2FsZVgoLjkpfXRve29wYWNpdHk6MDstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGUzZCgtMjAwMHB4LDAsMCkgc2NhbGVYKDIpO3RyYW5zZm9ybTp0cmFuc2xhdGUzZCgtMjAwMHB4LDAsMCkgc2NhbGVYKDIpfX1Aa2V5ZnJhbWVzIGJvdW5jZU91dExlZnR7MjAle29wYWNpdHk6MTstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGUzZCgyMHB4LDAsMCkgc2NhbGVYKC45KTt0cmFuc2Zvcm06dHJhbnNsYXRlM2QoMjBweCwwLDApIHNjYWxlWCguOSl9dG97b3BhY2l0eTowOy13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZTNkKC0yMDAwcHgsMCwwKSBzY2FsZVgoMik7dHJhbnNmb3JtOnRyYW5zbGF0ZTNkKC0yMDAwcHgsMCwwKSBzY2FsZVgoMil9fS5hbmltYXRlX19ib3VuY2VPdXRMZWZ0ey13ZWJraXQtYW5pbWF0aW9uLW5hbWU6Ym91bmNlT3V0TGVmdDthbmltYXRpb24tbmFtZTpib3VuY2VPdXRMZWZ0fUAtd2Via2l0LWtleWZyYW1lcyBib3VuY2VPdXRSaWdodHsyMCV7b3BhY2l0eToxOy13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZTNkKC0yMHB4LDAsMCkgc2NhbGVYKC45KTt0cmFuc2Zvcm06dHJhbnNsYXRlM2QoLTIwcHgsMCwwKSBzY2FsZVgoLjkpfXRve29wYWNpdHk6MDstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGUzZCgyMDAwcHgsMCwwKSBzY2FsZVgoMik7dHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDIwMDBweCwwLDApIHNjYWxlWCgyKX19QGtleWZyYW1lcyBib3VuY2VPdXRSaWdodHsyMCV7b3BhY2l0eToxOy13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZTNkKC0yMHB4LDAsMCkgc2NhbGVYKC45KTt0cmFuc2Zvcm06dHJhbnNsYXRlM2QoLTIwcHgsMCwwKSBzY2FsZVgoLjkpfXRve29wYWNpdHk6MDstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGUzZCgyMDAwcHgsMCwwKSBzY2FsZVgoMik7dHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDIwMDBweCwwLDApIHNjYWxlWCgyKX19LmFuaW1hdGVfX2JvdW5jZU91dFJpZ2h0ey13ZWJraXQtYW5pbWF0aW9uLW5hbWU6Ym91bmNlT3V0UmlnaHQ7YW5pbWF0aW9uLW5hbWU6Ym91bmNlT3V0UmlnaHR9QC13ZWJraXQta2V5ZnJhbWVzIGJvdW5jZU91dFVwezIwJXstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGUzZCgwLC0xMHB4LDApIHNjYWxlWSguOTg1KTt0cmFuc2Zvcm06dHJhbnNsYXRlM2QoMCwtMTBweCwwKSBzY2FsZVkoLjk4NSl9NDAlLDQ1JXtvcGFjaXR5OjE7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlM2QoMCwyMHB4LDApIHNjYWxlWSguOSk7dHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDAsMjBweCwwKSBzY2FsZVkoLjkpfXRve29wYWNpdHk6MDstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGUzZCgwLC0yMDAwcHgsMCkgc2NhbGVZKDMpO3RyYW5zZm9ybTp0cmFuc2xhdGUzZCgwLC0yMDAwcHgsMCkgc2NhbGVZKDMpfX1Aa2V5ZnJhbWVzIGJvdW5jZU91dFVwezIwJXstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGUzZCgwLC0xMHB4LDApIHNjYWxlWSguOTg1KTt0cmFuc2Zvcm06dHJhbnNsYXRlM2QoMCwtMTBweCwwKSBzY2FsZVkoLjk4NSl9NDAlLDQ1JXtvcGFjaXR5OjE7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlM2QoMCwyMHB4LDApIHNjYWxlWSguOSk7dHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDAsMjBweCwwKSBzY2FsZVkoLjkpfXRve29wYWNpdHk6MDstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGUzZCgwLC0yMDAwcHgsMCkgc2NhbGVZKDMpO3RyYW5zZm9ybTp0cmFuc2xhdGUzZCgwLC0yMDAwcHgsMCkgc2NhbGVZKDMpfX0uYW5pbWF0ZV9fYm91bmNlT3V0VXB7LXdlYmtpdC1hbmltYXRpb24tbmFtZTpib3VuY2VPdXRVcDthbmltYXRpb24tbmFtZTpib3VuY2VPdXRVcH1ALXdlYmtpdC1rZXlmcmFtZXMgZmFkZUluezAle29wYWNpdHk6MH10b3tvcGFjaXR5OjF9fUBrZXlmcmFtZXMgZmFkZUluezAle29wYWNpdHk6MH10b3tvcGFjaXR5OjF9fS5hbmltYXRlX19mYWRlSW57LXdlYmtpdC1hbmltYXRpb24tbmFtZTpmYWRlSW47YW5pbWF0aW9uLW5hbWU6ZmFkZUlufUAtd2Via2l0LWtleWZyYW1lcyBmYWRlSW5Eb3duezAle29wYWNpdHk6MDstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGUzZCgwLC0xMDAlLDApO3RyYW5zZm9ybTp0cmFuc2xhdGUzZCgwLC0xMDAlLDApfXRve29wYWNpdHk6MTstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGVaKDApO3RyYW5zZm9ybTp0cmFuc2xhdGVaKDApfX1Aa2V5ZnJhbWVzIGZhZGVJbkRvd257MCV7b3BhY2l0eTowOy13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDAsLTEwMCUsMCk7dHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDAsLTEwMCUsMCl9dG97b3BhY2l0eToxOy13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZVooMCk7dHJhbnNmb3JtOnRyYW5zbGF0ZVooMCl9fS5hbmltYXRlX19mYWRlSW5Eb3duey13ZWJraXQtYW5pbWF0aW9uLW5hbWU6ZmFkZUluRG93bjthbmltYXRpb24tbmFtZTpmYWRlSW5Eb3dufUAtd2Via2l0LWtleWZyYW1lcyBmYWRlSW5Eb3duQmlnezAle29wYWNpdHk6MDstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGUzZCgwLC0yMDAwcHgsMCk7dHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDAsLTIwMDBweCwwKX10b3tvcGFjaXR5OjE7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlWigwKTt0cmFuc2Zvcm06dHJhbnNsYXRlWigwKX19QGtleWZyYW1lcyBmYWRlSW5Eb3duQmlnezAle29wYWNpdHk6MDstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGUzZCgwLC0yMDAwcHgsMCk7dHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDAsLTIwMDBweCwwKX10b3tvcGFjaXR5OjE7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlWigwKTt0cmFuc2Zvcm06dHJhbnNsYXRlWigwKX19LmFuaW1hdGVfX2ZhZGVJbkRvd25CaWd7LXdlYmtpdC1hbmltYXRpb24tbmFtZTpmYWRlSW5Eb3duQmlnO2FuaW1hdGlvbi1uYW1lOmZhZGVJbkRvd25CaWd9QC13ZWJraXQta2V5ZnJhbWVzIGZhZGVJbkxlZnR7MCV7b3BhY2l0eTowOy13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZTNkKC0xMDAlLDAsMCk7dHJhbnNmb3JtOnRyYW5zbGF0ZTNkKC0xMDAlLDAsMCl9dG97b3BhY2l0eToxOy13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZVooMCk7dHJhbnNmb3JtOnRyYW5zbGF0ZVooMCl9fUBrZXlmcmFtZXMgZmFkZUluTGVmdHswJXtvcGFjaXR5OjA7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlM2QoLTEwMCUsMCwwKTt0cmFuc2Zvcm06dHJhbnNsYXRlM2QoLTEwMCUsMCwwKX10b3tvcGFjaXR5OjE7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlWigwKTt0cmFuc2Zvcm06dHJhbnNsYXRlWigwKX19LmFuaW1hdGVfX2ZhZGVJbkxlZnR7LXdlYmtpdC1hbmltYXRpb24tbmFtZTpmYWRlSW5MZWZ0O2FuaW1hdGlvbi1uYW1lOmZhZGVJbkxlZnR9QC13ZWJraXQta2V5ZnJhbWVzIGZhZGVJbkxlZnRCaWd7MCV7b3BhY2l0eTowOy13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZTNkKC0yMDAwcHgsMCwwKTt0cmFuc2Zvcm06dHJhbnNsYXRlM2QoLTIwMDBweCwwLDApfXRve29wYWNpdHk6MTstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGVaKDApO3RyYW5zZm9ybTp0cmFuc2xhdGVaKDApfX1Aa2V5ZnJhbWVzIGZhZGVJbkxlZnRCaWd7MCV7b3BhY2l0eTowOy13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZTNkKC0yMDAwcHgsMCwwKTt0cmFuc2Zvcm06dHJhbnNsYXRlM2QoLTIwMDBweCwwLDApfXRve29wYWNpdHk6MTstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGVaKDApO3RyYW5zZm9ybTp0cmFuc2xhdGVaKDApfX0uYW5pbWF0ZV9fZmFkZUluTGVmdEJpZ3std2Via2l0LWFuaW1hdGlvbi1uYW1lOmZhZGVJbkxlZnRCaWc7YW5pbWF0aW9uLW5hbWU6ZmFkZUluTGVmdEJpZ31ALXdlYmtpdC1rZXlmcmFtZXMgZmFkZUluUmlnaHR7MCV7b3BhY2l0eTowOy13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDEwMCUsMCwwKTt0cmFuc2Zvcm06dHJhbnNsYXRlM2QoMTAwJSwwLDApfXRve29wYWNpdHk6MTstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGVaKDApO3RyYW5zZm9ybTp0cmFuc2xhdGVaKDApfX1Aa2V5ZnJhbWVzIGZhZGVJblJpZ2h0ezAle29wYWNpdHk6MDstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGUzZCgxMDAlLDAsMCk7dHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDEwMCUsMCwwKX10b3tvcGFjaXR5OjE7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlWigwKTt0cmFuc2Zvcm06dHJhbnNsYXRlWigwKX19LmFuaW1hdGVfX2ZhZGVJblJpZ2h0ey13ZWJraXQtYW5pbWF0aW9uLW5hbWU6ZmFkZUluUmlnaHQ7YW5pbWF0aW9uLW5hbWU6ZmFkZUluUmlnaHR9QC13ZWJraXQta2V5ZnJhbWVzIGZhZGVJblJpZ2h0QmlnezAle29wYWNpdHk6MDstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGUzZCgyMDAwcHgsMCwwKTt0cmFuc2Zvcm06dHJhbnNsYXRlM2QoMjAwMHB4LDAsMCl9dG97b3BhY2l0eToxOy13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZVooMCk7dHJhbnNmb3JtOnRyYW5zbGF0ZVooMCl9fUBrZXlmcmFtZXMgZmFkZUluUmlnaHRCaWd7MCV7b3BhY2l0eTowOy13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDIwMDBweCwwLDApO3RyYW5zZm9ybTp0cmFuc2xhdGUzZCgyMDAwcHgsMCwwKX10b3tvcGFjaXR5OjE7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlWigwKTt0cmFuc2Zvcm06dHJhbnNsYXRlWigwKX19LmFuaW1hdGVfX2ZhZGVJblJpZ2h0Qmlney13ZWJraXQtYW5pbWF0aW9uLW5hbWU6ZmFkZUluUmlnaHRCaWc7YW5pbWF0aW9uLW5hbWU6ZmFkZUluUmlnaHRCaWd9QC13ZWJraXQta2V5ZnJhbWVzIGZhZGVJblVwezAle29wYWNpdHk6MDstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGUzZCgwLDEwMCUsMCk7dHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDAsMTAwJSwwKX10b3tvcGFjaXR5OjE7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlWigwKTt0cmFuc2Zvcm06dHJhbnNsYXRlWigwKX19QGtleWZyYW1lcyBmYWRlSW5VcHswJXtvcGFjaXR5OjA7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlM2QoMCwxMDAlLDApO3RyYW5zZm9ybTp0cmFuc2xhdGUzZCgwLDEwMCUsMCl9dG97b3BhY2l0eToxOy13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZVooMCk7dHJhbnNmb3JtOnRyYW5zbGF0ZVooMCl9fS5hbmltYXRlX19mYWRlSW5VcHstd2Via2l0LWFuaW1hdGlvbi1uYW1lOmZhZGVJblVwO2FuaW1hdGlvbi1uYW1lOmZhZGVJblVwfUAtd2Via2l0LWtleWZyYW1lcyBmYWRlSW5VcEJpZ3swJXtvcGFjaXR5OjA7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlM2QoMCwyMDAwcHgsMCk7dHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDAsMjAwMHB4LDApfXRve29wYWNpdHk6MTstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGVaKDApO3RyYW5zZm9ybTp0cmFuc2xhdGVaKDApfX1Aa2V5ZnJhbWVzIGZhZGVJblVwQmlnezAle29wYWNpdHk6MDstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGUzZCgwLDIwMDBweCwwKTt0cmFuc2Zvcm06dHJhbnNsYXRlM2QoMCwyMDAwcHgsMCl9dG97b3BhY2l0eToxOy13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZVooMCk7dHJhbnNmb3JtOnRyYW5zbGF0ZVooMCl9fS5hbmltYXRlX19mYWRlSW5VcEJpZ3std2Via2l0LWFuaW1hdGlvbi1uYW1lOmZhZGVJblVwQmlnO2FuaW1hdGlvbi1uYW1lOmZhZGVJblVwQmlnfUAtd2Via2l0LWtleWZyYW1lcyBmYWRlSW5Ub3BMZWZ0ezAle29wYWNpdHk6MDstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGUzZCgtMTAwJSwtMTAwJSwwKTt0cmFuc2Zvcm06dHJhbnNsYXRlM2QoLTEwMCUsLTEwMCUsMCl9dG97b3BhY2l0eToxOy13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZVooMCk7dHJhbnNmb3JtOnRyYW5zbGF0ZVooMCl9fUBrZXlmcmFtZXMgZmFkZUluVG9wTGVmdHswJXtvcGFjaXR5OjA7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlM2QoLTEwMCUsLTEwMCUsMCk7dHJhbnNmb3JtOnRyYW5zbGF0ZTNkKC0xMDAlLC0xMDAlLDApfXRve29wYWNpdHk6MTstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGVaKDApO3RyYW5zZm9ybTp0cmFuc2xhdGVaKDApfX0uYW5pbWF0ZV9fZmFkZUluVG9wTGVmdHstd2Via2l0LWFuaW1hdGlvbi1uYW1lOmZhZGVJblRvcExlZnQ7YW5pbWF0aW9uLW5hbWU6ZmFkZUluVG9wTGVmdH1ALXdlYmtpdC1rZXlmcmFtZXMgZmFkZUluVG9wUmlnaHR7MCV7b3BhY2l0eTowOy13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDEwMCUsLTEwMCUsMCk7dHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDEwMCUsLTEwMCUsMCl9dG97b3BhY2l0eToxOy13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZVooMCk7dHJhbnNmb3JtOnRyYW5zbGF0ZVooMCl9fUBrZXlmcmFtZXMgZmFkZUluVG9wUmlnaHR7MCV7b3BhY2l0eTowOy13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDEwMCUsLTEwMCUsMCk7dHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDEwMCUsLTEwMCUsMCl9dG97b3BhY2l0eToxOy13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZVooMCk7dHJhbnNmb3JtOnRyYW5zbGF0ZVooMCl9fS5hbmltYXRlX19mYWRlSW5Ub3BSaWdodHstd2Via2l0LWFuaW1hdGlvbi1uYW1lOmZhZGVJblRvcFJpZ2h0O2FuaW1hdGlvbi1uYW1lOmZhZGVJblRvcFJpZ2h0fUAtd2Via2l0LWtleWZyYW1lcyBmYWRlSW5Cb3R0b21MZWZ0ezAle29wYWNpdHk6MDstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGUzZCgtMTAwJSwxMDAlLDApO3RyYW5zZm9ybTp0cmFuc2xhdGUzZCgtMTAwJSwxMDAlLDApfXRve29wYWNpdHk6MTstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGVaKDApO3RyYW5zZm9ybTp0cmFuc2xhdGVaKDApfX1Aa2V5ZnJhbWVzIGZhZGVJbkJvdHRvbUxlZnR7MCV7b3BhY2l0eTowOy13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZTNkKC0xMDAlLDEwMCUsMCk7dHJhbnNmb3JtOnRyYW5zbGF0ZTNkKC0xMDAlLDEwMCUsMCl9dG97b3BhY2l0eToxOy13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZVooMCk7dHJhbnNmb3JtOnRyYW5zbGF0ZVooMCl9fS5hbmltYXRlX19mYWRlSW5Cb3R0b21MZWZ0ey13ZWJraXQtYW5pbWF0aW9uLW5hbWU6ZmFkZUluQm90dG9tTGVmdDthbmltYXRpb24tbmFtZTpmYWRlSW5Cb3R0b21MZWZ0fUAtd2Via2l0LWtleWZyYW1lcyBmYWRlSW5Cb3R0b21SaWdodHswJXtvcGFjaXR5OjA7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlM2QoMTAwJSwxMDAlLDApO3RyYW5zZm9ybTp0cmFuc2xhdGUzZCgxMDAlLDEwMCUsMCl9dG97b3BhY2l0eToxOy13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZVooMCk7dHJhbnNmb3JtOnRyYW5zbGF0ZVooMCl9fUBrZXlmcmFtZXMgZmFkZUluQm90dG9tUmlnaHR7MCV7b3BhY2l0eTowOy13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDEwMCUsMTAwJSwwKTt0cmFuc2Zvcm06dHJhbnNsYXRlM2QoMTAwJSwxMDAlLDApfXRve29wYWNpdHk6MTstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGVaKDApO3RyYW5zZm9ybTp0cmFuc2xhdGVaKDApfX0uYW5pbWF0ZV9fZmFkZUluQm90dG9tUmlnaHR7LXdlYmtpdC1hbmltYXRpb24tbmFtZTpmYWRlSW5Cb3R0b21SaWdodDthbmltYXRpb24tbmFtZTpmYWRlSW5Cb3R0b21SaWdodH1ALXdlYmtpdC1rZXlmcmFtZXMgZmFkZU91dHswJXtvcGFjaXR5OjF9dG97b3BhY2l0eTowfX1Aa2V5ZnJhbWVzIGZhZGVPdXR7MCV7b3BhY2l0eToxfXRve29wYWNpdHk6MH19LmFuaW1hdGVfX2ZhZGVPdXR7LXdlYmtpdC1hbmltYXRpb24tbmFtZTpmYWRlT3V0O2FuaW1hdGlvbi1uYW1lOmZhZGVPdXR9QC13ZWJraXQta2V5ZnJhbWVzIGZhZGVPdXREb3duezAle29wYWNpdHk6MX10b3tvcGFjaXR5OjA7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlM2QoMCwxMDAlLDApO3RyYW5zZm9ybTp0cmFuc2xhdGUzZCgwLDEwMCUsMCl9fUBrZXlmcmFtZXMgZmFkZU91dERvd257MCV7b3BhY2l0eToxfXRve29wYWNpdHk6MDstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGUzZCgwLDEwMCUsMCk7dHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDAsMTAwJSwwKX19LmFuaW1hdGVfX2ZhZGVPdXREb3duey13ZWJraXQtYW5pbWF0aW9uLW5hbWU6ZmFkZU91dERvd247YW5pbWF0aW9uLW5hbWU6ZmFkZU91dERvd259QC13ZWJraXQta2V5ZnJhbWVzIGZhZGVPdXREb3duQmlnezAle29wYWNpdHk6MX10b3tvcGFjaXR5OjA7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlM2QoMCwyMDAwcHgsMCk7dHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDAsMjAwMHB4LDApfX1Aa2V5ZnJhbWVzIGZhZGVPdXREb3duQmlnezAle29wYWNpdHk6MX10b3tvcGFjaXR5OjA7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlM2QoMCwyMDAwcHgsMCk7dHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDAsMjAwMHB4LDApfX0uYW5pbWF0ZV9fZmFkZU91dERvd25CaWd7LXdlYmtpdC1hbmltYXRpb24tbmFtZTpmYWRlT3V0RG93bkJpZzthbmltYXRpb24tbmFtZTpmYWRlT3V0RG93bkJpZ31ALXdlYmtpdC1rZXlmcmFtZXMgZmFkZU91dExlZnR7MCV7b3BhY2l0eToxfXRve29wYWNpdHk6MDstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGUzZCgtMTAwJSwwLDApO3RyYW5zZm9ybTp0cmFuc2xhdGUzZCgtMTAwJSwwLDApfX1Aa2V5ZnJhbWVzIGZhZGVPdXRMZWZ0ezAle29wYWNpdHk6MX10b3tvcGFjaXR5OjA7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlM2QoLTEwMCUsMCwwKTt0cmFuc2Zvcm06dHJhbnNsYXRlM2QoLTEwMCUsMCwwKX19LmFuaW1hdGVfX2ZhZGVPdXRMZWZ0ey13ZWJraXQtYW5pbWF0aW9uLW5hbWU6ZmFkZU91dExlZnQ7YW5pbWF0aW9uLW5hbWU6ZmFkZU91dExlZnR9QC13ZWJraXQta2V5ZnJhbWVzIGZhZGVPdXRMZWZ0QmlnezAle29wYWNpdHk6MX10b3tvcGFjaXR5OjA7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlM2QoLTIwMDBweCwwLDApO3RyYW5zZm9ybTp0cmFuc2xhdGUzZCgtMjAwMHB4LDAsMCl9fUBrZXlmcmFtZXMgZmFkZU91dExlZnRCaWd7MCV7b3BhY2l0eToxfXRve29wYWNpdHk6MDstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGUzZCgtMjAwMHB4LDAsMCk7dHJhbnNmb3JtOnRyYW5zbGF0ZTNkKC0yMDAwcHgsMCwwKX19LmFuaW1hdGVfX2ZhZGVPdXRMZWZ0Qmlney13ZWJraXQtYW5pbWF0aW9uLW5hbWU6ZmFkZU91dExlZnRCaWc7YW5pbWF0aW9uLW5hbWU6ZmFkZU91dExlZnRCaWd9QC13ZWJraXQta2V5ZnJhbWVzIGZhZGVPdXRSaWdodHswJXtvcGFjaXR5OjF9dG97b3BhY2l0eTowOy13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDEwMCUsMCwwKTt0cmFuc2Zvcm06dHJhbnNsYXRlM2QoMTAwJSwwLDApfX1Aa2V5ZnJhbWVzIGZhZGVPdXRSaWdodHswJXtvcGFjaXR5OjF9dG97b3BhY2l0eTowOy13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDEwMCUsMCwwKTt0cmFuc2Zvcm06dHJhbnNsYXRlM2QoMTAwJSwwLDApfX0uYW5pbWF0ZV9fZmFkZU91dFJpZ2h0ey13ZWJraXQtYW5pbWF0aW9uLW5hbWU6ZmFkZU91dFJpZ2h0O2FuaW1hdGlvbi1uYW1lOmZhZGVPdXRSaWdodH1ALXdlYmtpdC1rZXlmcmFtZXMgZmFkZU91dFJpZ2h0QmlnezAle29wYWNpdHk6MX10b3tvcGFjaXR5OjA7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlM2QoMjAwMHB4LDAsMCk7dHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDIwMDBweCwwLDApfX1Aa2V5ZnJhbWVzIGZhZGVPdXRSaWdodEJpZ3swJXtvcGFjaXR5OjF9dG97b3BhY2l0eTowOy13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDIwMDBweCwwLDApO3RyYW5zZm9ybTp0cmFuc2xhdGUzZCgyMDAwcHgsMCwwKX19LmFuaW1hdGVfX2ZhZGVPdXRSaWdodEJpZ3std2Via2l0LWFuaW1hdGlvbi1uYW1lOmZhZGVPdXRSaWdodEJpZzthbmltYXRpb24tbmFtZTpmYWRlT3V0UmlnaHRCaWd9QC13ZWJraXQta2V5ZnJhbWVzIGZhZGVPdXRVcHswJXtvcGFjaXR5OjF9dG97b3BhY2l0eTowOy13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDAsLTEwMCUsMCk7dHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDAsLTEwMCUsMCl9fUBrZXlmcmFtZXMgZmFkZU91dFVwezAle29wYWNpdHk6MX10b3tvcGFjaXR5OjA7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlM2QoMCwtMTAwJSwwKTt0cmFuc2Zvcm06dHJhbnNsYXRlM2QoMCwtMTAwJSwwKX19LmFuaW1hdGVfX2ZhZGVPdXRVcHstd2Via2l0LWFuaW1hdGlvbi1uYW1lOmZhZGVPdXRVcDthbmltYXRpb24tbmFtZTpmYWRlT3V0VXB9QC13ZWJraXQta2V5ZnJhbWVzIGZhZGVPdXRVcEJpZ3swJXtvcGFjaXR5OjF9dG97b3BhY2l0eTowOy13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDAsLTIwMDBweCwwKTt0cmFuc2Zvcm06dHJhbnNsYXRlM2QoMCwtMjAwMHB4LDApfX1Aa2V5ZnJhbWVzIGZhZGVPdXRVcEJpZ3swJXtvcGFjaXR5OjF9dG97b3BhY2l0eTowOy13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDAsLTIwMDBweCwwKTt0cmFuc2Zvcm06dHJhbnNsYXRlM2QoMCwtMjAwMHB4LDApfX0uYW5pbWF0ZV9fZmFkZU91dFVwQmlney13ZWJraXQtYW5pbWF0aW9uLW5hbWU6ZmFkZU91dFVwQmlnO2FuaW1hdGlvbi1uYW1lOmZhZGVPdXRVcEJpZ31ALXdlYmtpdC1rZXlmcmFtZXMgZmFkZU91dFRvcExlZnR7MCV7b3BhY2l0eToxOy13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZVooMCk7dHJhbnNmb3JtOnRyYW5zbGF0ZVooMCl9dG97b3BhY2l0eTowOy13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZTNkKC0xMDAlLC0xMDAlLDApO3RyYW5zZm9ybTp0cmFuc2xhdGUzZCgtMTAwJSwtMTAwJSwwKX19QGtleWZyYW1lcyBmYWRlT3V0VG9wTGVmdHswJXtvcGFjaXR5OjE7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlWigwKTt0cmFuc2Zvcm06dHJhbnNsYXRlWigwKX10b3tvcGFjaXR5OjA7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlM2QoLTEwMCUsLTEwMCUsMCk7dHJhbnNmb3JtOnRyYW5zbGF0ZTNkKC0xMDAlLC0xMDAlLDApfX0uYW5pbWF0ZV9fZmFkZU91dFRvcExlZnR7LXdlYmtpdC1hbmltYXRpb24tbmFtZTpmYWRlT3V0VG9wTGVmdDthbmltYXRpb24tbmFtZTpmYWRlT3V0VG9wTGVmdH1ALXdlYmtpdC1rZXlmcmFtZXMgZmFkZU91dFRvcFJpZ2h0ezAle29wYWNpdHk6MTstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGVaKDApO3RyYW5zZm9ybTp0cmFuc2xhdGVaKDApfXRve29wYWNpdHk6MDstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGUzZCgxMDAlLC0xMDAlLDApO3RyYW5zZm9ybTp0cmFuc2xhdGUzZCgxMDAlLC0xMDAlLDApfX1Aa2V5ZnJhbWVzIGZhZGVPdXRUb3BSaWdodHswJXtvcGFjaXR5OjE7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlWigwKTt0cmFuc2Zvcm06dHJhbnNsYXRlWigwKX10b3tvcGFjaXR5OjA7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlM2QoMTAwJSwtMTAwJSwwKTt0cmFuc2Zvcm06dHJhbnNsYXRlM2QoMTAwJSwtMTAwJSwwKX19LmFuaW1hdGVfX2ZhZGVPdXRUb3BSaWdodHstd2Via2l0LWFuaW1hdGlvbi1uYW1lOmZhZGVPdXRUb3BSaWdodDthbmltYXRpb24tbmFtZTpmYWRlT3V0VG9wUmlnaHR9QC13ZWJraXQta2V5ZnJhbWVzIGZhZGVPdXRCb3R0b21SaWdodHswJXtvcGFjaXR5OjE7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlWigwKTt0cmFuc2Zvcm06dHJhbnNsYXRlWigwKX10b3tvcGFjaXR5OjA7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlM2QoMTAwJSwxMDAlLDApO3RyYW5zZm9ybTp0cmFuc2xhdGUzZCgxMDAlLDEwMCUsMCl9fUBrZXlmcmFtZXMgZmFkZU91dEJvdHRvbVJpZ2h0ezAle29wYWNpdHk6MTstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGVaKDApO3RyYW5zZm9ybTp0cmFuc2xhdGVaKDApfXRve29wYWNpdHk6MDstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGUzZCgxMDAlLDEwMCUsMCk7dHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDEwMCUsMTAwJSwwKX19LmFuaW1hdGVfX2ZhZGVPdXRCb3R0b21SaWdodHstd2Via2l0LWFuaW1hdGlvbi1uYW1lOmZhZGVPdXRCb3R0b21SaWdodDthbmltYXRpb24tbmFtZTpmYWRlT3V0Qm90dG9tUmlnaHR9QC13ZWJraXQta2V5ZnJhbWVzIGZhZGVPdXRCb3R0b21MZWZ0ezAle29wYWNpdHk6MTstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGVaKDApO3RyYW5zZm9ybTp0cmFuc2xhdGVaKDApfXRve29wYWNpdHk6MDstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGUzZCgtMTAwJSwxMDAlLDApO3RyYW5zZm9ybTp0cmFuc2xhdGUzZCgtMTAwJSwxMDAlLDApfX1Aa2V5ZnJhbWVzIGZhZGVPdXRCb3R0b21MZWZ0ezAle29wYWNpdHk6MTstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGVaKDApO3RyYW5zZm9ybTp0cmFuc2xhdGVaKDApfXRve29wYWNpdHk6MDstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGUzZCgtMTAwJSwxMDAlLDApO3RyYW5zZm9ybTp0cmFuc2xhdGUzZCgtMTAwJSwxMDAlLDApfX0uYW5pbWF0ZV9fZmFkZU91dEJvdHRvbUxlZnR7LXdlYmtpdC1hbmltYXRpb24tbmFtZTpmYWRlT3V0Qm90dG9tTGVmdDthbmltYXRpb24tbmFtZTpmYWRlT3V0Qm90dG9tTGVmdH1ALXdlYmtpdC1rZXlmcmFtZXMgZmxpcHswJXstd2Via2l0LXRyYW5zZm9ybTpwZXJzcGVjdGl2ZSg0MDBweCkgc2NhbGVYKDEpIHRyYW5zbGF0ZVooMCkgcm90YXRlWSgtMXR1cm4pO3RyYW5zZm9ybTpwZXJzcGVjdGl2ZSg0MDBweCkgc2NhbGVYKDEpIHRyYW5zbGF0ZVooMCkgcm90YXRlWSgtMXR1cm4pOy13ZWJraXQtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjplYXNlLW91dDthbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOmVhc2Utb3V0fTQwJXstd2Via2l0LXRyYW5zZm9ybTpwZXJzcGVjdGl2ZSg0MDBweCkgc2NhbGVYKDEpIHRyYW5zbGF0ZVooMTUwcHgpIHJvdGF0ZVkoLTE5MGRlZyk7dHJhbnNmb3JtOnBlcnNwZWN0aXZlKDQwMHB4KSBzY2FsZVgoMSkgdHJhbnNsYXRlWigxNTBweCkgcm90YXRlWSgtMTkwZGVnKTstd2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246ZWFzZS1vdXQ7YW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjplYXNlLW91dH01MCV7LXdlYmtpdC10cmFuc2Zvcm06cGVyc3BlY3RpdmUoNDAwcHgpIHNjYWxlWCgxKSB0cmFuc2xhdGVaKDE1MHB4KSByb3RhdGVZKC0xNzBkZWcpO3RyYW5zZm9ybTpwZXJzcGVjdGl2ZSg0MDBweCkgc2NhbGVYKDEpIHRyYW5zbGF0ZVooMTUwcHgpIHJvdGF0ZVkoLTE3MGRlZyk7LXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOmVhc2UtaW47YW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjplYXNlLWlufTgwJXstd2Via2l0LXRyYW5zZm9ybTpwZXJzcGVjdGl2ZSg0MDBweCkgc2NhbGUzZCguOTUsLjk1LC45NSkgdHJhbnNsYXRlWigwKSByb3RhdGVZKDBkZWcpO3RyYW5zZm9ybTpwZXJzcGVjdGl2ZSg0MDBweCkgc2NhbGUzZCguOTUsLjk1LC45NSkgdHJhbnNsYXRlWigwKSByb3RhdGVZKDBkZWcpOy13ZWJraXQtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjplYXNlLWluO2FuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246ZWFzZS1pbn10b3std2Via2l0LXRyYW5zZm9ybTpwZXJzcGVjdGl2ZSg0MDBweCkgc2NhbGVYKDEpIHRyYW5zbGF0ZVooMCkgcm90YXRlWSgwZGVnKTt0cmFuc2Zvcm06cGVyc3BlY3RpdmUoNDAwcHgpIHNjYWxlWCgxKSB0cmFuc2xhdGVaKDApIHJvdGF0ZVkoMGRlZyk7LXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOmVhc2UtaW47YW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjplYXNlLWlufX1Aa2V5ZnJhbWVzIGZsaXB7MCV7LXdlYmtpdC10cmFuc2Zvcm06cGVyc3BlY3RpdmUoNDAwcHgpIHNjYWxlWCgxKSB0cmFuc2xhdGVaKDApIHJvdGF0ZVkoLTF0dXJuKTt0cmFuc2Zvcm06cGVyc3BlY3RpdmUoNDAwcHgpIHNjYWxlWCgxKSB0cmFuc2xhdGVaKDApIHJvdGF0ZVkoLTF0dXJuKTstd2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246ZWFzZS1vdXQ7YW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjplYXNlLW91dH00MCV7LXdlYmtpdC10cmFuc2Zvcm06cGVyc3BlY3RpdmUoNDAwcHgpIHNjYWxlWCgxKSB0cmFuc2xhdGVaKDE1MHB4KSByb3RhdGVZKC0xOTBkZWcpO3RyYW5zZm9ybTpwZXJzcGVjdGl2ZSg0MDBweCkgc2NhbGVYKDEpIHRyYW5zbGF0ZVooMTUwcHgpIHJvdGF0ZVkoLTE5MGRlZyk7LXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOmVhc2Utb3V0O2FuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246ZWFzZS1vdXR9NTAley13ZWJraXQtdHJhbnNmb3JtOnBlcnNwZWN0aXZlKDQwMHB4KSBzY2FsZVgoMSkgdHJhbnNsYXRlWigxNTBweCkgcm90YXRlWSgtMTcwZGVnKTt0cmFuc2Zvcm06cGVyc3BlY3RpdmUoNDAwcHgpIHNjYWxlWCgxKSB0cmFuc2xhdGVaKDE1MHB4KSByb3RhdGVZKC0xNzBkZWcpOy13ZWJraXQtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjplYXNlLWluO2FuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246ZWFzZS1pbn04MCV7LXdlYmtpdC10cmFuc2Zvcm06cGVyc3BlY3RpdmUoNDAwcHgpIHNjYWxlM2QoLjk1LC45NSwuOTUpIHRyYW5zbGF0ZVooMCkgcm90YXRlWSgwZGVnKTt0cmFuc2Zvcm06cGVyc3BlY3RpdmUoNDAwcHgpIHNjYWxlM2QoLjk1LC45NSwuOTUpIHRyYW5zbGF0ZVooMCkgcm90YXRlWSgwZGVnKTstd2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246ZWFzZS1pbjthbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOmVhc2UtaW59dG97LXdlYmtpdC10cmFuc2Zvcm06cGVyc3BlY3RpdmUoNDAwcHgpIHNjYWxlWCgxKSB0cmFuc2xhdGVaKDApIHJvdGF0ZVkoMGRlZyk7dHJhbnNmb3JtOnBlcnNwZWN0aXZlKDQwMHB4KSBzY2FsZVgoMSkgdHJhbnNsYXRlWigwKSByb3RhdGVZKDBkZWcpOy13ZWJraXQtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjplYXNlLWluO2FuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246ZWFzZS1pbn19LmFuaW1hdGVfX2FuaW1hdGVkLmFuaW1hdGVfX2ZsaXB7LXdlYmtpdC1iYWNrZmFjZS12aXNpYmlsaXR5OnZpc2libGU7YmFja2ZhY2UtdmlzaWJpbGl0eTp2aXNpYmxlOy13ZWJraXQtYW5pbWF0aW9uLW5hbWU6ZmxpcDthbmltYXRpb24tbmFtZTpmbGlwfUAtd2Via2l0LWtleWZyYW1lcyBmbGlwSW5YezAley13ZWJraXQtdHJhbnNmb3JtOnBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGVYKDkwZGVnKTt0cmFuc2Zvcm06cGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZVgoOTBkZWcpOy13ZWJraXQtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjplYXNlLWluO2FuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246ZWFzZS1pbjtvcGFjaXR5OjB9NDAley13ZWJraXQtdHJhbnNmb3JtOnBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGVYKC0yMGRlZyk7dHJhbnNmb3JtOnBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGVYKC0yMGRlZyk7LXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOmVhc2UtaW47YW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjplYXNlLWlufTYwJXstd2Via2l0LXRyYW5zZm9ybTpwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlWCgxMGRlZyk7dHJhbnNmb3JtOnBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGVYKDEwZGVnKTtvcGFjaXR5OjF9ODAley13ZWJraXQtdHJhbnNmb3JtOnBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGVYKC01ZGVnKTt0cmFuc2Zvcm06cGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZVgoLTVkZWcpfXRvey13ZWJraXQtdHJhbnNmb3JtOnBlcnNwZWN0aXZlKDQwMHB4KTt0cmFuc2Zvcm06cGVyc3BlY3RpdmUoNDAwcHgpfX1Aa2V5ZnJhbWVzIGZsaXBJblh7MCV7LXdlYmtpdC10cmFuc2Zvcm06cGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZVgoOTBkZWcpO3RyYW5zZm9ybTpwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlWCg5MGRlZyk7LXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOmVhc2UtaW47YW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjplYXNlLWluO29wYWNpdHk6MH00MCV7LXdlYmtpdC10cmFuc2Zvcm06cGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZVgoLTIwZGVnKTt0cmFuc2Zvcm06cGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZVgoLTIwZGVnKTstd2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246ZWFzZS1pbjthbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOmVhc2UtaW59NjAley13ZWJraXQtdHJhbnNmb3JtOnBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGVYKDEwZGVnKTt0cmFuc2Zvcm06cGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZVgoMTBkZWcpO29wYWNpdHk6MX04MCV7LXdlYmtpdC10cmFuc2Zvcm06cGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZVgoLTVkZWcpO3RyYW5zZm9ybTpwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlWCgtNWRlZyl9dG97LXdlYmtpdC10cmFuc2Zvcm06cGVyc3BlY3RpdmUoNDAwcHgpO3RyYW5zZm9ybTpwZXJzcGVjdGl2ZSg0MDBweCl9fS5hbmltYXRlX19mbGlwSW5Yey13ZWJraXQtYmFja2ZhY2UtdmlzaWJpbGl0eTp2aXNpYmxlIWltcG9ydGFudDtiYWNrZmFjZS12aXNpYmlsaXR5OnZpc2libGUhaW1wb3J0YW50Oy13ZWJraXQtYW5pbWF0aW9uLW5hbWU6ZmxpcEluWDthbmltYXRpb24tbmFtZTpmbGlwSW5YfUAtd2Via2l0LWtleWZyYW1lcyBmbGlwSW5ZezAley13ZWJraXQtdHJhbnNmb3JtOnBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGVZKDkwZGVnKTt0cmFuc2Zvcm06cGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZVkoOTBkZWcpOy13ZWJraXQtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjplYXNlLWluO2FuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246ZWFzZS1pbjtvcGFjaXR5OjB9NDAley13ZWJraXQtdHJhbnNmb3JtOnBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGVZKC0yMGRlZyk7dHJhbnNmb3JtOnBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGVZKC0yMGRlZyk7LXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOmVhc2UtaW47YW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjplYXNlLWlufTYwJXstd2Via2l0LXRyYW5zZm9ybTpwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlWSgxMGRlZyk7dHJhbnNmb3JtOnBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGVZKDEwZGVnKTtvcGFjaXR5OjF9ODAley13ZWJraXQtdHJhbnNmb3JtOnBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGVZKC01ZGVnKTt0cmFuc2Zvcm06cGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZVkoLTVkZWcpfXRvey13ZWJraXQtdHJhbnNmb3JtOnBlcnNwZWN0aXZlKDQwMHB4KTt0cmFuc2Zvcm06cGVyc3BlY3RpdmUoNDAwcHgpfX1Aa2V5ZnJhbWVzIGZsaXBJbll7MCV7LXdlYmtpdC10cmFuc2Zvcm06cGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZVkoOTBkZWcpO3RyYW5zZm9ybTpwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlWSg5MGRlZyk7LXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOmVhc2UtaW47YW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjplYXNlLWluO29wYWNpdHk6MH00MCV7LXdlYmtpdC10cmFuc2Zvcm06cGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZVkoLTIwZGVnKTt0cmFuc2Zvcm06cGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZVkoLTIwZGVnKTstd2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246ZWFzZS1pbjthbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOmVhc2UtaW59NjAley13ZWJraXQtdHJhbnNmb3JtOnBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGVZKDEwZGVnKTt0cmFuc2Zvcm06cGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZVkoMTBkZWcpO29wYWNpdHk6MX04MCV7LXdlYmtpdC10cmFuc2Zvcm06cGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZVkoLTVkZWcpO3RyYW5zZm9ybTpwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlWSgtNWRlZyl9dG97LXdlYmtpdC10cmFuc2Zvcm06cGVyc3BlY3RpdmUoNDAwcHgpO3RyYW5zZm9ybTpwZXJzcGVjdGl2ZSg0MDBweCl9fS5hbmltYXRlX19mbGlwSW5Zey13ZWJraXQtYmFja2ZhY2UtdmlzaWJpbGl0eTp2aXNpYmxlIWltcG9ydGFudDtiYWNrZmFjZS12aXNpYmlsaXR5OnZpc2libGUhaW1wb3J0YW50Oy13ZWJraXQtYW5pbWF0aW9uLW5hbWU6ZmxpcEluWTthbmltYXRpb24tbmFtZTpmbGlwSW5ZfUAtd2Via2l0LWtleWZyYW1lcyBmbGlwT3V0WHswJXstd2Via2l0LXRyYW5zZm9ybTpwZXJzcGVjdGl2ZSg0MDBweCk7dHJhbnNmb3JtOnBlcnNwZWN0aXZlKDQwMHB4KX0zMCV7LXdlYmtpdC10cmFuc2Zvcm06cGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZVgoLTIwZGVnKTt0cmFuc2Zvcm06cGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZVgoLTIwZGVnKTtvcGFjaXR5OjF9dG97LXdlYmtpdC10cmFuc2Zvcm06cGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZVgoOTBkZWcpO3RyYW5zZm9ybTpwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlWCg5MGRlZyk7b3BhY2l0eTowfX1Aa2V5ZnJhbWVzIGZsaXBPdXRYezAley13ZWJraXQtdHJhbnNmb3JtOnBlcnNwZWN0aXZlKDQwMHB4KTt0cmFuc2Zvcm06cGVyc3BlY3RpdmUoNDAwcHgpfTMwJXstd2Via2l0LXRyYW5zZm9ybTpwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlWCgtMjBkZWcpO3RyYW5zZm9ybTpwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlWCgtMjBkZWcpO29wYWNpdHk6MX10b3std2Via2l0LXRyYW5zZm9ybTpwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlWCg5MGRlZyk7dHJhbnNmb3JtOnBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGVYKDkwZGVnKTtvcGFjaXR5OjB9fS5hbmltYXRlX19mbGlwT3V0WHstd2Via2l0LWFuaW1hdGlvbi1kdXJhdGlvbjouNzVzO2FuaW1hdGlvbi1kdXJhdGlvbjouNzVzOy13ZWJraXQtYW5pbWF0aW9uLWR1cmF0aW9uOmNhbGModmFyKC0tYW5pbWF0ZS1kdXJhdGlvbikqMC43NSk7YW5pbWF0aW9uLWR1cmF0aW9uOmNhbGModmFyKC0tYW5pbWF0ZS1kdXJhdGlvbikqMC43NSk7LXdlYmtpdC1hbmltYXRpb24tbmFtZTpmbGlwT3V0WDthbmltYXRpb24tbmFtZTpmbGlwT3V0WDstd2Via2l0LWJhY2tmYWNlLXZpc2liaWxpdHk6dmlzaWJsZSFpbXBvcnRhbnQ7YmFja2ZhY2UtdmlzaWJpbGl0eTp2aXNpYmxlIWltcG9ydGFudH1ALXdlYmtpdC1rZXlmcmFtZXMgZmxpcE91dFl7MCV7LXdlYmtpdC10cmFuc2Zvcm06cGVyc3BlY3RpdmUoNDAwcHgpO3RyYW5zZm9ybTpwZXJzcGVjdGl2ZSg0MDBweCl9MzAley13ZWJraXQtdHJhbnNmb3JtOnBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGVZKC0xNWRlZyk7dHJhbnNmb3JtOnBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGVZKC0xNWRlZyk7b3BhY2l0eToxfXRvey13ZWJraXQtdHJhbnNmb3JtOnBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGVZKDkwZGVnKTt0cmFuc2Zvcm06cGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZVkoOTBkZWcpO29wYWNpdHk6MH19QGtleWZyYW1lcyBmbGlwT3V0WXswJXstd2Via2l0LXRyYW5zZm9ybTpwZXJzcGVjdGl2ZSg0MDBweCk7dHJhbnNmb3JtOnBlcnNwZWN0aXZlKDQwMHB4KX0zMCV7LXdlYmtpdC10cmFuc2Zvcm06cGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZVkoLTE1ZGVnKTt0cmFuc2Zvcm06cGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZVkoLTE1ZGVnKTtvcGFjaXR5OjF9dG97LXdlYmtpdC10cmFuc2Zvcm06cGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZVkoOTBkZWcpO3RyYW5zZm9ybTpwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlWSg5MGRlZyk7b3BhY2l0eTowfX0uYW5pbWF0ZV9fZmxpcE91dFl7LXdlYmtpdC1hbmltYXRpb24tZHVyYXRpb246Ljc1czthbmltYXRpb24tZHVyYXRpb246Ljc1czstd2Via2l0LWFuaW1hdGlvbi1kdXJhdGlvbjpjYWxjKHZhcigtLWFuaW1hdGUtZHVyYXRpb24pKjAuNzUpO2FuaW1hdGlvbi1kdXJhdGlvbjpjYWxjKHZhcigtLWFuaW1hdGUtZHVyYXRpb24pKjAuNzUpOy13ZWJraXQtYmFja2ZhY2UtdmlzaWJpbGl0eTp2aXNpYmxlIWltcG9ydGFudDtiYWNrZmFjZS12aXNpYmlsaXR5OnZpc2libGUhaW1wb3J0YW50Oy13ZWJraXQtYW5pbWF0aW9uLW5hbWU6ZmxpcE91dFk7YW5pbWF0aW9uLW5hbWU6ZmxpcE91dFl9QC13ZWJraXQta2V5ZnJhbWVzIGxpZ2h0U3BlZWRJblJpZ2h0ezAley13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDEwMCUsMCwwKSBza2V3WCgtMzBkZWcpO3RyYW5zZm9ybTp0cmFuc2xhdGUzZCgxMDAlLDAsMCkgc2tld1goLTMwZGVnKTtvcGFjaXR5OjB9NjAley13ZWJraXQtdHJhbnNmb3JtOnNrZXdYKDIwZGVnKTt0cmFuc2Zvcm06c2tld1goMjBkZWcpO29wYWNpdHk6MX04MCV7LXdlYmtpdC10cmFuc2Zvcm06c2tld1goLTVkZWcpO3RyYW5zZm9ybTpza2V3WCgtNWRlZyl9dG97LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlWigwKTt0cmFuc2Zvcm06dHJhbnNsYXRlWigwKX19QGtleWZyYW1lcyBsaWdodFNwZWVkSW5SaWdodHswJXstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGUzZCgxMDAlLDAsMCkgc2tld1goLTMwZGVnKTt0cmFuc2Zvcm06dHJhbnNsYXRlM2QoMTAwJSwwLDApIHNrZXdYKC0zMGRlZyk7b3BhY2l0eTowfTYwJXstd2Via2l0LXRyYW5zZm9ybTpza2V3WCgyMGRlZyk7dHJhbnNmb3JtOnNrZXdYKDIwZGVnKTtvcGFjaXR5OjF9ODAley13ZWJraXQtdHJhbnNmb3JtOnNrZXdYKC01ZGVnKTt0cmFuc2Zvcm06c2tld1goLTVkZWcpfXRvey13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZVooMCk7dHJhbnNmb3JtOnRyYW5zbGF0ZVooMCl9fS5hbmltYXRlX19saWdodFNwZWVkSW5SaWdodHstd2Via2l0LWFuaW1hdGlvbi1uYW1lOmxpZ2h0U3BlZWRJblJpZ2h0O2FuaW1hdGlvbi1uYW1lOmxpZ2h0U3BlZWRJblJpZ2h0Oy13ZWJraXQtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjplYXNlLW91dDthbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOmVhc2Utb3V0fUAtd2Via2l0LWtleWZyYW1lcyBsaWdodFNwZWVkSW5MZWZ0ezAley13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZTNkKC0xMDAlLDAsMCkgc2tld1goMzBkZWcpO3RyYW5zZm9ybTp0cmFuc2xhdGUzZCgtMTAwJSwwLDApIHNrZXdYKDMwZGVnKTtvcGFjaXR5OjB9NjAley13ZWJraXQtdHJhbnNmb3JtOnNrZXdYKC0yMGRlZyk7dHJhbnNmb3JtOnNrZXdYKC0yMGRlZyk7b3BhY2l0eToxfTgwJXstd2Via2l0LXRyYW5zZm9ybTpza2V3WCg1ZGVnKTt0cmFuc2Zvcm06c2tld1goNWRlZyl9dG97LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlWigwKTt0cmFuc2Zvcm06dHJhbnNsYXRlWigwKX19QGtleWZyYW1lcyBsaWdodFNwZWVkSW5MZWZ0ezAley13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZTNkKC0xMDAlLDAsMCkgc2tld1goMzBkZWcpO3RyYW5zZm9ybTp0cmFuc2xhdGUzZCgtMTAwJSwwLDApIHNrZXdYKDMwZGVnKTtvcGFjaXR5OjB9NjAley13ZWJraXQtdHJhbnNmb3JtOnNrZXdYKC0yMGRlZyk7dHJhbnNmb3JtOnNrZXdYKC0yMGRlZyk7b3BhY2l0eToxfTgwJXstd2Via2l0LXRyYW5zZm9ybTpza2V3WCg1ZGVnKTt0cmFuc2Zvcm06c2tld1goNWRlZyl9dG97LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlWigwKTt0cmFuc2Zvcm06dHJhbnNsYXRlWigwKX19LmFuaW1hdGVfX2xpZ2h0U3BlZWRJbkxlZnR7LXdlYmtpdC1hbmltYXRpb24tbmFtZTpsaWdodFNwZWVkSW5MZWZ0O2FuaW1hdGlvbi1uYW1lOmxpZ2h0U3BlZWRJbkxlZnQ7LXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOmVhc2Utb3V0O2FuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246ZWFzZS1vdXR9QC13ZWJraXQta2V5ZnJhbWVzIGxpZ2h0U3BlZWRPdXRSaWdodHswJXtvcGFjaXR5OjF9dG97LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlM2QoMTAwJSwwLDApIHNrZXdYKDMwZGVnKTt0cmFuc2Zvcm06dHJhbnNsYXRlM2QoMTAwJSwwLDApIHNrZXdYKDMwZGVnKTtvcGFjaXR5OjB9fUBrZXlmcmFtZXMgbGlnaHRTcGVlZE91dFJpZ2h0ezAle29wYWNpdHk6MX10b3std2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGUzZCgxMDAlLDAsMCkgc2tld1goMzBkZWcpO3RyYW5zZm9ybTp0cmFuc2xhdGUzZCgxMDAlLDAsMCkgc2tld1goMzBkZWcpO29wYWNpdHk6MH19LmFuaW1hdGVfX2xpZ2h0U3BlZWRPdXRSaWdodHstd2Via2l0LWFuaW1hdGlvbi1uYW1lOmxpZ2h0U3BlZWRPdXRSaWdodDthbmltYXRpb24tbmFtZTpsaWdodFNwZWVkT3V0UmlnaHQ7LXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOmVhc2UtaW47YW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjplYXNlLWlufUAtd2Via2l0LWtleWZyYW1lcyBsaWdodFNwZWVkT3V0TGVmdHswJXtvcGFjaXR5OjF9dG97LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlM2QoLTEwMCUsMCwwKSBza2V3WCgtMzBkZWcpO3RyYW5zZm9ybTp0cmFuc2xhdGUzZCgtMTAwJSwwLDApIHNrZXdYKC0zMGRlZyk7b3BhY2l0eTowfX1Aa2V5ZnJhbWVzIGxpZ2h0U3BlZWRPdXRMZWZ0ezAle29wYWNpdHk6MX10b3std2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGUzZCgtMTAwJSwwLDApIHNrZXdYKC0zMGRlZyk7dHJhbnNmb3JtOnRyYW5zbGF0ZTNkKC0xMDAlLDAsMCkgc2tld1goLTMwZGVnKTtvcGFjaXR5OjB9fS5hbmltYXRlX19saWdodFNwZWVkT3V0TGVmdHstd2Via2l0LWFuaW1hdGlvbi1uYW1lOmxpZ2h0U3BlZWRPdXRMZWZ0O2FuaW1hdGlvbi1uYW1lOmxpZ2h0U3BlZWRPdXRMZWZ0Oy13ZWJraXQtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjplYXNlLWluO2FuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246ZWFzZS1pbn1ALXdlYmtpdC1rZXlmcmFtZXMgcm90YXRlSW57MCV7LXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKC0yMDBkZWcpO3RyYW5zZm9ybTpyb3RhdGUoLTIwMGRlZyk7b3BhY2l0eTowfXRvey13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZVooMCk7dHJhbnNmb3JtOnRyYW5zbGF0ZVooMCk7b3BhY2l0eToxfX1Aa2V5ZnJhbWVzIHJvdGF0ZUluezAley13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSgtMjAwZGVnKTt0cmFuc2Zvcm06cm90YXRlKC0yMDBkZWcpO29wYWNpdHk6MH10b3std2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGVaKDApO3RyYW5zZm9ybTp0cmFuc2xhdGVaKDApO29wYWNpdHk6MX19LmFuaW1hdGVfX3JvdGF0ZUluey13ZWJraXQtYW5pbWF0aW9uLW5hbWU6cm90YXRlSW47YW5pbWF0aW9uLW5hbWU6cm90YXRlSW47LXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOmNlbnRlcjt0cmFuc2Zvcm0tb3JpZ2luOmNlbnRlcn1ALXdlYmtpdC1rZXlmcmFtZXMgcm90YXRlSW5Eb3duTGVmdHswJXstd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoLTQ1ZGVnKTt0cmFuc2Zvcm06cm90YXRlKC00NWRlZyk7b3BhY2l0eTowfXRvey13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZVooMCk7dHJhbnNmb3JtOnRyYW5zbGF0ZVooMCk7b3BhY2l0eToxfX1Aa2V5ZnJhbWVzIHJvdGF0ZUluRG93bkxlZnR7MCV7LXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKC00NWRlZyk7dHJhbnNmb3JtOnJvdGF0ZSgtNDVkZWcpO29wYWNpdHk6MH10b3std2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGVaKDApO3RyYW5zZm9ybTp0cmFuc2xhdGVaKDApO29wYWNpdHk6MX19LmFuaW1hdGVfX3JvdGF0ZUluRG93bkxlZnR7LXdlYmtpdC1hbmltYXRpb24tbmFtZTpyb3RhdGVJbkRvd25MZWZ0O2FuaW1hdGlvbi1uYW1lOnJvdGF0ZUluRG93bkxlZnQ7LXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOmxlZnQgYm90dG9tO3RyYW5zZm9ybS1vcmlnaW46bGVmdCBib3R0b219QC13ZWJraXQta2V5ZnJhbWVzIHJvdGF0ZUluRG93blJpZ2h0ezAley13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSg0NWRlZyk7dHJhbnNmb3JtOnJvdGF0ZSg0NWRlZyk7b3BhY2l0eTowfXRvey13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZVooMCk7dHJhbnNmb3JtOnRyYW5zbGF0ZVooMCk7b3BhY2l0eToxfX1Aa2V5ZnJhbWVzIHJvdGF0ZUluRG93blJpZ2h0ezAley13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSg0NWRlZyk7dHJhbnNmb3JtOnJvdGF0ZSg0NWRlZyk7b3BhY2l0eTowfXRvey13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZVooMCk7dHJhbnNmb3JtOnRyYW5zbGF0ZVooMCk7b3BhY2l0eToxfX0uYW5pbWF0ZV9fcm90YXRlSW5Eb3duUmlnaHR7LXdlYmtpdC1hbmltYXRpb24tbmFtZTpyb3RhdGVJbkRvd25SaWdodDthbmltYXRpb24tbmFtZTpyb3RhdGVJbkRvd25SaWdodDstd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46cmlnaHQgYm90dG9tO3RyYW5zZm9ybS1vcmlnaW46cmlnaHQgYm90dG9tfUAtd2Via2l0LWtleWZyYW1lcyByb3RhdGVJblVwTGVmdHswJXstd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoNDVkZWcpO3RyYW5zZm9ybTpyb3RhdGUoNDVkZWcpO29wYWNpdHk6MH10b3std2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGVaKDApO3RyYW5zZm9ybTp0cmFuc2xhdGVaKDApO29wYWNpdHk6MX19QGtleWZyYW1lcyByb3RhdGVJblVwTGVmdHswJXstd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoNDVkZWcpO3RyYW5zZm9ybTpyb3RhdGUoNDVkZWcpO29wYWNpdHk6MH10b3std2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGVaKDApO3RyYW5zZm9ybTp0cmFuc2xhdGVaKDApO29wYWNpdHk6MX19LmFuaW1hdGVfX3JvdGF0ZUluVXBMZWZ0ey13ZWJraXQtYW5pbWF0aW9uLW5hbWU6cm90YXRlSW5VcExlZnQ7YW5pbWF0aW9uLW5hbWU6cm90YXRlSW5VcExlZnQ7LXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOmxlZnQgYm90dG9tO3RyYW5zZm9ybS1vcmlnaW46bGVmdCBib3R0b219QC13ZWJraXQta2V5ZnJhbWVzIHJvdGF0ZUluVXBSaWdodHswJXstd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoLTkwZGVnKTt0cmFuc2Zvcm06cm90YXRlKC05MGRlZyk7b3BhY2l0eTowfXRvey13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZVooMCk7dHJhbnNmb3JtOnRyYW5zbGF0ZVooMCk7b3BhY2l0eToxfX1Aa2V5ZnJhbWVzIHJvdGF0ZUluVXBSaWdodHswJXstd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoLTkwZGVnKTt0cmFuc2Zvcm06cm90YXRlKC05MGRlZyk7b3BhY2l0eTowfXRvey13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZVooMCk7dHJhbnNmb3JtOnRyYW5zbGF0ZVooMCk7b3BhY2l0eToxfX0uYW5pbWF0ZV9fcm90YXRlSW5VcFJpZ2h0ey13ZWJraXQtYW5pbWF0aW9uLW5hbWU6cm90YXRlSW5VcFJpZ2h0O2FuaW1hdGlvbi1uYW1lOnJvdGF0ZUluVXBSaWdodDstd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46cmlnaHQgYm90dG9tO3RyYW5zZm9ybS1vcmlnaW46cmlnaHQgYm90dG9tfUAtd2Via2l0LWtleWZyYW1lcyByb3RhdGVPdXR7MCV7b3BhY2l0eToxfXRvey13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSgyMDBkZWcpO3RyYW5zZm9ybTpyb3RhdGUoMjAwZGVnKTtvcGFjaXR5OjB9fUBrZXlmcmFtZXMgcm90YXRlT3V0ezAle29wYWNpdHk6MX10b3std2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoMjAwZGVnKTt0cmFuc2Zvcm06cm90YXRlKDIwMGRlZyk7b3BhY2l0eTowfX0uYW5pbWF0ZV9fcm90YXRlT3V0ey13ZWJraXQtYW5pbWF0aW9uLW5hbWU6cm90YXRlT3V0O2FuaW1hdGlvbi1uYW1lOnJvdGF0ZU91dDstd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46Y2VudGVyO3RyYW5zZm9ybS1vcmlnaW46Y2VudGVyfUAtd2Via2l0LWtleWZyYW1lcyByb3RhdGVPdXREb3duTGVmdHswJXtvcGFjaXR5OjF9dG97LXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKDQ1ZGVnKTt0cmFuc2Zvcm06cm90YXRlKDQ1ZGVnKTtvcGFjaXR5OjB9fUBrZXlmcmFtZXMgcm90YXRlT3V0RG93bkxlZnR7MCV7b3BhY2l0eToxfXRvey13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSg0NWRlZyk7dHJhbnNmb3JtOnJvdGF0ZSg0NWRlZyk7b3BhY2l0eTowfX0uYW5pbWF0ZV9fcm90YXRlT3V0RG93bkxlZnR7LXdlYmtpdC1hbmltYXRpb24tbmFtZTpyb3RhdGVPdXREb3duTGVmdDthbmltYXRpb24tbmFtZTpyb3RhdGVPdXREb3duTGVmdDstd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46bGVmdCBib3R0b207dHJhbnNmb3JtLW9yaWdpbjpsZWZ0IGJvdHRvbX1ALXdlYmtpdC1rZXlmcmFtZXMgcm90YXRlT3V0RG93blJpZ2h0ezAle29wYWNpdHk6MX10b3std2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoLTQ1ZGVnKTt0cmFuc2Zvcm06cm90YXRlKC00NWRlZyk7b3BhY2l0eTowfX1Aa2V5ZnJhbWVzIHJvdGF0ZU91dERvd25SaWdodHswJXtvcGFjaXR5OjF9dG97LXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKC00NWRlZyk7dHJhbnNmb3JtOnJvdGF0ZSgtNDVkZWcpO29wYWNpdHk6MH19LmFuaW1hdGVfX3JvdGF0ZU91dERvd25SaWdodHstd2Via2l0LWFuaW1hdGlvbi1uYW1lOnJvdGF0ZU91dERvd25SaWdodDthbmltYXRpb24tbmFtZTpyb3RhdGVPdXREb3duUmlnaHQ7LXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOnJpZ2h0IGJvdHRvbTt0cmFuc2Zvcm0tb3JpZ2luOnJpZ2h0IGJvdHRvbX1ALXdlYmtpdC1rZXlmcmFtZXMgcm90YXRlT3V0VXBMZWZ0ezAle29wYWNpdHk6MX10b3std2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoLTQ1ZGVnKTt0cmFuc2Zvcm06cm90YXRlKC00NWRlZyk7b3BhY2l0eTowfX1Aa2V5ZnJhbWVzIHJvdGF0ZU91dFVwTGVmdHswJXtvcGFjaXR5OjF9dG97LXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKC00NWRlZyk7dHJhbnNmb3JtOnJvdGF0ZSgtNDVkZWcpO29wYWNpdHk6MH19LmFuaW1hdGVfX3JvdGF0ZU91dFVwTGVmdHstd2Via2l0LWFuaW1hdGlvbi1uYW1lOnJvdGF0ZU91dFVwTGVmdDthbmltYXRpb24tbmFtZTpyb3RhdGVPdXRVcExlZnQ7LXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOmxlZnQgYm90dG9tO3RyYW5zZm9ybS1vcmlnaW46bGVmdCBib3R0b219QC13ZWJraXQta2V5ZnJhbWVzIHJvdGF0ZU91dFVwUmlnaHR7MCV7b3BhY2l0eToxfXRvey13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSg5MGRlZyk7dHJhbnNmb3JtOnJvdGF0ZSg5MGRlZyk7b3BhY2l0eTowfX1Aa2V5ZnJhbWVzIHJvdGF0ZU91dFVwUmlnaHR7MCV7b3BhY2l0eToxfXRvey13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSg5MGRlZyk7dHJhbnNmb3JtOnJvdGF0ZSg5MGRlZyk7b3BhY2l0eTowfX0uYW5pbWF0ZV9fcm90YXRlT3V0VXBSaWdodHstd2Via2l0LWFuaW1hdGlvbi1uYW1lOnJvdGF0ZU91dFVwUmlnaHQ7YW5pbWF0aW9uLW5hbWU6cm90YXRlT3V0VXBSaWdodDstd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46cmlnaHQgYm90dG9tO3RyYW5zZm9ybS1vcmlnaW46cmlnaHQgYm90dG9tfUAtd2Via2l0LWtleWZyYW1lcyBoaW5nZXswJXstd2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246ZWFzZS1pbi1vdXQ7YW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjplYXNlLWluLW91dH0yMCUsNjAley13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSg4MGRlZyk7dHJhbnNmb3JtOnJvdGF0ZSg4MGRlZyk7LXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOmVhc2UtaW4tb3V0O2FuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246ZWFzZS1pbi1vdXR9NDAlLDgwJXstd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoNjBkZWcpO3RyYW5zZm9ybTpyb3RhdGUoNjBkZWcpOy13ZWJraXQtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjplYXNlLWluLW91dDthbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOmVhc2UtaW4tb3V0O29wYWNpdHk6MX10b3std2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGUzZCgwLDcwMHB4LDApO3RyYW5zZm9ybTp0cmFuc2xhdGUzZCgwLDcwMHB4LDApO29wYWNpdHk6MH19QGtleWZyYW1lcyBoaW5nZXswJXstd2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246ZWFzZS1pbi1vdXQ7YW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjplYXNlLWluLW91dH0yMCUsNjAley13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSg4MGRlZyk7dHJhbnNmb3JtOnJvdGF0ZSg4MGRlZyk7LXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOmVhc2UtaW4tb3V0O2FuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246ZWFzZS1pbi1vdXR9NDAlLDgwJXstd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoNjBkZWcpO3RyYW5zZm9ybTpyb3RhdGUoNjBkZWcpOy13ZWJraXQtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjplYXNlLWluLW91dDthbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOmVhc2UtaW4tb3V0O29wYWNpdHk6MX10b3std2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGUzZCgwLDcwMHB4LDApO3RyYW5zZm9ybTp0cmFuc2xhdGUzZCgwLDcwMHB4LDApO29wYWNpdHk6MH19LmFuaW1hdGVfX2hpbmdley13ZWJraXQtYW5pbWF0aW9uLWR1cmF0aW9uOjJzO2FuaW1hdGlvbi1kdXJhdGlvbjoyczstd2Via2l0LWFuaW1hdGlvbi1kdXJhdGlvbjpjYWxjKHZhcigtLWFuaW1hdGUtZHVyYXRpb24pKjIpO2FuaW1hdGlvbi1kdXJhdGlvbjpjYWxjKHZhcigtLWFuaW1hdGUtZHVyYXRpb24pKjIpOy13ZWJraXQtYW5pbWF0aW9uLW5hbWU6aGluZ2U7YW5pbWF0aW9uLW5hbWU6aGluZ2U7LXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOnRvcCBsZWZ0O3RyYW5zZm9ybS1vcmlnaW46dG9wIGxlZnR9QC13ZWJraXQta2V5ZnJhbWVzIGphY2tJblRoZUJveHswJXtvcGFjaXR5OjA7LXdlYmtpdC10cmFuc2Zvcm06c2NhbGUoLjEpIHJvdGF0ZSgzMGRlZyk7dHJhbnNmb3JtOnNjYWxlKC4xKSByb3RhdGUoMzBkZWcpOy13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjpjZW50ZXIgYm90dG9tO3RyYW5zZm9ybS1vcmlnaW46Y2VudGVyIGJvdHRvbX01MCV7LXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKC0xMGRlZyk7dHJhbnNmb3JtOnJvdGF0ZSgtMTBkZWcpfTcwJXstd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoM2RlZyk7dHJhbnNmb3JtOnJvdGF0ZSgzZGVnKX10b3tvcGFjaXR5OjE7LXdlYmtpdC10cmFuc2Zvcm06c2NhbGUoMSk7dHJhbnNmb3JtOnNjYWxlKDEpfX1Aa2V5ZnJhbWVzIGphY2tJblRoZUJveHswJXtvcGFjaXR5OjA7LXdlYmtpdC10cmFuc2Zvcm06c2NhbGUoLjEpIHJvdGF0ZSgzMGRlZyk7dHJhbnNmb3JtOnNjYWxlKC4xKSByb3RhdGUoMzBkZWcpOy13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjpjZW50ZXIgYm90dG9tO3RyYW5zZm9ybS1vcmlnaW46Y2VudGVyIGJvdHRvbX01MCV7LXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKC0xMGRlZyk7dHJhbnNmb3JtOnJvdGF0ZSgtMTBkZWcpfTcwJXstd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoM2RlZyk7dHJhbnNmb3JtOnJvdGF0ZSgzZGVnKX10b3tvcGFjaXR5OjE7LXdlYmtpdC10cmFuc2Zvcm06c2NhbGUoMSk7dHJhbnNmb3JtOnNjYWxlKDEpfX0uYW5pbWF0ZV9famFja0luVGhlQm94ey13ZWJraXQtYW5pbWF0aW9uLW5hbWU6amFja0luVGhlQm94O2FuaW1hdGlvbi1uYW1lOmphY2tJblRoZUJveH1ALXdlYmtpdC1rZXlmcmFtZXMgcm9sbEluezAle29wYWNpdHk6MDstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGUzZCgtMTAwJSwwLDApIHJvdGF0ZSgtMTIwZGVnKTt0cmFuc2Zvcm06dHJhbnNsYXRlM2QoLTEwMCUsMCwwKSByb3RhdGUoLTEyMGRlZyl9dG97b3BhY2l0eToxOy13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZVooMCk7dHJhbnNmb3JtOnRyYW5zbGF0ZVooMCl9fUBrZXlmcmFtZXMgcm9sbEluezAle29wYWNpdHk6MDstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGUzZCgtMTAwJSwwLDApIHJvdGF0ZSgtMTIwZGVnKTt0cmFuc2Zvcm06dHJhbnNsYXRlM2QoLTEwMCUsMCwwKSByb3RhdGUoLTEyMGRlZyl9dG97b3BhY2l0eToxOy13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZVooMCk7dHJhbnNmb3JtOnRyYW5zbGF0ZVooMCl9fS5hbmltYXRlX19yb2xsSW57LXdlYmtpdC1hbmltYXRpb24tbmFtZTpyb2xsSW47YW5pbWF0aW9uLW5hbWU6cm9sbElufUAtd2Via2l0LWtleWZyYW1lcyByb2xsT3V0ezAle29wYWNpdHk6MX10b3tvcGFjaXR5OjA7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlM2QoMTAwJSwwLDApIHJvdGF0ZSgxMjBkZWcpO3RyYW5zZm9ybTp0cmFuc2xhdGUzZCgxMDAlLDAsMCkgcm90YXRlKDEyMGRlZyl9fUBrZXlmcmFtZXMgcm9sbE91dHswJXtvcGFjaXR5OjF9dG97b3BhY2l0eTowOy13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDEwMCUsMCwwKSByb3RhdGUoMTIwZGVnKTt0cmFuc2Zvcm06dHJhbnNsYXRlM2QoMTAwJSwwLDApIHJvdGF0ZSgxMjBkZWcpfX0uYW5pbWF0ZV9fcm9sbE91dHstd2Via2l0LWFuaW1hdGlvbi1uYW1lOnJvbGxPdXQ7YW5pbWF0aW9uLW5hbWU6cm9sbE91dH1ALXdlYmtpdC1rZXlmcmFtZXMgem9vbUluezAle29wYWNpdHk6MDstd2Via2l0LXRyYW5zZm9ybTpzY2FsZTNkKC4zLC4zLC4zKTt0cmFuc2Zvcm06c2NhbGUzZCguMywuMywuMyl9NTAle29wYWNpdHk6MX19QGtleWZyYW1lcyB6b29tSW57MCV7b3BhY2l0eTowOy13ZWJraXQtdHJhbnNmb3JtOnNjYWxlM2QoLjMsLjMsLjMpO3RyYW5zZm9ybTpzY2FsZTNkKC4zLC4zLC4zKX01MCV7b3BhY2l0eToxfX0uYW5pbWF0ZV9fem9vbUluey13ZWJraXQtYW5pbWF0aW9uLW5hbWU6em9vbUluO2FuaW1hdGlvbi1uYW1lOnpvb21Jbn1ALXdlYmtpdC1rZXlmcmFtZXMgem9vbUluRG93bnswJXtvcGFjaXR5OjA7LXdlYmtpdC10cmFuc2Zvcm06c2NhbGUzZCguMSwuMSwuMSkgdHJhbnNsYXRlM2QoMCwtMTAwMHB4LDApO3RyYW5zZm9ybTpzY2FsZTNkKC4xLC4xLC4xKSB0cmFuc2xhdGUzZCgwLC0xMDAwcHgsMCk7LXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOmN1YmljLWJlemllciguNTUsLjA1NSwuNjc1LC4xOSk7YW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjpjdWJpYy1iZXppZXIoLjU1LC4wNTUsLjY3NSwuMTkpfTYwJXtvcGFjaXR5OjE7LXdlYmtpdC10cmFuc2Zvcm06c2NhbGUzZCguNDc1LC40NzUsLjQ3NSkgdHJhbnNsYXRlM2QoMCw2MHB4LDApO3RyYW5zZm9ybTpzY2FsZTNkKC40NzUsLjQ3NSwuNDc1KSB0cmFuc2xhdGUzZCgwLDYwcHgsMCk7LXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOmN1YmljLWJlemllciguMTc1LC44ODUsLjMyLDEpO2FuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246Y3ViaWMtYmV6aWVyKC4xNzUsLjg4NSwuMzIsMSl9fUBrZXlmcmFtZXMgem9vbUluRG93bnswJXtvcGFjaXR5OjA7LXdlYmtpdC10cmFuc2Zvcm06c2NhbGUzZCguMSwuMSwuMSkgdHJhbnNsYXRlM2QoMCwtMTAwMHB4LDApO3RyYW5zZm9ybTpzY2FsZTNkKC4xLC4xLC4xKSB0cmFuc2xhdGUzZCgwLC0xMDAwcHgsMCk7LXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOmN1YmljLWJlemllciguNTUsLjA1NSwuNjc1LC4xOSk7YW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjpjdWJpYy1iZXppZXIoLjU1LC4wNTUsLjY3NSwuMTkpfTYwJXtvcGFjaXR5OjE7LXdlYmtpdC10cmFuc2Zvcm06c2NhbGUzZCguNDc1LC40NzUsLjQ3NSkgdHJhbnNsYXRlM2QoMCw2MHB4LDApO3RyYW5zZm9ybTpzY2FsZTNkKC40NzUsLjQ3NSwuNDc1KSB0cmFuc2xhdGUzZCgwLDYwcHgsMCk7LXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOmN1YmljLWJlemllciguMTc1LC44ODUsLjMyLDEpO2FuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246Y3ViaWMtYmV6aWVyKC4xNzUsLjg4NSwuMzIsMSl9fS5hbmltYXRlX196b29tSW5Eb3duey13ZWJraXQtYW5pbWF0aW9uLW5hbWU6em9vbUluRG93bjthbmltYXRpb24tbmFtZTp6b29tSW5Eb3dufUAtd2Via2l0LWtleWZyYW1lcyB6b29tSW5MZWZ0ezAle29wYWNpdHk6MDstd2Via2l0LXRyYW5zZm9ybTpzY2FsZTNkKC4xLC4xLC4xKSB0cmFuc2xhdGUzZCgtMTAwMHB4LDAsMCk7dHJhbnNmb3JtOnNjYWxlM2QoLjEsLjEsLjEpIHRyYW5zbGF0ZTNkKC0xMDAwcHgsMCwwKTstd2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246Y3ViaWMtYmV6aWVyKC41NSwuMDU1LC42NzUsLjE5KTthbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOmN1YmljLWJlemllciguNTUsLjA1NSwuNjc1LC4xOSl9NjAle29wYWNpdHk6MTstd2Via2l0LXRyYW5zZm9ybTpzY2FsZTNkKC40NzUsLjQ3NSwuNDc1KSB0cmFuc2xhdGUzZCgxMHB4LDAsMCk7dHJhbnNmb3JtOnNjYWxlM2QoLjQ3NSwuNDc1LC40NzUpIHRyYW5zbGF0ZTNkKDEwcHgsMCwwKTstd2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246Y3ViaWMtYmV6aWVyKC4xNzUsLjg4NSwuMzIsMSk7YW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjpjdWJpYy1iZXppZXIoLjE3NSwuODg1LC4zMiwxKX19QGtleWZyYW1lcyB6b29tSW5MZWZ0ezAle29wYWNpdHk6MDstd2Via2l0LXRyYW5zZm9ybTpzY2FsZTNkKC4xLC4xLC4xKSB0cmFuc2xhdGUzZCgtMTAwMHB4LDAsMCk7dHJhbnNmb3JtOnNjYWxlM2QoLjEsLjEsLjEpIHRyYW5zbGF0ZTNkKC0xMDAwcHgsMCwwKTstd2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246Y3ViaWMtYmV6aWVyKC41NSwuMDU1LC42NzUsLjE5KTthbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOmN1YmljLWJlemllciguNTUsLjA1NSwuNjc1LC4xOSl9NjAle29wYWNpdHk6MTstd2Via2l0LXRyYW5zZm9ybTpzY2FsZTNkKC40NzUsLjQ3NSwuNDc1KSB0cmFuc2xhdGUzZCgxMHB4LDAsMCk7dHJhbnNmb3JtOnNjYWxlM2QoLjQ3NSwuNDc1LC40NzUpIHRyYW5zbGF0ZTNkKDEwcHgsMCwwKTstd2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246Y3ViaWMtYmV6aWVyKC4xNzUsLjg4NSwuMzIsMSk7YW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjpjdWJpYy1iZXppZXIoLjE3NSwuODg1LC4zMiwxKX19LmFuaW1hdGVfX3pvb21JbkxlZnR7LXdlYmtpdC1hbmltYXRpb24tbmFtZTp6b29tSW5MZWZ0O2FuaW1hdGlvbi1uYW1lOnpvb21JbkxlZnR9QC13ZWJraXQta2V5ZnJhbWVzIHpvb21JblJpZ2h0ezAle29wYWNpdHk6MDstd2Via2l0LXRyYW5zZm9ybTpzY2FsZTNkKC4xLC4xLC4xKSB0cmFuc2xhdGUzZCgxMDAwcHgsMCwwKTt0cmFuc2Zvcm06c2NhbGUzZCguMSwuMSwuMSkgdHJhbnNsYXRlM2QoMTAwMHB4LDAsMCk7LXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOmN1YmljLWJlemllciguNTUsLjA1NSwuNjc1LC4xOSk7YW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjpjdWJpYy1iZXppZXIoLjU1LC4wNTUsLjY3NSwuMTkpfTYwJXtvcGFjaXR5OjE7LXdlYmtpdC10cmFuc2Zvcm06c2NhbGUzZCguNDc1LC40NzUsLjQ3NSkgdHJhbnNsYXRlM2QoLTEwcHgsMCwwKTt0cmFuc2Zvcm06c2NhbGUzZCguNDc1LC40NzUsLjQ3NSkgdHJhbnNsYXRlM2QoLTEwcHgsMCwwKTstd2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246Y3ViaWMtYmV6aWVyKC4xNzUsLjg4NSwuMzIsMSk7YW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjpjdWJpYy1iZXppZXIoLjE3NSwuODg1LC4zMiwxKX19QGtleWZyYW1lcyB6b29tSW5SaWdodHswJXtvcGFjaXR5OjA7LXdlYmtpdC10cmFuc2Zvcm06c2NhbGUzZCguMSwuMSwuMSkgdHJhbnNsYXRlM2QoMTAwMHB4LDAsMCk7dHJhbnNmb3JtOnNjYWxlM2QoLjEsLjEsLjEpIHRyYW5zbGF0ZTNkKDEwMDBweCwwLDApOy13ZWJraXQtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjpjdWJpYy1iZXppZXIoLjU1LC4wNTUsLjY3NSwuMTkpO2FuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246Y3ViaWMtYmV6aWVyKC41NSwuMDU1LC42NzUsLjE5KX02MCV7b3BhY2l0eToxOy13ZWJraXQtdHJhbnNmb3JtOnNjYWxlM2QoLjQ3NSwuNDc1LC40NzUpIHRyYW5zbGF0ZTNkKC0xMHB4LDAsMCk7dHJhbnNmb3JtOnNjYWxlM2QoLjQ3NSwuNDc1LC40NzUpIHRyYW5zbGF0ZTNkKC0xMHB4LDAsMCk7LXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOmN1YmljLWJlemllciguMTc1LC44ODUsLjMyLDEpO2FuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246Y3ViaWMtYmV6aWVyKC4xNzUsLjg4NSwuMzIsMSl9fS5hbmltYXRlX196b29tSW5SaWdodHstd2Via2l0LWFuaW1hdGlvbi1uYW1lOnpvb21JblJpZ2h0O2FuaW1hdGlvbi1uYW1lOnpvb21JblJpZ2h0fUAtd2Via2l0LWtleWZyYW1lcyB6b29tSW5VcHswJXtvcGFjaXR5OjA7LXdlYmtpdC10cmFuc2Zvcm06c2NhbGUzZCguMSwuMSwuMSkgdHJhbnNsYXRlM2QoMCwxMDAwcHgsMCk7dHJhbnNmb3JtOnNjYWxlM2QoLjEsLjEsLjEpIHRyYW5zbGF0ZTNkKDAsMTAwMHB4LDApOy13ZWJraXQtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjpjdWJpYy1iZXppZXIoLjU1LC4wNTUsLjY3NSwuMTkpO2FuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246Y3ViaWMtYmV6aWVyKC41NSwuMDU1LC42NzUsLjE5KX02MCV7b3BhY2l0eToxOy13ZWJraXQtdHJhbnNmb3JtOnNjYWxlM2QoLjQ3NSwuNDc1LC40NzUpIHRyYW5zbGF0ZTNkKDAsLTYwcHgsMCk7dHJhbnNmb3JtOnNjYWxlM2QoLjQ3NSwuNDc1LC40NzUpIHRyYW5zbGF0ZTNkKDAsLTYwcHgsMCk7LXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOmN1YmljLWJlemllciguMTc1LC44ODUsLjMyLDEpO2FuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246Y3ViaWMtYmV6aWVyKC4xNzUsLjg4NSwuMzIsMSl9fUBrZXlmcmFtZXMgem9vbUluVXB7MCV7b3BhY2l0eTowOy13ZWJraXQtdHJhbnNmb3JtOnNjYWxlM2QoLjEsLjEsLjEpIHRyYW5zbGF0ZTNkKDAsMTAwMHB4LDApO3RyYW5zZm9ybTpzY2FsZTNkKC4xLC4xLC4xKSB0cmFuc2xhdGUzZCgwLDEwMDBweCwwKTstd2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246Y3ViaWMtYmV6aWVyKC41NSwuMDU1LC42NzUsLjE5KTthbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOmN1YmljLWJlemllciguNTUsLjA1NSwuNjc1LC4xOSl9NjAle29wYWNpdHk6MTstd2Via2l0LXRyYW5zZm9ybTpzY2FsZTNkKC40NzUsLjQ3NSwuNDc1KSB0cmFuc2xhdGUzZCgwLC02MHB4LDApO3RyYW5zZm9ybTpzY2FsZTNkKC40NzUsLjQ3NSwuNDc1KSB0cmFuc2xhdGUzZCgwLC02MHB4LDApOy13ZWJraXQtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjpjdWJpYy1iZXppZXIoLjE3NSwuODg1LC4zMiwxKTthbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOmN1YmljLWJlemllciguMTc1LC44ODUsLjMyLDEpfX0uYW5pbWF0ZV9fem9vbUluVXB7LXdlYmtpdC1hbmltYXRpb24tbmFtZTp6b29tSW5VcDthbmltYXRpb24tbmFtZTp6b29tSW5VcH1ALXdlYmtpdC1rZXlmcmFtZXMgem9vbU91dHswJXtvcGFjaXR5OjF9NTAle29wYWNpdHk6MDstd2Via2l0LXRyYW5zZm9ybTpzY2FsZTNkKC4zLC4zLC4zKTt0cmFuc2Zvcm06c2NhbGUzZCguMywuMywuMyl9dG97b3BhY2l0eTowfX1Aa2V5ZnJhbWVzIHpvb21PdXR7MCV7b3BhY2l0eToxfTUwJXtvcGFjaXR5OjA7LXdlYmtpdC10cmFuc2Zvcm06c2NhbGUzZCguMywuMywuMyk7dHJhbnNmb3JtOnNjYWxlM2QoLjMsLjMsLjMpfXRve29wYWNpdHk6MH19LmFuaW1hdGVfX3pvb21PdXR7LXdlYmtpdC1hbmltYXRpb24tbmFtZTp6b29tT3V0O2FuaW1hdGlvbi1uYW1lOnpvb21PdXR9QC13ZWJraXQta2V5ZnJhbWVzIHpvb21PdXREb3duezQwJXtvcGFjaXR5OjE7LXdlYmtpdC10cmFuc2Zvcm06c2NhbGUzZCguNDc1LC40NzUsLjQ3NSkgdHJhbnNsYXRlM2QoMCwtNjBweCwwKTt0cmFuc2Zvcm06c2NhbGUzZCguNDc1LC40NzUsLjQ3NSkgdHJhbnNsYXRlM2QoMCwtNjBweCwwKTstd2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246Y3ViaWMtYmV6aWVyKC41NSwuMDU1LC42NzUsLjE5KTthbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOmN1YmljLWJlemllciguNTUsLjA1NSwuNjc1LC4xOSl9dG97b3BhY2l0eTowOy13ZWJraXQtdHJhbnNmb3JtOnNjYWxlM2QoLjEsLjEsLjEpIHRyYW5zbGF0ZTNkKDAsMjAwMHB4LDApO3RyYW5zZm9ybTpzY2FsZTNkKC4xLC4xLC4xKSB0cmFuc2xhdGUzZCgwLDIwMDBweCwwKTstd2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246Y3ViaWMtYmV6aWVyKC4xNzUsLjg4NSwuMzIsMSk7YW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjpjdWJpYy1iZXppZXIoLjE3NSwuODg1LC4zMiwxKX19QGtleWZyYW1lcyB6b29tT3V0RG93bns0MCV7b3BhY2l0eToxOy13ZWJraXQtdHJhbnNmb3JtOnNjYWxlM2QoLjQ3NSwuNDc1LC40NzUpIHRyYW5zbGF0ZTNkKDAsLTYwcHgsMCk7dHJhbnNmb3JtOnNjYWxlM2QoLjQ3NSwuNDc1LC40NzUpIHRyYW5zbGF0ZTNkKDAsLTYwcHgsMCk7LXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOmN1YmljLWJlemllciguNTUsLjA1NSwuNjc1LC4xOSk7YW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjpjdWJpYy1iZXppZXIoLjU1LC4wNTUsLjY3NSwuMTkpfXRve29wYWNpdHk6MDstd2Via2l0LXRyYW5zZm9ybTpzY2FsZTNkKC4xLC4xLC4xKSB0cmFuc2xhdGUzZCgwLDIwMDBweCwwKTt0cmFuc2Zvcm06c2NhbGUzZCguMSwuMSwuMSkgdHJhbnNsYXRlM2QoMCwyMDAwcHgsMCk7LXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOmN1YmljLWJlemllciguMTc1LC44ODUsLjMyLDEpO2FuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246Y3ViaWMtYmV6aWVyKC4xNzUsLjg4NSwuMzIsMSl9fS5hbmltYXRlX196b29tT3V0RG93bnstd2Via2l0LWFuaW1hdGlvbi1uYW1lOnpvb21PdXREb3duO2FuaW1hdGlvbi1uYW1lOnpvb21PdXREb3duOy13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjpjZW50ZXIgYm90dG9tO3RyYW5zZm9ybS1vcmlnaW46Y2VudGVyIGJvdHRvbX1ALXdlYmtpdC1rZXlmcmFtZXMgem9vbU91dExlZnR7NDAle29wYWNpdHk6MTstd2Via2l0LXRyYW5zZm9ybTpzY2FsZTNkKC40NzUsLjQ3NSwuNDc1KSB0cmFuc2xhdGUzZCg0MnB4LDAsMCk7dHJhbnNmb3JtOnNjYWxlM2QoLjQ3NSwuNDc1LC40NzUpIHRyYW5zbGF0ZTNkKDQycHgsMCwwKX10b3tvcGFjaXR5OjA7LXdlYmtpdC10cmFuc2Zvcm06c2NhbGUoLjEpIHRyYW5zbGF0ZTNkKC0yMDAwcHgsMCwwKTt0cmFuc2Zvcm06c2NhbGUoLjEpIHRyYW5zbGF0ZTNkKC0yMDAwcHgsMCwwKX19QGtleWZyYW1lcyB6b29tT3V0TGVmdHs0MCV7b3BhY2l0eToxOy13ZWJraXQtdHJhbnNmb3JtOnNjYWxlM2QoLjQ3NSwuNDc1LC40NzUpIHRyYW5zbGF0ZTNkKDQycHgsMCwwKTt0cmFuc2Zvcm06c2NhbGUzZCguNDc1LC40NzUsLjQ3NSkgdHJhbnNsYXRlM2QoNDJweCwwLDApfXRve29wYWNpdHk6MDstd2Via2l0LXRyYW5zZm9ybTpzY2FsZSguMSkgdHJhbnNsYXRlM2QoLTIwMDBweCwwLDApO3RyYW5zZm9ybTpzY2FsZSguMSkgdHJhbnNsYXRlM2QoLTIwMDBweCwwLDApfX0uYW5pbWF0ZV9fem9vbU91dExlZnR7LXdlYmtpdC1hbmltYXRpb24tbmFtZTp6b29tT3V0TGVmdDthbmltYXRpb24tbmFtZTp6b29tT3V0TGVmdDstd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46bGVmdCBjZW50ZXI7dHJhbnNmb3JtLW9yaWdpbjpsZWZ0IGNlbnRlcn1ALXdlYmtpdC1rZXlmcmFtZXMgem9vbU91dFJpZ2h0ezQwJXtvcGFjaXR5OjE7LXdlYmtpdC10cmFuc2Zvcm06c2NhbGUzZCguNDc1LC40NzUsLjQ3NSkgdHJhbnNsYXRlM2QoLTQycHgsMCwwKTt0cmFuc2Zvcm06c2NhbGUzZCguNDc1LC40NzUsLjQ3NSkgdHJhbnNsYXRlM2QoLTQycHgsMCwwKX10b3tvcGFjaXR5OjA7LXdlYmtpdC10cmFuc2Zvcm06c2NhbGUoLjEpIHRyYW5zbGF0ZTNkKDIwMDBweCwwLDApO3RyYW5zZm9ybTpzY2FsZSguMSkgdHJhbnNsYXRlM2QoMjAwMHB4LDAsMCl9fUBrZXlmcmFtZXMgem9vbU91dFJpZ2h0ezQwJXtvcGFjaXR5OjE7LXdlYmtpdC10cmFuc2Zvcm06c2NhbGUzZCguNDc1LC40NzUsLjQ3NSkgdHJhbnNsYXRlM2QoLTQycHgsMCwwKTt0cmFuc2Zvcm06c2NhbGUzZCguNDc1LC40NzUsLjQ3NSkgdHJhbnNsYXRlM2QoLTQycHgsMCwwKX10b3tvcGFjaXR5OjA7LXdlYmtpdC10cmFuc2Zvcm06c2NhbGUoLjEpIHRyYW5zbGF0ZTNkKDIwMDBweCwwLDApO3RyYW5zZm9ybTpzY2FsZSguMSkgdHJhbnNsYXRlM2QoMjAwMHB4LDAsMCl9fS5hbmltYXRlX196b29tT3V0UmlnaHR7LXdlYmtpdC1hbmltYXRpb24tbmFtZTp6b29tT3V0UmlnaHQ7YW5pbWF0aW9uLW5hbWU6em9vbU91dFJpZ2h0Oy13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjpyaWdodCBjZW50ZXI7dHJhbnNmb3JtLW9yaWdpbjpyaWdodCBjZW50ZXJ9QC13ZWJraXQta2V5ZnJhbWVzIHpvb21PdXRVcHs0MCV7b3BhY2l0eToxOy13ZWJraXQtdHJhbnNmb3JtOnNjYWxlM2QoLjQ3NSwuNDc1LC40NzUpIHRyYW5zbGF0ZTNkKDAsNjBweCwwKTt0cmFuc2Zvcm06c2NhbGUzZCguNDc1LC40NzUsLjQ3NSkgdHJhbnNsYXRlM2QoMCw2MHB4LDApOy13ZWJraXQtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjpjdWJpYy1iZXppZXIoLjU1LC4wNTUsLjY3NSwuMTkpO2FuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246Y3ViaWMtYmV6aWVyKC41NSwuMDU1LC42NzUsLjE5KX10b3tvcGFjaXR5OjA7LXdlYmtpdC10cmFuc2Zvcm06c2NhbGUzZCguMSwuMSwuMSkgdHJhbnNsYXRlM2QoMCwtMjAwMHB4LDApO3RyYW5zZm9ybTpzY2FsZTNkKC4xLC4xLC4xKSB0cmFuc2xhdGUzZCgwLC0yMDAwcHgsMCk7LXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOmN1YmljLWJlemllciguMTc1LC44ODUsLjMyLDEpO2FuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246Y3ViaWMtYmV6aWVyKC4xNzUsLjg4NSwuMzIsMSl9fUBrZXlmcmFtZXMgem9vbU91dFVwezQwJXtvcGFjaXR5OjE7LXdlYmtpdC10cmFuc2Zvcm06c2NhbGUzZCguNDc1LC40NzUsLjQ3NSkgdHJhbnNsYXRlM2QoMCw2MHB4LDApO3RyYW5zZm9ybTpzY2FsZTNkKC40NzUsLjQ3NSwuNDc1KSB0cmFuc2xhdGUzZCgwLDYwcHgsMCk7LXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOmN1YmljLWJlemllciguNTUsLjA1NSwuNjc1LC4xOSk7YW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjpjdWJpYy1iZXppZXIoLjU1LC4wNTUsLjY3NSwuMTkpfXRve29wYWNpdHk6MDstd2Via2l0LXRyYW5zZm9ybTpzY2FsZTNkKC4xLC4xLC4xKSB0cmFuc2xhdGUzZCgwLC0yMDAwcHgsMCk7dHJhbnNmb3JtOnNjYWxlM2QoLjEsLjEsLjEpIHRyYW5zbGF0ZTNkKDAsLTIwMDBweCwwKTstd2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246Y3ViaWMtYmV6aWVyKC4xNzUsLjg4NSwuMzIsMSk7YW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjpjdWJpYy1iZXppZXIoLjE3NSwuODg1LC4zMiwxKX19LmFuaW1hdGVfX3pvb21PdXRVcHstd2Via2l0LWFuaW1hdGlvbi1uYW1lOnpvb21PdXRVcDthbmltYXRpb24tbmFtZTp6b29tT3V0VXA7LXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOmNlbnRlciBib3R0b207dHJhbnNmb3JtLW9yaWdpbjpjZW50ZXIgYm90dG9tfUAtd2Via2l0LWtleWZyYW1lcyBzbGlkZUluRG93bnswJXstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGUzZCgwLC0xMDAlLDApO3RyYW5zZm9ybTp0cmFuc2xhdGUzZCgwLC0xMDAlLDApO3Zpc2liaWxpdHk6dmlzaWJsZX10b3std2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGVaKDApO3RyYW5zZm9ybTp0cmFuc2xhdGVaKDApfX1Aa2V5ZnJhbWVzIHNsaWRlSW5Eb3duezAley13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDAsLTEwMCUsMCk7dHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDAsLTEwMCUsMCk7dmlzaWJpbGl0eTp2aXNpYmxlfXRvey13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZVooMCk7dHJhbnNmb3JtOnRyYW5zbGF0ZVooMCl9fS5hbmltYXRlX19zbGlkZUluRG93bnstd2Via2l0LWFuaW1hdGlvbi1uYW1lOnNsaWRlSW5Eb3duO2FuaW1hdGlvbi1uYW1lOnNsaWRlSW5Eb3dufUAtd2Via2l0LWtleWZyYW1lcyBzbGlkZUluTGVmdHswJXstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGUzZCgtMTAwJSwwLDApO3RyYW5zZm9ybTp0cmFuc2xhdGUzZCgtMTAwJSwwLDApO3Zpc2liaWxpdHk6dmlzaWJsZX10b3std2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGVaKDApO3RyYW5zZm9ybTp0cmFuc2xhdGVaKDApfX1Aa2V5ZnJhbWVzIHNsaWRlSW5MZWZ0ezAley13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZTNkKC0xMDAlLDAsMCk7dHJhbnNmb3JtOnRyYW5zbGF0ZTNkKC0xMDAlLDAsMCk7dmlzaWJpbGl0eTp2aXNpYmxlfXRvey13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZVooMCk7dHJhbnNmb3JtOnRyYW5zbGF0ZVooMCl9fS5hbmltYXRlX19zbGlkZUluTGVmdHstd2Via2l0LWFuaW1hdGlvbi1uYW1lOnNsaWRlSW5MZWZ0O2FuaW1hdGlvbi1uYW1lOnNsaWRlSW5MZWZ0fUAtd2Via2l0LWtleWZyYW1lcyBzbGlkZUluUmlnaHR7MCV7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlM2QoMTAwJSwwLDApO3RyYW5zZm9ybTp0cmFuc2xhdGUzZCgxMDAlLDAsMCk7dmlzaWJpbGl0eTp2aXNpYmxlfXRvey13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZVooMCk7dHJhbnNmb3JtOnRyYW5zbGF0ZVooMCl9fUBrZXlmcmFtZXMgc2xpZGVJblJpZ2h0ezAley13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDEwMCUsMCwwKTt0cmFuc2Zvcm06dHJhbnNsYXRlM2QoMTAwJSwwLDApO3Zpc2liaWxpdHk6dmlzaWJsZX10b3std2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGVaKDApO3RyYW5zZm9ybTp0cmFuc2xhdGVaKDApfX0uYW5pbWF0ZV9fc2xpZGVJblJpZ2h0ey13ZWJraXQtYW5pbWF0aW9uLW5hbWU6c2xpZGVJblJpZ2h0O2FuaW1hdGlvbi1uYW1lOnNsaWRlSW5SaWdodH1ALXdlYmtpdC1rZXlmcmFtZXMgc2xpZGVJblVwezAley13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDAsMTAwJSwwKTt0cmFuc2Zvcm06dHJhbnNsYXRlM2QoMCwxMDAlLDApO3Zpc2liaWxpdHk6dmlzaWJsZX10b3std2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGVaKDApO3RyYW5zZm9ybTp0cmFuc2xhdGVaKDApfX1Aa2V5ZnJhbWVzIHNsaWRlSW5VcHswJXstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGUzZCgwLDEwMCUsMCk7dHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDAsMTAwJSwwKTt2aXNpYmlsaXR5OnZpc2libGV9dG97LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlWigwKTt0cmFuc2Zvcm06dHJhbnNsYXRlWigwKX19LmFuaW1hdGVfX3NsaWRlSW5VcHstd2Via2l0LWFuaW1hdGlvbi1uYW1lOnNsaWRlSW5VcDthbmltYXRpb24tbmFtZTpzbGlkZUluVXB9QC13ZWJraXQta2V5ZnJhbWVzIHNsaWRlT3V0RG93bnswJXstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGVaKDApO3RyYW5zZm9ybTp0cmFuc2xhdGVaKDApfXRve3Zpc2liaWxpdHk6aGlkZGVuOy13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDAsMTAwJSwwKTt0cmFuc2Zvcm06dHJhbnNsYXRlM2QoMCwxMDAlLDApfX1Aa2V5ZnJhbWVzIHNsaWRlT3V0RG93bnswJXstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGVaKDApO3RyYW5zZm9ybTp0cmFuc2xhdGVaKDApfXRve3Zpc2liaWxpdHk6aGlkZGVuOy13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDAsMTAwJSwwKTt0cmFuc2Zvcm06dHJhbnNsYXRlM2QoMCwxMDAlLDApfX0uYW5pbWF0ZV9fc2xpZGVPdXREb3duey13ZWJraXQtYW5pbWF0aW9uLW5hbWU6c2xpZGVPdXREb3duO2FuaW1hdGlvbi1uYW1lOnNsaWRlT3V0RG93bn1ALXdlYmtpdC1rZXlmcmFtZXMgc2xpZGVPdXRMZWZ0ezAley13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZVooMCk7dHJhbnNmb3JtOnRyYW5zbGF0ZVooMCl9dG97dmlzaWJpbGl0eTpoaWRkZW47LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlM2QoLTEwMCUsMCwwKTt0cmFuc2Zvcm06dHJhbnNsYXRlM2QoLTEwMCUsMCwwKX19QGtleWZyYW1lcyBzbGlkZU91dExlZnR7MCV7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlWigwKTt0cmFuc2Zvcm06dHJhbnNsYXRlWigwKX10b3t2aXNpYmlsaXR5OmhpZGRlbjstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGUzZCgtMTAwJSwwLDApO3RyYW5zZm9ybTp0cmFuc2xhdGUzZCgtMTAwJSwwLDApfX0uYW5pbWF0ZV9fc2xpZGVPdXRMZWZ0ey13ZWJraXQtYW5pbWF0aW9uLW5hbWU6c2xpZGVPdXRMZWZ0O2FuaW1hdGlvbi1uYW1lOnNsaWRlT3V0TGVmdH1ALXdlYmtpdC1rZXlmcmFtZXMgc2xpZGVPdXRSaWdodHswJXstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGVaKDApO3RyYW5zZm9ybTp0cmFuc2xhdGVaKDApfXRve3Zpc2liaWxpdHk6aGlkZGVuOy13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDEwMCUsMCwwKTt0cmFuc2Zvcm06dHJhbnNsYXRlM2QoMTAwJSwwLDApfX1Aa2V5ZnJhbWVzIHNsaWRlT3V0UmlnaHR7MCV7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlWigwKTt0cmFuc2Zvcm06dHJhbnNsYXRlWigwKX10b3t2aXNpYmlsaXR5OmhpZGRlbjstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGUzZCgxMDAlLDAsMCk7dHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDEwMCUsMCwwKX19LmFuaW1hdGVfX3NsaWRlT3V0UmlnaHR7LXdlYmtpdC1hbmltYXRpb24tbmFtZTpzbGlkZU91dFJpZ2h0O2FuaW1hdGlvbi1uYW1lOnNsaWRlT3V0UmlnaHR9QC13ZWJraXQta2V5ZnJhbWVzIHNsaWRlT3V0VXB7MCV7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlWigwKTt0cmFuc2Zvcm06dHJhbnNsYXRlWigwKX10b3t2aXNpYmlsaXR5OmhpZGRlbjstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGUzZCgwLC0xMDAlLDApO3RyYW5zZm9ybTp0cmFuc2xhdGUzZCgwLC0xMDAlLDApfX1Aa2V5ZnJhbWVzIHNsaWRlT3V0VXB7MCV7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlWigwKTt0cmFuc2Zvcm06dHJhbnNsYXRlWigwKX10b3t2aXNpYmlsaXR5OmhpZGRlbjstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGUzZCgwLC0xMDAlLDApO3RyYW5zZm9ybTp0cmFuc2xhdGUzZCgwLC0xMDAlLDApfX0uYW5pbWF0ZV9fc2xpZGVPdXRVcHstd2Via2l0LWFuaW1hdGlvbi1uYW1lOnNsaWRlT3V0VXA7YW5pbWF0aW9uLW5hbWU6c2xpZGVPdXRVcH0iLCAiLm9zLS1iZXRhLXRhZyA6OmFmdGVyIHtcclxuXHRjb250ZW50OiBcIkJFVEFcIjtcclxuXHRmb250LXNpemU6IHZhcigtLWZvbnQtdWktc21hbGxlcik7XHJcblx0Zm9udC13ZWlnaHQ6IHZhcigtLWZvbnQtc2VtaWJvbGQpO1xyXG5cdHZlcnRpY2FsLWFsaWduOiB0b3A7XHJcblx0YmFja2dyb3VuZC1jb2xvcjogdmFyKC0taW50ZXJhY3RpdmUtYWNjZW50KTtcclxuXHRtYXJnaW4tbGVmdDogOHB4O1xyXG5cdGhlaWdodDogMjBweDtcclxuXHR3aWR0aDogMzRweDtcclxuXHRkaXNwbGF5OiBpbmxpbmUtZmxleDtcclxuXHRqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuXHRhbGlnbi1pdGVtczogY2VudGVyO1xyXG5cdGJvcmRlci1yYWRpdXM6IHZhcigtLXJhZGl1cy1zKTtcclxufVxyXG5cclxuLm9zZi0tcmVzdWx0LWVvbCAub3MtcmVzdWx0IHtcclxuXHRwb3NpdGlvbjogYWJzb2x1dGU7XHJcblx0cmlnaHQ6IDA7XHJcbn1cclxuXHJcbi5vcy1yZXN1bHQge1xyXG5cdGRpc3BsYXk6IGlubGluZS1mbGV4O1xyXG5cdG1hcmdpbjogdmFyKC0tc29sdmUtcmVzdWx0LW1hcmdpbiwgMCAwIDAgNHB4KTtcclxuXHRwYWRkaW5nOiB2YXIoLS1zb2x2ZS1yZXN1bHQtcGFkZGluZywgMCAwIDAgNHB4KTtcclxuXHRsaW5lLWhlaWdodDogdmFyKC0tbGluZS1oZWlnaHQtbm9ybWFsKTtcclxuXHJcblx0LyogQ29sb3IgU3R5bGUgU2V0dGluZ3MgKi9cclxuXHRjb2xvcjogdmFyKC0tc29sdmUtcmVzdWx0LXRleHQsICMyOWNlOTllOCk7XHJcblx0YmFja2dyb3VuZC1jb2xvcjogdmFyKC0tc29sdmUtcmVzdWx0LWJhY2tncm91bmQsICMyMmNlOTkwMCk7XHJcblxyXG5cdC8qIEZvbnQgU3R5bGUgU2V0dGluZ3MgKi9cclxuXHRmb250LWZhbWlseTogdmFyKC0tZm9udC10ZXh0KTtcclxuXHRmb250LXNpemU6IHZhcigtLWZvbnQtdGV4dC1zaXplLCAxNnB4KTtcclxuXHJcblx0LyogQm9yZGVyIFN0eWxlIFNldHRpbmdzICovXHJcblx0Ym9yZGVyLWNvbG9yOiB2YXIoLS1zb2x2ZS1yZXN1bHQtYm9yZGVyLWNvbG9yLCB0cmFuc3BhcmVudCk7XHJcblx0Ym9yZGVyLXN0eWxlOiB2YXIoLS1zb2x2ZS1yZXN1bHQtYm9yZGVyLXN0eWxlLCBzb2xpZCk7XHJcblx0Ym9yZGVyLXdpZHRoOiB2YXIoLS1zb2x2ZS1yZXN1bHQtYm9yZGVyLXdpZHRoLCAwKTtcclxuXHRib3JkZXItcmFkaXVzOiB2YXIoLS1zb2x2ZS1yZXN1bHQtYm9yZGVyLXJhZGl1cywgNHB4KTtcclxuXHJcblx0LyogSG92ZXIgKi9cclxuXHR0ZXh0LWRlY29yYXRpb246IGRvdHRlZDtcclxuXHR0ZXh0LWRlY29yYXRpb24tbGluZTogdW5kZXJsaW5lO1xyXG5cdHRleHQtdW5kZXJsaW5lLW9mZnNldDogMnB4O1xyXG5cdHRleHQtZGVjb3JhdGlvbi1jb2xvcjogdHJhbnNwYXJlbnQ7XHJcblx0dHJhbnNpdGlvbjogYWxsIDE1MG1zO1xyXG5cclxuXHQvKiBBbnRpLWJsdXIgZm9yIGFuaW1hdGlvbiAqL1xyXG5cdC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xyXG5cdGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcclxuXHR0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xyXG59XHJcblxyXG4ub3MtcmVzdWx0OmhvdmVyIHtcclxuXHRjdXJzb3I6IHBvaW50ZXI7XHJcblx0dGV4dC1kZWNvcmF0aW9uLWNvbG9yOiB2YXIoXHJcblx0XHQtLXNvbHZlLXJlc3VsdC1ob3Zlci11bmRlcmxpbmUtY29sb3IsXHJcblx0XHRjdXJyZW50Q29sb3JcclxuXHQpO1xyXG59XHJcbiJdLAogICJtYXBwaW5ncyI6ICI7OztBQU1HO0FBQU0scUJBQW1CO0FBQUcsa0JBQWdCO0FBQUcsbUJBQWlCO0FBQUM7QUFBQyxDQUFDO0FBQWtCLDhCQUEyQjtBQUFHLHNCQUFtQjtBQUFHLDhCQUEyQixJQUFJO0FBQW9CLHNCQUFtQixJQUFJO0FBQW9CLCtCQUE0QjtBQUFLLHVCQUFvQjtBQUFJO0FBQUMsQ0FBQyxpQkFBaUIsQ0FB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LE9BQU87QUFBTSxlQUFVLFlBQVksR0FBRyxFQUFDLENBQUMsRUFBQyxHQUFHLE9BQU87QUFBSztBQUFDO0FBQUksdUJBQWtCLFlBQVksSUFBSSxFQUFDLENBQUMsRUFBQyxHQUFHLE9BQU87QUFBTyxlQUFVLFlBQVksSUFBSSxFQUFDLENBQUMsRUFBQyxHQUFHLE9BQU87QUFBTTtBQUFDO0FBQUksdUJBQWtCLFlBQVksR0FBRyxFQUFDLENBQUMsRUFBQyxHQUFHLE9BQU87QUFBTSxlQUFVLFlBQVksR0FBRyxFQUFDLENBQUMsRUFBQyxHQUFHLE9BQU87QUFBSztBQUFDO0FBQUksdUJBQWtCLFlBQVksR0FBRyxFQUFDLENBQUMsRUFBQyxHQUFHLE9BQU87QUFBTyxlQUFVLFlBQVksR0FBRyxFQUFDLENBQUMsRUFBQyxHQUFHLE9BQU87QUFBTTtBQUFDO0FBQUcsdUJBQWtCLFdBQVc7QUFBRyxlQUFVLFdBQVc7QUFBRTtBQUFDO0FBQUM7QUFBa0I7QUFBRyx1QkFBa0IsV0FBVztBQUFHLGVBQVUsV0FBVztBQUFFO0FBQUM7QUFBSSx1QkFBa0IsWUFBWSxJQUFJLEVBQUMsQ0FBQyxFQUFDLEdBQUcsT0FBTztBQUFPLGVBQVUsWUFBWSxJQUFJLEVBQUMsQ0FBQyxFQUFDLEdBQUcsT0FBTztBQUFNO0FBQUM7QUFBSSx1QkFBa0IsWUFBWSxHQUFHLEVBQUMsQ0FBQyxFQUFDLEdBQUcsT0FBTztBQUFNLGVBQVUsWUFBWSxHQUFHLEVBQUMsQ0FBQyxFQUFDLEdBQUcsT0FBTztBQUFLO0FBQUM7QUFBSSx1QkFBa0IsWUFBWSxJQUFJLEVBQUMsQ0FBQyxFQUFDLEdBQUcsT0FBTztBQUFPLGVBQVUsWUFBWSxJQUFJLEVBQUMsQ0FBQyxFQUFDLEdBQUcsT0FBTztBQUFNO0FBQUM7QUFBSSx1QkFBa0IsWUFBWSxHQUFHLEVBQUMsQ0FBQyxFQUFDLEdBQUcsT0FBTztBQUFNLGVBQVUsWUFBWSxHQUFHLEVBQUMsQ0FBQyxFQUFDLEdBQUcsT0FBTztBQUFLO0FBQUM7QUFBSSx1QkFBa0IsWUFBWSxHQUFHLEVBQUMsQ0FB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Ryx1QkFBa0IsV0FBVyxTQUFTLE1BQU07QUFBSSxlQUFVLFdBQVcsU0FBUyxNQUFNO0FBQUksYUFBUTtBQUFFO0FBQUM7QUFBSSx1QkFBa0IsV0FBVyxHQUFHLE1BQU07QUFBSSxlQUFVLFdBQVcsR0FBRyxNQUFNO0FBQUksYUFBUTtBQUFFO0FBQUM7QUFBRyx1QkFBa0IsTUFBTTtBQUFHLGVBQVUsTUFBTTtBQUFHLGFBQVE7QUFBQztBQUFDO0FBQUM7QUFBc0I7QUFBRyx1QkFBa0IsV0FBVyxTQUFTLE1BQU07QUFBSSxlQUFVLFdBQVcsU0FBUyxNQUFNO0FBQUksYUFBUTtBQUFFO0FBQUM7QUFBSSx1QkFBa0IsV0FBVyxHQUFHLE1BQU07QUFBSSxlQUFVLFdBQVcsR0FBRyxNQUFNO0FBQUksYUFBUTtBQUFFO0FBQUM7QUFBRyx1QkFBa0IsTUFBTTtBQUFHLGVBQVUsTUFBTTtBQUFHLGFBQVE7QUFBQztBQUFDO0FBQUMsQ0FBQztBQUFvQiwwQkFBdUI7QUFBVyxrQkFBZTtBQUFVO0FBQUM7QUFBOEI7QUFBRyx1QkFBa0IsV0FBVyxTQUFTLE1BQU07QUFBSSxlQUFVLFdBQVcsU0FBUyxNQUFNO0FBQUksYUFBUTtBQUFFO0FBQUM7QUFBSSx1QkFBa0IsV0FBVyxHQUFHLE1BQU07QUFBSSxlQUFVLFdBQVcsR0FBRyxNQUFNO0FBQUksYUFBUTtBQUFFO0FBQUM7QUFBRyx1QkFBa0IsTUFBTTtBQUFHLGVBQVUsTUFBTTtBQUFHLGFBQVE7QUFBQztBQUFDO0FBQUM7QUFBc0I7QUFBRyx1QkFBa0IsV0FBVyxTQUFTLE1BQU07QUFBSSxlQUFVLFdBQVcsU0FBUyxNQUFNO0FBQUksYUFBUTtBQUFFO0FBQUM7QUFBSSx1QkFBa0IsV0FBVyxHQUFHLE1BQU07QUFBSSxlQUFVLFdBQVcsR0FBRyxNQUFNO0FBQUksYUFBUTtBQUFFO0FBQUM7QUFBRyx1QkFBa0IsTUFBTTtBQUFHLGVBQVUsTUFBTTtBQUFHLGFBQVE7QUFBQztBQUFDO0FBQUMsQ0FBQztBQUFvQiwwQkFBdUI7QUFBVyxrQkFBZTtBQUFVO0FBQUM7QUFBK0I7QUFBRyx1QkFBa0IsV0FBVyxRQUFRLE1BQU07QUFBSSxlQUFVLFdBQVcsUUFBUSxNQUFNO0FBQUksYUFBUTtBQUFFO0FBQUM7QUFBSSx1QkFBa0IsV0FBVyxHQUFHLE1BQU07QUFBSSxlQUFVLFdBQVcsR0FBRyxNQUFNO0FBQUksYUFBUTtBQUFFO0FBQUM7QUFBRyx1QkFBa0IsTUFBTTtBQUFHLGVBQVUsTUFBTTtBQUFHLGFBQVE7QUFBQztBQUFDO0FBQUM7QUFBdUI7QUFBRyx1QkFBa0IsV0FBVyxRQUFRLE1BQU07QUFBSSxlQUFVLFdBQVcsUUFBUSxNQUFNO0FBQUksYUFBUTtBQUFFO0FBQUM7QUFBSSx1QkFBa0IsV0FBVyxHQUFHLE1BQU07QUFBSSxlQUFVLFdBQVcsR0FBRyxNQUFNO0FBQUksYUFBUTtBQUFFO0FBQUM7QUFBRyx1QkFBa0IsTUFBTTtBQUFHLGVBQVUsTUFBTTtBQUFHLGFBQVE7QUFBQztBQUFDO0FBQUMsQ0FBQztBQUFxQiwwQkFBdUI7QUFBWSxrQkFBZTtBQUFXO0FBQUM7QUFBNEI7QUFBRyx1QkFBa0IsV0FBVyxRQUFRLE1BQU07QUFBSSxlQUFVLFdBQVcsUUFBUSxNQUFNO0FBQUksYUFBUTtBQUFFO0FBQUM7QUFBSSx1QkFBa0IsV0FBVyxHQUFHLE1BQU07QUFBSSxlQUFVLFdBQVcsR0FBRyxNQUFNO0FBQUksYUFBUTtBQUFFO0FBQUM7QUFBRyx1QkFBa0IsTUFBTTtBQUFHLGVBQVUsTUFBTTtBQUFHLGFBQVE7QUFBQztBQUFDO0FBQUM7QUFBb0I7QUFBRyx1QkFBa0IsV0FBVyxRQUFRLE1BQU07QUFBSSxlQUFVLFdBQVcsUUFBUSxNQUFNO0FBQUksYUFBUTtBQUFFO0FBQUM7QUFBSSx1QkFBa0IsV0FBVyxHQUFHLE1BQU07QUFBSSxlQUFVLFdBQVcsR0FBRyxNQUFNO0FBQUksYUFBUTtBQUFFO0FBQUM7QUFBRyx1QkFBa0IsTUFBTTtBQUFHLGVBQVUsTUFBTTtBQUFHLGFBQVE7QUFBQztBQUFDO0FBQUMsQ0FBQztBQUFrQiwwQkFBdUI7QUFBUyxrQkFBZTtBQUFRO0FBQUM7QUFBK0I7QUFBRyx1QkFBa0IsTUFBTTtBQUFHLGVBQVUsTUFBTTtBQUFHLGFBQVE7QUFBQztBQUFDO0FBQUksdUJBQWtCLFdBQVcsR0FBRyxNQUFNO0FBQUksZUFBVSxXQUFXLEdBQUcsTUFBTTtBQUFJLGFBQVE7QUFBRTtBQUFDO0FBQUcsdUJBQWtCLFdBQVcsT0FBTyxNQUFNO0FBQUksZUFBVSxXQUFXLE9BQU8sTUFBTTtBQUFJLGFBQVE7QUFBRTtBQUFDO0FBQUM7QUFBdUI7QUFBRyx1QkFBa0IsTUFBTTtBQUFHLGVBQVUsTUFBTTtBQUFHLGFBQVE7QUFBQztBQUFDO0FBQUksdUJBQWtCLFdBQVcsR0FBRyxNQUFNO0FBQUksZUFBVSxXQUFXLEdBQUcsTUFBTTtBQUFJLGFBQVE7QUFBRTtBQUFDO0FBQUcsdUJBQWtCLFdBQVcsT0FBTyxNQUFNO0FBQUksZUFBVSxXQUFXLE9BQU8sTUFBTTtBQUFJLGFBQVE7QUFBRTtBQUFDO0FBQUMsQ0FBQztBQUFxQiwwQkFBdUI7QUFBWSxrQkFBZTtBQUFXO0FBQUM7QUFBK0I7QUFBRyx1QkFBa0IsTUFBTTtBQUFHLGVBQVUsTUFBTTtBQUFHLGFBQVE7QUFBQztBQUFDO0FBQUksdUJBQWtCLFdBQVcsR0FBRyxNQUFNO0FBQUksZUFBVSxXQUFXLEdBQUcsTUFBTTtBQUFJLGFBQVE7QUFBRTtBQUFDO0FBQUcsdUJBQWtCLFdBQVcsU0FBUyxNQUFNO0FBQUksZUFBVSxXQUFXLFNBQVMsTUFBTTtBQUFJLGFBQVE7QUFBRTtBQUFDO0FBQUM7QUFBdUI7QUFBRyx1QkFBa0IsTUFBTTtBQUFHLGVBQVUsTUFBTTtBQUFHLGFBQVE7QUFBQztBQUFDO0FBQUksdUJBQWtCLFdBQVcsR0FBRyxNQUFNO0FBQUksZUFBVSxXQUFXLEdBQUcsTUFBTTtBQUFJLGFBQVE7QUFBRTtBQUFDO0FBQUcsdUJBQWtCLFdBQVcsU0FBUyxNQUFNO0FBQUksZUFBVSxXQUFXLFNBQVMsTUFBTTtBQUFJLGFBQVE7QUFBRTtBQUFDO0FBQUMsQ0FBQztBQUFxQiwwQkFBdUI7QUFBWSxrQkFBZTtBQUFXO0FBQUM7QUFBZ0M7QUFBRyx1QkFBa0IsTUFBTTtBQUFHLGVBQVUsTUFBTTtBQUFHLGFBQVE7QUFBQztBQUFDO0FBQUksdUJBQWtCLFdBQVcsR0FBRyxNQUFNO0FBQUksZUFBVSxXQUFXLEdBQUcsTUFBTTtBQUFJLGFBQVE7QUFBRTtBQUFDO0FBQUcsdUJBQWtCLFdBQVcsUUFBUSxNQUFNO0FBQUksZUFBVSxXQUFXLFFBQVEsTUFBTTtBQUFJLGFBQVE7QUFBRTtBQUFDO0FBQUM7QUFBd0I7QUFBRyx1QkFBa0IsTUFBTTtBQUFHLGVBQVUsTUFBTTtBQUFHLGFBQVE7QUFBQztBQUFDO0FBQUksdUJBQWtCLFdBQVcsR0FBRyxNQUFNO0FBQUksZUFBVSxXQUFXLEdBQUcsTUFBTTtBQUFJLGFBQVE7QUFBRTtBQUFDO0FBQUcsdUJBQWtCLFdBQVcsUUFBUSxNQUFNO0FBQUksZUFBVSxXQUFXLFFBQVEsTUFBTTtBQUFJLGFBQVE7QUFBRTtBQUFDO0FBQUMsQ0FBQztBQUFzQiwwQkFBdUI7QUFBYSxrQkFBZTtBQUFZO0FBQUM7QUFBNkI7QUFBRyx1QkFBa0IsTUFBTTtBQUFHLGVBQVUsTUFBTTtBQUFHLGFBQVE7QUFBQztBQUFDO0FBQUksdUJBQWtCLFdBQVcsR0FBRyxNQUFNO0FBQUksZUFBVSxXQUFXLEdBQUcsTUFBTTtBQUFJLGFBQVE7QUFBRTtBQUFDO0FBQUcsdUJBQWtCLFdBQVcsUUFBUSxNQUFNO0FBQUksZUFBVSxXQUFXLFFBQVEsTUFBTTtBQUFJLGFBQVE7QUFBRTtBQUFDO0FBQUM7QUFBcUI7QUFBRyx1QkFBa0IsTUFBTTtBQUFHLGVBQVUsTUFBTTtBQUFHLGFBQVE7QUFBQztBQUFDO0FBQUksdUJBQWtCLFdBQVcsR0FBRyxNQUFNO0FBQUksZUFBVSxXQUFXLEdBQUcsTUFBTTtBQUFJLGFBQVE7QUFBRTtBQUFDO0FBQUcsdUJBQWtCLFdBQVcsUUFBUSxNQUFNO0FBQUksZUFBVSxXQUFXLFFBQVEsTUFBTTtBQUFJLGFBQVE7QUFBRTtBQUFDO0FBQUMsQ0FBQztBQUFtQiwwQkFBdUI7QUFBVSxr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dUJBQWtCLFlBQVksS0FBSyxFQUFDLENBQUMsRUFBQztBQUFHLGVBQVUsWUFBWSxLQUFLLEVBQUMsQ0FBQyxFQUFDO0FBQUU7QUFBQztBQUFDO0FBQXVCO0FBQUcsYUFBUTtBQUFDO0FBQUM7QUFBRyxhQUFRO0FBQUUsdUJBQWtCLFlBQVksS0FBSyxFQUFDLENBQUMsRUFBQztBQUFHLGVBQVUsWUFBWSxLQUFLLEVBQUMsQ0FBQyxFQUFDO0FBQUU7QUFBQztBQUFDLENBQUM7QUFBcUIsMEJBQXVCO0FBQVksa0JBQWU7QUFBVztBQUFDO0FBQWtDO0FBQUcsYUFBUTtBQUFDO0FBQUM7QUFBRyxhQUFRO0FBQUUsdUJBQWtCLFlBQVksT0FBTyxFQUFDLENBQUMsRUFBQztBQUFHLGVBQVUsWUFBWSxPQUFPLEVBQUMsQ0FBQyxFQUFDO0FBQUU7QUFBQztBQUFDO0FBQTBCO0FBQUcsYUFBUTtBQUFDO0FBQUM7QUFBRyxhQUFRO0FBQUUsdUJBQWtCLFlBQVksT0FBTyxFQUFDLENBQUMsRUFBQztBQUFHLGVBQVUsWUFBWSxPQUFPLEVBQUMsQ0FBQyxFQUFDO0FBQUU7QUFBQztBQUFDLENBQUM7QUFBd0IsMEJBQXVCO0FBQWUsa0JBQWU7QUFBYztBQUFDO0FBQWdDO0FBQUcsYUFBUTtBQUFDO0FBQUM7QUFBRyxhQUFRO0FBQUUsdUJBQWtCLFlBQVksSUFBSSxFQUFDLENBQUMsRUFBQztBQUFHLGVBQVUsWUFBWSxJQUFJLEVBQUMsQ0FBQyxFQUFDO0FBQUU7QUFBQztBQUFDO0FBQXdCO0FBQUcsYUFBUTtBQUFDO0FBQUM7QUFBRyxhQUFRO0FBQUUsdUJBQWtCLFlBQVksSUFBSSxFQUFDLENBQUMsRUFBQztBQUFHLGVBQVUsWUFBWSxJQUFJLEVBQUMsQ0FBQyxFQUFDO0FBQUU7QUFBQztBQUFDLENBQUM7QUFBc0IsMEJBQXVCO0FBQWEsa0JBQWU7QUFBWTtBQUFDO0FBQW1DO0FBQUcsYUFBUTtBQUFDO0FBQUM7QUFBRyxhQUFRO0FBQUUsdUJBQWtCLFlBQVksTUFBTSxFQUFDLENBQUMsRUFBQztBQUFHLGVBQVUsWUFB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VztBQUFHLGVBQVUsV0FBVztBQUFFO0FBQUM7QUFBRyxnQkFBVztBQUFPLHVCQUFrQixZQUFZLENBQUMsRUFBQyxLQUFLLEVBQUM7QUFBRyxlQUFVLFlBQVksQ0FBQyxFQUFDLEtBQUssRUFBQztBQUFFO0FBQUM7QUFBQztBQUFzQjtBQUFHLHVCQUFrQixXQUFXO0FBQUcsZUFBVSxXQUFXO0FBQUU7QUFBQztBQUFHLGdCQUFXO0FBQU8sdUJBQWtCLFlBQVksQ0FBQyxFQUFDLEtBQUssRUFBQztBQUFHLGVBQVUsWUFBWSxDQUFDLEVBQUMsS0FBSyxFQUFDO0FBQUU7QUFBQztBQUFDLENBQUM7QUFBb0IsMEJBQXVCO0FBQVcsa0JBQWU7QUFBVTs7O0FDTno0ckUsQ0FBQyxhQUFhO0FBQ2IsV0FBUztBQUNULGFBQVcsSUFBSTtBQUNmLGVBQWEsSUFBSTtBQUNqQixrQkFBZ0I7QUFDaEIsb0JBQWtCLElBQUk7QUFDdEIsZUFBYTtBQUNiLFVBQVE7QUFDUixTQUFPO0FBQ1AsV0FBUztBQUNULG1CQUFpQjtBQUNqQixlQUFhO0FBQ2IsaUJBQWUsSUFBSTtBQUNwQjtBQUVBLENBQUMsZ0JBQWdCLENBQUM7QUFDakIsWUFBVTtBQUNWLFNBQU87QUFDUjtBQUVBLENBQUM7QUFDQSxXQUFTO0FBQ1QsVUFBUSxJQUFJLHFCQUFxQixFQUFFLEVBQUUsRUFBRSxFQUFFO0FBQ3pDLFdBQVMsSUFBSSxzQkFBc0IsRUFBRSxFQUFFLEVBQUUsRUFBRTtBQUMzQyxlQUFhLElBQUk7QUFHakIsU0FBTyxJQUFJLG1CQUFtQixFQUFFO0FBQ2hDLG9CQUFrQixJQUFJLHlCQUF5QixFQUFFO0FBR2pELGVBQWEsSUFBSTtBQUNqQixhQUFXLElBQUksZ0JBQWdCLEVBQUU7QUFHakMsZ0JBQWMsSUFBSSwyQkFBMkIsRUFBRTtBQUMvQyxnQkFBYyxJQUFJLDJCQUEyQixFQUFFO0FBQy9DLGdCQUFjLElBQUksMkJBQTJCLEVBQUU7QUFDL0MsaUJBQWUsSUFBSSw0QkFBNEIsRUFBRTtBQUdqRCxtQkFBaUI7QUFDakIsd0JBQXNCO0FBQ3RCLHlCQUF1QjtBQUN2Qix5QkFBdUI7QUFDdkIsY0FBWSxJQUFJO0FBR2hCLDBCQUF3QjtBQUN4Qix1QkFBcUI7QUFDckIsYUFBVyxZQUFZLENBQUMsRUFBRSxDQUFDLEVBQUU7QUFDOUI7QUFFQSxDQUFDLFNBQVM7QUFDVCxVQUFRO0FBQ1IseUJBQXVCLEtBQ3RCLG9DQUFvQyxFQUNwQztBQUVGOyIsCiAgIm5hbWVzIjogW10KfQo= */ diff --git a/test/providers/arithmetic/BasicArithmeticProvider.test.ts b/test/providers/arithmetic/BasicArithmeticProvider.test.ts index 2cc96b0..ef82419 100644 --- a/test/providers/arithmetic/BasicArithmeticProvider.test.ts +++ b/test/providers/arithmetic/BasicArithmeticProvider.test.ts @@ -232,6 +232,30 @@ describe("Multiplication", () => { new HexResult(0x20 * 0xc) ); }); + + test("0x20 \\* 0xC (Escaped)", () => { + expectProviderResultAndType( + provider, + "0x20 \\* 0xC", + new HexResult(0x20 * 0xc) + ); + }); + + test("0x20 × 0xC", () => { + expectProviderResultAndType( + provider, + "0x20 × 0xC", + new HexResult(0x20 * 0xc) + ); + }); + + test("27.3 x 8.2", () => { + expectProviderResultAndType( + provider, + "27.3 x 8.2", + new NumberResult(27.3 * 8.2) + ); + }); }); describe("Division", () => { @@ -282,6 +306,14 @@ describe("Division", () => { new HexResult(0x20 / 0xc) ); }); + + test("0x20 ÷ 0xC", () => { + expectProviderResultAndType( + provider, + "0x20 ÷ 0xC", + new HexResult(0x20 / 0xc) + ); + }); }); describe("Exponent", () => {