feelin 4.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (114) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +6 -0
  3. data/.rspec +2 -0
  4. data/CHANGELOG.md +10 -0
  5. data/Gemfile +3 -0
  6. data/LICENSE.txt +21 -0
  7. data/README.md +43 -0
  8. data/feelin.gemspec +22 -0
  9. data/lib/feelin/js/node_modules/.package-lock.json +67 -0
  10. data/lib/feelin/js/node_modules/@lezer/common/LICENSE +21 -0
  11. data/lib/feelin/js/node_modules/@lezer/common/README.md +14 -0
  12. data/lib/feelin/js/node_modules/@lezer/common/dist/index.cjs +2181 -0
  13. data/lib/feelin/js/node_modules/@lezer/common/dist/index.d.cts +1137 -0
  14. data/lib/feelin/js/node_modules/@lezer/common/dist/index.d.ts +1137 -0
  15. data/lib/feelin/js/node_modules/@lezer/common/dist/index.js +2168 -0
  16. data/lib/feelin/js/node_modules/@lezer/common/package.json +32 -0
  17. data/lib/feelin/js/node_modules/@lezer/highlight/LICENSE +21 -0
  18. data/lib/feelin/js/node_modules/@lezer/highlight/README.md +14 -0
  19. data/lib/feelin/js/node_modules/@lezer/highlight/dist/index.cjs +915 -0
  20. data/lib/feelin/js/node_modules/@lezer/highlight/dist/index.d.cts +621 -0
  21. data/lib/feelin/js/node_modules/@lezer/highlight/dist/index.d.ts +623 -0
  22. data/lib/feelin/js/node_modules/@lezer/highlight/dist/index.js +904 -0
  23. data/lib/feelin/js/node_modules/@lezer/highlight/package.json +31 -0
  24. data/lib/feelin/js/node_modules/@lezer/lr/LICENSE +21 -0
  25. data/lib/feelin/js/node_modules/@lezer/lr/README.md +25 -0
  26. data/lib/feelin/js/node_modules/@lezer/lr/dist/constants.d.ts +45 -0
  27. data/lib/feelin/js/node_modules/@lezer/lr/dist/constants.js +5 -0
  28. data/lib/feelin/js/node_modules/@lezer/lr/dist/index.cjs +1890 -0
  29. data/lib/feelin/js/node_modules/@lezer/lr/dist/index.d.cts +303 -0
  30. data/lib/feelin/js/node_modules/@lezer/lr/dist/index.d.ts +303 -0
  31. data/lib/feelin/js/node_modules/@lezer/lr/dist/index.js +1883 -0
  32. data/lib/feelin/js/node_modules/@lezer/lr/package.json +32 -0
  33. data/lib/feelin/js/node_modules/feelin/LICENSE +21 -0
  34. data/lib/feelin/js/node_modules/feelin/README.md +65 -0
  35. data/lib/feelin/js/node_modules/feelin/dist/builtins.d.ts +355 -0
  36. data/lib/feelin/js/node_modules/feelin/dist/index.cjs +2072 -0
  37. data/lib/feelin/js/node_modules/feelin/dist/index.cjs.map +1 -0
  38. data/lib/feelin/js/node_modules/feelin/dist/index.d.ts +3 -0
  39. data/lib/feelin/js/node_modules/feelin/dist/index.esm.js +2063 -0
  40. data/lib/feelin/js/node_modules/feelin/dist/index.esm.js.map +1 -0
  41. data/lib/feelin/js/node_modules/feelin/dist/interpreter.d.ts +26 -0
  42. data/lib/feelin/js/node_modules/feelin/dist/parser.d.ts +4 -0
  43. data/lib/feelin/js/node_modules/feelin/dist/temporal.d.ts +6 -0
  44. data/lib/feelin/js/node_modules/feelin/dist/types.d.ts +35 -0
  45. data/lib/feelin/js/node_modules/feelin/dist/utils.d.ts +12 -0
  46. data/lib/feelin/js/node_modules/feelin/package.json +63 -0
  47. data/lib/feelin/js/node_modules/lezer-feel/LICENSE +21 -0
  48. data/lib/feelin/js/node_modules/lezer-feel/README.md +94 -0
  49. data/lib/feelin/js/node_modules/lezer-feel/dist/index.cjs +1328 -0
  50. data/lib/feelin/js/node_modules/lezer-feel/dist/index.cjs.map +1 -0
  51. data/lib/feelin/js/node_modules/lezer-feel/dist/index.d.ts +32 -0
  52. data/lib/feelin/js/node_modules/lezer-feel/dist/index.js +1323 -0
  53. data/lib/feelin/js/node_modules/lezer-feel/dist/index.js.map +1 -0
  54. data/lib/feelin/js/node_modules/lezer-feel/package.json +61 -0
  55. data/lib/feelin/js/node_modules/luxon/LICENSE.md +7 -0
  56. data/lib/feelin/js/node_modules/luxon/README.md +55 -0
  57. data/lib/feelin/js/node_modules/luxon/build/amd/luxon.js +8623 -0
  58. data/lib/feelin/js/node_modules/luxon/build/amd/luxon.js.map +1 -0
  59. data/lib/feelin/js/node_modules/luxon/build/cjs-browser/luxon.js +8621 -0
  60. data/lib/feelin/js/node_modules/luxon/build/cjs-browser/luxon.js.map +1 -0
  61. data/lib/feelin/js/node_modules/luxon/build/es6/luxon.js +8011 -0
  62. data/lib/feelin/js/node_modules/luxon/build/es6/luxon.js.map +1 -0
  63. data/lib/feelin/js/node_modules/luxon/build/global/luxon.js +8626 -0
  64. data/lib/feelin/js/node_modules/luxon/build/global/luxon.js.map +1 -0
  65. data/lib/feelin/js/node_modules/luxon/build/global/luxon.min.js +1 -0
  66. data/lib/feelin/js/node_modules/luxon/build/global/luxon.min.js.map +1 -0
  67. data/lib/feelin/js/node_modules/luxon/build/node/luxon.js +7679 -0
  68. data/lib/feelin/js/node_modules/luxon/build/node/luxon.js.map +1 -0
  69. data/lib/feelin/js/node_modules/luxon/package.json +87 -0
  70. data/lib/feelin/js/node_modules/luxon/src/datetime.js +2566 -0
  71. data/lib/feelin/js/node_modules/luxon/src/duration.js +990 -0
  72. data/lib/feelin/js/node_modules/luxon/src/errors.js +61 -0
  73. data/lib/feelin/js/node_modules/luxon/src/impl/conversions.js +206 -0
  74. data/lib/feelin/js/node_modules/luxon/src/impl/diff.js +95 -0
  75. data/lib/feelin/js/node_modules/luxon/src/impl/digits.js +90 -0
  76. data/lib/feelin/js/node_modules/luxon/src/impl/english.js +233 -0
  77. data/lib/feelin/js/node_modules/luxon/src/impl/formats.js +176 -0
  78. data/lib/feelin/js/node_modules/luxon/src/impl/formatter.js +409 -0
  79. data/lib/feelin/js/node_modules/luxon/src/impl/invalid.js +14 -0
  80. data/lib/feelin/js/node_modules/luxon/src/impl/locale.js +554 -0
  81. data/lib/feelin/js/node_modules/luxon/src/impl/regexParser.js +335 -0
  82. data/lib/feelin/js/node_modules/luxon/src/impl/tokenParser.js +505 -0
  83. data/lib/feelin/js/node_modules/luxon/src/impl/util.js +316 -0
  84. data/lib/feelin/js/node_modules/luxon/src/impl/zoneUtil.js +34 -0
  85. data/lib/feelin/js/node_modules/luxon/src/info.js +205 -0
  86. data/lib/feelin/js/node_modules/luxon/src/interval.js +665 -0
  87. data/lib/feelin/js/node_modules/luxon/src/luxon.js +26 -0
  88. data/lib/feelin/js/node_modules/luxon/src/package.json +4 -0
  89. data/lib/feelin/js/node_modules/luxon/src/settings.js +180 -0
  90. data/lib/feelin/js/node_modules/luxon/src/zone.js +97 -0
  91. data/lib/feelin/js/node_modules/luxon/src/zones/IANAZone.js +231 -0
  92. data/lib/feelin/js/node_modules/luxon/src/zones/fixedOffsetZone.js +150 -0
  93. data/lib/feelin/js/node_modules/luxon/src/zones/invalidZone.js +53 -0
  94. data/lib/feelin/js/node_modules/luxon/src/zones/systemZone.js +61 -0
  95. data/lib/feelin/js/node_modules/min-dash/LICENSE +21 -0
  96. data/lib/feelin/js/node_modules/min-dash/README.md +38 -0
  97. data/lib/feelin/js/node_modules/min-dash/dist/array.d.ts +12 -0
  98. data/lib/feelin/js/node_modules/min-dash/dist/collection.d.ts +174 -0
  99. data/lib/feelin/js/node_modules/min-dash/dist/fn.d.ts +37 -0
  100. data/lib/feelin/js/node_modules/min-dash/dist/index.cjs +910 -0
  101. data/lib/feelin/js/node_modules/min-dash/dist/index.d.ts +5 -0
  102. data/lib/feelin/js/node_modules/min-dash/dist/index.esm.js +872 -0
  103. data/lib/feelin/js/node_modules/min-dash/dist/lang.d.ts +29 -0
  104. data/lib/feelin/js/node_modules/min-dash/dist/min-dash.js +916 -0
  105. data/lib/feelin/js/node_modules/min-dash/dist/min-dash.min.js +1 -0
  106. data/lib/feelin/js/node_modules/min-dash/dist/object.d.ts +112 -0
  107. data/lib/feelin/js/node_modules/min-dash/package.json +72 -0
  108. data/lib/feelin/js/package-lock.json +72 -0
  109. data/lib/feelin/js/package.json +5 -0
  110. data/lib/feelin/version.rb +3 -0
  111. data/lib/feelin.rb +63 -0
  112. data/spec/feelin/feelin_spec.rb +38 -0
  113. data/spec/spec_helper.rb +2 -0
  114. metadata +198 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../src/parser.terms.js","../src/tokens.js","../src/highlight.js","../src/parser.js"],"sourcesContent":["// This file was generated by lezer-generator. You probably shouldn't edit it.\nexport const\n propertyIdentifier = 121,\n identifier = 122,\n nameIdentifier = 123,\n insertSemi = 124,\n LineComment = 1,\n BlockComment = 2,\n Expression = 3,\n expression0 = 128,\n ForExpression = 4,\n forExpressionStart = 131,\n _for = 5,\n ForInExpressions = 6,\n ForInExpression = 7,\n Name = 8,\n Identifier = 9,\n AdditionalIdentifier = 10,\n minus = 11,\n plus = 12,\n divide = 13,\n multi = 14,\n exp = 15,\n inExpressionSep = 136,\n _in = 16,\n IterationContext = 17,\n forExpressionBodyStart = 139,\n _return = 18,\n IfExpression = 19,\n ifExpressionStart = 140,\n _if = 20,\n then = 21,\n _else = 22,\n QuantifiedExpression = 23,\n quantifiedExpressionStart = 141,\n some = 24,\n every = 25,\n QuantifiedInExpressions = 26,\n QuantifiedInExpression = 27,\n satisfies = 28,\n Disjunction = 29,\n or = 30,\n Conjunction = 31,\n and = 32,\n Comparison = 33,\n between = 36,\n PositiveUnaryTest = 37,\n PositiveUnaryTests = 39,\n ArithmeticExpression = 41,\n arithmeticPlusStart = 145,\n arithmeticTimesStart = 146,\n arithmeticExpStart = 147,\n arithmeticUnaryStart = 148,\n InstanceOfExpression = 42,\n instance = 43,\n of = 44,\n Type = 45,\n QualifiedName = 46,\n VariableName = 47,\n BacktickIdentifier = 48,\n SpecialType = 49,\n days = 50,\n time = 51,\n duration = 52,\n years = 53,\n months = 54,\n date = 55,\n list = 58,\n context = 61,\n ContextEntryTypes = 62,\n ContextEntryType = 63,\n _function = 65,\n ArgumentTypes = 66,\n ArgumentType = 67,\n PathExpression = 68,\n pathExpressionStart = 154,\n FilterExpression = 70,\n filterExpressionStart = 155,\n FunctionInvocation = 72,\n functionInvocationStart = 156,\n SpecialFunctionName = 73,\n functionInvocationParameters = 157,\n NamedParameters = 74,\n NamedParameter = 75,\n ParameterName = 76,\n PositionalParameters = 77,\n literal = 160,\n nil = 161,\n _null = 78,\n NumericLiteral = 79,\n StringLiteral = 80,\n BooleanLiteral = 81,\n DateTimeLiteral = 82,\n DateTimeConstructor = 83,\n AtLiteral = 84,\n SimplePositiveUnaryTest = 86,\n Interval = 87,\n listStart = 167,\n ParenthesizedExpression = 88,\n List = 89,\n FunctionDefinition = 90,\n functionDefinitionStart = 169,\n FormalParameters = 91,\n FormalParameter = 92,\n external = 93,\n Context = 97,\n contextStart = 171,\n ContextEntry = 98,\n Key = 99,\n PropertyName = 100,\n PropertyIdentifier = 101,\n Expressions = 102,\n UnaryTests = 103,\n not = 105,\n Dialect_camunda = 0\n","/* global console,process */\n\nimport { has, reduce } from 'min-dash';\n\nimport {\n insertSemi,\n Identifier,\n functionDefinitionStart,\n FunctionDefinition,\n contextStart,\n Context,\n forExpressionStart,\n forExpressionBodyStart,\n ForExpression,\n quantifiedExpressionStart,\n QuantifiedExpression,\n ContextEntry,\n Name,\n ForInExpression,\n identifier,\n VariableName,\n expression0,\n QuantifiedInExpression,\n PositiveUnaryTest,\n nameIdentifier,\n propertyIdentifier,\n PropertyIdentifier,\n PropertyName,\n StringLiteral,\n BooleanLiteral,\n NumericLiteral,\n List,\n listStart,\n pathExpressionStart,\n PathExpression,\n ParameterName,\n IfExpression,\n ifExpressionStart,\n filterExpressionStart,\n FilterExpression,\n ArithmeticExpression,\n arithmeticPlusStart,\n arithmeticTimesStart,\n arithmeticExpStart,\n arithmeticUnaryStart,\n nil,\n AdditionalIdentifier,\n FunctionInvocation,\n functionInvocationStart\n} from './parser.terms.js';\n\nimport {\n ContextTracker,\n ExternalTokenizer\n} from '@lezer/lr';\n\n// @ts-expect-error env access\nconst LOG_PARSE = typeof process != 'undefined' && process.env && /\\bfparse(:dbg)?\\b/.test(process.env.LOG);\n\n// @ts-expect-error env access\nconst LOG_PARSE_DEBUG = typeof process != 'undefined' && process.env && /\\bfparse:dbg\\b/.test(process.env.LOG);\n\n// @ts-expect-error env access\nconst LOG_VARS = typeof process != 'undefined' && process.env && /\\bcontext\\b/.test(process.env.LOG);\n\nconst spaceChars = [\n 9, 11, 12, 32, 133, 160,\n 5760, 8192, 8193, 8194, 8195, 8196, 8197, 8198,\n 8199, 8200, 8201, 8202, 8232, 8233, 8239, 8287, 12288\n];\n\nconst newlineChars = chars('\\n\\r');\n\nconst asterix = '*'.charCodeAt(0);\n\nconst additionalNameChars = chars(\"'./-+*^\");\n\n/**\n * @typedef { VariableContext | any } ContextValue\n */\n\n/**\n * @param { string } str\n * @return { number[] }\n */\nfunction chars(str) {\n return Array.from(str).map(s => s.charCodeAt(0));\n}\n\n/**\n * @param { number } ch\n * @return { boolean }\n */\nfunction isStartChar(ch) {\n return (\n ch === 63 // ?\n ) || (\n ch >= 65 && ch <= 90 // A-Z\n ) || (\n ch === 95 // _\n ) || (\n ch >= 97 && ch <= 122 // a-z\n ) || (\n ch >= 0xC0 && ch <= 0xD6\n ) || (\n ch >= 0xD8 && ch <= 0xF6\n ) || (\n ch >= 0xF8 && ch <= 0x2FF\n ) || (\n ch >= 0x370 && ch <= 0x37D\n ) || (\n ch >= 0x37F && ch <= 0x1FFF\n ) || (\n ch >= 0x200C && ch <= 0x200D\n ) || (\n ch >= 0x2070 && ch <= 0x218F\n ) || (\n ch >= 0x2C00 && ch <= 0x2FEF\n ) || (\n ch >= 0x3001 && ch <= 0xD7FF\n ) || (\n ch >= 0xF900 && ch <= 0xFDCF\n ) || (\n ch >= 0xFDF0 && ch <= 0xFFFD\n ) || (\n ch >= 0xD800 && ch <= 0xDBFF // upper surrogate\n ) || (\n ch >= 0xDC00 && ch <= 0xDFFF // lower surrogate\n );\n}\n\n/**\n * @param { number } ch\n * @return { boolean }\n */\nfunction isAdditional(ch) {\n return additionalNameChars.includes(ch);\n}\n\n/**\n * @param { number } ch\n * @return { boolean }\n */\nfunction isPartChar(ch) {\n return (\n ch >= 48 && ch <= 57 // 0-9\n ) || (\n ch === 0xB7\n ) || (\n ch >= 0x0300 && ch <= 0x036F\n ) || (\n ch >= 0x203F && ch <= 0x2040\n );\n}\n\n/**\n * @param { number } ch\n * @return { boolean }\n */\nfunction isSpace(ch) {\n return spaceChars.includes(ch);\n}\n\nfunction indent(str, spaces) {\n return spaces.concat(\n str.split(/\\n/g).join('\\n' + spaces)\n );\n}\n\n/**\n * @param { import('@lezer/lr').InputStream } input\n * @param { number } [offset]\n *\n * @return { { token: string, offset: number } | null }\n */\nfunction parseAdditionalSymbol(input, offset = 0) {\n\n const next = input.peek(offset);\n\n if (next === asterix && input.peek(offset + 1) === asterix) {\n\n return {\n offset: 2,\n token: '**'\n };\n }\n\n if (isAdditional(next)) {\n return {\n offset: 1,\n token: String.fromCharCode(next)\n };\n }\n\n return null;\n}\n\n/**\n * @param { import('@lezer/lr').InputStream } input\n * @param { number } [offset]\n * @param { boolean } [namePart]\n *\n * @return { { token: string, offset: number } | null }\n */\nfunction parseIdentifier(input, offset = 0, namePart = false) {\n for (let inside = false, chars = [], i = 0;; i++) {\n const next = input.peek(offset + i);\n\n if (isStartChar(next) || ((inside || namePart) && isPartChar(next))) {\n if (!inside) {\n inside = true;\n }\n\n chars.push(next);\n } else {\n\n if (chars.length) {\n return {\n token: String.fromCharCode(...chars),\n offset: i\n };\n }\n\n return null;\n }\n }\n}\n\n/**\n * @param { import('@lezer/lr').InputStream } input\n * @param { number } offset\n *\n * @return { { token: string, offset: number } | null }\n */\nfunction parseSpaces(input, offset) {\n\n for (let inside = false, i = 0;; i++) {\n let next = input.peek(offset + i);\n\n if (isSpace(next)) {\n if (!inside) {\n inside = true;\n }\n } else {\n if (inside) {\n return {\n token: ' ',\n offset: i\n };\n }\n\n return null;\n }\n }\n}\n\n/**\n * Parse a name from the input and return the first match, if any.\n *\n * @param { import('@lezer/lr').InputStream } input\n * @param { Variables } variables\n *\n * @return { { token: string, offset: number, term: number } | null }\n */\nfunction parseName(input, variables) {\n const contextKeys = variables.contextKeys();\n\n const start = variables.tokens;\n\n for (let i = 0, tokens = [], nextMatch = null;;) {\n\n const namePart = (start.length + tokens.length) > 0;\n const maybeSpace = tokens.length > 0;\n\n const match = (\n parseIdentifier(input, i, namePart) ||\n namePart && parseAdditionalSymbol(input, i) ||\n maybeSpace && parseSpaces(input, i)\n );\n\n // match is required\n if (!match) {\n return nextMatch;\n }\n\n const {\n token,\n offset\n } = match;\n\n i += offset;\n\n if (token === ' ') {\n continue;\n }\n\n tokens = [ ...tokens, token ];\n\n const name = [ ...start, ...tokens ].join(' ');\n\n if (contextKeys.some(el => el === name)) {\n const token = tokens[0];\n\n nextMatch = {\n token,\n offset: token.length,\n term: nameIdentifier\n };\n }\n\n if (contextKeys.some(el => el.startsWith(name))) {\n continue;\n }\n\n if (dateTimeIdentifiers.some(el => el === name)) {\n const token = tokens[0];\n\n // parse date time identifiers as normal\n // identifiers to allow specialization to kick in\n //\n // cf. https://github.com/nikku/lezer-feel/issues/8\n nextMatch = {\n token,\n offset: token.length,\n term: identifier\n };\n }\n\n if (dateTimeIdentifiers.some(el => el.startsWith(name))) {\n continue;\n }\n\n return nextMatch;\n }\n\n}\n\nconst identifiersMap = {\n [ identifier ]: 'identifier',\n [ nameIdentifier ]: 'nameIdentifier'\n};\n\nexport const identifiers = new ExternalTokenizer((input, stack) => {\n\n LOG_PARSE_DEBUG && console.log('%s: T <identifier | nameIdentifier>', input.pos);\n\n const nameMatch = parseName(input, stack.context);\n\n const start = stack.context.tokens;\n\n const match = nameMatch || parseIdentifier(input, 0, start.length > 0);\n\n if (match) {\n input.advance(match.offset);\n input.acceptToken(nameMatch ? nameMatch.term : identifier);\n\n LOG_PARSE && console.log('%s: MATCH <%s> <%s>', input.pos, nameMatch ? identifiersMap[nameMatch.term] : 'identifier', match.token);\n }\n}, { contextual: true });\n\n\nexport const propertyIdentifiers = new ExternalTokenizer((input, stack) => {\n\n LOG_PARSE_DEBUG && console.log('%s: T <propertyIdentifier>', input.pos);\n\n const start = stack.context.tokens;\n\n const match = parseIdentifier(input, 0, start.length > 0);\n\n if (match) {\n input.advance(match.offset);\n input.acceptToken(propertyIdentifier);\n\n LOG_PARSE && console.log('%s: MATCH <propertyIdentifier> <%s>', input.pos, match.token);\n }\n});\n\n\nexport const insertSemicolon = new ExternalTokenizer((input, stack) => {\n\n LOG_PARSE_DEBUG && console.log('%s: T <insertSemi>', input.pos);\n\n let offset;\n let insert = false;\n\n for (offset = 0;; offset++) {\n const char = input.peek(offset);\n\n if (spaceChars.includes(char)) {\n continue;\n }\n\n if (newlineChars.includes(char)) {\n insert = true;\n }\n\n break;\n }\n\n if (insert) {\n\n const identifier = parseIdentifier(input, offset + 1);\n const spaces = parseSpaces(input, offset + 1);\n\n if (spaces || identifier && /^(then|else|return|satisfies)$/.test(identifier.token)) {\n return;\n }\n\n LOG_PARSE && console.log('%s: MATCH <insertSemi>', input.pos);\n input.acceptToken(insertSemi);\n }\n});\n\nconst prefixedContextStarts = {\n [ functionInvocationStart ]: 'FunctionInvocation',\n [ filterExpressionStart ]: 'FilterExpression',\n [ pathExpressionStart ]: 'PathExpression'\n};\n\nconst contextStarts = {\n [ contextStart ]: 'Context',\n [ functionDefinitionStart ]: 'FunctionDefinition',\n [ forExpressionStart ]: 'ForExpression',\n [ listStart ]: 'List',\n [ ifExpressionStart ]: 'IfExpression',\n [ quantifiedExpressionStart ]: 'QuantifiedExpression'\n};\n\nconst contextEnds = {\n [ Context ]: 'Context',\n [ FunctionDefinition ]: 'FunctionDefinition',\n [ ForExpression ]: 'ForExpression',\n [ List ]: 'List',\n [ IfExpression ]: 'IfExpression',\n [ QuantifiedExpression ]: 'QuantifiedExpression',\n [ PathExpression ]: 'PathExpression',\n [ FunctionInvocation ]: 'FunctionInvocation',\n [ FilterExpression ]: 'FilterExpression',\n [ ArithmeticExpression ]: 'ArithmeticExpression'\n};\n\n/**\n * A simple producer that retrievs a value from\n * a given context. Used to lazily take things.\n */\nclass ValueProducer {\n\n /**\n * @param { Function } fn\n */\n constructor(fn) {\n this.fn = fn;\n }\n\n get(variables) {\n return this.fn(variables);\n }\n\n /**\n * @param { Function } fn\n *\n * @return { ValueProducer }\n */\n static of(fn) {\n return new ValueProducer(fn);\n }\n\n}\n\nconst dateTimeLiterals = {\n 'date and time': 1,\n 'date': 1,\n 'time': 1,\n 'duration': 1\n};\n\nconst dateTimeIdentifiers = Object.keys(dateTimeLiterals);\n\n\n/**\n * A basic key-value store to hold context values.\n */\nexport class VariableContext {\n\n /**\n * Creates a new context from a JavaScript object.\n *\n * @param {any} [value]\n */\n constructor(value = {}) {\n\n /**\n * @protected\n */\n this.value = value;\n }\n\n /**\n * Return all defined keys of the context.\n *\n * @returns {Array<string>} the keys of the context\n */\n getKeys() {\n return Object.keys(this.value);\n }\n\n /**\n * Returns the value of the given key.\n *\n * If the value represents a context itself, it should be wrapped in a\n * context class.\n *\n * @param {String} key\n * @returns {VariableContext|ValueProducer|null}\n */\n get(key) {\n const result = this.value[key];\n\n const constructor = /** @type { typeof VariableContext } */ (this.constructor);\n\n if (constructor.isAtomic(result)) {\n return result;\n }\n\n return constructor.of(result);\n }\n\n /**\n * Creates a new context with the given key added.\n *\n * @param {String} key\n * @param {any} value\n *\n * @returns {VariableContext} new context with the given key added\n */\n set(key, value) {\n\n const constructor = /** @type { typeof VariableContext } */ (this.constructor);\n\n return constructor.of({\n ...this.value,\n [key]: value\n });\n }\n\n /**\n * Non-destructively merge another context into this one,\n * and return the result.\n *\n * @param {ContextValue} other\n *\n * @return {VariableContext}\n */\n merge(other) {\n const constructor = /** @type { typeof VariableContext } */ (this.constructor);\n\n return new constructor(\n constructor.__merge(this.value, other)\n );\n }\n\n /**\n * Wether the given value is atomic. Non-atomic values need to be wrapped in a\n * context Class.\n *\n * @param {any} value\n * @returns {Boolean}\n */\n static isAtomic(value) {\n return !value ||\n value instanceof this ||\n value instanceof ValueProducer ||\n typeof value !== 'object';\n }\n\n /**\n * Takes any number of Contexts and merges them into a single context.\n *\n * @param { ...VariableContext } contexts\n * @returns { VariableContext }\n */\n static of(...contexts) {\n return contexts.reduce((context, otherContext) => {\n return context.merge(otherContext);\n }, new this({}));\n }\n\n /**\n * Returns the raw representation of the given context.\n *\n * @param {VariableContext | any} context\n *\n * @return {any}\n */\n static __unwrap(context) {\n if (!context) {\n return {};\n }\n\n if (context instanceof this) {\n return context.value;\n }\n\n if (typeof context !== 'object') {\n return {};\n }\n\n return { ...context };\n }\n\n /**\n * Non-destructively merges two contexts (or their values)\n * with each other, returning the result.\n *\n * @param {ContextValue} context\n * @param {ContextValue} other\n *\n * @return {any}\n */\n static __merge(context, other) {\n\n return reduce(this.__unwrap(other), (merged, value, key) => {\n if (value instanceof ValueProducer) {\n\n // keep value producers in tact\n return {\n ...merged,\n [key]: value\n };\n }\n\n value = this.__unwrap(value);\n\n if (has(merged, key)) {\n value = this.__merge(this.__unwrap(merged[key]), value);\n }\n\n return {\n ...merged,\n [key]: value\n };\n }, this.__unwrap(context));\n }\n\n}\n\nclass Variables {\n\n /**\n * @param { {\n * name?: string,\n * tokens?: string[],\n * children?: Variables[],\n * parent: Variables | null\n * context: VariableContext,\n * value?: any,\n * raw?: any\n * } } options\n */\n constructor({\n name = 'Expressions',\n tokens = [],\n children = [],\n parent = null,\n context,\n value,\n raw\n }) {\n this.name = name;\n this.tokens = tokens;\n this.children = children;\n this.parent = parent;\n this.context = context;\n this.value = value;\n this.raw = raw;\n }\n\n enterScope(name) {\n\n const childScope = this.of({\n name,\n parent: this\n });\n\n LOG_VARS && console.log('[%s] enter', childScope.path, childScope.context);\n\n return childScope;\n }\n\n exitScope(str) {\n\n if (!this.parent) {\n LOG_VARS && console.log('[%s] NO exit %o\\n%s', this.path, this.context, indent(str, ' '));\n\n return this;\n }\n\n LOG_VARS && console.log('[%s] exit %o\\n%s', this.path, this.context, indent(str, ' '));\n\n return this.parent.pushChild(this);\n }\n\n token(part) {\n\n LOG_VARS && console.log('[%s] token <%s> + <%s>', this.path, this.tokens.join(' '), part);\n\n return this.assign({\n tokens: [ ...this.tokens, part ]\n });\n }\n\n literal(value) {\n\n LOG_VARS && console.log('[%s] literal %o', this.path, value);\n\n return this.pushChild(this.of({\n name: 'Literal',\n value\n }));\n }\n\n /**\n * Return computed scope value\n *\n * @return {any}\n */\n computedValue() {\n for (let scope = this;;scope = last(scope.children)) {\n\n if (!scope) {\n return null;\n }\n\n if (scope.value) {\n return scope.value;\n }\n }\n }\n\n contextKeys() {\n return this.context.getKeys().map(normalizeContextKey);\n }\n\n get path() {\n return this.parent?.path?.concat(' > ', this.name) || this.name;\n }\n\n /**\n * Return value of variable.\n *\n * @param { string } variable\n * @return { any } value\n */\n get(variable) {\n\n const names = [ variable, variable && normalizeContextKey(variable) ];\n\n const contextKey = this.context.getKeys().find(\n key => names.includes(normalizeContextKey(key))\n );\n\n if (typeof contextKey === 'undefined') {\n return undefined;\n }\n\n const val = this.context.get(contextKey);\n\n if (val instanceof ValueProducer) {\n return val.get(this);\n } else {\n return val;\n }\n }\n\n resolveName() {\n\n const variable = this.tokens.join(' ');\n const tokens = [];\n\n const parentScope = this.assign({\n tokens\n });\n\n const variableScope = this.of({\n name: 'VariableName',\n parent: parentScope,\n value: this.get(variable),\n raw: variable\n });\n\n LOG_VARS && console.log('[%s] resolve name <%s=%s>', variableScope.path, variable, this.get(variable));\n\n return parentScope.pushChild(variableScope);\n }\n\n pushChild(child) {\n\n if (!child) {\n return this;\n }\n\n const parent = this.assign({\n children: [ ...this.children, child ]\n });\n\n child.parent = parent;\n\n return parent;\n }\n\n pushChildren(children) {\n\n /**\n * @type {Variables}\n */\n let parent = this;\n\n for (const child of children) {\n parent = parent.pushChild(child);\n }\n\n return parent;\n }\n\n declareName() {\n\n if (this.tokens.length === 0) {\n throw Error('no tokens to declare name');\n }\n\n const variableName = this.tokens.join(' ');\n\n LOG_VARS && console.log('[%s] declareName <%s>', this.path, variableName);\n\n return this.assign({\n tokens: []\n }).pushChild(\n this.of({\n name: 'Name',\n value: variableName\n })\n );\n }\n\n define(name, value) {\n\n if (typeof name !== 'string') {\n LOG_VARS && console.log('[%s] no define <%s=%s>', this.path, name, value);\n\n return this;\n }\n\n LOG_VARS && console.log('[%s] define <%s=%s>', this.path, name, value);\n\n const context = this.context.set(name, value);\n\n return this.assign({\n context\n });\n }\n\n /**\n * @param { Record<string, any> } [options]\n *\n * @return { Variables }\n */\n assign(options = {}) {\n\n return Variables.of({\n ...this,\n ...options\n });\n }\n\n /**\n * @param { Record<string, any> } [options]\n *\n * @return { Variables }\n */\n of(options = {}) {\n\n const defaultOptions = {\n context: this.context,\n parent: this.parent\n };\n\n return Variables.of({\n ...defaultOptions,\n ...options\n });\n }\n\n /**\n * @param { {\n * name?: string,\n * tokens?: string[],\n * children?: Variables[],\n * parent?: Variables | null\n * context: VariableContext,\n * value?: any,\n * raw?: any\n * } } options\n *\n * @return {Variables}\n */\n static of(options) {\n\n const {\n name,\n tokens = [],\n children = [],\n parent = null,\n context,\n value,\n raw\n } = options;\n\n if (!context) {\n throw new Error('must provide <context>');\n }\n\n return new Variables({\n name,\n tokens: [ ...tokens ],\n children: [ ...children ],\n context,\n parent,\n value,\n raw\n });\n }\n\n}\n\n/**\n * @param { string } name\n *\n * @return { string } normalizedName\n */\nexport function normalizeContextKey(name) {\n return name.replace(/\\s*([./\\-'+]|\\*\\*?)\\s*/g, ' $1 ').replace(/\\s{2,}/g, ' ').trim();\n}\n\n/**\n * Wrap children of variables under the given named child.\n *\n * @param { Variables } variables\n * @param { string } scopeName\n * @param { string } code\n * @return { Variables }\n */\nfunction wrap(variables, scopeName, code) {\n\n const parts = variables.children.filter(c => c.name !== scopeName);\n const children = variables.children.filter(c => c.name === scopeName);\n\n const namePart = parts[0];\n const valuePart = parts[Math.max(1, parts.length - 1)];\n\n const name = namePart?.computedValue();\n const value = valuePart?.computedValue() || null;\n\n return variables\n .assign({\n children\n })\n .enterScope(scopeName)\n .pushChildren(parts)\n .exitScope(code)\n .define(name, value);\n}\n\n/**\n * @param { ContextValue } [context]\n * @param { typeof VariableContext } [Context]\n *\n * @return { ContextTracker<Variables> }\n */\nexport function trackVariables(context = {}, Context = VariableContext) {\n\n const start = Variables.of({\n context: Context.of(context)\n });\n\n return new ContextTracker({\n start,\n reduce(variables, term, stack, input) {\n\n if (term === IfExpression) {\n const [ thenPart, elsePart ] = variables.children.slice(-2);\n\n variables = variables.assign({\n value: Context.of(\n thenPart?.computedValue(),\n elsePart?.computedValue()\n )\n });\n }\n\n if (term === List) {\n variables = variables.assign({\n value: Context.of(\n ...variables.children.map(\n c => c?.computedValue()\n )\n )\n });\n }\n\n if (term === FilterExpression) {\n const [ sourcePart, _ ] = variables.children.slice(-2);\n\n variables = variables.assign({\n value: sourcePart?.computedValue()\n });\n }\n\n if (term === FunctionInvocation) {\n\n const [\n name,\n ...args\n ] = variables.children;\n\n // preserve type information through `get value(context, key)` utility\n if (name?.raw === 'get value') {\n variables = getContextValue(variables, args);\n }\n }\n\n const start = contextStarts[term];\n\n if (start) {\n return variables.enterScope(start);\n }\n\n const prefixedStart = prefixedContextStarts[term];\n\n // pull <expression> into new <prefixedStart> context\n if (prefixedStart) {\n\n const {\n children: currentChildren,\n context: currentContext,\n } = variables;\n\n const children = currentChildren.slice(0, -1);\n const lastChild = last(currentChildren);\n\n let newContext = null;\n\n if (term === pathExpressionStart) {\n newContext = Context.of(lastChild?.computedValue());\n }\n\n if (term === filterExpressionStart) {\n newContext = Context.of(\n currentContext,\n lastChild?.computedValue()\n ).set('item', lastChild?.computedValue());\n }\n\n return variables\n .assign({ children })\n .enterScope(prefixedStart)\n .pushChild(lastChild)\n .assign({ context: newContext || currentContext });\n }\n\n // @ts-expect-error internal method\n const code = input.read(input.pos, stack.pos);\n\n const end = contextEnds[term];\n\n if (end) {\n return variables.exitScope(code);\n }\n\n if (term === ContextEntry) {\n const parts = variables.children.filter(c => c.name !== 'ContextEntry');\n\n const name = parts[0];\n const value = last(parts);\n\n return wrap(variables, 'ContextEntry', code).assign(\n {\n value: Context\n .of(variables.value)\n .set(name?.computedValue(), value?.computedValue())\n }\n );\n }\n\n if (\n term === ForInExpression ||\n term === QuantifiedInExpression\n ) {\n return wrap(variables, 'InExpression', code);\n }\n\n // define <partial> within ForExpression body\n if (term === forExpressionBodyStart) {\n\n return variables.define(\n 'partial',\n ValueProducer.of(variables => {\n return last(variables.children)?.computedValue();\n })\n );\n }\n\n if (\n term === ParameterName\n ) {\n const name = last(variables.children).computedValue();\n\n // TODO: attach type information\n return variables.define(name, 1);\n }\n\n // pull <expression> into ArithmeticExpression child\n if (\n term === arithmeticPlusStart ||\n term === arithmeticTimesStart ||\n term === arithmeticExpStart\n ) {\n const children = variables.children.slice(0, -1);\n const lastChild = last(variables.children);\n\n return variables.assign({\n children\n }).enterScope('ArithmeticExpression').pushChild(lastChild);\n }\n\n if (term === arithmeticUnaryStart) {\n return variables.enterScope('ArithmeticExpression');\n }\n\n if (\n term === Identifier ||\n term === AdditionalIdentifier ||\n term === PropertyIdentifier\n ) {\n return variables.token(code);\n }\n\n if (\n term === StringLiteral\n ) {\n return variables.literal(code.replace(/^\"|\"$/g, ''));\n }\n\n if (term === BooleanLiteral) {\n return variables.literal(code === 'true' ? true : false);\n }\n\n if (term === NumericLiteral) {\n return variables.literal(parseFloat(code));\n }\n\n if (term === nil) {\n return variables.literal(null);\n }\n\n if (\n term === VariableName\n ) {\n return variables.resolveName();\n }\n\n if (\n term === Name ||\n term === PropertyName\n ) {\n return variables.declareName();\n }\n\n if (\n term === expression0 ||\n term === PositiveUnaryTest\n ) {\n if (variables.tokens.length > 0) {\n throw new Error('uncleared name');\n }\n }\n\n if (term === expression0) {\n\n let parent = variables;\n\n while (parent.parent) {\n parent = parent.exitScope(code);\n }\n\n return parent;\n }\n\n return variables;\n }\n });\n}\n\nexport const variableTracker = trackVariables({});\n\n\n// helpers //////////////\n\nfunction getContextValue(variables, args) {\n\n if (!args.length) {\n return variables.assign({\n value: null\n });\n }\n\n if (args[0].name === 'Name') {\n args = extractNamedArgs(args, [ 'm', 'key' ]);\n }\n\n if (args.length !== 2) {\n return variables.assign({\n value: null\n });\n }\n\n const [\n context,\n key\n ] = args;\n\n const keyValue = key?.computedValue();\n const contextValue = context?.computedValue();\n\n if (\n (!contextValue || typeof contextValue !== 'object') || typeof keyValue !== 'string'\n ) {\n return variables.assign({\n value: null\n });\n }\n\n return variables.assign({\n value: [ normalizeContextKey(keyValue), keyValue ].reduce((value, keyValue) => {\n return contextValue.get(keyValue) || value;\n }, null)\n });\n}\n\nfunction extractNamedArgs(args, argNames) {\n\n const context = {};\n\n for (let i = 0; i < args.length; i += 2) {\n const [ name, value ] = args.slice(i, i + 2);\n\n context[name.value] = value;\n }\n\n return argNames.map(name => context[name]);\n}\n\nfunction last(arr) {\n return arr[arr.length - 1];\n}","import { styleTags, tags as t } from '@lezer/highlight';\n\nexport const feelHighlighting = styleTags({\n StringLiteral: t.string,\n NumericLiteral: t.number,\n BooleanLiteral: t.bool,\n 'AtLiteral!': t.special(t.string),\n CompareOp: t.compareOperator,\n ArithOp: t.arithmeticOperator,\n 'for if then else some every satisfies between return': t.controlKeyword,\n 'in instance of and or': t.operatorKeyword,\n function: t.definitionKeyword,\n as: t.keyword,\n 'Type/...': t.typeName,\n Wildcard: t.special(t.variableName),\n null: t.null,\n LineComment: t.lineComment,\n BlockComment: t.blockComment,\n 'VariableName! \"?\"': t.variableName,\n 'DateTimeConstructor! SpecialFunctionName!': t.function(t.special(t.variableName)),\n 'List Interval': t.list,\n Context: t.definition(t.literal),\n 'Name!': t.definition(t.variableName),\n 'Key/Name! ContextEntryType/Name!': t.definition(t.propertyName),\n 'PathExpression/VariableName!': t.function(t.propertyName),\n 'FormalParameter/ParameterName!': t.function(t.definition(t.variableName)),\n '( )': t.paren,\n '[ ]': t.squareBracket,\n '{ }': t.brace,\n '.': t.derefOperator,\n ', ;': t.separator,\n '..': t.punctuation\n});","// This file was generated by lezer-generator. You probably shouldn't edit it.\nimport {LRParser} from \"@lezer/lr\"\nimport {propertyIdentifiers, identifiers, insertSemicolon, variableTracker} from \"./tokens.js\"\nimport {feelHighlighting} from \"./highlight.js\"\nconst spec_identifier = {__proto__:null,for:10, in:32, return:36, if:40, then:42, else:44, some:48, every:50, satisfies:56, or:60, and:64, between:72, instance:86, of:89, days:101, time:103, duration:105, years:107, months:109, date:111, list:117, context:123, function:130, null:156, true:330, false:330, \"?\":170, external:186, not:211}\nexport const parser = LRParser.deserialize({\n version: 14,\n states: \"C|O`QYOOO`QYOOO$sQYOOOOQU'#Ce'#CeO$}QYO'#C`O&WQYO'#FQOOQQ'#Ff'#FfO&bQYO'#FfO`QYO'#DVOOQU'#En'#EnO(UQ^O'#D]OOQU'#D^'#D^OOQU'#D]'#D]OOQO'#Fn'#FnO*RQWO'#DvOOQQ'#D}'#D}OOQQ'#EO'#EOOOQQ'#EP'#EPO*WOWO'#ESO*RQWO'#EQOOQQ'#EQ'#EQOOQQ'#Ft'#FtOOQQ'#Fr'#FrOOQQ'#Fy'#FyOOQQ'#EU'#EUO`QYO'#EWOOQQ'#FS'#FSO*]Q^O'#FSO,SQYO'#EXO,ZQWO'#EYOOQP'#F}'#F}O,`QXO'#EaOOQQ'#Fz'#FzOOQQ'#FR'#FRQOQWOOOOQQ'#FT'#FTOOQQ'#F^'#F^O`QYO'#CoOOQQ'#F_'#F_O$}QYO'#CsO,kQYO'#DwOOQQ'#Fs'#FsO,pQYO'#EROOQO'#ER'#ERO`QYO'#EVO`QYO'#EUOOQO'#F{'#F{Q,xQWOOO,}QYO'#DRO-tQWO'#FbOOQO'#DT'#DTO.PQYO'#FfO.WQWOOO.}QYO'#CdO/[QYO'#FVOOQQ'#Cc'#CcO/aQYO'#FUOOQQ'#Cb'#CbO/iQYO,58zO`QYO,59iOOQQ'#Fc'#FcOOQQ'#Fd'#FdOOQQ'#Fe'#FeO`QYO,59qO`QYO,59qO`QYO,59qOOQQ'#Fl'#FlO/nQYO,5:^OOQQ'#Fm'#FmO`QYO,5:`O`QYO,59eO`QYO,59gO`QYO,59iO1jQYO,59iO1qQYO,59rOOQQ,5:i,5:iO1vQYO,59qOOQU-E8l-E8lO3jQYO'#FoOOQQ,5:b,5:bOOQQ,5:n,5:nOOQQ,5:l,5:lO3qQYO,5:rOOQQ,5;n,5;nO3{QYO,5:qO4YQWO,5:sO4_QYO,5:tOOQP'#Ee'#EeO5UQXO'#EdOOQO'#Ec'#EcO5]QWO'#EbO5bQWO'#GOO5jQWO,5:{O5oQYO,59ZO/[QYO'#FaOOQQ'#Cw'#CwO5vQYO'#F`OOQQ'#Cv'#CvO6OQYO,59_O6TQYO,5:cO6YQYO,5:mO3tQYO,5:qO6_QYO,5:pO`QYO'#EwQ,xQWOOO`QYO'#EmO7UQWO,5;|O`QYOOOOQR'#Cf'#CfOOQQ'#Ej'#EjO8OQYO,59OO`QYO,5;qOOQQ'#FY'#FYO$}QYO'#EkO8`QYO,5;pO`QYO1G.fOOQQ'#F]'#F]O9VQYO1G/TO;|QYO1G/]O<WQYO1G/]O<bQYO1G/]OOQQ1G/x1G/xO>UQYO1G/zO>]QYO1G/PO?fQYO1G/RO@oQYO1G/TO`QYO1G/TOOQQ1G/T1G/TOAVQYO1G/^OAtQ^O'#CdOCWQYO'#FqOOQO'#Dz'#DzOCbQWO'#DyOCgQWO'#FpOOQO'#Dx'#DxOOQO'#D{'#D{OCoQWO,5<ZOOQQ1G0^1G0^O`QYO1G0]O`QYO'#EsOCtQWO,5<]OOQQ1G0_1G0_ODPQWO'#E[OD[QWO'#F|OOQO'#EZ'#EZODdQWO1G0`OOQP'#Eu'#EuODiQXO,5;OO`QYO,5:|ODpQXO'#EvODxQWO,5<jOOQQ1G0g1G0gO`QYO1G.uO`QYO,5;{O$}QYO'#ElOEQQYO,5;zO`QYO1G.yOEYQYO1G/}OOQO1G0X1G0XOOQO,5;c,5;cOOQO-E8u-E8uOOQO,5;X,5;XOOQO-E8k-E8kOE_QWOOOOQQ-E8h-E8hOEdQYO'#CmOOQQ1G1]1G1]OOQQ,5;V,5;VOOQQ-E8i-E8iOEqQYO7+$QOOQQ7+%f7+%fO`QYO7+$oOFhQYO,5:rOFuQWO7+$oOFzQYO'#D[OOQQ'#DZ'#DZOHnQYO'#D_OHsQYO'#D_OHxQYO'#D_OH}Q`O'#DgOISQ`O'#DjOIXQ`O'#DnOOQQ7+$x7+$xO`QYO,5:eO$}QYO'#ErOI^QWO,5<[OOQQ1G1u1G1uOJdQYO7+%wOJqQYO,5;_OOQO-E8q-E8qOAVQYO,5:vO$}QYO'#EtOKOQWO,5<hOKWQYO7+%zOOQP-E8s-E8sOK_QYO1G0hOOQO,5;b,5;bOOQO-E8t-E8tOKiQYO7+$aOKpQYO1G1gOOQQ,5;W,5;WOOQQ-E8j-E8jOKzQYO7+$eOOQO7+%i7+%iO`QYO,59XOLqQYO<<HZOOQQ<<HZ<<HZO/nQYO'#EoOMzQYO,59vO! nQYO,59yO! sQYO,59yO! xQYO,59yO! }QYO,5:RO$}QYO,5:UO!!lQbO,5:YO!!sQYO1G0POOQO,5;^,5;^OOQO-E8p-E8pO!!}QYO<<IcOOQQ<<Ic<<IcOOQO1G0b1G0bOOQO,5;`,5;`OOQO-E8r-E8rO!%|QYO'#E^OOQQ<<If<<IfO`QYO<<IfO`QYO<<G{O!&sQYO1G.sOOQQ,5;Z,5;ZOOQQ-E8m-E8mO!&}QYO1G/eOOQQ1G/e1G/eO!'SQbO'#D]O!'eQ`O'#D[O!'pQ`O1G/mO!'uQWO'#DmO!'zQ`O'#FhOOQO'#Dl'#DlO!(SQ`O1G/pOOQO'#Dq'#DqO!(XQ`O'#FjOOQO'#Dp'#DpO!(aQ`O1G/tOOQQAN?QAN?QO!(fQYOAN=gOOQQ7+%P7+%PO!)]Q`O,59vOOQQ7+%X7+%XO! }QYO,5:XO$}QYO'#EpO!)hQ`O,5<SOOQQ7+%[7+%[O! }QYO'#EqO!)pQ`O,5<UO!)xQ`O7+%`OOQO1G/s1G/sOOQO,5;[,5;[OOQO-E8n-E8nOOQO,5;],5;]OOQO-E8o-E8oOAVQYO<<HzOOQQAN>fAN>fO/nQYO'#EoO! }QYO<<HzO!)}Q`O7+%`O!*SQ`O1G/tO!!lQbO,5:YO!*XQ`O'#Dn\",\n stateData: \"!*h~O#rOS#sOSPOSQOS~OTsOZVO[UOdtOhvOivOr}Os}OviO!T{O!U{O!VxO!XzO!c!OO!g|O!igO!pyO!wjO#SnO#nRO#oRO$ZZO$i_O$j`O$kaO$lbO~OTsO[UOdtOhvOivOr}Os}OviO!T{O!U{O!VxO!XzO!c!OO!g|O!igO!pyO!wjO#SnO#nRO#oRO$ZZO$i_O$j`O$kaO$lbO~OZ!TO#]!UO~P#SO#nRO#oRO~OZ!^O[!^O]!_O^!_O_!`O`!kOn!hOp!iOr!]Os!]Ot!jO{!lO!i!fO#z!dOv$bX~O#l#tX$s#tX~P%VO$i!mOT$YXZ$YX[$YXd$YXh$YXi$YXr$YXs$YXv$YX!T$YX!U$YX!V$YX!X$YX!c$YX!g$YX!i$YX!p$YX!w$YX#S$YX#n$YX#o$YX$Z$YX$j$YX$k$YX$l$YX~O#nRO#oROZ!PX[!PX]!PX^!PX_!PX`!PXn!PXp!PXr!PXs!PXt!PXv!PX{!PX!i!PX#l!PX#p!PX#z!PX$s!PX$O!PXx!PX#}!PX!g!PXe!PXb!PX#R!PXf!PXl!PX~Ov!pO~O$j`O~O#p!uOZ#vX[#vX]#vX^#vX_#vX`#vXn#vXp#vXr#vXs#vXt#vXv#vX{#vX!i#vX#l#vX#z#vX$s#vX$O#vXx#vX#}#vX!g#vXe#vXb#vX#R#vXf#vXl#vX~O!g$eP~P`Ov!xO~O#m!yO$j`O#R$rP~Op#VO~Op#WOv!uX~O$s#ZO~O#luX$OuX$suXxuX#}uX!guXeuXbuX#RuXfuXluX~P%VO$O#]O#l$UXx$UX~O#l#[X~P&bOv#_O~OZ#`O[#`O]#`O^#`O_#`O#nRO#oRO#z#`O#{#`O$]WX~O`WXxWX$OWX~P.]O`#dO~O$O#eOb#xX~Ob#hO~O#nRO#oRO$ZZO~OTsOZVO[UOdtOhvOivOr}Os}O!T{O!U{O!VxO!XzO!c!OO!g|O!igO!pyO!wjO#SnO#nRO#oRO$ZZO$i_O$j`O$kaO$lbO~Ov#rO~P/yO|#tO~O{!lO!i!fO#z!dOZya[ya]ya^ya_ya`yanyapyaryasyatyav$bX#lya$sya$Oyaxya#}ya!gyaeyabya#Ryafyalya~Ox$eP~P`Ox#}O#}$OO~P%VO#}$OO$O$PO!g$eX~P%VO!g$RO~O#nRO#oROx$pP~OZ#`O[#`O]#`O^#`O_#`O#m!yO#z#`O#{#`O~O$]#WX~P4jO$]$YO~O$O$ZO#R$rX~O#R$]O~Oe$^O~P%VO$O$`Ol$SX~Ol$bO~O!W$cO~O!T$dO~O#l!xa$s!xa$O!xax!xa#}!xa!g!xae!xab!xa#R!xaf!xal!xa~P%VO$O#]O#l$Uax$Ua~OZ#`O[#`O]#`O^#`O_#`O#nRO#oRO#z#`O#{#`O~O`Wa$]WaxWa$OWa~P7aO$O#eOb#xa~OZ!^O[!^O]!_O^!_O_!`O{!lO!i!fO#z!dOv$bX~O`qinqipqirqisqitqi#lqi$sqi$Oqixqi#}qi!gqieqibqi#Rqifqilqi~P8hO_!`O{!lO!i!fO#z!dOZyi[yi`yinyipyiryisyityiv$bX#lyi$syi$Oyixyi#}yi!gyieyibyi#Ryifyilyi~O]!_O^!_O~P:`O]yi^yi~P:`O{!lO!i!fO#z!dOZyi[yi]yi^yi_yi`yinyipyiryisyityiv$bX#lyi$syi$Oyixyi#}yi!gyieyibyi#Ryifyilyi~O!g$pO~P%VO`!kOp!iOr!]Os!]Ot!jOnmi#lmi$smi$Omixmi#}mi!gmiemibmi#Rmifmilmi~P8hO`!kOr!]Os!]Ot!jOnoipoi#loi$soi$Ooixoi#}oi!goieoiboi#Roifoiloi~P8hO`!kOn!hOp$qOr!]Os!]Ot!jO~P8hO!S$vO!V$wO!X$xO![$yO!_$zO!c${O#nRO#oRO$ZZO~OZ#bX[#bX]#bX^#bX_#bX`#bXn#bXp#bXr#bXs#bXt#bXv#bXx#bX{#bX!i#bX#n#bX#o#bX#p#bX#z#bX$O#bX~P.]O$O$POx$eX~P%VO$]$}O~O$O%OOx$dX~Ox%QO~O$O$PO!g$eax$ea~O$]%UOx#OX$O#OX~O$O%VOx$pX~Ox%XO~O$]#Wa~P4jO#m!yO$j`O~O$O$ZO#R$ra~O$O$`Ol$Sa~O!U%cO~OxrO~O#}%dObaX$OaX~P%VO#lSq$sSq$OSqxSq#}Sq!gSqeSqbSq#RSqfSqlSq~P%VOx#}O#}$OO$OuX~P%VOx%fO~O#z%gOZ!OX[!OX]!OX^!OX_!OX`!OXn!OXp!OXr!OXs!OXt!OXv!OX{!OX!i!OX#l!OX$s!OX$O!OXx!OX#}!OX!g!OXe!OXb!OX#R!OXf!OXl!OX~Op%iO~Op%jO~Op%kO~O!]%lO~O!]%mO~O!]%nO~O$O%OOx$da~OZ!^O[!^O]!_O^!_O_!`O`!kOn!hOp!iOr!]Os!]Ot!jO{!lO#z!dOv$bX~Ox%sO!g%sO!i%rO~PIfO!g#ga$O#gax#ga~P%VO$O%VOx$pa~O#P%yO~P`O#R#Ui$O#Ui~P%VOf%zO~P%VOl$Ti$O$Ti~P%VO#lgq$sgq$Ogqxgq#}gq!ggqegqbgq#Rgqfgqlgq~P%VO`qynqypqyrqysqytqy#lqy$sqy$Oqyxqy#}qy!gqyeqybqy#Rqyfqylqy~P8hO#z%gOZ!Oa[!Oa]!Oa^!Oa_!Oa`!Oan!Oap!Oar!Oas!Oat!Oav!Oa{!Oa!i!Oa#l!Oa$s!Oa$O!Oax!Oa#}!Oa!g!Oae!Oab!Oa#R!Oaf!Oal!Oa~O!T&OO~O!W&OO~O!T&PO~O!S$vO!V$wO!X$xO![$yO!_$zO!c&uO#nRO#oRO$ZZO~O!Y$^P~P! }Ox!mi$O!mi~P%VOT$aXZ$aX[$aX]!yy^!yy_!yy`!yyd$aXh$aXi$aXn!yyp!yyr$aXs$aXt!yyv$aX{!yy!T$aX!U$aX!V$aX!X$aX!c$aX!g$aX!i$aX!p$aX!w$aX#S$aX#l!yy#n$aX#o$aX#z!yy$Z$aX$i$aX$j$aX$k$aX$l$aX$s!yy$O!yyx!yy#}!yye!yyb!yy#R!yyf!yyl!yy~O#l#QX$s#QX$O#QXx#QX#}#QX!g#QXe#QXb#QX#R#QXf#QXl#QX~P%VObai$Oai~P%VO!U&_O~O#nRO#oRO!Y!PX#z!PX$O!PX~O#z&pO!Y!OX$O!OX~O!Y&aO~O$]&bO~O$O&cO!Y$[X~O!Y&eO~O$O&fO!Y$^X~O!Y&hO~O#lc!R$sc!R$Oc!Rxc!R#}c!R!gc!Rec!Rbc!R#Rc!Rfc!Rlc!R~P%VO#z&pO!Y!Oa$O!Oa~O$O&cO!Y$[a~O$O&fO!Y$^a~O$_&nO~O$_&qO~O!Y&rO~O!]&tO~O$Z~QP_^$i]#z~\",\n goto: \"E|$sPPPP$tP%m%p%v&Y'sPPPPPP'|P$tPPP$tPP(P(SP$tP$tP$tPPP(YP(eP$t$tPP(n)T)`*m)TPPPPPPP)TPP)TP+r+u)TP+{,R$tP$tP$t,Y-R-U-[-RP-d.]-d-d/]0UP$t0}$t1v1v2o2rP2xPP1v3O3U/X3YPP3bP3e3l3r3x4O5Z5e5k5q5w6O6U6[6bPPPPPPPP6h6q8x9q:j:mPP:qPP:w:z;s<l<o<s<x=g>V>vP?oP?rP?v@iA[BTBZB^$tBdBdPPPPC]8xDUD}EQEy!mjOPQWilu|}!]!a!b!c!g!h!i!j!k!p#Z#]#_#c#g#r$O$P$Y$^$_$b$q$}%X%d%y%zR![SQ!YSR$m#eS!WS#eS#Qw$`W#w!p!x%O%VT&T%m&c#WXOPQWYilu|}!]!a!b!c!e!g!h!i!j!k#Z#]#_#c#g#r#t$O$P$Y$^$_$b$q$}%U%X%d%g%l%n%y%z&Q&b&f&n&p&q&tb!VSw!x#e$`%O%V%m&cU#a!V#b#uR#u!pU#a!V#b#uT$W!z$XR$l#cR#UwQ#SwR%`$`U!RQ#_#rQ#s!kR$g#]QrQQ$i#_R$s#rQ$|#tQ%t%UQ&S%lU&X%n&f&tQ&i&bT&o&n&qc$u#t%U%l%n&b&f&n&q&t!lkOPQWilu|}!]!a!b!c!g!h!i!j!k!p#Z#]#_#c#g#r$O$P$Y$^$_$b$q$}%X%d%y%zQ#m!eU$t#t%U&nS%|%g&p]&R%l%n&b&f&q&t#V[OPQWilu|}!]!a!b!c!e!g!h!i!j!k!p#Z#]#_#c#g#r#t$O$P$Y$^$_$b$q$}%U%X%d%g%l%n%y%z&b&f&n&p&q&tR&W%mQ&U%mR&j&cQ&[%nR&s&tS&Y%n&tR&l&f!m]OPQWilu|}!]!a!b!c!g!h!i!j!k!p#Z#]#_#c#g#r$O$P$Y$^$_$b$q$}%X%d%y%zR#|!pQ#y!pR%p%OS#x!p%OT$S!x%V!meOPQWilu|}!]!a!b!c!g!h!i!j!k!p#Z#]#_#c#g#r$O$P$Y$^$_$b$q$}%X%d%y%z!leOPQWilu|}!]!a!b!c!g!h!i!j!k!p#Z#]#_#c#g#r$O$P$Y$^$_$b$q$}%X%d%y%zQ!rbT!{o$Z!mcOPQWilu|}!]!a!b!c!g!h!i!j!k!p#Z#]#_#c#g#r$O$P$Y$^$_$b$q$}%X%d%y%z!mdOPQWilu|}!]!a!b!c!g!h!i!j!k!p#Z#]#_#c#g#r$O$P$Y$^$_$b$q$}%X%d%y%z!mhOPQWilu|}!]!a!b!c!g!h!i!j!k!p#Z#]#_#c#g#r$O$P$Y$^$_$b$q$}%X%d%y%z!mpOPQWilu|}!]!a!b!c!g!h!i!j!k!p#Z#]#_#c#g#r$O$P$Y$^$_$b$q$}%X%d%y%zR$V!xQ$T!xR%u%VQ%x%XR&]%yQ!}oR%[$ZT!|o$ZS!zo$ZT$W!z$XRrQS#b!V#uR$j#bQ#f!YR$n#fQ$a#SR%a$aQ#^!RR$h#^!vYOPQWilu|}!]!a!b!c!e!g!h!i!j!k!p#Z#]#_#c#g#r#t$O$P$Y$^$_$b$q$}%U%X%d%g%y%z&nS!oY&Q_&Q%l%n&b&f&p&q&tQ%h$tS%}%h&`R&`&RQ&d&UR&k&dQ&g&YR&m&gQ%P#yR%q%PS$Q!v#vR%T$QQ%W$TR%v%WQ$X!zR%Y$XQ$[!}R%]$[Q#[!PR$f#[QrOQ!PPR$e#ZUTOP#ZW!QQ!k#]#_Q!nWQ!tiQ!vlQ#PuQ#X|Q#Y}Q#i!]Q#j!aQ#k!bQ#l!cQ#n!gQ#o!hQ#p!iQ#q!jQ#v!pQ$k#cQ$o#gQ$r#rQ%R$OQ%S$PQ%Z$YQ%^$^Q%_$_Q%b$bQ%e$qQ%o$}S%w%X%yQ%{%dR&^%z!mqOPQWilu|}!]!a!b!c!g!h!i!j!k!p#Z#]#_#c#g#r$O$P$Y$^$_$b$q$}%X%d%y%z!mSOPQWilu|}!]!a!b!c!g!h!i!j!k!p#Z#]#_#c#g#r$O$P$Y$^$_$b$q$}%X%d%y%zR!ZST!XS#eQ#c!WR$_#QR#g![!muOPQWilu|}!]!a!b!c!g!h!i!j!k!p#Z#]#_#c#g#r$O$P$Y$^$_$b$q$}%X%d%y%z!mwOPQWilu|}!]!a!b!c!g!h!i!j!k!p#Z#]#_#c#g#r$O$P$Y$^$_$b$q$}%X%d%y%zR#TwT#Rw$`V!SQ#_#r!X!aT!Q!t!v#P#X#Y#i#n#o#p#q#v$k$o$r%R%S%Z%^%_%b%e%o%w%{&^!Z!bT!Q!t!v#P#X#Y#i#j#n#o#p#q#v$k$o$r%R%S%Z%^%_%b%e%o%w%{&^!]!cT!Q!t!v#P#X#Y#i#j#k#n#o#p#q#v$k$o$r%R%S%Z%^%_%b%e%o%w%{&^!mWOPQWilu|}!]!a!b!c!g!h!i!j!k!p#Z#]#_#c#g#r$O$P$Y$^$_$b$q$}%X%d%y%zR&V%mT&Z%n&t!a!eT!Q!n!t!v#P#X#Y#i#j#k#l#n#o#p#q#v$k$o$r%R%S%Z%^%_%b%e%o%w%{&^!a!gT!Q!n!t!v#P#X#Y#i#j#k#l#n#o#p#q#v$k$o$r%R%S%Z%^%_%b%e%o%w%{&^!m^OPQWilu|}!]!a!b!c!g!h!i!j!k!p#Z#]#_#c#g#r$O$P$Y$^$_$b$q$}%X%d%y%zQ!q^R!scR#z!pQ!wlR#{!p!mfOPQWilu|}!]!a!b!c!g!h!i!j!k!p#Z#]#_#c#g#r$O$P$Y$^$_$b$q$}%X%d%y%z!mlOPQWilu|}!]!a!b!c!g!h!i!j!k!p#Z#]#_#c#g#r$O$P$Y$^$_$b$q$}%X%d%y%z!mmOPQWilu|}!]!a!b!c!g!h!i!j!k!p#Z#]#_#c#g#r$O$P$Y$^$_$b$q$}%X%d%y%zR$U!x!moOPQWilu|}!]!a!b!c!g!h!i!j!k!p#Z#]#_#c#g#r$O$P$Y$^$_$b$q$}%X%d%y%zR#Oo\",\n nodeNames: \"⚠ LineComment BlockComment Expression ForExpression for InExpressions InExpression Name Identifier Identifier ArithOp ArithOp ArithOp ArithOp ArithOp in IterationContext return IfExpression if then else QuantifiedExpression some every InExpressions InExpression satisfies Disjunction or Conjunction and Comparison CompareOp CompareOp between PositiveUnaryTest ( PositiveUnaryTests ) ArithmeticExpression InstanceOfExpression instance of Type QualifiedName VariableName BacktickIdentifier SpecialType days time duration years months date > ListType list < ContextType context ContextEntryTypes ContextEntryType FunctionType function ArgumentTypes ArgumentType PathExpression ] FilterExpression [ FunctionInvocation SpecialFunctionName NamedParameters NamedParameter ParameterName PositionalParameters null NumericLiteral StringLiteral BooleanLiteral DateTimeLiteral DateTimeConstructor AtLiteral ? SimplePositiveUnaryTest Interval ParenthesizedExpression List FunctionDefinition FormalParameters FormalParameter external FunctionBody } { Context ContextEntry Key Name Identifier Expressions UnaryTests Wildcard not\",\n maxTerm: 173,\n context: variableTracker,\n nodeProps: [\n [\"group\", -17,4,19,23,29,31,33,41,42,68,70,72,85,86,88,89,90,97,\"Expr\",47,\"Expr Expr\",-5,78,79,80,81,82,\"Expr Literal\"],\n [\"closedBy\", 38,\")\",71,\"]\",96,\"}\"],\n [\"openedBy\", 40,\"(\",69,\"[\",95,\"{\"]\n ],\n propSources: [feelHighlighting],\n skippedNodes: [0,1,2],\n repeatNodeCount: 14,\n tokenData: \".Z~RvXY#iYZ$^Z[#i]^$^pq#iqr$crs$nwx&fxy&kyz&pz{&u{|'S|}'X}!O'^!O!P'k!P!Q(u!Q![*p![!]+X!]!^+^!^!_+c!_!`$i!`!a+r!b!c+|!}#O,R#P#Q,W#Q#R&}#S#T,]#o#p.P#q#r.U$f$g#i#BY#BZ#i$IS$I_#i$I|$I}$^$I}$JO$^$JT$JU#i$KV$KW#i&FU&FV#i?HT?HU#i~#nY#r~XY#iZ[#ipq#i$f$g#i#BY#BZ#i$IS$I_#i$JT$JU#i$KV$KW#i&FU&FV#i?HT?HU#i~$cO#s~~$fP!_!`$i~$nOr~~$sW$j~OY$nZr$nrs%]s#O$n#O#P%b#P;'S$n;'S;=`&`<%lO$n~%bO$j~~%eRO;'S$n;'S;=`%n;=`O$n~%sX$j~OY$nZr$nrs%]s#O$n#O#P%b#P;'S$n;'S;=`&`;=`<%l$n<%lO$n~&cP;=`<%l$n~&kO#{~~&pOv~~&uOx~~&zP^~z{&}~'SO_~~'XO[~~'^O$O~R'cPZP!`!a'fQ'kO$_Q~'pQ#z~!O!P'v!Q!['{~'{O#}~~(QR$i~!Q!['{!g!h(Z#X#Y(Z~(^R{|(g}!O(g!Q![(m~(jP!Q![(m~(rP$i~!Q![(m~(zQ]~z{)Q!P!Q*X~)TTOz)Qz{)d{;'S)Q;'S;=`*R<%lO)Q~)gVOz)Qz{)d{!P)Q!P!Q)|!Q;'S)Q;'S;=`*R<%lO)Q~*ROQ~~*UP;=`<%l)Q~*^SP~OY*XZ;'S*X;'S;=`*j<%lO*X~*mP;=`<%l*X~*uS$i~!O!P+R!Q![*p!g!h(Z#X#Y(Z~+UP!Q!['{~+^O$]~~+cO$s~R+jP!]QsP!_!`+mP+rOsPR+yP!YQsP!_!`+m~,RO$l~~,WO!i~~,]O!g~~,`WOY,]Z#O,]#O#P,x#P#S,]#S#T-t#T;'S,];'S;=`-y<%lO,]~,{RO;'S,];'S;=`-U;=`O,]~-XXOY,]Z#O,]#O#P,x#P#S,]#S#T-t#T;'S,];'S;=`-y;=`<%l,]<%lO,]~-yO$Z~~-|P;=`<%l,]~.UO#S~~.ZO#R~\",\n tokenizers: [propertyIdentifiers, identifiers, insertSemicolon, 0, 1],\n topRules: {\"Expression\":[0,3],\"Expressions\":[1,102],\"UnaryTests\":[2,103]},\n dialects: {camunda: 2544},\n dynamicPrecedences: {\"31\":-1,\"68\":1,\"72\":-1,\"74\":-1},\n specialized: [{term: 122, get: (value) => spec_identifier[value] || -1}],\n tokenPrec: 2546\n})\n"],"names":["t"],"mappings":";;;;AAAA;AAEC,MAAC,kBAAkB,GAAG,GAAG;AAC1B,EAAE,UAAU,GAAG,GAAG;AAClB,EAAE,cAAc,GAAG,GAAG;AACtB,EAAE,UAAU,GAAG,GAAG;AAClB,EAGE,WAAW,GAAG,GAAG;AACnB,EAAE,aAAa,GAAG,CAAC;AACnB,EAAE,kBAAkB,GAAG,GAAG;AAC1B,EAEE,eAAe,GAAG,CAAC;AACrB,EAAE,IAAI,GAAG,CAAC;AACV,EAAE,UAAU,GAAG,CAAC;AAChB,EAAE,oBAAoB,GAAG,EAAE;AAC3B,EAQE,sBAAsB,GAAG,GAAG;AAC9B,EACE,YAAY,GAAG,EAAE;AACnB,EAAE,iBAAiB,GAAG,GAAG;AACzB,EAGE,oBAAoB,GAAG,EAAE;AAC3B,EAAE,yBAAyB,GAAG,GAAG;AACjC,EAGE,sBAAsB,GAAG,EAAE;AAC7B,EAOE,iBAAiB,GAAG,EAAE;AACxB,EACE,oBAAoB,GAAG,EAAE;AAC3B,EAAE,mBAAmB,GAAG,GAAG;AAC3B,EAAE,oBAAoB,GAAG,GAAG;AAC5B,EAAE,kBAAkB,GAAG,GAAG;AAC1B,EAAE,oBAAoB,GAAG,GAAG;AAC5B,EAKE,YAAY,GAAG,EAAE;AACnB,EAeE,cAAc,GAAG,EAAE;AACrB,EAAE,mBAAmB,GAAG,GAAG;AAC3B,EAAE,gBAAgB,GAAG,EAAE;AACvB,EAAE,qBAAqB,GAAG,GAAG;AAC7B,EAAE,kBAAkB,GAAG,EAAE;AACzB,EAAE,uBAAuB,GAAG,GAAG;AAC/B,EAIE,aAAa,GAAG,EAAE;AACpB,EAEE,GAAG,GAAG,GAAG;AACX,EACE,cAAc,GAAG,EAAE;AACrB,EAAE,aAAa,GAAG,EAAE;AACpB,EAAE,cAAc,GAAG,EAAE;AACrB,EAKE,SAAS,GAAG,GAAG;AACjB,EACE,IAAI,GAAG,EAAE;AACX,EAAE,kBAAkB,GAAG,EAAE;AACzB,EAAE,uBAAuB,GAAG,GAAG;AAC/B,EAGE,OAAO,GAAG,EAAE;AACd,EAAE,YAAY,GAAG,GAAG;AACpB,EAAE,YAAY,GAAG,EAAE;AACnB,EACE,YAAY,GAAG,GAAG;AACpB,EAAE,kBAAkB,GAAG,GAAG;;AC9G1B;;;AAwDA;AACA,MAAM,SAAS,GAAG,OAAO,OAAO,IAAI,WAAW,IAAI,OAAO,CAAC,GAAG,IAAI,mBAAmB,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC;;AAE3G;AACA,MAAM,eAAe,GAAG,OAAO,OAAO,IAAI,WAAW,IAAI,OAAO,CAAC,GAAG,IAAI,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC;;AAE9G;AACA,MAAM,QAAQ,GAAG,OAAO,OAAO,IAAI,WAAW,IAAI,OAAO,CAAC,GAAG,IAAI,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC;;AAEpG,MAAM,UAAU,GAAG;AACnB,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG;AACzB,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;AAChD,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE;AAClD,CAAC;;AAED,MAAM,YAAY,GAAG,KAAK,CAAC,MAAM,CAAC;;AAElC,MAAM,OAAO,GAAG,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC;;AAEjC,MAAM,mBAAmB,GAAG,KAAK,CAAC,SAAS,CAAC;;AAE5C;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS,KAAK,CAAC,GAAG,EAAE;AACpB,EAAE,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;AAClD;;AAEA;AACA;AACA;AACA;AACA,SAAS,WAAW,CAAC,EAAE,EAAE;AACzB,EAAE,OAAO;AACT,IAAI,EAAE,KAAK,EAAE;AACb;AACA,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE;AACxB,GAAG;AACH,IAAI,EAAE,KAAK,EAAE;AACb,GAAG;AACH,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,GAAG;AACzB,GAAG;AACH,IAAI,EAAE,IAAI,IAAI,IAAI,EAAE,IAAI;AACxB,GAAG;AACH,IAAI,EAAE,IAAI,IAAI,IAAI,EAAE,IAAI;AACxB,GAAG;AACH,IAAI,EAAE,IAAI,IAAI,IAAI,EAAE,IAAI;AACxB,GAAG;AACH,IAAI,EAAE,IAAI,KAAK,IAAI,EAAE,IAAI;AACzB,GAAG;AACH,IAAI,EAAE,IAAI,KAAK,IAAI,EAAE,IAAI;AACzB,GAAG;AACH,IAAI,EAAE,IAAI,MAAM,IAAI,EAAE,IAAI;AAC1B,GAAG;AACH,IAAI,EAAE,IAAI,MAAM,IAAI,EAAE,IAAI;AAC1B,GAAG;AACH,IAAI,EAAE,IAAI,MAAM,IAAI,EAAE,IAAI;AAC1B,GAAG;AACH,IAAI,EAAE,IAAI,MAAM,IAAI,EAAE,IAAI;AAC1B,GAAG;AACH,IAAI,EAAE,IAAI,MAAM,IAAI,EAAE,IAAI;AAC1B,GAAG;AACH,IAAI,EAAE,IAAI,MAAM,IAAI,EAAE,IAAI;AAC1B,GAAG;AACH,IAAI,EAAE,IAAI,MAAM,IAAI,EAAE,IAAI,MAAM;AAChC,GAAG;AACH,IAAI,EAAE,IAAI,MAAM,IAAI,EAAE,IAAI,MAAM;AAChC,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA,SAAS,YAAY,CAAC,EAAE,EAAE;AAC1B,EAAE,OAAO,mBAAmB,CAAC,QAAQ,CAAC,EAAE,CAAC;AACzC;;AAEA;AACA;AACA;AACA;AACA,SAAS,UAAU,CAAC,EAAE,EAAE;AACxB,EAAE,OAAO;AACT,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE;AACxB;AACA,IAAI,EAAE,KAAK;AACX,GAAG;AACH,IAAI,EAAE,IAAI,MAAM,IAAI,EAAE,IAAI;AAC1B,GAAG;AACH,IAAI,EAAE,IAAI,MAAM,IAAI,EAAE,IAAI;AAC1B,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA,SAAS,OAAO,CAAC,EAAE,EAAE;AACrB,EAAE,OAAO,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;AAChC;;AAEA,SAAS,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE;AAC7B,EAAE,OAAO,MAAM,CAAC,MAAM;AACtB,IAAI,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,GAAG,MAAM;AACvC,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,qBAAqB,CAAC,KAAK,EAAE,MAAM,GAAG,CAAC,EAAE;;AAElD,EAAE,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC;;AAEjC,EAAE,IAAI,IAAI,KAAK,OAAO,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,OAAO,EAAE;;AAE9D,IAAI,OAAO;AACX,MAAM,MAAM,EAAE,CAAC;AACf,MAAM,KAAK,EAAE;AACb,KAAK;AACL;;AAEA,EAAE,IAAI,YAAY,CAAC,IAAI,CAAC,EAAE;AAC1B,IAAI,OAAO;AACX,MAAM,MAAM,EAAE,CAAC;AACf,MAAM,KAAK,EAAE,MAAM,CAAC,YAAY,CAAC,IAAI;AACrC,KAAK;AACL;;AAEA,EAAE,OAAO,IAAI;AACb;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,CAAC,EAAE,QAAQ,GAAG,KAAK,EAAE;AAC9D,EAAE,KAAK,IAAI,MAAM,GAAG,KAAK,EAAE,KAAK,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,EAAE;AACpD,IAAI,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;;AAEvC,IAAI,IAAI,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,QAAQ,KAAK,UAAU,CAAC,IAAI,CAAC,CAAC,EAAE;AACzE,MAAM,IAAI,CAAC,MAAM,EAAE;AACnB,QAAQ,MAAM,GAAG,IAAI;AACrB;;AAEA,MAAM,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;AACtB,KAAK,MAAM;;AAEX,MAAM,IAAI,KAAK,CAAC,MAAM,EAAE;AACxB,QAAQ,OAAO;AACf,UAAU,KAAK,EAAE,MAAM,CAAC,YAAY,CAAC,GAAG,KAAK,CAAC;AAC9C,UAAU,MAAM,EAAE;AAClB,SAAS;AACT;;AAEA,MAAM,OAAO,IAAI;AACjB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE;;AAEpC,EAAE,KAAK,IAAI,MAAM,GAAG,KAAK,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,EAAE;AACxC,IAAI,IAAI,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;;AAErC,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,EAAE;AACvB,MAAM,IAAI,CAAC,MAAM,EAAE;AACnB,QAAQ,MAAM,GAAG,IAAI;AACrB;AACA,KAAK,MAAM;AACX,MAAM,IAAI,MAAM,EAAE;AAClB,QAAQ,OAAO;AACf,UAAU,KAAK,EAAE,GAAG;AACpB,UAAU,MAAM,EAAE;AAClB,SAAS;AACT;;AAEA,MAAM,OAAO,IAAI;AACjB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,SAAS,CAAC,KAAK,EAAE,SAAS,EAAE;AACrC,EAAE,MAAM,WAAW,GAAG,SAAS,CAAC,WAAW,EAAE;;AAE7C,EAAE,MAAM,KAAK,GAAG,SAAS,CAAC,MAAM;;AAEhC,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,EAAE,EAAE,SAAS,GAAG,IAAI,IAAI;;AAEnD,IAAI,MAAM,QAAQ,GAAG,CAAC,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,IAAI,CAAC;AACvD,IAAI,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC;;AAExC,IAAI,MAAM,KAAK;AACf,MAAM,eAAe,CAAC,KAAK,EAAE,CAAC,EAAE,QAAQ,CAAC;AACzC,MAAM,QAAQ,IAAI,qBAAqB,CAAC,KAAK,EAAE,CAAC,CAAC;AACjD,MAAM,UAAU,IAAI,WAAW,CAAC,KAAK,EAAE,CAAC;AACxC,KAAK;;AAEL;AACA,IAAI,IAAI,CAAC,KAAK,EAAE;AAChB,MAAM,OAAO,SAAS;AACtB;;AAEA,IAAI,MAAM;AACV,MAAM,KAAK;AACX,MAAM;AACN,KAAK,GAAG,KAAK;;AAEb,IAAI,CAAC,IAAI,MAAM;;AAEf,IAAI,IAAI,KAAK,KAAK,GAAG,EAAE;AACvB,MAAM;AACN;;AAEA,IAAI,MAAM,GAAG,EAAE,GAAG,MAAM,EAAE,KAAK,EAAE;;AAEjC,IAAI,MAAM,IAAI,GAAG,EAAE,GAAG,KAAK,EAAE,GAAG,MAAM,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC;;AAElD,IAAI,IAAI,WAAW,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,EAAE;AAC7C,MAAM,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC;;AAE7B,MAAM,SAAS,GAAG;AAClB,QAAQ,KAAK;AACb,QAAQ,MAAM,EAAE,KAAK,CAAC,MAAM;AAC5B,QAAQ,IAAI,EAAE;AACd,OAAO;AACP;;AAEA,IAAI,IAAI,WAAW,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,EAAE;AACrD,MAAM;AACN;;AAEA,IAAI,IAAI,mBAAmB,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,EAAE;AACrD,MAAM,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC;;AAE7B;AACA;AACA;AACA;AACA,MAAM,SAAS,GAAG;AAClB,QAAQ,KAAK;AACb,QAAQ,MAAM,EAAE,KAAK,CAAC,MAAM;AAC5B,QAAQ,IAAI,EAAE;AACd,OAAO;AACP;;AAEA,IAAI,IAAI,mBAAmB,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,EAAE;AAC7D,MAAM;AACN;;AAEA,IAAI,OAAO,SAAS;AACpB;;AAEA;;AAEA,MAAM,cAAc,GAAG;AACvB,EAAE,EAAE,UAAU,IAAI,YAAY;AAC9B,EAAE,EAAE,cAAc,IAAI;AACtB,CAAC;;AAEM,MAAM,WAAW,GAAG,IAAI,iBAAiB,CAAC,CAAC,KAAK,EAAE,KAAK,KAAK;;AAEnE,EAAE,eAAe,IAAI,OAAO,CAAC,GAAG,CAAC,qCAAqC,EAAE,KAAK,CAAC,GAAG,CAAC;;AAElF,EAAE,MAAM,SAAS,GAAG,SAAS,CAAC,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC;;AAEnD,EAAE,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM;;AAEpC,EAAE,MAAM,KAAK,GAAG,SAAS,IAAI,eAAe,CAAC,KAAK,EAAE,CAAC,EAAE,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;;AAExE,EAAE,IAAI,KAAK,EAAE;AACb,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC;AAC/B,IAAI,KAAK,CAAC,WAAW,CAAC,SAAS,GAAG,SAAS,CAAC,IAAI,GAAG,UAAU,CAAC;;AAE9D,IAAI,SAAS,IAAI,OAAO,CAAC,GAAG,CAAC,qBAAqB,EAAE,KAAK,CAAC,GAAG,EAAE,SAAS,GAAG,cAAc,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,YAAY,EAAE,KAAK,CAAC,KAAK,CAAC;AACtI;AACA,CAAC,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;;;AAGjB,MAAM,mBAAmB,GAAG,IAAI,iBAAiB,CAAC,CAAC,KAAK,EAAE,KAAK,KAAK;;AAE3E,EAAE,eAAe,IAAI,OAAO,CAAC,GAAG,CAAC,4BAA4B,EAAE,KAAK,CAAC,GAAG,CAAC;;AAEzE,EAAE,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM;;AAEpC,EAAE,MAAM,KAAK,GAAG,eAAe,CAAC,KAAK,EAAE,CAAC,EAAE,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;;AAE3D,EAAE,IAAI,KAAK,EAAE;AACb,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC;AAC/B,IAAI,KAAK,CAAC,WAAW,CAAC,kBAAkB,CAAC;;AAEzC,IAAI,SAAS,IAAI,OAAO,CAAC,GAAG,CAAC,qCAAqC,EAAE,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,KAAK,CAAC;AAC3F;AACA,CAAC,CAAC;;;AAGK,MAAM,eAAe,GAAG,IAAI,iBAAiB,CAAC,CAAC,KAAK,EAAE,KAAK,KAAK;;AAEvE,EAAE,eAAe,IAAI,OAAO,CAAC,GAAG,CAAC,oBAAoB,EAAE,KAAK,CAAC,GAAG,CAAC;;AAEjE,EAAE,IAAI,MAAM;AACZ,EAAE,IAAI,MAAM,GAAG,KAAK;;AAEpB,EAAE,KAAK,MAAM,GAAG,CAAC,GAAG,MAAM,EAAE,EAAE;AAC9B,IAAI,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC;;AAEnC,IAAI,IAAI,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;AACnC,MAAM;AACN;;AAEA,IAAI,IAAI,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;AACrC,MAAM,MAAM,GAAG,IAAI;AACnB;;AAEA,IAAI;AACJ;;AAEA,EAAE,IAAI,MAAM,EAAE;;AAEd,IAAI,MAAM,UAAU,GAAG,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,CAAC,CAAC;AACzD,IAAI,MAAM,MAAM,GAAG,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,CAAC,CAAC;;AAEjD,IAAI,IAAI,MAAM,IAAI,UAAU,IAAI,gCAAgC,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE;AACzF,MAAM;AACN;;AAEA,IAAI,SAAS,IAAI,OAAO,CAAC,GAAG,CAAC,wBAAwB,EAAE,KAAK,CAAC,GAAG,CAAC;AACjE,IAAI,KAAK,CAAC,WAAW,CAAC,UAAU,CAAC;AACjC;AACA,CAAC,CAAC;;AAEF,MAAM,qBAAqB,GAAG;AAC9B,EAAE,EAAE,uBAAuB,IAAI,oBAAoB;AACnD,EAAE,EAAE,qBAAqB,IAAI,kBAAkB;AAC/C,EAAE,EAAE,mBAAmB,IAAI;AAC3B,CAAC;;AAED,MAAM,aAAa,GAAG;AACtB,EAAE,EAAE,YAAY,IAAI,SAAS;AAC7B,EAAE,EAAE,uBAAuB,IAAI,oBAAoB;AACnD,EAAE,EAAE,kBAAkB,IAAI,eAAe;AACzC,EAAE,EAAE,SAAS,IAAI,MAAM;AACvB,EAAE,EAAE,iBAAiB,IAAI,cAAc;AACvC,EAAE,EAAE,yBAAyB,IAAI;AACjC,CAAC;;AAED,MAAM,WAAW,GAAG;AACpB,EAAE,EAAE,OAAO,IAAI,SAAS;AACxB,EAAE,EAAE,kBAAkB,IAAI,oBAAoB;AAC9C,EAAE,EAAE,aAAa,IAAI,eAAe;AACpC,EAAE,EAAE,IAAI,IAAI,MAAM;AAClB,EAAE,EAAE,YAAY,IAAI,cAAc;AAClC,EAAE,EAAE,oBAAoB,IAAI,sBAAsB;AAClD,EAAE,EAAE,cAAc,IAAI,gBAAgB;AACtC,EAAE,EAAE,kBAAkB,IAAI,oBAAoB;AAC9C,EAAE,EAAE,gBAAgB,IAAI,kBAAkB;AAC1C,EAAE,EAAE,oBAAoB,IAAI;AAC5B,CAAC;;AAED;AACA;AACA;AACA;AACA,MAAM,aAAa,CAAC;;AAEpB;AACA;AACA;AACA,EAAE,WAAW,CAAC,EAAE,EAAE;AAClB,IAAI,IAAI,CAAC,EAAE,GAAG,EAAE;AAChB;;AAEA,EAAE,GAAG,CAAC,SAAS,EAAE;AACjB,IAAI,OAAO,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC;AAC7B;;AAEA;AACA;AACA;AACA;AACA;AACA,EAAE,OAAO,EAAE,CAAC,EAAE,EAAE;AAChB,IAAI,OAAO,IAAI,aAAa,CAAC,EAAE,CAAC;AAChC;;AAEA;;AAEA,MAAM,gBAAgB,GAAG;AACzB,EAAE,eAAe,EAAE,CAAC;AACpB,EAAE,MAAM,EAAE,CAAC;AACX,EAAE,MAAM,EAAE,CAAC;AACX,EAAE,UAAU,EAAE;AACd,CAAC;;AAED,MAAM,mBAAmB,GAAG,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC;;;AAGzD;AACA;AACA;AACO,MAAM,eAAe,CAAC;;AAE7B;AACA;AACA;AACA;AACA;AACA,EAAE,WAAW,CAAC,KAAK,GAAG,EAAE,EAAE;;AAE1B;AACA;AACA;AACA,IAAI,IAAI,CAAC,KAAK,GAAG,KAAK;AACtB;;AAEA;AACA;AACA;AACA;AACA;AACA,EAAE,OAAO,GAAG;AACZ,IAAI,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;AAClC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,GAAG,CAAC,GAAG,EAAE;AACX,IAAI,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC;;AAElC,IAAI,MAAM,WAAW,4CAA4C,IAAI,CAAC,WAAW,CAAC;;AAElF,IAAI,IAAI,WAAW,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE;AACtC,MAAM,OAAO,MAAM;AACnB;;AAEA,IAAI,OAAO,WAAW,CAAC,EAAE,CAAC,MAAM,CAAC;AACjC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,GAAG,CAAC,GAAG,EAAE,KAAK,EAAE;;AAElB,IAAI,MAAM,WAAW,4CAA4C,IAAI,CAAC,WAAW,CAAC;;AAElF,IAAI,OAAO,WAAW,CAAC,EAAE,CAAC;AAC1B,MAAM,GAAG,IAAI,CAAC,KAAK;AACnB,MAAM,CAAC,GAAG,GAAG;AACb,KAAK,CAAC;AACN;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,KAAK,CAAC,KAAK,EAAE;AACf,IAAI,MAAM,WAAW,4CAA4C,IAAI,CAAC,WAAW,CAAC;;AAElF,IAAI,OAAO,IAAI,WAAW;AAC1B,MAAM,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK;AAC3C,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,OAAO,QAAQ,CAAC,KAAK,EAAE;AACzB,IAAI,OAAO,CAAC,KAAK;AACjB,UAAU,KAAK,YAAY,IAAI;AAC/B,UAAU,KAAK,YAAY,aAAa;AACxC,UAAU,OAAO,KAAK,KAAK,QAAQ;AACnC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,OAAO,EAAE,CAAC,GAAG,QAAQ,EAAE;AACzB,IAAI,OAAO,QAAQ,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,YAAY,KAAK;AACtD,MAAM,OAAO,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC;AACxC,KAAK,EAAE,IAAI,IAAI,CAAC,EAAE,CAAC,CAAC;AACpB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,OAAO,QAAQ,CAAC,OAAO,EAAE;AAC3B,IAAI,IAAI,CAAC,OAAO,EAAE;AAClB,MAAM,OAAO,EAAE;AACf;;AAEA,IAAI,IAAI,OAAO,YAAY,IAAI,EAAE;AACjC,MAAM,OAAO,OAAO,CAAC,KAAK;AAC1B;;AAEA,IAAI,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE;AACrC,MAAM,OAAO,EAAE;AACf;;AAEA,IAAI,OAAO,EAAE,GAAG,OAAO,EAAE;AACzB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,OAAO,OAAO,CAAC,OAAO,EAAE,KAAK,EAAE;;AAEjC,IAAI,OAAO,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,KAAK;AAChE,MAAM,IAAI,KAAK,YAAY,aAAa,EAAE;;AAE1C;AACA,QAAQ,OAAO;AACf,UAAU,GAAG,MAAM;AACnB,UAAU,CAAC,GAAG,GAAG;AACjB,SAAS;AACT;;AAEA,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;;AAElC,MAAM,IAAI,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE;AAC5B,QAAQ,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC;AAC/D;;AAEA,MAAM,OAAO;AACb,QAAQ,GAAG,MAAM;AACjB,QAAQ,CAAC,GAAG,GAAG;AACf,OAAO;AACP,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;AAC9B;;AAEA;;AAEA,MAAM,SAAS,CAAC;;AAEhB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,WAAW,CAAC;AACd,IAAI,IAAI,GAAG,aAAa;AACxB,IAAI,MAAM,GAAG,EAAE;AACf,IAAI,QAAQ,GAAG,EAAE;AACjB,IAAI,MAAM,GAAG,IAAI;AACjB,IAAI,OAAO;AACX,IAAI,KAAK;AACT,IAAI;AACJ,GAAG,EAAE;AACL,IAAI,IAAI,CAAC,IAAI,GAAG,IAAI;AACpB,IAAI,IAAI,CAAC,MAAM,GAAG,MAAM;AACxB,IAAI,IAAI,CAAC,QAAQ,GAAG,QAAQ;AAC5B,IAAI,IAAI,CAAC,MAAM,GAAG,MAAM;AACxB,IAAI,IAAI,CAAC,OAAO,GAAG,OAAO;AAC1B,IAAI,IAAI,CAAC,KAAK,GAAG,KAAK;AACtB,IAAI,IAAI,CAAC,GAAG,GAAG,GAAG;AAClB;;AAEA,EAAE,UAAU,CAAC,IAAI,EAAE;;AAEnB,IAAI,MAAM,UAAU,GAAG,IAAI,CAAC,EAAE,CAAC;AAC/B,MAAM,IAAI;AACV,MAAM,MAAM,EAAE;AACd,KAAK,CAAC;;AAEN,IAAI,QAAQ,IAAI,OAAO,CAAC,GAAG,CAAC,YAAY,EAAE,UAAU,CAAC,IAAI,EAAE,UAAU,CAAC,OAAO,CAAC;;AAE9E,IAAI,OAAO,UAAU;AACrB;;AAEA,EAAE,SAAS,CAAC,GAAG,EAAE;;AAEjB,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;AACtB,MAAM,QAAQ,IAAI,OAAO,CAAC,GAAG,CAAC,qBAAqB,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;;AAEhG,MAAM,OAAO,IAAI;AACjB;;AAEA,IAAI,QAAQ,IAAI,OAAO,CAAC,GAAG,CAAC,kBAAkB,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;;AAE3F,IAAI,OAAO,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC;AACtC;;AAEA,EAAE,KAAK,CAAC,IAAI,EAAE;;AAEd,IAAI,QAAQ,IAAI,OAAO,CAAC,GAAG,CAAC,wBAAwB,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC;;AAE7F,IAAI,OAAO,IAAI,CAAC,MAAM,CAAC;AACvB,MAAM,MAAM,EAAE,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE,IAAI;AACpC,KAAK,CAAC;AACN;;AAEA,EAAE,OAAO,CAAC,KAAK,EAAE;;AAEjB,IAAI,QAAQ,IAAI,OAAO,CAAC,GAAG,CAAC,iBAAiB,EAAE,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC;;AAEhE,IAAI,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC;AAClC,MAAM,IAAI,EAAE,SAAS;AACrB,MAAM;AACN,KAAK,CAAC,CAAC;AACP;;AAEA;AACA;AACA;AACA;AACA;AACA,EAAE,aAAa,GAAG;AAClB,IAAI,KAAK,IAAI,KAAK,GAAG,IAAI,EAAE,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE;;AAEzD,MAAM,IAAI,CAAC,KAAK,EAAE;AAClB,QAAQ,OAAO,IAAI;AACnB;;AAEA,MAAM,IAAI,KAAK,CAAC,KAAK,EAAE;AACvB,QAAQ,OAAO,KAAK,CAAC,KAAK;AAC1B;AACA;AACA;;AAEA,EAAE,WAAW,GAAG;AAChB,IAAI,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,GAAG,CAAC,mBAAmB,CAAC;AAC1D;;AAEA,EAAE,IAAI,IAAI,GAAG;AACb,IAAI,OAAO,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI;AACnE;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,GAAG,CAAC,QAAQ,EAAE;;AAEhB,IAAI,MAAM,KAAK,GAAG,EAAE,QAAQ,EAAE,QAAQ,IAAI,mBAAmB,CAAC,QAAQ,CAAC,EAAE;;AAEzE,IAAI,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,IAAI;AAClD,MAAM,GAAG,IAAI,KAAK,CAAC,QAAQ,CAAC,mBAAmB,CAAC,GAAG,CAAC;AACpD,KAAK;;AAEL,IAAI,IAAI,OAAO,UAAU,KAAK,WAAW,EAAE;AAC3C,MAAM,OAAO,SAAS;AACtB;;AAEA,IAAI,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC;;AAE5C,IAAI,IAAI,GAAG,YAAY,aAAa,EAAE;AACtC,MAAM,OAAO,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC;AAC1B,KAAK,MAAM;AACX,MAAM,OAAO,GAAG;AAChB;AACA;;AAEA,EAAE,WAAW,GAAG;;AAEhB,IAAI,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC;AAC1C,IAAI,MAAM,MAAM,GAAG,EAAE;;AAErB,IAAI,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC;AACpC,MAAM;AACN,KAAK,CAAC;;AAEN,IAAI,MAAM,aAAa,GAAG,IAAI,CAAC,EAAE,CAAC;AAClC,MAAM,IAAI,EAAE,cAAc;AAC1B,MAAM,MAAM,EAAE,WAAW;AACzB,MAAM,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC;AAC/B,MAAM,GAAG,EAAE;AACX,KAAK,CAAC;;AAEN,IAAI,QAAQ,IAAI,OAAO,CAAC,GAAG,CAAC,2BAA2B,EAAE,aAAa,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;;AAE1G,IAAI,OAAO,WAAW,CAAC,SAAS,CAAC,aAAa,CAAC;AAC/C;;AAEA,EAAE,SAAS,CAAC,KAAK,EAAE;;AAEnB,IAAI,IAAI,CAAC,KAAK,EAAE;AAChB,MAAM,OAAO,IAAI;AACjB;;AAEA,IAAI,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;AAC/B,MAAM,QAAQ,EAAE,EAAE,GAAG,IAAI,CAAC,QAAQ,EAAE,KAAK;AACzC,KAAK,CAAC;;AAEN,IAAI,KAAK,CAAC,MAAM,GAAG,MAAM;;AAEzB,IAAI,OAAO,MAAM;AACjB;;AAEA,EAAE,YAAY,CAAC,QAAQ,EAAE;;AAEzB;AACA;AACA;AACA,IAAI,IAAI,MAAM,GAAG,IAAI;;AAErB,IAAI,KAAK,MAAM,KAAK,IAAI,QAAQ,EAAE;AAClC,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC;AACtC;;AAEA,IAAI,OAAO,MAAM;AACjB;;AAEA,EAAE,WAAW,GAAG;;AAEhB,IAAI,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE;AAClC,MAAM,MAAM,KAAK,CAAC,2BAA2B,CAAC;AAC9C;;AAEA,IAAI,MAAM,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC;;AAE9C,IAAI,QAAQ,IAAI,OAAO,CAAC,GAAG,CAAC,uBAAuB,EAAE,IAAI,CAAC,IAAI,EAAE,YAAY,CAAC;;AAE7E,IAAI,OAAO,IAAI,CAAC,MAAM,CAAC;AACvB,MAAM,MAAM,EAAE;AACd,KAAK,CAAC,CAAC,SAAS;AAChB,MAAM,IAAI,CAAC,EAAE,CAAC;AACd,QAAQ,IAAI,EAAE,MAAM;AACpB,QAAQ,KAAK,EAAE;AACf,OAAO;AACP,KAAK;AACL;;AAEA,EAAE,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE;;AAEtB,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;AAClC,MAAM,QAAQ,IAAI,OAAO,CAAC,GAAG,CAAC,wBAAwB,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC;;AAE/E,MAAM,OAAO,IAAI;AACjB;;AAEA,IAAI,QAAQ,IAAI,OAAO,CAAC,GAAG,CAAC,qBAAqB,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC;;AAE1E,IAAI,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC;;AAEjD,IAAI,OAAO,IAAI,CAAC,MAAM,CAAC;AACvB,MAAM;AACN,KAAK,CAAC;AACN;;AAEA;AACA;AACA;AACA;AACA;AACA,EAAE,MAAM,CAAC,OAAO,GAAG,EAAE,EAAE;;AAEvB,IAAI,OAAO,SAAS,CAAC,EAAE,CAAC;AACxB,MAAM,GAAG,IAAI;AACb,MAAM,GAAG;AACT,KAAK,CAAC;AACN;;AAEA;AACA;AACA;AACA;AACA;AACA,EAAE,EAAE,CAAC,OAAO,GAAG,EAAE,EAAE;;AAEnB,IAAI,MAAM,cAAc,GAAG;AAC3B,MAAM,OAAO,EAAE,IAAI,CAAC,OAAO;AAC3B,MAAM,MAAM,EAAE,IAAI,CAAC;AACnB,KAAK;;AAEL,IAAI,OAAO,SAAS,CAAC,EAAE,CAAC;AACxB,MAAM,GAAG,cAAc;AACvB,MAAM,GAAG;AACT,KAAK,CAAC;AACN;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,OAAO,EAAE,CAAC,OAAO,EAAE;;AAErB,IAAI,MAAM;AACV,MAAM,IAAI;AACV,MAAM,MAAM,GAAG,EAAE;AACjB,MAAM,QAAQ,GAAG,EAAE;AACnB,MAAM,MAAM,GAAG,IAAI;AACnB,MAAM,OAAO;AACb,MAAM,KAAK;AACX,MAAM;AACN,KAAK,GAAG,OAAO;;AAEf,IAAI,IAAI,CAAC,OAAO,EAAE;AAClB,MAAM,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC;AAC/C;;AAEA,IAAI,OAAO,IAAI,SAAS,CAAC;AACzB,MAAM,IAAI;AACV,MAAM,MAAM,EAAE,EAAE,GAAG,MAAM,EAAE;AAC3B,MAAM,QAAQ,EAAE,EAAE,GAAG,QAAQ,EAAE;AAC/B,MAAM,OAAO;AACb,MAAM,MAAM;AACZ,MAAM,KAAK;AACX,MAAM;AACN,KAAK,CAAC;AACN;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACO,SAAS,mBAAmB,CAAC,IAAI,EAAE;AAC1C,EAAE,OAAO,IAAI,CAAC,OAAO,CAAC,yBAAyB,EAAE,MAAM,CAAC,CAAC,OAAO,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE;AACvF;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,IAAI,CAAC,SAAS,EAAE,SAAS,EAAE,IAAI,EAAE;;AAE1C,EAAE,MAAM,KAAK,GAAG,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC;AACpE,EAAE,MAAM,QAAQ,GAAG,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC;;AAEvE,EAAE,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,CAAC;AAC3B,EAAE,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;;AAExD,EAAE,MAAM,IAAI,GAAG,QAAQ,EAAE,aAAa,EAAE;AACxC,EAAE,MAAM,KAAK,GAAG,SAAS,EAAE,aAAa,EAAE,IAAI,IAAI;;AAElD,EAAE,OAAO;AACT,KAAK,MAAM,CAAC;AACZ,MAAM;AACN,KAAK;AACL,KAAK,UAAU,CAAC,SAAS;AACzB,KAAK,YAAY,CAAC,KAAK;AACvB,KAAK,SAAS,CAAC,IAAI;AACnB,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC;AACxB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACO,SAAS,cAAc,CAAC,OAAO,GAAG,EAAE,EAAE,OAAO,GAAG,eAAe,EAAE;;AAExE,EAAE,MAAM,KAAK,GAAG,SAAS,CAAC,EAAE,CAAC;AAC7B,IAAI,OAAO,EAAE,OAAO,CAAC,EAAE,CAAC,OAAO;AAC/B,GAAG,CAAC;;AAEJ,EAAE,OAAO,IAAI,cAAc,CAAC;AAC5B,IAAI,KAAK;AACT,IAAI,MAAM,CAAC,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE;;AAE1C,MAAM,IAAI,IAAI,KAAK,YAAY,EAAE;AACjC,QAAQ,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;;AAEnE,QAAQ,SAAS,GAAG,SAAS,CAAC,MAAM,CAAC;AACrC,UAAU,KAAK,EAAE,OAAO,CAAC,EAAE;AAC3B,YAAY,QAAQ,EAAE,aAAa,EAAE;AACrC,YAAY,QAAQ,EAAE,aAAa;AACnC;AACA,SAAS,CAAC;AACV;;AAEA,MAAM,IAAI,IAAI,KAAK,IAAI,EAAE;AACzB,QAAQ,SAAS,GAAG,SAAS,CAAC,MAAM,CAAC;AACrC,UAAU,KAAK,EAAE,OAAO,CAAC,EAAE;AAC3B,YAAY,GAAG,SAAS,CAAC,QAAQ,CAAC,GAAG;AACrC,cAAc,CAAC,IAAI,CAAC,EAAE,aAAa;AACnC;AACA;AACA,SAAS,CAAC;AACV;;AAEA,MAAM,IAAI,IAAI,KAAK,gBAAgB,EAAE;AACrC,QAAQ,MAAM,EAAE,UAAU,EAAE,CAAC,EAAE,GAAG,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;;AAE9D,QAAQ,SAAS,GAAG,SAAS,CAAC,MAAM,CAAC;AACrC,UAAU,KAAK,EAAE,UAAU,EAAE,aAAa;AAC1C,SAAS,CAAC;AACV;;AAEA,MAAM,IAAI,IAAI,KAAK,kBAAkB,EAAE;;AAEvC,QAAQ,MAAM;AACd,UAAU,IAAI;AACd,UAAU,GAAG;AACb,SAAS,GAAG,SAAS,CAAC,QAAQ;;AAE9B;AACA,QAAQ,IAAI,IAAI,EAAE,GAAG,KAAK,WAAW,EAAE;AACvC,UAAU,SAAS,GAAG,eAAe,CAAC,SAAS,EAAE,IAAI,CAAC;AACtD;AACA;;AAEA,MAAM,MAAM,KAAK,GAAG,aAAa,CAAC,IAAI,CAAC;;AAEvC,MAAM,IAAI,KAAK,EAAE;AACjB,QAAQ,OAAO,SAAS,CAAC,UAAU,CAAC,KAAK,CAAC;AAC1C;;AAEA,MAAM,MAAM,aAAa,GAAG,qBAAqB,CAAC,IAAI,CAAC;;AAEvD;AACA,MAAM,IAAI,aAAa,EAAE;;AAEzB,QAAQ,MAAM;AACd,UAAU,QAAQ,EAAE,eAAe;AACnC,UAAU,OAAO,EAAE,cAAc;AACjC,SAAS,GAAG,SAAS;;AAErB,QAAQ,MAAM,QAAQ,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC;AACrD,QAAQ,MAAM,SAAS,GAAG,IAAI,CAAC,eAAe,CAAC;;AAE/C,QAAQ,IAAI,UAAU,GAAG,IAAI;;AAE7B,QAAQ,IAAI,IAAI,KAAK,mBAAmB,EAAE;AAC1C,UAAU,UAAU,GAAG,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,aAAa,EAAE,CAAC;AAC7D;;AAEA,QAAQ,IAAI,IAAI,KAAK,qBAAqB,EAAE;AAC5C,UAAU,UAAU,GAAG,OAAO,CAAC,EAAE;AACjC,YAAY,cAAc;AAC1B,YAAY,SAAS,EAAE,aAAa;AACpC,WAAW,CAAC,GAAG,CAAC,MAAM,EAAE,SAAS,EAAE,aAAa,EAAE,CAAC;AACnD;;AAEA,QAAQ,OAAO;AACf,WAAW,MAAM,CAAC,EAAE,QAAQ,EAAE;AAC9B,WAAW,UAAU,CAAC,aAAa;AACnC,WAAW,SAAS,CAAC,SAAS;AAC9B,WAAW,MAAM,CAAC,EAAE,OAAO,EAAE,UAAU,IAAI,cAAc,EAAE,CAAC;AAC5D;;AAEA;AACA,MAAM,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC;;AAEnD,MAAM,MAAM,GAAG,GAAG,WAAW,CAAC,IAAI,CAAC;;AAEnC,MAAM,IAAI,GAAG,EAAE;AACf,QAAQ,OAAO,SAAS,CAAC,SAAS,CAAC,IAAI,CAAC;AACxC;;AAEA,MAAM,IAAI,IAAI,KAAK,YAAY,EAAE;AACjC,QAAQ,MAAM,KAAK,GAAG,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,cAAc,CAAC;;AAE/E,QAAQ,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC;AAC7B,QAAQ,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;;AAEjC,QAAQ,OAAO,IAAI,CAAC,SAAS,EAAE,cAAc,EAAE,IAAI,CAAC,CAAC,MAAM;AAC3D,UAAU;AACV,YAAY,KAAK,EAAE;AACnB,eAAe,EAAE,CAAC,SAAS,CAAC,KAAK;AACjC,eAAe,GAAG,CAAC,IAAI,EAAE,aAAa,EAAE,EAAE,KAAK,EAAE,aAAa,EAAE;AAChE;AACA,SAAS;AACT;;AAEA,MAAM;AACN,QAAQ,IAAI,KAAK,eAAe;AAChC,QAAQ,IAAI,KAAK;AACjB,QAAQ;AACR,QAAQ,OAAO,IAAI,CAAC,SAAS,EAAE,cAAc,EAAE,IAAI,CAAC;AACpD;;AAEA;AACA,MAAM,IAAI,IAAI,KAAK,sBAAsB,EAAE;;AAE3C,QAAQ,OAAO,SAAS,CAAC,MAAM;AAC/B,UAAU,SAAS;AACnB,UAAU,aAAa,CAAC,EAAE,CAAC,SAAS,IAAI;AACxC,YAAY,OAAO,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,aAAa,EAAE;AAC5D,WAAW;AACX,SAAS;AACT;;AAEA,MAAM;AACN,QAAQ,IAAI,KAAK;AACjB,QAAQ;AACR,QAAQ,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,aAAa,EAAE;;AAE7D;AACA,QAAQ,OAAO,SAAS,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;AACxC;;AAEA;AACA,MAAM;AACN,QAAQ,IAAI,KAAK,mBAAmB;AACpC,QAAQ,IAAI,KAAK,oBAAoB;AACrC,QAAQ,IAAI,KAAK;AACjB,QAAQ;AACR,QAAQ,MAAM,QAAQ,GAAG,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC;AACxD,QAAQ,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC;;AAElD,QAAQ,OAAO,SAAS,CAAC,MAAM,CAAC;AAChC,UAAU;AACV,SAAS,CAAC,CAAC,UAAU,CAAC,sBAAsB,CAAC,CAAC,SAAS,CAAC,SAAS,CAAC;AAClE;;AAEA,MAAM,IAAI,IAAI,KAAK,oBAAoB,EAAE;AACzC,QAAQ,OAAO,SAAS,CAAC,UAAU,CAAC,sBAAsB,CAAC;AAC3D;;AAEA,MAAM;AACN,QAAQ,IAAI,KAAK,UAAU;AAC3B,QAAQ,IAAI,KAAK,oBAAoB;AACrC,QAAQ,IAAI,KAAK;AACjB,QAAQ;AACR,QAAQ,OAAO,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC;AACpC;;AAEA,MAAM;AACN,QAAQ,IAAI,KAAK;AACjB,QAAQ;AACR,QAAQ,OAAO,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;AAC5D;;AAEA,MAAM,IAAI,IAAI,KAAK,cAAc,EAAE;AACnC,QAAQ,OAAO,SAAS,CAAC,OAAO,CAAC,IAAI,KAAK,MAAM,GAAG,IAAI,GAAG,KAAK,CAAC;AAChE;;AAEA,MAAM,IAAI,IAAI,KAAK,cAAc,EAAE;AACnC,QAAQ,OAAO,SAAS,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;AAClD;;AAEA,MAAM,IAAI,IAAI,KAAK,GAAG,EAAE;AACxB,QAAQ,OAAO,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC;AACtC;;AAEA,MAAM;AACN,QAAQ,IAAI,KAAK;AACjB,QAAQ;AACR,QAAQ,OAAO,SAAS,CAAC,WAAW,EAAE;AACtC;;AAEA,MAAM;AACN,QAAQ,IAAI,KAAK,IAAI;AACrB,QAAQ,IAAI,KAAK;AACjB,QAAQ;AACR,QAAQ,OAAO,SAAS,CAAC,WAAW,EAAE;AACtC;;AAEA,MAAM;AACN,QAAQ,IAAI,KAAK,WAAW;AAC5B,QAAQ,IAAI,KAAK;AACjB,QAAQ;AACR,QAAQ,IAAI,SAAS,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;AACzC,UAAU,MAAM,IAAI,KAAK,CAAC,gBAAgB,CAAC;AAC3C;AACA;;AAEA,MAAM,IAAI,IAAI,KAAK,WAAW,EAAE;;AAEhC,QAAQ,IAAI,MAAM,GAAG,SAAS;;AAE9B,QAAQ,OAAO,MAAM,CAAC,MAAM,EAAE;AAC9B,UAAU,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC;AACzC;;AAEA,QAAQ,OAAO,MAAM;AACrB;;AAEA,MAAM,OAAO,SAAS;AACtB;AACA,GAAG,CAAC;AACJ;;AAEO,MAAM,eAAe,GAAG,cAAc,CAAC,EAAE,CAAC;;;AAGjD;;AAEA,SAAS,eAAe,CAAC,SAAS,EAAE,IAAI,EAAE;;AAE1C,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;AACpB,IAAI,OAAO,SAAS,CAAC,MAAM,CAAC;AAC5B,MAAM,KAAK,EAAE;AACb,KAAK,CAAC;AACN;;AAEA,EAAE,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,EAAE;AAC/B,IAAI,IAAI,GAAG,gBAAgB,CAAC,IAAI,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC;AACjD;;AAEA,EAAE,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;AACzB,IAAI,OAAO,SAAS,CAAC,MAAM,CAAC;AAC5B,MAAM,KAAK,EAAE;AACb,KAAK,CAAC;AACN;;AAEA,EAAE,MAAM;AACR,IAAI,OAAO;AACX,IAAI;AACJ,GAAG,GAAG,IAAI;;AAEV,EAAE,MAAM,QAAQ,GAAG,GAAG,EAAE,aAAa,EAAE;AACvC,EAAE,MAAM,YAAY,GAAG,OAAO,EAAE,aAAa,EAAE;;AAE/C,EAAE;AACF,IAAI,CAAC,CAAC,YAAY,IAAI,OAAO,YAAY,KAAK,QAAQ,KAAK,OAAO,QAAQ,KAAK;AAC/E,IAAI;AACJ,IAAI,OAAO,SAAS,CAAC,MAAM,CAAC;AAC5B,MAAM,KAAK,EAAE;AACb,KAAK,CAAC;AACN;;AAEA,EAAE,OAAO,SAAS,CAAC,MAAM,CAAC;AAC1B,IAAI,KAAK,EAAE,EAAE,mBAAmB,CAAC,QAAQ,CAAC,EAAE,QAAQ,EAAE,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,QAAQ,KAAK;AACnF,MAAM,OAAO,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,KAAK;AAChD,KAAK,EAAE,IAAI;AACX,GAAG,CAAC;AACJ;;AAEA,SAAS,gBAAgB,CAAC,IAAI,EAAE,QAAQ,EAAE;;AAE1C,EAAE,MAAM,OAAO,GAAG,EAAE;;AAEpB,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE;AAC3C,IAAI,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;;AAEhD,IAAI,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,KAAK;AAC/B;;AAEA,EAAE,OAAO,QAAQ,CAAC,GAAG,CAAC,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;AAC5C;;AAEA,SAAS,IAAI,CAAC,GAAG,EAAE;AACnB,EAAE,OAAO,GAAG,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC;AAC5B;;AC7uCO,MAAM,gBAAgB,GAAG,SAAS,CAAC;AAC1C,EAAE,aAAa,EAAEA,IAAC,CAAC,MAAM;AACzB,EAAE,cAAc,EAAEA,IAAC,CAAC,MAAM;AAC1B,EAAE,cAAc,EAAEA,IAAC,CAAC,IAAI;AACxB,EAAE,YAAY,EAAEA,IAAC,CAAC,OAAO,CAACA,IAAC,CAAC,MAAM,CAAC;AACnC,EAAE,SAAS,EAAEA,IAAC,CAAC,eAAe;AAC9B,EAAE,OAAO,EAAEA,IAAC,CAAC,kBAAkB;AAC/B,EAAE,sDAAsD,EAAEA,IAAC,CAAC,cAAc;AAC1E,EAAE,uBAAuB,EAAEA,IAAC,CAAC,eAAe;AAC5C,EAAE,QAAQ,EAAEA,IAAC,CAAC,iBAAiB;AAC/B,EAAE,EAAE,EAAEA,IAAC,CAAC,OAAO;AACf,EAAE,UAAU,EAAEA,IAAC,CAAC,QAAQ;AACxB,EAAE,QAAQ,EAAEA,IAAC,CAAC,OAAO,CAACA,IAAC,CAAC,YAAY,CAAC;AACrC,EAAE,IAAI,EAAEA,IAAC,CAAC,IAAI;AACd,EAAE,WAAW,EAAEA,IAAC,CAAC,WAAW;AAC5B,EAAE,YAAY,EAAEA,IAAC,CAAC,YAAY;AAC9B,EAAE,mBAAmB,EAAEA,IAAC,CAAC,YAAY;AACrC,EAAE,2CAA2C,EAAEA,IAAC,CAAC,QAAQ,CAACA,IAAC,CAAC,OAAO,CAACA,IAAC,CAAC,YAAY,CAAC,CAAC;AACpF,EAAE,eAAe,EAAEA,IAAC,CAAC,IAAI;AACzB,EAAE,OAAO,EAAEA,IAAC,CAAC,UAAU,CAACA,IAAC,CAAC,OAAO,CAAC;AAClC,EAAE,OAAO,EAAEA,IAAC,CAAC,UAAU,CAACA,IAAC,CAAC,YAAY,CAAC;AACvC,EAAE,kCAAkC,EAAEA,IAAC,CAAC,UAAU,CAACA,IAAC,CAAC,YAAY,CAAC;AAClE,EAAE,8BAA8B,EAAEA,IAAC,CAAC,QAAQ,CAACA,IAAC,CAAC,YAAY,CAAC;AAC5D,EAAE,gCAAgC,EAAEA,IAAC,CAAC,QAAQ,CAACA,IAAC,CAAC,UAAU,CAACA,IAAC,CAAC,YAAY,CAAC,CAAC;AAC5E,EAAE,KAAK,EAAEA,IAAC,CAAC,KAAK;AAChB,EAAE,KAAK,EAAEA,IAAC,CAAC,aAAa;AACxB,EAAE,KAAK,EAAEA,IAAC,CAAC,KAAK;AAChB,EAAE,GAAG,EAAEA,IAAC,CAAC,aAAa;AACtB,EAAE,KAAK,EAAEA,IAAC,CAAC,SAAS;AACpB,EAAE,IAAI,EAAEA,IAAC,CAAC;AACV,CAAC,CAAC;;AChCF;AAIA,MAAM,eAAe,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,SAAS,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,OAAO,CAAC,EAAE,EAAE,QAAQ,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,QAAQ,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,QAAQ,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG;AACpU,MAAC,MAAM,GAAG,QAAQ,CAAC,WAAW,CAAC;AAC3C,EAAE,OAAO,EAAE,EAAE;AACb,EAAE,MAAM,EAAE,syFAAsyF;AAChzF,EAAE,SAAS,EAAE,g2GAAg2G;AAC72G,EAAE,IAAI,EAAE,o3FAAo3F;AAC53F,EAAE,SAAS,EAAE,2lCAA2lC;AACxmC,EAAE,OAAO,EAAE,GAAG;AACd,EAAE,OAAO,EAAE,eAAe;AAC1B,EAAE,SAAS,EAAE;AACb,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,WAAW,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,cAAc,CAAC;AAC3H,IAAI,CAAC,UAAU,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC;AACtC,IAAI,CAAC,UAAU,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG;AACrC,GAAG;AACH,EAAE,WAAW,EAAE,CAAC,gBAAgB,CAAC;AACjC,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACvB,EAAE,eAAe,EAAE,EAAE;AACrB,EAAE,SAAS,EAAE,0iCAA0iC;AACvjC,EAAE,UAAU,EAAE,CAAC,mBAAmB,EAAE,WAAW,EAAE,eAAe,EAAE,CAAC,EAAE,CAAC,CAAC;AACvE,EAAE,QAAQ,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AAC3E,EAAE,QAAQ,EAAE,CAAC,OAAO,EAAE,IAAI,CAAC;AAC3B,EAAE,kBAAkB,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;AACtD,EAAE,WAAW,EAAE,CAAC,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,KAAK,KAAK,eAAe,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;AAC1E,EAAE,SAAS,EAAE;AACb,CAAC;;;;"}
@@ -0,0 +1,61 @@
1
+ {
2
+ "name": "lezer-feel",
3
+ "version": "1.7.0",
4
+ "description": "Lezer-based FEEL grammar",
5
+ "type": "module",
6
+ "exports": {
7
+ ".": {
8
+ "import": "./dist/index.js",
9
+ "require": "./dist/index.cjs",
10
+ "types": "./dist/index.d.ts"
11
+ },
12
+ "./package.json": "./package.json"
13
+ },
14
+ "types": "./dist/index.d.ts",
15
+ "author": "Nico Rehwaldt <https://github.com/nikku>",
16
+ "license": "MIT",
17
+ "sideEffects": false,
18
+ "devDependencies": {
19
+ "@lezer/generator": "^1.7.2",
20
+ "@rollup/plugin-node-resolve": "^16.0.0",
21
+ "@types/chai": "^5.0.1",
22
+ "@types/mocha": "^10.0.10",
23
+ "@types/node": "^20.16.11",
24
+ "chai": "^5.1.2",
25
+ "chokidar-cli": "^3.0.0",
26
+ "eslint": "^9.18.0",
27
+ "eslint-plugin-bpmn-io": "^2.0.2",
28
+ "mocha": "^10.8.2",
29
+ "npm-run-all2": "^7.0.2",
30
+ "rollup": "^4.30.1",
31
+ "source-map-support": "^0.5.21",
32
+ "typescript": "^5.6.3"
33
+ },
34
+ "dependencies": {
35
+ "@lezer/highlight": "^1.2.1",
36
+ "@lezer/lr": "^1.4.2",
37
+ "min-dash": "^4.2.1"
38
+ },
39
+ "engines": {
40
+ "node": "*"
41
+ },
42
+ "repository": {
43
+ "type": "git",
44
+ "url": "https://github.com/nikku/lezer-feel.git"
45
+ },
46
+ "scripts": {
47
+ "build": "lezer-generator src/feel.grammar -o src/parser && rollup -c",
48
+ "build-debug": "lezer-generator src/feel.grammar --names -o src/parser && rollup -c",
49
+ "test": "mocha -r source-map-support/register test/test-*.js",
50
+ "dev": "run-p dev:*",
51
+ "dev:build": "chokidar 'src/*.grammar' 'src/{highlight,tokens}.js' --initial -c 'npm run build-debug'",
52
+ "dev:test": "chokidar '{dist,test}/**/*.{js,cjs,txt}' -c 'npm test'",
53
+ "all": "run-s lint build check-types test",
54
+ "lint": "eslint .",
55
+ "check-types": "tsc --noEmit",
56
+ "prepare": "run-s build"
57
+ },
58
+ "files": [
59
+ "dist"
60
+ ]
61
+ }
@@ -0,0 +1,7 @@
1
+ Copyright 2019 JS Foundation and other contributors
2
+
3
+ Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
4
+
5
+ The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
6
+
7
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
@@ -0,0 +1,55 @@
1
+ # Luxon
2
+
3
+ [![MIT License][license-image]][license] [![Build Status][github-action-image]][github-action-url] [![NPM version][npm-version-image]][npm-url] [![Coverage Status][test-coverage-image]][test-coverage-url] [![PRs welcome][contributing-image]][contributing-url]
4
+
5
+ Luxon is a library for working with dates and times in JavaScript.
6
+
7
+ ```js
8
+ DateTime.now().setZone("America/New_York").minus({ weeks: 1 }).endOf("day").toISO();
9
+ ```
10
+
11
+ ## Upgrading to 3.0
12
+
13
+ [Guide](https://moment.github.io/luxon/#upgrading)
14
+
15
+ ## Features
16
+ * DateTime, Duration, and Interval types.
17
+ * Immutable, chainable, unambiguous API.
18
+ * Parsing and formatting for common and custom formats.
19
+ * Native time zone and Intl support (no locale or tz files).
20
+
21
+ ## Download/install
22
+
23
+ [Download/install instructions](https://moment.github.io/luxon/#/install)
24
+
25
+ ## Documentation
26
+
27
+ * [General documentation](https://moment.github.io/luxon/#/?id=luxon)
28
+ * [API docs](https://moment.github.io/luxon/api-docs/index.html)
29
+ * [Quick tour](https://moment.github.io/luxon/#/tour)
30
+ * [For Moment users](https://moment.github.io/luxon/#/moment)
31
+ * [Why does Luxon exist?](https://moment.github.io/luxon/#/why)
32
+ * [A quick demo](https://moment.github.io/luxon/demo/global.html)
33
+
34
+ ## Development
35
+
36
+ See [contributing](CONTRIBUTING.md).
37
+
38
+ ![Phasers to stun][phasers-image]
39
+
40
+ [license-image]: https://img.shields.io/badge/license-MIT-blue.svg
41
+ [license]: LICENSE.md
42
+
43
+ [github-action-image]: https://github.com/moment/luxon/actions/workflows/test.yml/badge.svg
44
+ [github-action-url]: https://github.com/moment/luxon/actions/workflows/test.yml
45
+
46
+ [npm-url]: https://npmjs.org/package/luxon
47
+ [npm-version-image]: https://badge.fury.io/js/luxon.svg
48
+
49
+ [test-coverage-url]: https://codecov.io/gh/moment/luxon
50
+ [test-coverage-image]: https://codecov.io/gh/moment/luxon/branch/master/graph/badge.svg
51
+
52
+ [contributing-url]: https://github.com/moment/luxon/blob/master/CONTRIBUTING.md
53
+ [contributing-image]: https://img.shields.io/badge/PRs-welcome-brightgreen.svg
54
+
55
+ [phasers-image]: https://img.shields.io/badge/phasers-stun-brightgreen.svg