@zwave-js/config 15.15.3 → 15.17.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 (67) hide show
  1. package/build/cjs/JsonTemplate.js +2 -2
  2. package/build/cjs/JsonTemplate.js.map +2 -2
  3. package/build/cjs/Logic.d.ts +1 -1
  4. package/build/cjs/Logic.js +6 -7
  5. package/build/cjs/Logic.js.map +2 -2
  6. package/build/cjs/LogicParser.d.ts +66 -84
  7. package/build/cjs/LogicParser.js +410 -1337
  8. package/build/cjs/LogicParser.js.map +3 -3
  9. package/build/cjs/Manufacturers.js +1 -1
  10. package/build/cjs/Manufacturers.js.map +2 -2
  11. package/build/cjs/_version.d.ts +1 -1
  12. package/build/cjs/_version.js +1 -1
  13. package/build/cjs/_version.js.map +1 -1
  14. package/build/cjs/devices/DeviceConfig.d.ts +3 -3
  15. package/build/cjs/devices/DeviceConfig.js +3 -3
  16. package/build/cjs/devices/DeviceConfig.js.map +2 -2
  17. package/build/cjs/devices/DeviceConfig.unit._test.js.map +1 -1
  18. package/build/cjs/devices/ParamInformation.d.ts +2 -0
  19. package/build/cjs/devices/ParamInformation.js +16 -2
  20. package/build/cjs/devices/ParamInformation.js.map +2 -2
  21. package/build/cjs/index.js.map +2 -2
  22. package/build/esm/JsonTemplate.js +2 -2
  23. package/build/esm/JsonTemplate.js.map +1 -1
  24. package/build/esm/Logic.d.ts +1 -1
  25. package/build/esm/Logic.d.ts.map +1 -1
  26. package/build/esm/Logic.js +6 -8
  27. package/build/esm/Logic.js.map +1 -1
  28. package/build/esm/LogicParser.d.ts +66 -84
  29. package/build/esm/LogicParser.d.ts.map +1 -1
  30. package/build/esm/LogicParser.js +432 -2335
  31. package/build/esm/LogicParser.js.map +1 -1
  32. package/build/esm/Manufacturers.js +1 -1
  33. package/build/esm/Manufacturers.js.map +1 -1
  34. package/build/esm/_version.d.ts +1 -1
  35. package/build/esm/_version.js +1 -1
  36. package/build/esm/devices/DeviceConfig.d.ts +3 -3
  37. package/build/esm/devices/DeviceConfig.d.ts.map +1 -1
  38. package/build/esm/devices/DeviceConfig.js +4 -3
  39. package/build/esm/devices/DeviceConfig.js.map +1 -1
  40. package/build/esm/devices/DeviceConfig.unit._test.js +1 -0
  41. package/build/esm/devices/DeviceConfig.unit._test.js.map +1 -1
  42. package/build/esm/devices/ParamInformation.d.ts +2 -0
  43. package/build/esm/devices/ParamInformation.d.ts.map +1 -1
  44. package/build/esm/devices/ParamInformation.js +17 -2
  45. package/build/esm/devices/ParamInformation.js.map +1 -1
  46. package/build/esm/index.d.ts.map +1 -1
  47. package/build/esm/index.js +0 -1
  48. package/build/esm/index.js.map +1 -1
  49. package/config/devices/0x003b/be468zp.json +1 -1
  50. package/config/devices/0x003b/be469.json +2 -3
  51. package/config/devices/0x003b/be469zp.json +2 -3
  52. package/config/devices/0x0063/55258_zw4002.json +34 -1
  53. package/config/devices/0x0090/918.json +101 -0
  54. package/config/devices/0x0090/hc620.json +4 -0
  55. package/config/devices/0x0148/cometz_700.json +1 -1
  56. package/config/devices/0x021d/{ddl240x.json → ddl240x_15hzw.json} +1 -2
  57. package/config/devices/0x021d/ddl240x_1hzw.json +115 -0
  58. package/config/devices/0x027a/zse11.json +134 -0
  59. package/config/devices/0x0460/qlsh-001P10.json +119 -0
  60. package/config/devices/0x0460/qnpl-0A112.json +4 -0
  61. package/config/devices/0x0460/qnsw-001P16.json +15 -0
  62. package/config/devices/0x0460/qnsw-001X16.json +10 -0
  63. package/config/devices/0x0460/templates/wave_template.json +70 -0
  64. package/config/devices/0x0460/{qnsw-002P16.json → wave_2pm.json} +22 -1
  65. package/config/devices/templates/master_template.json +1 -1
  66. package/config/eslint.config.mjs +24 -19
  67. package/package.json +10 -12
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/LogicParser.ts"],
4
- "sourcesContent": ["// THIS FILE WAS AUTO GENERATED\n/* eslint-disable */\n// @ts-nocheck\n\n/* eslint-disable */\n\nconst peggyParser: { parse: any; SyntaxError: any; DefaultTracer?: any } = // Generated by Peggy 3.0.2.\n\t//\n\t// https://peggyjs.org/\n\t// @ts-ignore\n\t(function() {\n\t\t// @ts-ignore\n\t\t\"use strict\";\n\n\t\t// @ts-ignore\n\t\tfunction peg$subclass(child, parent) {\n\t\t\t// @ts-ignore\n\t\t\tfunction C() {\n\t\t\t\tthis.constructor = child;\n\t\t\t}\n\t\t\t// @ts-ignore\n\t\t\tC.prototype = parent.prototype;\n\t\t\t// @ts-ignore\n\t\t\tchild.prototype = new C();\n\t\t}\n\n\t\t// @ts-ignore\n\t\tfunction peg$SyntaxError(message, expected, found, location) {\n\t\t\t// @ts-ignore\n\t\t\tvar self = Error.call(this, message);\n\t\t\t// istanbul ignore next Check is a necessary evil to support older environments\n\t\t\t// @ts-ignore\n\t\t\tif (Object.setPrototypeOf) {\n\t\t\t\t// @ts-ignore\n\t\t\t\tObject.setPrototypeOf(self, peg$SyntaxError.prototype);\n\t\t\t}\n\t\t\t// @ts-ignore\n\t\t\tself.expected = expected;\n\t\t\t// @ts-ignore\n\t\t\tself.found = found;\n\t\t\t// @ts-ignore\n\t\t\tself.location = location;\n\t\t\t// @ts-ignore\n\t\t\tself.name = \"SyntaxError\";\n\t\t\t// @ts-ignore\n\t\t\treturn self;\n\t\t}\n\n\t\t// @ts-ignore\n\t\tpeg$subclass(peg$SyntaxError, Error);\n\n\t\t// @ts-ignore\n\t\tfunction peg$padEnd(str, targetLength, padString) {\n\t\t\t// @ts-ignore\n\t\t\tpadString = padString || \" \";\n\t\t\t// @ts-ignore\n\t\t\tif (str.length > targetLength) return str;\n\t\t\t// @ts-ignore\n\t\t\ttargetLength -= str.length;\n\t\t\t// @ts-ignore\n\t\t\tpadString += padString.repeat(targetLength);\n\t\t\t// @ts-ignore\n\t\t\treturn str + padString.slice(0, targetLength);\n\t\t}\n\n\t\t// @ts-ignore\n\t\tpeg$SyntaxError.prototype.format = function(sources) {\n\t\t\t// @ts-ignore\n\t\t\tvar str = \"Error: \" + this.message;\n\t\t\t// @ts-ignore\n\t\t\tif (this.location) {\n\t\t\t\t// @ts-ignore\n\t\t\t\tvar src = null;\n\t\t\t\t// @ts-ignore\n\t\t\t\tvar k;\n\t\t\t\t// @ts-ignore\n\t\t\t\tfor (k = 0; k < sources.length; k++) {\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\tif (sources[k].source === this.location.source) {\n\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\tsrc = sources[k].text.split(/\\r\\n|\\n|\\r/g);\n\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t// @ts-ignore\n\t\t\t\tvar s = this.location.start;\n\t\t\t\t// @ts-ignore\n\t\t\t\tvar offset_s =\n\t\t\t\t\t(this.location.source\n\t\t\t\t\t\t\t&& (typeof this.location.source.offset\n\t\t\t\t\t\t\t\t=== \"function\"))\n\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t? this.location.source.offset(s)\n\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t: s;\n\t\t\t\t// @ts-ignore\n\t\t\t\tvar loc = this.location.source\n\t\t\t\t\t+ \":\"\n\t\t\t\t\t+ offset_s.line\n\t\t\t\t\t+ \":\"\n\t\t\t\t\t+ offset_s.column;\n\t\t\t\t// @ts-ignore\n\t\t\t\tif (src) {\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\tvar e = this.location.end;\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\tvar filler = peg$padEnd(\n\t\t\t\t\t\t\"\",\n\t\t\t\t\t\toffset_s.line.toString().length,\n\t\t\t\t\t\t\" \",\n\t\t\t\t\t);\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\tvar line = src[s.line - 1];\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\tvar last = s.line === e.line ? e.column : line.length + 1;\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\tvar hatLen = (last - s.column) || 1;\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\tstr += \"\\n --> \" + loc + \"\\n\" // @ts-ignore\n\t\t\t\t\t+ filler + \" |\\n\" // @ts-ignore\n\t\t\t\t\t+ offset_s.line + \" | \" + line + \"\\n\" // @ts-ignore\n\t\t\t\t\t+ filler + \" | \" + peg$padEnd(\"\", s.column - 1, \" \") // @ts-ignore\n\t\t\t\t\t+ peg$padEnd(\"\", hatLen, \"^\");\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t} else {\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\tstr += \"\\n at \" + loc;\n\t\t\t\t}\n\t\t\t}\n\t\t\t// @ts-ignore\n\t\t\treturn str;\n\t\t};\n\n\t\t// @ts-ignore\n\t\tpeg$SyntaxError.buildMessage = function(expected, found) {\n\t\t\t// @ts-ignore\n\t\t\tvar DESCRIBE_EXPECTATION_FNS = {\n\t\t\t\t// @ts-ignore\n\t\t\t\tliteral: function(expectation) {\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\treturn \"\\\"\" + literalEscape(expectation.text) + \"\\\"\";\n\t\t\t\t},\n\n\t\t\t\t// @ts-ignore\n\t\t\t\tclass: function(expectation) {\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\tvar escapedParts = expectation.parts.map(function(part) {\n\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\treturn Array.isArray(part)\n\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\t? classEscape(part[0]) + \"-\" + classEscape(part[1])\n\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\t: classEscape(part);\n\t\t\t\t\t});\n\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\treturn \"[\"\n\t\t\t\t\t\t+ (expectation.inverted ? \"^\" : \"\")\n\t\t\t\t\t\t+ escapedParts.join(\"\")\n\t\t\t\t\t\t+ \"]\";\n\t\t\t\t},\n\n\t\t\t\t// @ts-ignore\n\t\t\t\tany: function() {\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\treturn \"any character\";\n\t\t\t\t},\n\n\t\t\t\t// @ts-ignore\n\t\t\t\tend: function() {\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\treturn \"end of input\";\n\t\t\t\t},\n\n\t\t\t\t// @ts-ignore\n\t\t\t\tother: function(expectation) {\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\treturn expectation.description;\n\t\t\t\t},\n\t\t\t};\n\n\t\t\t// @ts-ignore\n\t\t\tfunction hex(ch) {\n\t\t\t\t// @ts-ignore\n\t\t\t\treturn ch.charCodeAt(0).toString(16).toUpperCase();\n\t\t\t}\n\n\t\t\t// @ts-ignore\n\t\t\tfunction literalEscape(s) {\n\t\t\t\t// @ts-ignore\n\t\t\t\treturn s\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t.replace(/\\\\/g, \"\\\\\\\\\")\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t.replace(/\"/g, \"\\\\\\\"\")\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t.replace(/\\0/g, \"\\\\0\")\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t.replace(/\\t/g, \"\\\\t\")\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t.replace(/\\n/g, \"\\\\n\")\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t.replace(/\\r/g, \"\\\\r\")\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t.replace(/[\\x00-\\x0F]/g, function(ch) {\n\t\t\t\t\t\treturn \"\\\\x0\" + hex(ch);\n\t\t\t\t\t})\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t.replace(/[\\x10-\\x1F\\x7F-\\x9F]/g, function(ch) {\n\t\t\t\t\t\treturn \"\\\\x\" + hex(ch);\n\t\t\t\t\t});\n\t\t\t}\n\n\t\t\t// @ts-ignore\n\t\t\tfunction classEscape(s) {\n\t\t\t\t// @ts-ignore\n\t\t\t\treturn s\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t.replace(/\\\\/g, \"\\\\\\\\\")\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t.replace(/\\]/g, \"\\\\]\")\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t.replace(/\\^/g, \"\\\\^\")\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t.replace(/-/g, \"\\\\-\")\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t.replace(/\\0/g, \"\\\\0\")\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t.replace(/\\t/g, \"\\\\t\")\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t.replace(/\\n/g, \"\\\\n\")\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t.replace(/\\r/g, \"\\\\r\")\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t.replace(/[\\x00-\\x0F]/g, function(ch) {\n\t\t\t\t\t\treturn \"\\\\x0\" + hex(ch);\n\t\t\t\t\t})\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t.replace(/[\\x10-\\x1F\\x7F-\\x9F]/g, function(ch) {\n\t\t\t\t\t\treturn \"\\\\x\" + hex(ch);\n\t\t\t\t\t});\n\t\t\t}\n\n\t\t\t// @ts-ignore\n\t\t\tfunction describeExpectation(expectation) {\n\t\t\t\t// @ts-ignore\n\t\t\t\treturn DESCRIBE_EXPECTATION_FNS[expectation.type](expectation);\n\t\t\t}\n\n\t\t\t// @ts-ignore\n\t\t\tfunction describeExpected(expected) {\n\t\t\t\t// @ts-ignore\n\t\t\t\tvar descriptions = expected.map(describeExpectation);\n\t\t\t\t// @ts-ignore\n\t\t\t\tvar i, j;\n\n\t\t\t\t// @ts-ignore\n\t\t\t\tdescriptions.sort();\n\n\t\t\t\t// @ts-ignore\n\t\t\t\tif (descriptions.length > 0) {\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\tfor (i = 1, j = 1; i < descriptions.length; i++) {\n\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\tif (descriptions[i - 1] !== descriptions[i]) {\n\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\tdescriptions[j] = descriptions[i];\n\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\tj++;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\tdescriptions.length = j;\n\t\t\t\t}\n\n\t\t\t\t// @ts-ignore\n\t\t\t\tswitch (descriptions.length) {\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\tcase 1:\n\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\treturn descriptions[0];\n\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\tcase 2:\n\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\treturn descriptions[0] + \" or \" + descriptions[1];\n\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\tdefault:\n\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\treturn descriptions.slice(0, -1).join(\", \")\n\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\t+ \", or \"\n\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\t+ descriptions[descriptions.length - 1];\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// @ts-ignore\n\t\t\tfunction describeFound(found) {\n\t\t\t\t// @ts-ignore\n\t\t\t\treturn found\n\t\t\t\t\t? \"\\\"\" + literalEscape(found) + \"\\\"\"\n\t\t\t\t\t: \"end of input\";\n\t\t\t}\n\n\t\t\t// @ts-ignore\n\t\t\treturn \"Expected \"\n\t\t\t\t+ describeExpected(expected)\n\t\t\t\t+ \" but \"\n\t\t\t\t+ describeFound(found)\n\t\t\t\t+ \" found.\";\n\t\t};\n\n\t\t// @ts-ignore\n\t\tfunction peg$parse(input, options) {\n\t\t\t// @ts-ignore\n\t\t\toptions = options !== undefined ? options : {};\n\n\t\t\t// @ts-ignore\n\t\t\tvar peg$FAILED = {};\n\t\t\t// @ts-ignore\n\t\t\tvar peg$source = options.grammarSource;\n\n\t\t\t// @ts-ignore\n\t\t\tvar peg$startRuleFunctions = { start: peg$parsestart };\n\t\t\t// @ts-ignore\n\t\t\tvar peg$startRuleFunction = peg$parsestart;\n\n\t\t\t// @ts-ignore\n\t\t\tvar peg$c0 = \"(\";\n\t\t\tvar peg$c1 = \")\";\n\t\t\tvar peg$c2 = \"||\";\n\t\t\tvar peg$c3 = \"&&\";\n\t\t\tvar peg$c4 = \">=\";\n\t\t\tvar peg$c5 = \">\";\n\t\t\tvar peg$c6 = \"<=\";\n\t\t\tvar peg$c7 = \"<\";\n\t\t\tvar peg$c8 = \"===\";\n\t\t\tvar peg$c9 = \"-\";\n\t\t\tvar peg$c10 = \"0x\";\n\t\t\tvar peg$c11 = \".\";\n\t\t\tvar peg$c12 = \"\\\"\";\n\t\t\tvar peg$c13 = \"'\";\n\n\t\t\tvar peg$r0 = /^[a-zA-Z]/;\n\t\t\tvar peg$r1 = /^[a-zA-Z0-9]/;\n\t\t\tvar peg$r2 = /^[0-9]/;\n\t\t\tvar peg$r3 = /^[0-9a-f]/i;\n\t\t\tvar peg$r4 = /^[^\"]/;\n\t\t\tvar peg$r5 = /^[^']/;\n\t\t\tvar peg$r6 = /^[ \\t\\n\\r]/;\n\n\t\t\tvar peg$e0 = peg$otherExpectation(\"grouped expression\");\n\t\t\tvar peg$e1 = peg$literalExpectation(\"(\", false);\n\t\t\tvar peg$e2 = peg$literalExpectation(\")\", false);\n\t\t\tvar peg$e3 = peg$otherExpectation(\"logical OR\");\n\t\t\tvar peg$e4 = peg$literalExpectation(\"||\", false);\n\t\t\tvar peg$e5 = peg$otherExpectation(\"logical AND\");\n\t\t\tvar peg$e6 = peg$literalExpectation(\"&&\", false);\n\t\t\tvar peg$e7 = peg$otherExpectation(\"numeric comparison\");\n\t\t\tvar peg$e8 = peg$literalExpectation(\">=\", false);\n\t\t\tvar peg$e9 = peg$literalExpectation(\">\", false);\n\t\t\tvar peg$e10 = peg$literalExpectation(\"<=\", false);\n\t\t\tvar peg$e11 = peg$literalExpectation(\"<\", false);\n\t\t\tvar peg$e12 = peg$literalExpectation(\"===\", false);\n\t\t\tvar peg$e13 = peg$otherExpectation(\"version comparison\");\n\t\t\tvar peg$e14 = peg$otherExpectation(\"variable\");\n\t\t\tvar peg$e15 = peg$classExpectation(\n\t\t\t\t[[\"a\", \"z\"], [\"A\", \"Z\"]],\n\t\t\t\tfalse,\n\t\t\t\tfalse,\n\t\t\t);\n\t\t\tvar peg$e16 = peg$classExpectation(\n\t\t\t\t[[\"a\", \"z\"], [\"A\", \"Z\"], [\"0\", \"9\"]],\n\t\t\t\tfalse,\n\t\t\t\tfalse,\n\t\t\t);\n\t\t\tvar peg$e17 = peg$otherExpectation(\"number\");\n\t\t\tvar peg$e18 = peg$literalExpectation(\"-\", false);\n\t\t\tvar peg$e19 = peg$classExpectation([[\"0\", \"9\"]], false, false);\n\t\t\tvar peg$e20 = peg$otherExpectation(\"hex number\");\n\t\t\tvar peg$e21 = peg$literalExpectation(\"0x\", false);\n\t\t\tvar peg$e22 = peg$classExpectation(\n\t\t\t\t[[\"0\", \"9\"], [\"a\", \"f\"]],\n\t\t\t\tfalse,\n\t\t\t\ttrue,\n\t\t\t);\n\t\t\tvar peg$e23 = peg$otherExpectation(\"version string\");\n\t\t\tvar peg$e24 = peg$literalExpectation(\".\", false);\n\t\t\tvar peg$e25 = peg$otherExpectation(\"string\");\n\t\t\tvar peg$e26 = peg$literalExpectation(\"\\\"\", false);\n\t\t\tvar peg$e27 = peg$classExpectation([\"\\\"\"], true, false);\n\t\t\tvar peg$e28 = peg$literalExpectation(\"'\", false);\n\t\t\tvar peg$e29 = peg$classExpectation([\"'\"], true, false);\n\t\t\tvar peg$e30 = peg$otherExpectation(\"whitespace\");\n\t\t\tvar peg$e31 = peg$classExpectation(\n\t\t\t\t[\" \", \"\\t\", \"\\n\", \"\\r\"],\n\t\t\t\tfalse,\n\t\t\t\tfalse,\n\t\t\t);\n\t\t\t// @ts-ignore\n\n\t\t\tvar peg$f0 = function(group) { // @ts-ignore\n\t\t\t\treturn group;\n\t\t\t}; // @ts-ignore\n\n\t\t\tvar peg$f1 = function(head, tails) {\n\t\t\t\t// @ts-ignore\n\t\t\t\treturn { or: [head, ...tails] };\n\t\t\t}; // @ts-ignore\n\n\t\t\tvar peg$f2 = function(tail) { // @ts-ignore\n\t\t\t\treturn tail;\n\t\t\t}; // @ts-ignore\n\n\t\t\tvar peg$f3 = function(head, tails) {\n\t\t\t\t// @ts-ignore\n\t\t\t\treturn { and: [head, ...tails] };\n\t\t\t}; // @ts-ignore\n\n\t\t\tvar peg$f4 = function(tail) { // @ts-ignore\n\t\t\t\treturn tail;\n\t\t\t}; // @ts-ignore\n\n\t\t\tvar peg$f5 = function(head, expr, tail) {\n\t\t\t\t// @ts-ignore\n\t\t\t\treturn { [expr]: [head, tail] };\n\t\t\t}; // @ts-ignore\n\n\t\t\tvar peg$f6 = function(head, expr, tail) {\n\t\t\t\t// @ts-ignore\n\t\t\t\treturn { [\"ver \" + expr]: [head, tail] };\n\t\t\t}; // @ts-ignore\n\n\t\t\tvar peg$f7 = function(variable) { // @ts-ignore\n\t\t\t\treturn { var: variable[1].join(\"\") };\n\t\t\t}; // @ts-ignore\n\n\t\t\tvar peg$f8 = function() { // @ts-ignore\n\t\t\t\treturn parseInt(text(), 10);\n\t\t\t}; // @ts-ignore\n\n\t\t\tvar peg$f9 = function() { // @ts-ignore\n\t\t\t\treturn parseInt(text(), 16);\n\t\t\t}; // @ts-ignore\n\n\t\t\tvar peg$f10 = function(version) { // @ts-ignore\n\t\t\t\treturn text();\n\t\t\t}; // @ts-ignore\n\n\t\t\tvar peg$f11 = function() { // @ts-ignore\n\t\t\t\treturn text();\n\t\t\t}; // @ts-ignore\n\n\t\t\tvar peg$f12 = function() { // @ts-ignore\n\t\t\t\treturn text();\n\t\t\t};\n\t\t\t// @ts-ignore\n\t\t\tvar peg$currPos = 0;\n\t\t\t// @ts-ignore\n\t\t\tvar peg$savedPos = 0;\n\t\t\t// @ts-ignore\n\t\t\tvar peg$posDetailsCache = [{ line: 1, column: 1 }];\n\t\t\t// @ts-ignore\n\t\t\tvar peg$maxFailPos = 0;\n\t\t\t// @ts-ignore\n\t\t\tvar peg$maxFailExpected = [];\n\t\t\t// @ts-ignore\n\t\t\tvar peg$silentFails = 0;\n\n\t\t\t// @ts-ignore\n\t\t\tvar peg$result;\n\n\t\t\t// @ts-ignore\n\t\t\tif (\"startRule\" in options) {\n\t\t\t\t// @ts-ignore\n\t\t\t\tif (!(options.startRule in peg$startRuleFunctions)) {\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\tthrow new Error(\n\t\t\t\t\t\t\"Can't start parsing from rule \\\"\"\n\t\t\t\t\t\t\t+ options.startRule\n\t\t\t\t\t\t\t+ \"\\\".\",\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\t// @ts-ignore\n\t\t\t\tpeg$startRuleFunction =\n\t\t\t\t\tpeg$startRuleFunctions[options.startRule];\n\t\t\t}\n\n\t\t\t// @ts-ignore\n\t\t\tfunction text() {\n\t\t\t\t// @ts-ignore\n\t\t\t\treturn input.substring(peg$savedPos, peg$currPos);\n\t\t\t}\n\n\t\t\t// @ts-ignore\n\t\t\tfunction offset() {\n\t\t\t\t// @ts-ignore\n\t\t\t\treturn peg$savedPos;\n\t\t\t}\n\n\t\t\t// @ts-ignore\n\t\t\tfunction range() {\n\t\t\t\t// @ts-ignore\n\t\t\t\treturn {\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\tsource: peg$source,\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\tstart: peg$savedPos,\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\tend: peg$currPos,\n\t\t\t\t};\n\t\t\t}\n\n\t\t\t// @ts-ignore\n\t\t\tfunction location() {\n\t\t\t\t// @ts-ignore\n\t\t\t\treturn peg$computeLocation(peg$savedPos, peg$currPos);\n\t\t\t}\n\n\t\t\t// @ts-ignore\n\t\t\tfunction expected(description, location) {\n\t\t\t\t// @ts-ignore\n\t\t\t\tlocation = location !== undefined\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t? location\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t: peg$computeLocation(peg$savedPos, peg$currPos);\n\n\t\t\t\t// @ts-ignore\n\t\t\t\tthrow peg$buildStructuredError(\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t[peg$otherExpectation(description)],\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\tinput.substring(peg$savedPos, peg$currPos),\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\tlocation,\n\t\t\t\t);\n\t\t\t}\n\n\t\t\t// @ts-ignore\n\t\t\tfunction error(message, location) {\n\t\t\t\t// @ts-ignore\n\t\t\t\tlocation = location !== undefined\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t? location\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t: peg$computeLocation(peg$savedPos, peg$currPos);\n\n\t\t\t\t// @ts-ignore\n\t\t\t\tthrow peg$buildSimpleError(message, location);\n\t\t\t}\n\n\t\t\t// @ts-ignore\n\t\t\tfunction peg$literalExpectation(text, ignoreCase) {\n\t\t\t\t// @ts-ignore\n\t\t\t\treturn { type: \"literal\", text: text, ignoreCase: ignoreCase };\n\t\t\t}\n\n\t\t\t// @ts-ignore\n\t\t\tfunction peg$classExpectation(parts, inverted, ignoreCase) {\n\t\t\t\t// @ts-ignore\n\t\t\t\treturn {\n\t\t\t\t\ttype: \"class\",\n\t\t\t\t\tparts: parts,\n\t\t\t\t\tinverted: inverted,\n\t\t\t\t\tignoreCase: ignoreCase,\n\t\t\t\t};\n\t\t\t}\n\n\t\t\t// @ts-ignore\n\t\t\tfunction peg$anyExpectation() {\n\t\t\t\t// @ts-ignore\n\t\t\t\treturn { type: \"any\" };\n\t\t\t}\n\n\t\t\t// @ts-ignore\n\t\t\tfunction peg$endExpectation() {\n\t\t\t\t// @ts-ignore\n\t\t\t\treturn { type: \"end\" };\n\t\t\t}\n\n\t\t\t// @ts-ignore\n\t\t\tfunction peg$otherExpectation(description) {\n\t\t\t\t// @ts-ignore\n\t\t\t\treturn { type: \"other\", description: description };\n\t\t\t}\n\n\t\t\t// @ts-ignore\n\t\t\tfunction peg$computePosDetails(pos) {\n\t\t\t\t// @ts-ignore\n\t\t\t\tvar details = peg$posDetailsCache[pos];\n\t\t\t\t// @ts-ignore\n\t\t\t\tvar p;\n\n\t\t\t\t// @ts-ignore\n\t\t\t\tif (details) {\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\treturn details;\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t} else {\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\tp = pos - 1;\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\twhile (!peg$posDetailsCache[p]) {\n\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\tp--;\n\t\t\t\t\t}\n\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\tdetails = peg$posDetailsCache[p];\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\tdetails = {\n\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\tline: details.line,\n\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\tcolumn: details.column,\n\t\t\t\t\t};\n\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\twhile (p < pos) {\n\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\tif (input.charCodeAt(p) === 10) {\n\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\tdetails.line++;\n\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\tdetails.column = 1;\n\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\tdetails.column++;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\tp++;\n\t\t\t\t\t}\n\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\tpeg$posDetailsCache[pos] = details;\n\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\treturn details;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// @ts-ignore\n\t\t\tfunction peg$computeLocation(startPos, endPos, offset) {\n\t\t\t\t// @ts-ignore\n\t\t\t\tvar startPosDetails = peg$computePosDetails(startPos);\n\t\t\t\t// @ts-ignore\n\t\t\t\tvar endPosDetails = peg$computePosDetails(endPos);\n\n\t\t\t\t// @ts-ignore\n\t\t\t\tvar res = {\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\tsource: peg$source,\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\tstart: {\n\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\toffset: startPos,\n\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\tline: startPosDetails.line,\n\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\tcolumn: startPosDetails.column,\n\t\t\t\t\t},\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\tend: {\n\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\toffset: endPos,\n\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\tline: endPosDetails.line,\n\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\tcolumn: endPosDetails.column,\n\t\t\t\t\t},\n\t\t\t\t};\n\t\t\t\t// @ts-ignore\n\t\t\t\tif (\n\t\t\t\t\toffset\n\t\t\t\t\t&& peg$source\n\t\t\t\t\t&& (typeof peg$source.offset === \"function\")\n\t\t\t\t) {\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\tres.start = peg$source.offset(res.start);\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\tres.end = peg$source.offset(res.end);\n\t\t\t\t}\n\t\t\t\t// @ts-ignore\n\t\t\t\treturn res;\n\t\t\t}\n\n\t\t\t// @ts-ignore\n\t\t\tfunction peg$fail(expected) {\n\t\t\t\t// @ts-ignore\n\t\t\t\tif (peg$currPos < peg$maxFailPos) return;\n\n\t\t\t\t// @ts-ignore\n\t\t\t\tif (peg$currPos > peg$maxFailPos) {\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\tpeg$maxFailPos = peg$currPos;\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\tpeg$maxFailExpected = [];\n\t\t\t\t}\n\n\t\t\t\t// @ts-ignore\n\t\t\t\tpeg$maxFailExpected.push(expected);\n\t\t\t}\n\n\t\t\t// @ts-ignore\n\t\t\tfunction peg$buildSimpleError(message, location) {\n\t\t\t\t// @ts-ignore\n\t\t\t\treturn new peg$SyntaxError(message, null, null, location);\n\t\t\t}\n\n\t\t\t// @ts-ignore\n\t\t\tfunction peg$buildStructuredError(expected, found, location) {\n\t\t\t\t// @ts-ignore\n\t\t\t\treturn new peg$SyntaxError(\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\tpeg$SyntaxError.buildMessage(expected, found),\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\texpected,\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\tfound,\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\tlocation,\n\t\t\t\t);\n\t\t\t}\n\n\t\t\t// @ts-ignore\n\t\t\tfunction // @ts-ignore\n\t\t\tpeg$parsestart() {\n\t\t\t\t// @ts-ignore\n\t\t\t\tvar s0;\n\n\t\t\t\t// @ts-ignore\n\t\t\t\ts0 = peg$parsegroup();\n\t\t\t\t// @ts-ignore\n\t\t\t\tif (s0 === peg$FAILED) {\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\ts0 = peg$parseor();\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\tif (s0 === peg$FAILED) {\n\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\ts0 = peg$parseand();\n\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\tif (s0 === peg$FAILED) {\n\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\ts0 = peg$parsecomparison();\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// @ts-ignore\n\t\t\t\treturn s0;\n\t\t\t}\n\n\t\t\t// @ts-ignore\n\t\t\tfunction // @ts-ignore\n\t\t\tpeg$parsegroup() {\n\t\t\t\t// @ts-ignore\n\t\t\t\tvar s0, s1, s2, s3, s4, s5, s6;\n\n\t\t\t\t// @ts-ignore\n\t\t\t\tpeg$silentFails++;\n\t\t\t\t// @ts-ignore\n\t\t\t\ts0 = peg$currPos;\n\t\t\t\t// @ts-ignore\n\t\t\t\ts1 = peg$parse_();\n\t\t\t\t// @ts-ignore\n\t\t\t\tif (input.charCodeAt(peg$currPos) === 40) {\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\ts2 = peg$c0;\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\tpeg$currPos++;\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t} else {\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\ts2 = peg$FAILED;\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\tif (peg$silentFails === 0) peg$fail(peg$e1);\n\t\t\t\t}\n\t\t\t\t// @ts-ignore\n\t\t\t\tif (s2 !== peg$FAILED) {\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\ts3 = peg$parse_();\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\ts4 = peg$parseor();\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\tif (s4 !== peg$FAILED) {\n\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\ts5 = peg$parse_();\n\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\tif (input.charCodeAt(peg$currPos) === 41) {\n\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\ts6 = peg$c1;\n\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\tpeg$currPos++;\n\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\ts6 = peg$FAILED;\n\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\tif (peg$silentFails === 0) peg$fail(peg$e2);\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\tif (s6 !== peg$FAILED) {\n\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\tpeg$savedPos = s0;\n\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\ts0 = peg$f0(s4);\n\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\tpeg$currPos = s0;\n\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\ts0 = peg$FAILED;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\tpeg$currPos = s0;\n\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\ts0 = peg$FAILED;\n\t\t\t\t\t}\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t} else {\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\tpeg$currPos = s0;\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\ts0 = peg$FAILED;\n\t\t\t\t}\n\t\t\t\t// @ts-ignore\n\t\t\t\tpeg$silentFails--;\n\t\t\t\t// @ts-ignore\n\t\t\t\tif (s0 === peg$FAILED) {\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\ts1 = peg$FAILED;\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\tif (peg$silentFails === 0) peg$fail(peg$e0);\n\t\t\t\t}\n\n\t\t\t\t// @ts-ignore\n\t\t\t\treturn s0;\n\t\t\t}\n\n\t\t\t// @ts-ignore\n\t\t\tfunction // @ts-ignore\n\t\t\tpeg$parseor() {\n\t\t\t\t// @ts-ignore\n\t\t\t\tvar s0, s1, s2, s3, s4;\n\n\t\t\t\t// @ts-ignore\n\t\t\t\tpeg$silentFails++;\n\t\t\t\t// @ts-ignore\n\t\t\t\ts0 = peg$currPos;\n\t\t\t\t// @ts-ignore\n\t\t\t\ts1 = peg$parse_();\n\t\t\t\t// @ts-ignore\n\t\t\t\ts2 = peg$parseand();\n\t\t\t\t// @ts-ignore\n\t\t\t\tif (s2 === peg$FAILED) {\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\ts2 = peg$parsecomparison();\n\t\t\t\t}\n\t\t\t\t// @ts-ignore\n\t\t\t\tif (s2 !== peg$FAILED) {\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\ts3 = [];\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\ts4 = peg$parseor_tails();\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\tif (s4 !== peg$FAILED) {\n\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\twhile (s4 !== peg$FAILED) {\n\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\ts3.push(s4);\n\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\ts4 = peg$parseor_tails();\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\ts3 = peg$FAILED;\n\t\t\t\t\t}\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\tif (s3 !== peg$FAILED) {\n\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\tpeg$savedPos = s0;\n\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\ts0 = peg$f1(s2, s3);\n\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\tpeg$currPos = s0;\n\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\ts0 = peg$FAILED;\n\t\t\t\t\t}\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t} else {\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\tpeg$currPos = s0;\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\ts0 = peg$FAILED;\n\t\t\t\t}\n\t\t\t\t// @ts-ignore\n\t\t\t\tpeg$silentFails--;\n\t\t\t\t// @ts-ignore\n\t\t\t\tif (s0 === peg$FAILED) {\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\ts1 = peg$FAILED;\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\tif (peg$silentFails === 0) peg$fail(peg$e3);\n\t\t\t\t}\n\n\t\t\t\t// @ts-ignore\n\t\t\t\treturn s0;\n\t\t\t}\n\n\t\t\t// @ts-ignore\n\t\t\tfunction // @ts-ignore\n\t\t\tpeg$parseor_tails() {\n\t\t\t\t// @ts-ignore\n\t\t\t\tvar s0, s1, s2, s3, s4;\n\n\t\t\t\t// @ts-ignore\n\t\t\t\ts0 = peg$currPos;\n\t\t\t\t// @ts-ignore\n\t\t\t\ts1 = peg$parse_();\n\t\t\t\t// @ts-ignore\n\t\t\t\tif (input.substr(peg$currPos, 2) === peg$c2) {\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\ts2 = peg$c2;\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\tpeg$currPos += 2;\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t} else {\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\ts2 = peg$FAILED;\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\tif (peg$silentFails === 0) peg$fail(peg$e4);\n\t\t\t\t}\n\t\t\t\t// @ts-ignore\n\t\t\t\tif (s2 !== peg$FAILED) {\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\ts3 = peg$parse_();\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\ts4 = peg$parseand();\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\tif (s4 === peg$FAILED) {\n\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\ts4 = peg$parsecomparison();\n\t\t\t\t\t}\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\tif (s4 !== peg$FAILED) {\n\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\tpeg$savedPos = s0;\n\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\ts0 = peg$f2(s4);\n\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\tpeg$currPos = s0;\n\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\ts0 = peg$FAILED;\n\t\t\t\t\t}\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t} else {\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\tpeg$currPos = s0;\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\ts0 = peg$FAILED;\n\t\t\t\t}\n\n\t\t\t\t// @ts-ignore\n\t\t\t\treturn s0;\n\t\t\t}\n\n\t\t\t// @ts-ignore\n\t\t\tfunction // @ts-ignore\n\t\t\tpeg$parseand() {\n\t\t\t\t// @ts-ignore\n\t\t\t\tvar s0, s1, s2, s3, s4;\n\n\t\t\t\t// @ts-ignore\n\t\t\t\tpeg$silentFails++;\n\t\t\t\t// @ts-ignore\n\t\t\t\ts0 = peg$currPos;\n\t\t\t\t// @ts-ignore\n\t\t\t\ts1 = peg$parse_();\n\t\t\t\t// @ts-ignore\n\t\t\t\ts2 = peg$parsegroup();\n\t\t\t\t// @ts-ignore\n\t\t\t\tif (s2 === peg$FAILED) {\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\ts2 = peg$parsecomparison();\n\t\t\t\t}\n\t\t\t\t// @ts-ignore\n\t\t\t\tif (s2 !== peg$FAILED) {\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\ts3 = [];\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\ts4 = peg$parseand_tails();\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\tif (s4 !== peg$FAILED) {\n\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\twhile (s4 !== peg$FAILED) {\n\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\ts3.push(s4);\n\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\ts4 = peg$parseand_tails();\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\ts3 = peg$FAILED;\n\t\t\t\t\t}\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\tif (s3 !== peg$FAILED) {\n\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\tpeg$savedPos = s0;\n\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\ts0 = peg$f3(s2, s3);\n\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\tpeg$currPos = s0;\n\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\ts0 = peg$FAILED;\n\t\t\t\t\t}\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t} else {\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\tpeg$currPos = s0;\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\ts0 = peg$FAILED;\n\t\t\t\t}\n\t\t\t\t// @ts-ignore\n\t\t\t\tpeg$silentFails--;\n\t\t\t\t// @ts-ignore\n\t\t\t\tif (s0 === peg$FAILED) {\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\ts1 = peg$FAILED;\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\tif (peg$silentFails === 0) peg$fail(peg$e5);\n\t\t\t\t}\n\n\t\t\t\t// @ts-ignore\n\t\t\t\treturn s0;\n\t\t\t}\n\n\t\t\t// @ts-ignore\n\t\t\tfunction // @ts-ignore\n\t\t\tpeg$parseand_tails() {\n\t\t\t\t// @ts-ignore\n\t\t\t\tvar s0, s1, s2, s3, s4;\n\n\t\t\t\t// @ts-ignore\n\t\t\t\ts0 = peg$currPos;\n\t\t\t\t// @ts-ignore\n\t\t\t\ts1 = peg$parse_();\n\t\t\t\t// @ts-ignore\n\t\t\t\tif (input.substr(peg$currPos, 2) === peg$c3) {\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\ts2 = peg$c3;\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\tpeg$currPos += 2;\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t} else {\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\ts2 = peg$FAILED;\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\tif (peg$silentFails === 0) peg$fail(peg$e6);\n\t\t\t\t}\n\t\t\t\t// @ts-ignore\n\t\t\t\tif (s2 !== peg$FAILED) {\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\ts3 = peg$parse_();\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\ts4 = peg$parsegroup();\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\tif (s4 === peg$FAILED) {\n\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\ts4 = peg$parsecomparison();\n\t\t\t\t\t}\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\tif (s4 !== peg$FAILED) {\n\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\tpeg$savedPos = s0;\n\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\ts0 = peg$f4(s4);\n\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\tpeg$currPos = s0;\n\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\ts0 = peg$FAILED;\n\t\t\t\t\t}\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t} else {\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\tpeg$currPos = s0;\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\ts0 = peg$FAILED;\n\t\t\t\t}\n\n\t\t\t\t// @ts-ignore\n\t\t\t\treturn s0;\n\t\t\t}\n\n\t\t\t// @ts-ignore\n\t\t\tfunction // @ts-ignore\n\t\t\tpeg$parsecomparison() {\n\t\t\t\t// @ts-ignore\n\t\t\t\tvar s0;\n\n\t\t\t\t// @ts-ignore\n\t\t\t\ts0 = peg$parsever_comparison();\n\t\t\t\t// @ts-ignore\n\t\t\t\tif (s0 === peg$FAILED) {\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\ts0 = peg$parseint_comparison();\n\t\t\t\t}\n\n\t\t\t\t// @ts-ignore\n\t\t\t\treturn s0;\n\t\t\t}\n\n\t\t\t// @ts-ignore\n\t\t\tfunction // @ts-ignore\n\t\t\tpeg$parseint_comparison() {\n\t\t\t\t// @ts-ignore\n\t\t\t\tvar s0, s1, s2, s3, s4, s5, s6, s7;\n\n\t\t\t\t// @ts-ignore\n\t\t\t\tpeg$silentFails++;\n\t\t\t\t// @ts-ignore\n\t\t\t\ts0 = peg$currPos;\n\t\t\t\t// @ts-ignore\n\t\t\t\ts1 = peg$parse_();\n\t\t\t\t// @ts-ignore\n\t\t\t\ts2 = peg$parseterm();\n\t\t\t\t// @ts-ignore\n\t\t\t\tif (s2 !== peg$FAILED) {\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\ts3 = peg$parse_();\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\tif (input.substr(peg$currPos, 2) === peg$c4) {\n\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\ts4 = peg$c4;\n\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\tpeg$currPos += 2;\n\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\ts4 = peg$FAILED;\n\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\tif (peg$silentFails === 0) peg$fail(peg$e8);\n\t\t\t\t\t}\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\tif (s4 === peg$FAILED) {\n\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\tif (input.charCodeAt(peg$currPos) === 62) {\n\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\ts4 = peg$c5;\n\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\tpeg$currPos++;\n\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\ts4 = peg$FAILED;\n\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\tif (peg$silentFails === 0) peg$fail(peg$e9);\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\tif (s4 === peg$FAILED) {\n\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\tif (input.substr(peg$currPos, 2) === peg$c6) {\n\t\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\t\ts4 = peg$c6;\n\t\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\t\tpeg$currPos += 2;\n\t\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\t\ts4 = peg$FAILED;\n\t\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\t\tif (peg$silentFails === 0) peg$fail(peg$e10);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\tif (s4 === peg$FAILED) {\n\t\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\t\tif (input.charCodeAt(peg$currPos) === 60) {\n\t\t\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\t\t\ts4 = peg$c7;\n\t\t\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\t\t\tpeg$currPos++;\n\t\t\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\t\t\ts4 = peg$FAILED;\n\t\t\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\t\t\tif (peg$silentFails === 0) {\n\t\t\t\t\t\t\t\t\t\tpeg$fail(peg$e11);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\t\tif (s4 === peg$FAILED) {\n\t\t\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\t\t\tinput.substr(peg$currPos, 3) === peg$c8\n\t\t\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\t\t\t\ts4 = peg$c8;\n\t\t\t\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\t\t\t\tpeg$currPos += 3;\n\t\t\t\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\t\t\t\ts4 = peg$FAILED;\n\t\t\t\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\t\t\t\tif (peg$silentFails === 0) {\n\t\t\t\t\t\t\t\t\t\t\tpeg$fail(peg$e12);\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\tif (s4 !== peg$FAILED) {\n\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\ts5 = peg$parse_();\n\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\ts6 = peg$parseterm();\n\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\tif (s6 !== peg$FAILED) {\n\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\ts7 = peg$parse_();\n\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\tpeg$savedPos = s0;\n\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\ts0 = peg$f5(s2, s4, s6);\n\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\tpeg$currPos = s0;\n\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\ts0 = peg$FAILED;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\tpeg$currPos = s0;\n\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\ts0 = peg$FAILED;\n\t\t\t\t\t}\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t} else {\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\tpeg$currPos = s0;\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\ts0 = peg$FAILED;\n\t\t\t\t}\n\t\t\t\t// @ts-ignore\n\t\t\t\tpeg$silentFails--;\n\t\t\t\t// @ts-ignore\n\t\t\t\tif (s0 === peg$FAILED) {\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\ts1 = peg$FAILED;\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\tif (peg$silentFails === 0) peg$fail(peg$e7);\n\t\t\t\t}\n\n\t\t\t\t// @ts-ignore\n\t\t\t\treturn s0;\n\t\t\t}\n\n\t\t\t// @ts-ignore\n\t\t\tfunction // @ts-ignore\n\t\t\tpeg$parsever_comparison() {\n\t\t\t\t// @ts-ignore\n\t\t\t\tvar s0, s1, s2, s3, s4, s5, s6, s7;\n\n\t\t\t\t// @ts-ignore\n\t\t\t\tpeg$silentFails++;\n\t\t\t\t// @ts-ignore\n\t\t\t\ts0 = peg$currPos;\n\t\t\t\t// @ts-ignore\n\t\t\t\ts1 = peg$parse_();\n\t\t\t\t// @ts-ignore\n\t\t\t\ts2 = peg$parseterm();\n\t\t\t\t// @ts-ignore\n\t\t\t\tif (s2 !== peg$FAILED) {\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\ts3 = peg$parse_();\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\tif (input.substr(peg$currPos, 2) === peg$c4) {\n\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\ts4 = peg$c4;\n\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\tpeg$currPos += 2;\n\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\ts4 = peg$FAILED;\n\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\tif (peg$silentFails === 0) peg$fail(peg$e8);\n\t\t\t\t\t}\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\tif (s4 === peg$FAILED) {\n\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\tif (input.charCodeAt(peg$currPos) === 62) {\n\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\ts4 = peg$c5;\n\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\tpeg$currPos++;\n\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\ts4 = peg$FAILED;\n\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\tif (peg$silentFails === 0) peg$fail(peg$e9);\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\tif (s4 === peg$FAILED) {\n\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\tif (input.substr(peg$currPos, 2) === peg$c6) {\n\t\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\t\ts4 = peg$c6;\n\t\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\t\tpeg$currPos += 2;\n\t\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\t\ts4 = peg$FAILED;\n\t\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\t\tif (peg$silentFails === 0) peg$fail(peg$e10);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\tif (s4 === peg$FAILED) {\n\t\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\t\tif (input.charCodeAt(peg$currPos) === 60) {\n\t\t\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\t\t\ts4 = peg$c7;\n\t\t\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\t\t\tpeg$currPos++;\n\t\t\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\t\t\ts4 = peg$FAILED;\n\t\t\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\t\t\tif (peg$silentFails === 0) {\n\t\t\t\t\t\t\t\t\t\tpeg$fail(peg$e11);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\t\tif (s4 === peg$FAILED) {\n\t\t\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\t\t\tinput.substr(peg$currPos, 3) === peg$c8\n\t\t\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\t\t\t\ts4 = peg$c8;\n\t\t\t\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\t\t\t\tpeg$currPos += 3;\n\t\t\t\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\t\t\t\ts4 = peg$FAILED;\n\t\t\t\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\t\t\t\tif (peg$silentFails === 0) {\n\t\t\t\t\t\t\t\t\t\t\tpeg$fail(peg$e12);\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\tif (s4 !== peg$FAILED) {\n\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\ts5 = peg$parse_();\n\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\ts6 = peg$parseversion();\n\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\tif (s6 !== peg$FAILED) {\n\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\ts7 = peg$parse_();\n\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\tpeg$savedPos = s0;\n\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\ts0 = peg$f6(s2, s4, s6);\n\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\tpeg$currPos = s0;\n\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\ts0 = peg$FAILED;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\tpeg$currPos = s0;\n\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\ts0 = peg$FAILED;\n\t\t\t\t\t}\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t} else {\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\tpeg$currPos = s0;\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\ts0 = peg$FAILED;\n\t\t\t\t}\n\t\t\t\t// @ts-ignore\n\t\t\t\tpeg$silentFails--;\n\t\t\t\t// @ts-ignore\n\t\t\t\tif (s0 === peg$FAILED) {\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\ts1 = peg$FAILED;\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\tif (peg$silentFails === 0) peg$fail(peg$e13);\n\t\t\t\t}\n\n\t\t\t\t// @ts-ignore\n\t\t\t\treturn s0;\n\t\t\t}\n\n\t\t\t// @ts-ignore\n\t\t\tfunction // @ts-ignore\n\t\t\tpeg$parseterm() {\n\t\t\t\t// @ts-ignore\n\t\t\t\tvar s0;\n\n\t\t\t\t// @ts-ignore\n\t\t\t\ts0 = peg$parseconst();\n\t\t\t\t// @ts-ignore\n\t\t\t\tif (s0 === peg$FAILED) {\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\ts0 = peg$parsestring();\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\tif (s0 === peg$FAILED) {\n\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\ts0 = peg$parsehex();\n\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\tif (s0 === peg$FAILED) {\n\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\ts0 = peg$parseinteger();\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// @ts-ignore\n\t\t\t\treturn s0;\n\t\t\t}\n\n\t\t\t// @ts-ignore\n\t\t\tfunction // @ts-ignore\n\t\t\tpeg$parseconst() {\n\t\t\t\t// @ts-ignore\n\t\t\t\tvar s0, s1, s2, s3, s4, s5;\n\n\t\t\t\t// @ts-ignore\n\t\t\t\tpeg$silentFails++;\n\t\t\t\t// @ts-ignore\n\t\t\t\ts0 = peg$currPos;\n\t\t\t\t// @ts-ignore\n\t\t\t\ts1 = peg$parse_();\n\t\t\t\t// @ts-ignore\n\t\t\t\ts2 = peg$currPos;\n\t\t\t\t// @ts-ignore\n\t\t\t\ts3 = peg$currPos;\n\t\t\t\t// @ts-ignore\n\t\t\t\tpeg$silentFails++;\n\t\t\t\t// @ts-ignore\n\t\t\t\tif (peg$r0.test(input.charAt(peg$currPos))) {\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\ts4 = input.charAt(peg$currPos);\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\tpeg$currPos++;\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t} else {\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\ts4 = peg$FAILED;\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\tif (peg$silentFails === 0) peg$fail(peg$e15);\n\t\t\t\t}\n\t\t\t\t// @ts-ignore\n\t\t\t\tpeg$silentFails--;\n\t\t\t\t// @ts-ignore\n\t\t\t\tif (s4 !== peg$FAILED) {\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\tpeg$currPos = s3;\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\ts3 = undefined;\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t} else {\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\ts3 = peg$FAILED;\n\t\t\t\t}\n\t\t\t\t// @ts-ignore\n\t\t\t\tif (s3 !== peg$FAILED) {\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\ts4 = [];\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\tif (peg$r1.test(input.charAt(peg$currPos))) {\n\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\ts5 = input.charAt(peg$currPos);\n\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\tpeg$currPos++;\n\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\ts5 = peg$FAILED;\n\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\tif (peg$silentFails === 0) peg$fail(peg$e16);\n\t\t\t\t\t}\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\tif (s5 !== peg$FAILED) {\n\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\twhile (s5 !== peg$FAILED) {\n\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\ts4.push(s5);\n\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\tif (peg$r1.test(input.charAt(peg$currPos))) {\n\t\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\t\ts5 = input.charAt(peg$currPos);\n\t\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\t\tpeg$currPos++;\n\t\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\t\ts5 = peg$FAILED;\n\t\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\t\tif (peg$silentFails === 0) peg$fail(peg$e16);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\ts4 = peg$FAILED;\n\t\t\t\t\t}\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\tif (s4 !== peg$FAILED) {\n\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\ts3 = [s3, s4];\n\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\ts2 = s3;\n\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\tpeg$currPos = s2;\n\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\ts2 = peg$FAILED;\n\t\t\t\t\t}\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t} else {\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\tpeg$currPos = s2;\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\ts2 = peg$FAILED;\n\t\t\t\t}\n\t\t\t\t// @ts-ignore\n\t\t\t\tif (s2 !== peg$FAILED) {\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\tpeg$savedPos = s0;\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\ts0 = peg$f7(s2);\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t} else {\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\tpeg$currPos = s0;\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\ts0 = peg$FAILED;\n\t\t\t\t}\n\t\t\t\t// @ts-ignore\n\t\t\t\tpeg$silentFails--;\n\t\t\t\t// @ts-ignore\n\t\t\t\tif (s0 === peg$FAILED) {\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\ts1 = peg$FAILED;\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\tif (peg$silentFails === 0) peg$fail(peg$e14);\n\t\t\t\t}\n\n\t\t\t\t// @ts-ignore\n\t\t\t\treturn s0;\n\t\t\t}\n\n\t\t\t// @ts-ignore\n\t\t\tfunction // @ts-ignore\n\t\t\tpeg$parseinteger() {\n\t\t\t\t// @ts-ignore\n\t\t\t\tvar s0, s1, s2, s3, s4, s5;\n\n\t\t\t\t// @ts-ignore\n\t\t\t\tpeg$silentFails++;\n\t\t\t\t// @ts-ignore\n\t\t\t\ts0 = peg$currPos;\n\t\t\t\t// @ts-ignore\n\t\t\t\ts1 = peg$parse_();\n\t\t\t\t// @ts-ignore\n\t\t\t\ts2 = peg$currPos;\n\t\t\t\t// @ts-ignore\n\t\t\t\tif (input.charCodeAt(peg$currPos) === 45) {\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\ts3 = peg$c9;\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\tpeg$currPos++;\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t} else {\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\ts3 = peg$FAILED;\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\tif (peg$silentFails === 0) peg$fail(peg$e18);\n\t\t\t\t}\n\t\t\t\t// @ts-ignore\n\t\t\t\tif (s3 === peg$FAILED) {\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\ts3 = null;\n\t\t\t\t}\n\t\t\t\t// @ts-ignore\n\t\t\t\ts4 = [];\n\t\t\t\t// @ts-ignore\n\t\t\t\tif (peg$r2.test(input.charAt(peg$currPos))) {\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\ts5 = input.charAt(peg$currPos);\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\tpeg$currPos++;\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t} else {\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\ts5 = peg$FAILED;\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\tif (peg$silentFails === 0) peg$fail(peg$e19);\n\t\t\t\t}\n\t\t\t\t// @ts-ignore\n\t\t\t\tif (s5 !== peg$FAILED) {\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\twhile (s5 !== peg$FAILED) {\n\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\ts4.push(s5);\n\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\tif (peg$r2.test(input.charAt(peg$currPos))) {\n\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\ts5 = input.charAt(peg$currPos);\n\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\tpeg$currPos++;\n\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\ts5 = peg$FAILED;\n\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\tif (peg$silentFails === 0) peg$fail(peg$e19);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t} else {\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\ts4 = peg$FAILED;\n\t\t\t\t}\n\t\t\t\t// @ts-ignore\n\t\t\t\tif (s4 !== peg$FAILED) {\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\ts3 = [s3, s4];\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\ts2 = s3;\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t} else {\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\tpeg$currPos = s2;\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\ts2 = peg$FAILED;\n\t\t\t\t}\n\t\t\t\t// @ts-ignore\n\t\t\t\tif (s2 !== peg$FAILED) {\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\tpeg$savedPos = s0;\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\ts0 = peg$f8();\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t} else {\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\tpeg$currPos = s0;\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\ts0 = peg$FAILED;\n\t\t\t\t}\n\t\t\t\t// @ts-ignore\n\t\t\t\tpeg$silentFails--;\n\t\t\t\t// @ts-ignore\n\t\t\t\tif (s0 === peg$FAILED) {\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\ts1 = peg$FAILED;\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\tif (peg$silentFails === 0) peg$fail(peg$e17);\n\t\t\t\t}\n\n\t\t\t\t// @ts-ignore\n\t\t\t\treturn s0;\n\t\t\t}\n\n\t\t\t// @ts-ignore\n\t\t\tfunction // @ts-ignore\n\t\t\tpeg$parsehex() {\n\t\t\t\t// @ts-ignore\n\t\t\t\tvar s0, s1, s2, s3, s4, s5;\n\n\t\t\t\t// @ts-ignore\n\t\t\t\tpeg$silentFails++;\n\t\t\t\t// @ts-ignore\n\t\t\t\ts0 = peg$currPos;\n\t\t\t\t// @ts-ignore\n\t\t\t\ts1 = peg$parse_();\n\t\t\t\t// @ts-ignore\n\t\t\t\ts2 = peg$currPos;\n\t\t\t\t// @ts-ignore\n\t\t\t\tif (input.substr(peg$currPos, 2) === peg$c10) {\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\ts3 = peg$c10;\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\tpeg$currPos += 2;\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t} else {\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\ts3 = peg$FAILED;\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\tif (peg$silentFails === 0) peg$fail(peg$e21);\n\t\t\t\t}\n\t\t\t\t// @ts-ignore\n\t\t\t\tif (s3 !== peg$FAILED) {\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\ts4 = [];\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\tif (peg$r3.test(input.charAt(peg$currPos))) {\n\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\ts5 = input.charAt(peg$currPos);\n\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\tpeg$currPos++;\n\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\ts5 = peg$FAILED;\n\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\tif (peg$silentFails === 0) peg$fail(peg$e22);\n\t\t\t\t\t}\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\tif (s5 !== peg$FAILED) {\n\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\twhile (s5 !== peg$FAILED) {\n\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\ts4.push(s5);\n\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\tif (peg$r3.test(input.charAt(peg$currPos))) {\n\t\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\t\ts5 = input.charAt(peg$currPos);\n\t\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\t\tpeg$currPos++;\n\t\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\t\ts5 = peg$FAILED;\n\t\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\t\tif (peg$silentFails === 0) peg$fail(peg$e22);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\ts4 = peg$FAILED;\n\t\t\t\t\t}\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\tif (s4 !== peg$FAILED) {\n\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\ts3 = [s3, s4];\n\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\ts2 = s3;\n\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\tpeg$currPos = s2;\n\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\ts2 = peg$FAILED;\n\t\t\t\t\t}\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t} else {\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\tpeg$currPos = s2;\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\ts2 = peg$FAILED;\n\t\t\t\t}\n\t\t\t\t// @ts-ignore\n\t\t\t\tif (s2 !== peg$FAILED) {\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\tpeg$savedPos = s0;\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\ts0 = peg$f9();\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t} else {\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\tpeg$currPos = s0;\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\ts0 = peg$FAILED;\n\t\t\t\t}\n\t\t\t\t// @ts-ignore\n\t\t\t\tpeg$silentFails--;\n\t\t\t\t// @ts-ignore\n\t\t\t\tif (s0 === peg$FAILED) {\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\ts1 = peg$FAILED;\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\tif (peg$silentFails === 0) peg$fail(peg$e20);\n\t\t\t\t}\n\n\t\t\t\t// @ts-ignore\n\t\t\t\treturn s0;\n\t\t\t}\n\n\t\t\t// @ts-ignore\n\t\t\tfunction // @ts-ignore\n\t\t\tpeg$parseversion() {\n\t\t\t\t// @ts-ignore\n\t\t\t\tvar s0, s1, s2, s3, s4, s5, s6, s7, s8, s9;\n\n\t\t\t\t// @ts-ignore\n\t\t\t\tpeg$silentFails++;\n\t\t\t\t// @ts-ignore\n\t\t\t\ts0 = peg$currPos;\n\t\t\t\t// @ts-ignore\n\t\t\t\ts1 = peg$parse_();\n\t\t\t\t// @ts-ignore\n\t\t\t\ts2 = peg$currPos;\n\t\t\t\t// @ts-ignore\n\t\t\t\ts3 = [];\n\t\t\t\t// @ts-ignore\n\t\t\t\tif (peg$r2.test(input.charAt(peg$currPos))) {\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\ts4 = input.charAt(peg$currPos);\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\tpeg$currPos++;\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t} else {\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\ts4 = peg$FAILED;\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\tif (peg$silentFails === 0) peg$fail(peg$e19);\n\t\t\t\t}\n\t\t\t\t// @ts-ignore\n\t\t\t\tif (s4 !== peg$FAILED) {\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\twhile (s4 !== peg$FAILED) {\n\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\ts3.push(s4);\n\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\tif (peg$r2.test(input.charAt(peg$currPos))) {\n\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\ts4 = input.charAt(peg$currPos);\n\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\tpeg$currPos++;\n\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\ts4 = peg$FAILED;\n\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\tif (peg$silentFails === 0) peg$fail(peg$e19);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t} else {\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\ts3 = peg$FAILED;\n\t\t\t\t}\n\t\t\t\t// @ts-ignore\n\t\t\t\tif (s3 !== peg$FAILED) {\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\tif (input.charCodeAt(peg$currPos) === 46) {\n\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\ts4 = peg$c11;\n\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\tpeg$currPos++;\n\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\ts4 = peg$FAILED;\n\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\tif (peg$silentFails === 0) peg$fail(peg$e24);\n\t\t\t\t\t}\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\tif (s4 !== peg$FAILED) {\n\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\ts5 = [];\n\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\tif (peg$r2.test(input.charAt(peg$currPos))) {\n\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\ts6 = input.charAt(peg$currPos);\n\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\tpeg$currPos++;\n\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\ts6 = peg$FAILED;\n\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\tif (peg$silentFails === 0) peg$fail(peg$e19);\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\tif (s6 !== peg$FAILED) {\n\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\twhile (s6 !== peg$FAILED) {\n\t\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\t\ts5.push(s6);\n\t\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\t\tif (peg$r2.test(input.charAt(peg$currPos))) {\n\t\t\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\t\t\ts6 = input.charAt(peg$currPos);\n\t\t\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\t\t\tpeg$currPos++;\n\t\t\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\t\t\ts6 = peg$FAILED;\n\t\t\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\t\t\tif (peg$silentFails === 0) {\n\t\t\t\t\t\t\t\t\t\tpeg$fail(peg$e19);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\ts5 = peg$FAILED;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\tif (s5 !== peg$FAILED) {\n\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\ts6 = peg$currPos;\n\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\tif (input.charCodeAt(peg$currPos) === 46) {\n\t\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\t\ts7 = peg$c11;\n\t\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\t\tpeg$currPos++;\n\t\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\t\ts7 = peg$FAILED;\n\t\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\t\tif (peg$silentFails === 0) peg$fail(peg$e24);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\tif (s7 !== peg$FAILED) {\n\t\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\t\ts8 = [];\n\t\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\t\tif (peg$r2.test(input.charAt(peg$currPos))) {\n\t\t\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\t\t\ts9 = input.charAt(peg$currPos);\n\t\t\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\t\t\tpeg$currPos++;\n\t\t\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\t\t\ts9 = peg$FAILED;\n\t\t\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\t\t\tif (peg$silentFails === 0) {\n\t\t\t\t\t\t\t\t\t\tpeg$fail(peg$e19);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\t\tif (s9 !== peg$FAILED) {\n\t\t\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\t\t\twhile (s9 !== peg$FAILED) {\n\t\t\t\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\t\t\t\ts8.push(s9);\n\t\t\t\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\t\t\t\tpeg$r2.test(\n\t\t\t\t\t\t\t\t\t\t\t\tinput.charAt(peg$currPos),\n\t\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\t\t\t\t\ts9 = input.charAt(peg$currPos);\n\t\t\t\t\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\t\t\t\t\tpeg$currPos++;\n\t\t\t\t\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\t\t\t\t\ts9 = peg$FAILED;\n\t\t\t\t\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\t\t\t\t\tif (peg$silentFails === 0) {\n\t\t\t\t\t\t\t\t\t\t\t\tpeg$fail(peg$e19);\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\t\t\ts8 = peg$FAILED;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\t\tif (s8 !== peg$FAILED) {\n\t\t\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\t\t\ts7 = [s7, s8];\n\t\t\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\t\t\ts6 = s7;\n\t\t\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\t\t\tpeg$currPos = s6;\n\t\t\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\t\t\ts6 = peg$FAILED;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\t\tpeg$currPos = s6;\n\t\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\t\ts6 = peg$FAILED;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\tif (s6 === peg$FAILED) {\n\t\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\t\ts6 = null;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\ts3 = [s3, s4, s5, s6];\n\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\ts2 = s3;\n\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\tpeg$currPos = s2;\n\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\ts2 = peg$FAILED;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\tpeg$currPos = s2;\n\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\ts2 = peg$FAILED;\n\t\t\t\t\t}\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t} else {\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\tpeg$currPos = s2;\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\ts2 = peg$FAILED;\n\t\t\t\t}\n\t\t\t\t// @ts-ignore\n\t\t\t\tif (s2 !== peg$FAILED) {\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\tpeg$savedPos = s0;\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\ts0 = peg$f10(s2);\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t} else {\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\tpeg$currPos = s0;\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\ts0 = peg$FAILED;\n\t\t\t\t}\n\t\t\t\t// @ts-ignore\n\t\t\t\tpeg$silentFails--;\n\t\t\t\t// @ts-ignore\n\t\t\t\tif (s0 === peg$FAILED) {\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\ts1 = peg$FAILED;\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\tif (peg$silentFails === 0) peg$fail(peg$e23);\n\t\t\t\t}\n\n\t\t\t\t// @ts-ignore\n\t\t\t\treturn s0;\n\t\t\t}\n\n\t\t\t// @ts-ignore\n\t\t\tfunction // @ts-ignore\n\t\t\tpeg$parsestring() {\n\t\t\t\t// @ts-ignore\n\t\t\t\tvar s0, s1, s2, s3, s4, s5;\n\n\t\t\t\t// @ts-ignore\n\t\t\t\tpeg$silentFails++;\n\t\t\t\t// @ts-ignore\n\t\t\t\ts0 = peg$currPos;\n\t\t\t\t// @ts-ignore\n\t\t\t\ts1 = peg$parse_();\n\t\t\t\t// @ts-ignore\n\t\t\t\ts2 = peg$currPos;\n\t\t\t\t// @ts-ignore\n\t\t\t\tif (input.charCodeAt(peg$currPos) === 34) {\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\ts3 = peg$c12;\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\tpeg$currPos++;\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t} else {\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\ts3 = peg$FAILED;\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\tif (peg$silentFails === 0) peg$fail(peg$e26);\n\t\t\t\t}\n\t\t\t\t// @ts-ignore\n\t\t\t\tif (s3 !== peg$FAILED) {\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\ts4 = [];\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\tif (peg$r4.test(input.charAt(peg$currPos))) {\n\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\ts5 = input.charAt(peg$currPos);\n\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\tpeg$currPos++;\n\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\ts5 = peg$FAILED;\n\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\tif (peg$silentFails === 0) peg$fail(peg$e27);\n\t\t\t\t\t}\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\twhile (s5 !== peg$FAILED) {\n\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\ts4.push(s5);\n\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\tif (peg$r4.test(input.charAt(peg$currPos))) {\n\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\ts5 = input.charAt(peg$currPos);\n\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\tpeg$currPos++;\n\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\ts5 = peg$FAILED;\n\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\tif (peg$silentFails === 0) peg$fail(peg$e27);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\tif (input.charCodeAt(peg$currPos) === 34) {\n\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\ts5 = peg$c12;\n\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\tpeg$currPos++;\n\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\ts5 = peg$FAILED;\n\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\tif (peg$silentFails === 0) peg$fail(peg$e26);\n\t\t\t\t\t}\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\tif (s5 !== peg$FAILED) {\n\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\ts3 = [s3, s4, s5];\n\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\ts2 = s3;\n\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\tpeg$currPos = s2;\n\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\ts2 = peg$FAILED;\n\t\t\t\t\t}\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t} else {\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\tpeg$currPos = s2;\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\ts2 = peg$FAILED;\n\t\t\t\t}\n\t\t\t\t// @ts-ignore\n\t\t\t\tif (s2 !== peg$FAILED) {\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\tpeg$savedPos = s0;\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\ts0 = peg$f11();\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t} else {\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\tpeg$currPos = s0;\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\ts0 = peg$FAILED;\n\t\t\t\t}\n\t\t\t\t// @ts-ignore\n\t\t\t\tif (s0 === peg$FAILED) {\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\ts0 = peg$currPos;\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\ts1 = peg$parse_();\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\ts2 = peg$currPos;\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\tif (input.charCodeAt(peg$currPos) === 39) {\n\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\ts3 = peg$c13;\n\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\tpeg$currPos++;\n\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\ts3 = peg$FAILED;\n\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\tif (peg$silentFails === 0) peg$fail(peg$e28);\n\t\t\t\t\t}\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\tif (s3 !== peg$FAILED) {\n\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\ts4 = [];\n\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\tif (peg$r5.test(input.charAt(peg$currPos))) {\n\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\ts5 = input.charAt(peg$currPos);\n\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\tpeg$currPos++;\n\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\ts5 = peg$FAILED;\n\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\tif (peg$silentFails === 0) peg$fail(peg$e29);\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\twhile (s5 !== peg$FAILED) {\n\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\ts4.push(s5);\n\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\tif (peg$r5.test(input.charAt(peg$currPos))) {\n\t\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\t\ts5 = input.charAt(peg$currPos);\n\t\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\t\tpeg$currPos++;\n\t\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\t\ts5 = peg$FAILED;\n\t\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\t\tif (peg$silentFails === 0) peg$fail(peg$e29);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\tif (input.charCodeAt(peg$currPos) === 39) {\n\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\ts5 = peg$c13;\n\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\tpeg$currPos++;\n\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\ts5 = peg$FAILED;\n\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\tif (peg$silentFails === 0) peg$fail(peg$e28);\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\tif (s5 !== peg$FAILED) {\n\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\ts3 = [s3, s4, s5];\n\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\ts2 = s3;\n\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\tpeg$currPos = s2;\n\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\ts2 = peg$FAILED;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\tpeg$currPos = s2;\n\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\ts2 = peg$FAILED;\n\t\t\t\t\t}\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\tif (s2 !== peg$FAILED) {\n\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\tpeg$savedPos = s0;\n\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\ts0 = peg$f12();\n\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\tpeg$currPos = s0;\n\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\ts0 = peg$FAILED;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t// @ts-ignore\n\t\t\t\tpeg$silentFails--;\n\t\t\t\t// @ts-ignore\n\t\t\t\tif (s0 === peg$FAILED) {\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\ts1 = peg$FAILED;\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\tif (peg$silentFails === 0) peg$fail(peg$e25);\n\t\t\t\t}\n\n\t\t\t\t// @ts-ignore\n\t\t\t\treturn s0;\n\t\t\t}\n\n\t\t\t// @ts-ignore\n\t\t\tfunction // @ts-ignore\n\t\t\tpeg$parse_() {\n\t\t\t\t// @ts-ignore\n\t\t\t\tvar s0, s1;\n\n\t\t\t\t// @ts-ignore\n\t\t\t\tpeg$silentFails++;\n\t\t\t\t// @ts-ignore\n\t\t\t\ts0 = [];\n\t\t\t\t// @ts-ignore\n\t\t\t\tif (peg$r6.test(input.charAt(peg$currPos))) {\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\ts1 = input.charAt(peg$currPos);\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\tpeg$currPos++;\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t} else {\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\ts1 = peg$FAILED;\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\tif (peg$silentFails === 0) peg$fail(peg$e31);\n\t\t\t\t}\n\t\t\t\t// @ts-ignore\n\t\t\t\twhile (s1 !== peg$FAILED) {\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\ts0.push(s1);\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\tif (peg$r6.test(input.charAt(peg$currPos))) {\n\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\ts1 = input.charAt(peg$currPos);\n\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\tpeg$currPos++;\n\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\ts1 = peg$FAILED;\n\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\tif (peg$silentFails === 0) peg$fail(peg$e31);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t// @ts-ignore\n\t\t\t\tpeg$silentFails--;\n\t\t\t\t// @ts-ignore\n\t\t\t\ts1 = peg$FAILED;\n\t\t\t\t// @ts-ignore\n\t\t\t\tif (peg$silentFails === 0) peg$fail(peg$e30);\n\n\t\t\t\t// @ts-ignore\n\t\t\t\treturn s0;\n\t\t\t}\n\n\t\t\t// @ts-ignore\n\t\t\tpeg$result = peg$startRuleFunction();\n\n\t\t\t// @ts-ignore\n\t\t\tif (peg$result !== peg$FAILED && peg$currPos === input.length) {\n\t\t\t\t// @ts-ignore\n\t\t\t\treturn peg$result;\n\t\t\t\t// @ts-ignore\n\t\t\t} else {\n\t\t\t\t// @ts-ignore\n\t\t\t\tif (peg$result !== peg$FAILED && peg$currPos < input.length) {\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\tpeg$fail(peg$endExpectation());\n\t\t\t\t}\n\n\t\t\t\t// @ts-ignore\n\t\t\t\tthrow peg$buildStructuredError(\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\tpeg$maxFailExpected,\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\tpeg$maxFailPos < input.length\n\t\t\t\t\t\t? input.charAt(peg$maxFailPos)\n\t\t\t\t\t\t: null,\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\tpeg$maxFailPos < input.length\n\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t? peg$computeLocation(\n\t\t\t\t\t\t\tpeg$maxFailPos,\n\t\t\t\t\t\t\tpeg$maxFailPos + 1,\n\t\t\t\t\t\t)\n\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t: peg$computeLocation(peg$maxFailPos, peg$maxFailPos),\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\n\t\t// @ts-ignore\n\t\treturn {\n\t\t\tSyntaxError: peg$SyntaxError,\n\t\t\tparse: peg$parse,\n\t\t};\n\t})();\n\nexport interface FilePosition {\n\toffset: number;\n\tline: number;\n\tcolumn: number;\n}\n\nexport interface FileRange {\n\tstart: FilePosition;\n\tend: FilePosition;\n\tsource: string;\n}\n\nexport interface LiteralExpectation {\n\ttype: \"literal\";\n\ttext: string;\n\tignoreCase: boolean;\n}\n\nexport interface ClassParts extends Array<string | ClassParts> {}\n\nexport interface ClassExpectation {\n\ttype: \"class\";\n\tparts: ClassParts;\n\tinverted: boolean;\n\tignoreCase: boolean;\n}\n\nexport interface AnyExpectation {\n\ttype: \"any\";\n}\n\nexport interface EndExpectation {\n\ttype: \"end\";\n}\n\nexport interface OtherExpectation {\n\ttype: \"other\";\n\tdescription: string;\n}\n\nexport type Expectation =\n\t| LiteralExpectation\n\t| ClassExpectation\n\t| AnyExpectation\n\t| EndExpectation\n\t| OtherExpectation;\n\ndeclare class _PeggySyntaxError extends Error {\n\tpublic static buildMessage(\n\t\texpected: Expectation[],\n\t\tfound: string | null,\n\t): string;\n\tpublic message: string;\n\tpublic expected: Expectation[];\n\tpublic found: string | null;\n\tpublic location: FileRange;\n\tpublic name: string;\n\tconstructor(\n\t\tmessage: string,\n\t\texpected: Expectation[],\n\t\tfound: string | null,\n\t\tlocation: FileRange,\n\t);\n\tformat(sources: {\n\t\tsource?: any;\n\t\ttext: string;\n\t}[]): string;\n}\n\nexport interface TraceEvent {\n\ttype: string;\n\trule: string;\n\tresult?: any;\n\tlocation: FileRange;\n}\n\ndeclare class _DefaultTracer {\n\tprivate indentLevel: number;\n\tpublic trace(event: TraceEvent): void;\n}\n\npeggyParser.SyntaxError.prototype.name = \"PeggySyntaxError\";\n\nexport interface ParseOptions {\n\tfilename?: string;\n\tstartRule?: \"start\";\n\ttracer?: any;\n\t[key: string]: any;\n}\nexport type ParseFunction = <Options extends ParseOptions>(\n\tinput: string,\n\toptions?: Options,\n) => Options extends { startRule: infer StartRule }\n\t? StartRule extends \"start\" ? Start : Start\n\t: Start;\nexport const parse: ParseFunction = peggyParser.parse;\n\nexport const PeggySyntaxError = peggyParser\n\t.SyntaxError as typeof _PeggySyntaxError;\n\nexport type PeggySyntaxError = _PeggySyntaxError;\n\n// These types were autogenerated by ts-pegjs\nexport type Start = Group | Or | And | Comparison;\nexport type Group = Or;\nexport type Or = { or: [And | Comparison, ...OrTails[]] };\nexport type OrTails = And | Comparison;\nexport type And = { and: [Group | Comparison, ...AndTails[]] };\nexport type AndTails = Group | Comparison;\nexport type Comparison = VerComparison | IntComparison;\nexport type IntComparison = { [x: string]: [Term, Term] };\nexport type VerComparison = { [x: string]: [Term, Version] };\nexport type Term = Const | String_1 | Hex | Integer;\nexport type Const = { var: string };\nexport type Integer = number;\nexport type Hex = number;\nexport type Version = string;\nexport type String_1 = string;\nexport type _ = string[];\n"],
5
- "mappings": "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",
6
- "names": ["expected", "found", "location", "text", "offset"]
4
+ "sourcesContent": ["// A parser to convert logical JavaScript-like expressions into JSON Logic\n\nimport { getEnumMemberName } from \"@zwave-js/shared\";\nimport { assertNever } from \"alcalzone-shared/helpers\";\nimport type { RulesLogic } from \"json-logic-js\";\n\nexport enum SyntaxKind {\n\tGroup,\n\tOr,\n\tAnd,\n\tComparison,\n\tIdentifier,\n\tNumberLiteral,\n\tVersion,\n}\n\nexport enum Operator {\n\tEqual,\n\tNotEqual,\n\tLessThan,\n\tLessThanOrEqual,\n\tGreaterThan,\n\tGreaterThanOrEqual,\n}\n\nexport type Expression =\n\t| Or\n\t| And\n\t| Comparison;\n\ntype Or = {\n\tkind: SyntaxKind.Or;\n\toperands: Expression[];\n};\n\ntype And = {\n\tkind: SyntaxKind.And;\n\toperands: Expression[];\n};\n\ntype Comparison = {\n\tkind: SyntaxKind.Comparison;\n\tleft: Identifier;\n\toperator: Operator;\n\tright:\n\t\t| NumberLiteral\n\t\t| Version;\n};\n\ntype Identifier = {\n\tkind: SyntaxKind.Identifier;\n\tname: string;\n};\n\ntype NumberLiteral = {\n\tkind: SyntaxKind.NumberLiteral;\n\tvalue: number;\n};\n\ntype Version = {\n\tkind: SyntaxKind.Version;\n\tvalue: string;\n};\n\nexport enum TokenKind {\n\tIdentifier,\n\tNumberLiteral,\n\tDot, // \".\"\n\tLeftParen, // \"(\"\n\tRightParen, // \")\"\n\tBarBar, // \"||\"\n\tAmpAmp, // \"&&\"\n\tEqualsEquals, // \"==\"\n\tEqualsEqualsEquals, // \"===\"\n\tExclamationEquals, // \"!=\"\n\tExclamationEqualsEquals, // \"!==\"\n\tLessThan, // \"<\"\n\tLessThanEquals, // \"<=\"\n\tGreaterThan, // \">\"\n\tGreaterThanEquals, // \">=\"\n}\n\nexport type Token = {\n\tstart: number;\n\tkind: TokenKind;\n\tvalue?: string;\n};\n\n/**\n * Splits a string into tokens to be consumed by the Parser.\n */\nexport function* tokenize(input: string): Generator<Token> {\n\tfor (let i = 0; i < input.length; i++) {\n\t\tswitch (input[i]) {\n\t\t\tcase \".\": {\n\t\t\t\tyield { kind: TokenKind.Dot, start: i };\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tcase \"(\": {\n\t\t\t\tyield { kind: TokenKind.LeftParen, start: i };\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tcase \")\": {\n\t\t\t\tyield { kind: TokenKind.RightParen, start: i };\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tcase \"|\": {\n\t\t\t\tif (input[i + 1] === \"|\") {\n\t\t\t\t\tyield { kind: TokenKind.BarBar, start: i };\n\t\t\t\t\ti++;\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tcase \"&\": {\n\t\t\t\tif (input[i + 1] === \"&\") {\n\t\t\t\t\tyield { kind: TokenKind.AmpAmp, start: i };\n\t\t\t\t\ti++;\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tcase \"=\": {\n\t\t\t\tif (input[i + 1] === \"=\") {\n\t\t\t\t\tif (input[i + 2] === \"=\") {\n\t\t\t\t\t\tyield { kind: TokenKind.EqualsEqualsEquals, start: i };\n\t\t\t\t\t\ti += 2;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tyield { kind: TokenKind.EqualsEquals, start: i };\n\t\t\t\t\t\ti++;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tcase \"!\": {\n\t\t\t\tif (input[i + 1] === \"=\") {\n\t\t\t\t\tif (input[i + 2] === \"=\") {\n\t\t\t\t\t\tyield {\n\t\t\t\t\t\t\tkind: TokenKind.ExclamationEqualsEquals,\n\t\t\t\t\t\t\tstart: i,\n\t\t\t\t\t\t};\n\t\t\t\t\t\ti += 2;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tyield { kind: TokenKind.ExclamationEquals, start: i };\n\t\t\t\t\t\ti++;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tcase \"<\": {\n\t\t\t\tif (input[i + 1] === \"=\") {\n\t\t\t\t\tyield { kind: TokenKind.LessThanEquals, start: i };\n\t\t\t\t\ti++;\n\t\t\t\t} else {\n\t\t\t\t\tyield { kind: TokenKind.LessThan, start: i };\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tcase \">\": {\n\t\t\t\tif (input[i + 1] === \"=\") {\n\t\t\t\t\tyield { kind: TokenKind.GreaterThanEquals, start: i };\n\t\t\t\t\ti++;\n\t\t\t\t} else {\n\t\t\t\t\tyield { kind: TokenKind.GreaterThan, start: i };\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tdefault: {\n\t\t\t\tif (/\\s/.test(input[i])) {\n\t\t\t\t\t// Skip whitespace\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\t// Parse hexadecimal numbers\n\t\t\t\tif (input[i] === \"0\" && input[i + 1] === \"x\") {\n\t\t\t\t\tconst start = i;\n\t\t\t\t\tlet hex = \"0x\";\n\t\t\t\t\ti += 2;\n\t\t\t\t\twhile (i < input.length && /[0-9a-fA-F]/.test(input[i])) {\n\t\t\t\t\t\thex += input[i];\n\t\t\t\t\t\ti++;\n\t\t\t\t\t}\n\t\t\t\t\tyield {\n\t\t\t\t\t\tkind: TokenKind.NumberLiteral,\n\t\t\t\t\t\tvalue: hex,\n\t\t\t\t\t\tstart,\n\t\t\t\t\t};\n\t\t\t\t\ti--; // Account for the outer loop increment\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\t// Parse decimal numbers\n\t\t\t\tif (/\\d/.test(input[i])) {\n\t\t\t\t\tconst start = i;\n\t\t\t\t\tlet num = \"\";\n\t\t\t\t\twhile (i < input.length && /\\d/.test(input[i])) {\n\t\t\t\t\t\tnum += input[i];\n\t\t\t\t\t\ti++;\n\t\t\t\t\t}\n\t\t\t\t\tyield {\n\t\t\t\t\t\tkind: TokenKind.NumberLiteral,\n\t\t\t\t\t\tvalue: num,\n\t\t\t\t\t\tstart,\n\t\t\t\t\t};\n\t\t\t\t\ti--; // Account for the outer loop increment\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\t// Parse identifiers\n\t\t\t\tif (/[a-zA-Z_$]/.test(input[i])) {\n\t\t\t\t\tconst start = i;\n\t\t\t\t\tlet id = \"\";\n\t\t\t\t\twhile (i < input.length && /[a-zA-Z0-9_$]/.test(input[i])) {\n\t\t\t\t\t\tid += input[i];\n\t\t\t\t\t\ti++;\n\t\t\t\t\t}\n\t\t\t\t\tyield { kind: TokenKind.Identifier, value: id, start };\n\t\t\t\t\ti--; // Account for the outer loop increment\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tthrow new Error(\n\t\t\t\t\t`Unexpected character '${input[i]}' at index ${i}`,\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t}\n}\n\ninterface ParserState {\n\tinput: string;\n\treadonly tokens: readonly Token[];\n\tpos: number;\n}\n\nexport function parse(input: string): Expression | undefined {\n\tconst tokens = Array.from(tokenize(input));\n\tconst state: ParserState = { input, tokens, pos: 0 };\n\tconst ret = parseExpression(state);\n\n\t// If there are remaining tokens, the parse failed\n\tif (state.pos < tokens.length) {\n\t\tconst token = tokens[state.pos];\n\t\tthrow new Error(\n\t\t\t`Unexpected token ${\n\t\t\t\tgetEnumMemberName(TokenKind, token.kind)\n\t\t\t} at position ` + token.start,\n\t\t);\n\t}\n\n\treturn ret;\n}\n\nfunction parseExpression(s: ParserState): Expression | undefined {\n\treturn parseOr(s) || parseAnd(s) || parseComparison(s) || parseGroup(s);\n}\n\nfunction parseAnd(s: ParserState): And | undefined {\n\t// <comparison|group> && <comparison|group> && ...\n\tlet startPos = s.pos;\n\tconst first = parseComparison(s) || parseGroup(s);\n\tif (!first) {\n\t\ts.pos = startPos;\n\t\treturn;\n\t}\n\t// Expect a \"&&\" operator\n\tif (s.tokens[s.pos]?.kind !== TokenKind.AmpAmp) {\n\t\ts.pos = startPos;\n\t\treturn;\n\t}\n\ts.pos++; // consume \"&&\"\n\tconst second = parseComparison(s) || parseGroup(s);\n\tif (!second) {\n\t\ts.pos = startPos;\n\t\treturn;\n\t}\n\n\t// Parsing succeeded so far, update the parser start position,\n\t// so we don't rewind too much on failure\n\tstartPos = s.pos;\n\n\t// Now optionally parse further sequences of \"&&\" <comparison|group>\n\tconst operands: Expression[] = [first, second];\n\twhile (s.tokens[s.pos]?.kind === TokenKind.AmpAmp) {\n\t\ts.pos++; // consume \"&&\"\n\t\tconst next = parseComparison(s) || parseGroup(s);\n\t\tif (!next) {\n\t\t\ts.pos = startPos;\n\t\t\tbreak;\n\t\t}\n\t\toperands.push(next);\n\t\t// update the parser start position,\n\t\t// so we don't rewind too much on failure\n\t\tstartPos = s.pos;\n\t}\n\n\treturn {\n\t\tkind: SyntaxKind.And,\n\t\toperands,\n\t};\n}\n\nfunction parseOr(s: ParserState): Or | undefined {\n\t// <and|comparison|group> || <and|comparison|group> || ...\n\tlet startPos = s.pos;\n\tconst first = parseAnd(s) || parseComparison(s) || parseGroup(s);\n\tif (!first) {\n\t\ts.pos = startPos;\n\t\treturn;\n\t}\n\t// Expect a \"||\" operator\n\tif (s.tokens[s.pos]?.kind !== TokenKind.BarBar) {\n\t\ts.pos = startPos;\n\t\treturn;\n\t}\n\ts.pos++; // consume \"||\"\n\tconst second = parseAnd(s) || parseComparison(s) || parseGroup(s);\n\tif (!second) {\n\t\ts.pos = startPos;\n\t\treturn;\n\t}\n\n\t// Parsing succeeded so far, update the parser start position,\n\t// so we don't rewind too much on failure\n\tstartPos = s.pos;\n\n\t// Now optionally parse further sequences of \"||\" <and|comparison|group>\n\tconst operands: Expression[] = [first, second];\n\twhile (s.tokens[s.pos]?.kind === TokenKind.BarBar) {\n\t\ts.pos++; // consume \"||\"\n\t\tconst next = parseAnd(s) || parseComparison(s) || parseGroup(s);\n\t\tif (!next) {\n\t\t\ts.pos = startPos;\n\t\t\tbreak;\n\t\t}\n\t\toperands.push(next);\n\t\t// update the parser start position,\n\t\t// so we don't rewind too much on failure\n\t\tstartPos = s.pos;\n\t}\n\n\treturn {\n\t\tkind: SyntaxKind.Or,\n\t\toperands,\n\t};\n}\n\nfunction parseGroup(s: ParserState): Expression | undefined {\n\t// A group is technically only needed for operator precedence of OR expressions,\n\t// but we parse any expression within parentheses for simplicity\n\t// \"(\" <expression> \")\"\n\tconst startPos = s.pos;\n\tif (s.tokens[s.pos]?.kind !== TokenKind.LeftParen) {\n\t\treturn;\n\t}\n\ts.pos++; // consume \"(\"\n\n\tconst expression = parseExpression(s);\n\tif (!expression) {\n\t\ts.pos = startPos;\n\t\treturn;\n\t}\n\n\tif (s.tokens[s.pos]?.kind !== TokenKind.RightParen) {\n\t\ts.pos = startPos;\n\t\treturn;\n\t}\n\ts.pos++; // consume \")\"\n\treturn expression;\n}\n\nfunction parseComparison(s: ParserState): Comparison | undefined {\n\t// <identifier> <operator> <identifier|version|number>\n\tconst startPos = s.pos;\n\tconst left = parseIdentifier(s);\n\tif (!left) {\n\t\ts.pos = startPos;\n\t\treturn;\n\t}\n\tconst operator = parseOperator(s);\n\tif (operator == undefined) {\n\t\ts.pos = startPos;\n\t\treturn;\n\t}\n\tconst right = parseVersion(s)\n\t\t|| parseNumberLiteral(s)\n\t\t|| parseIdentifier(s);\n\tif (!right) {\n\t\ts.pos = startPos;\n\t\treturn;\n\t} else if (right.kind === SyntaxKind.Identifier) {\n\t\t// For comparisons, the right side must not be an identifier\n\t\tthrow new Error(\n\t\t\t`Right-hand side of comparisons must be a version or number literal`,\n\t\t);\n\t}\n\treturn {\n\t\tkind: SyntaxKind.Comparison,\n\t\tleft,\n\t\toperator,\n\t\tright,\n\t};\n}\n\nfunction parseIdentifier(s: ParserState): Identifier | undefined {\n\tconst token = s.tokens[s.pos];\n\tif (token?.kind === TokenKind.Identifier) {\n\t\ts.pos++;\n\t\treturn { kind: SyntaxKind.Identifier, name: token.value! };\n\t}\n}\n\nfunction parseOperator(s: ParserState): Operator | null {\n\tconst token = s.tokens[s.pos];\n\tif (!token) return null;\n\n\tswitch (token.kind) {\n\t\tcase TokenKind.EqualsEquals:\n\t\tcase TokenKind.EqualsEqualsEquals:\n\t\t\ts.pos++;\n\t\t\treturn Operator.Equal;\n\t\tcase TokenKind.ExclamationEquals:\n\t\tcase TokenKind.ExclamationEqualsEquals:\n\t\t\ts.pos++;\n\t\t\treturn Operator.NotEqual;\n\t\tcase TokenKind.LessThan:\n\t\t\ts.pos++;\n\t\t\treturn Operator.LessThan;\n\t\tcase TokenKind.LessThanEquals:\n\t\t\ts.pos++;\n\t\t\treturn Operator.LessThanOrEqual;\n\t\tcase TokenKind.GreaterThan:\n\t\t\ts.pos++;\n\t\t\treturn Operator.GreaterThan;\n\t\tcase TokenKind.GreaterThanEquals:\n\t\t\ts.pos++;\n\t\t\treturn Operator.GreaterThanOrEqual;\n\t\tdefault:\n\t\t\treturn null;\n\t}\n}\n\nfunction parseVersion(s: ParserState): Version | undefined {\n\t// <number> \".\" <number> [\".\" <number>]\n\tlet pos = s.pos;\n\t// Parse a sequence of 2-3 number literals separated by dots\n\tif (s.tokens[pos]?.kind !== TokenKind.NumberLiteral) {\n\t\treturn;\n\t}\n\tlet version = s.tokens[pos].value!;\n\tpos++;\n\tif (s.tokens[pos]?.kind !== TokenKind.Dot) {\n\t\treturn;\n\t}\n\tversion += \".\";\n\tpos++;\n\tif (s.tokens[pos]?.kind !== TokenKind.NumberLiteral) {\n\t\treturn;\n\t}\n\tversion += s.tokens[pos].value!;\n\tpos++;\n\t// Optionally parse a third number\n\tif (s.tokens[pos]?.kind === TokenKind.Dot) {\n\t\tversion += \".\";\n\t\tpos++;\n\t\tif (s.tokens[pos]?.kind !== TokenKind.NumberLiteral) {\n\t\t\treturn;\n\t\t}\n\t\tversion += s.tokens[pos].value!;\n\t\tpos++;\n\t}\n\t// Update the parser state position\n\ts.pos = pos;\n\treturn { kind: SyntaxKind.Version, value: version };\n}\n\nfunction parseNumberLiteral(s: ParserState): NumberLiteral | undefined {\n\tif (s.tokens[s.pos]?.kind === TokenKind.NumberLiteral) {\n\t\tconst token = s.tokens[s.pos];\n\t\ts.pos++;\n\t\treturn {\n\t\t\tkind: SyntaxKind.NumberLiteral,\n\t\t\tvalue: parseInt(token.value!),\n\t\t};\n\t}\n}\n\nexport function toRulesLogic(expr: Expression): RulesLogic {\n\tif (expr.kind === SyntaxKind.Or) {\n\t\treturn {\n\t\t\tor: expr.operands.map(toRulesLogic),\n\t\t};\n\t} else if (expr.kind === SyntaxKind.And) {\n\t\treturn {\n\t\t\tand: expr.operands.map(toRulesLogic),\n\t\t};\n\t} else if (expr.kind === SyntaxKind.Comparison) {\n\t\tif (expr.right.kind === SyntaxKind.Version) {\n\t\t\tconst opMap = {\n\t\t\t\t[Operator.Equal]: \"ver ===\",\n\t\t\t\t[Operator.NotEqual]: \"ver !==\",\n\t\t\t\t[Operator.LessThan]: \"ver <\",\n\t\t\t\t[Operator.LessThanOrEqual]: \"ver <=\",\n\t\t\t\t[Operator.GreaterThan]: \"ver >\",\n\t\t\t\t[Operator.GreaterThanOrEqual]: \"ver >=\",\n\t\t\t} as const;\n\t\t\t// @ts-expect-error The generated types for the version comparisons are not compatible with the RulesLogic type\n\t\t\treturn {\n\t\t\t\t[opMap[expr.operator]]: [\n\t\t\t\t\t{ var: expr.left.name },\n\t\t\t\t\texpr.right.value,\n\t\t\t\t],\n\t\t\t};\n\t\t} else {\n\t\t\tconst opMap = {\n\t\t\t\t[Operator.Equal]: \"===\",\n\t\t\t\t[Operator.NotEqual]: \"!==\",\n\t\t\t\t[Operator.LessThan]: \"<\",\n\t\t\t\t[Operator.LessThanOrEqual]: \"<=\",\n\t\t\t\t[Operator.GreaterThan]: \">\",\n\t\t\t\t[Operator.GreaterThanOrEqual]: \">=\",\n\t\t\t};\n\t\t\t// @ts-expect-error The generated types for the version comparisons are not compatible with the RulesLogic type\n\t\t\treturn {\n\t\t\t\t[opMap[expr.operator]]: [\n\t\t\t\t\t{ var: expr.left.name },\n\t\t\t\t\texpr.right.value,\n\t\t\t\t] as const,\n\t\t\t};\n\t\t}\n\t} else {\n\t\tassertNever(expr);\n\t}\n}\n"],
5
+ "mappings": "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",
6
+ "names": ["SyntaxKind", "Operator", "TokenKind"]
7
7
  }
@@ -74,7 +74,7 @@ async function loadManufacturersInternal(fs, externalConfigDir) {
74
74
  __name(loadManufacturersInternal, "loadManufacturersInternal");
75
75
  async function saveManufacturersInternal(fs, manufacturers) {
76
76
  const data = {};
77
- const orderedMap = new Map([...manufacturers].sort((a, b) => a[0] > b[0] ? 1 : -1));
77
+ const orderedMap = new Map([...manufacturers].toSorted((a, b) => a[0] > b[0] ? 1 : -1));
78
78
  for (const [id, name] of orderedMap) {
79
79
  data[(0, import_shared.formatId)(id)] = name;
80
80
  }
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/Manufacturers.ts"],
4
- "sourcesContent": ["import { configDir } from \"#config_dir\";\nimport { ZWaveError, ZWaveErrorCodes, isZWaveError } from \"@zwave-js/core\";\nimport {\n\tformatId,\n\tpathExists,\n\treadTextFile,\n\tstringify,\n\twriteTextFile,\n} from \"@zwave-js/shared\";\nimport type {\n\tReadFile,\n\tReadFileSystemInfo,\n\tWriteFile,\n} from \"@zwave-js/shared/bindings\";\nimport { isObject } from \"alcalzone-shared/typeguards\";\nimport JSON5 from \"json5\";\nimport path from \"pathe\";\nimport { hexKeyRegex4Digits, throwInvalidConfig } from \"./utils_safe.js\";\n\nexport type ManufacturersMap = Map<number, string>;\n\n/** @internal */\nexport async function loadManufacturersInternal(\n\tfs: ReadFileSystemInfo & ReadFile,\n\texternalConfigDir?: string,\n): Promise<ManufacturersMap> {\n\tconst configPath = path.join(\n\t\texternalConfigDir || configDir,\n\t\t\"manufacturers.json\",\n\t);\n\n\tif (!(await pathExists(fs, configPath))) {\n\t\tthrow new ZWaveError(\n\t\t\t\"The manufacturer config file does not exist!\",\n\t\t\tZWaveErrorCodes.Config_Invalid,\n\t\t);\n\t}\n\ttry {\n\t\tconst fileContents = await readTextFile(fs, configPath, \"utf8\");\n\t\tconst definition = JSON5.parse(fileContents);\n\t\tif (!isObject(definition)) {\n\t\t\tthrowInvalidConfig(\n\t\t\t\t\"manufacturers\",\n\t\t\t\t`the database is not an object!`,\n\t\t\t);\n\t\t}\n\n\t\tconst manufacturers = new Map();\n\t\tfor (const [id, name] of Object.entries(definition)) {\n\t\t\tif (!hexKeyRegex4Digits.test(id)) {\n\t\t\t\tthrowInvalidConfig(\n\t\t\t\t\t\"manufacturers\",\n\t\t\t\t\t`found invalid key ${id} at the root level. Manufacturer IDs must be hexadecimal lowercase.`,\n\t\t\t\t);\n\t\t\t}\n\t\t\tif (typeof name !== \"string\") {\n\t\t\t\tthrowInvalidConfig(\n\t\t\t\t\t\"manufacturers\",\n\t\t\t\t\t`Key ${id} has a non-string manufacturer name`,\n\t\t\t\t);\n\t\t\t}\n\t\t\tconst idNum = parseInt(id.slice(2), 16);\n\t\t\tmanufacturers.set(idNum, name);\n\t\t}\n\n\t\treturn manufacturers;\n\t} catch (e) {\n\t\tif (isZWaveError(e) || ((e as any).code === \"ENOENT\")) {\n\t\t\tthrow e;\n\t\t} else {\n\t\t\tthrowInvalidConfig(\"manufacturers\");\n\t\t}\n\t}\n}\n\n/**\n * Write current manufacturers map to json\n */\nexport async function saveManufacturersInternal(\n\tfs: WriteFile,\n\tmanufacturers: ManufacturersMap,\n): Promise<void> {\n\tconst data: Record<string, string> = {};\n\n\tconst orderedMap = new Map(\n\t\t[...manufacturers].sort((a, b) => (a[0] > b[0] ? 1 : -1)),\n\t);\n\n\tfor (const [id, name] of orderedMap) {\n\t\tdata[formatId(id)] = name;\n\t}\n\n\tconst configPath = path.join(configDir, \"manufacturers.json\");\n\tawait writeTextFile(fs, configPath, stringify(data, \"\\t\") + \"\\n\");\n}\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;;;;;AAAA,wBAA0B;AAC1B,kBAA0D;AAC1D,oBAMO;AAMP,wBAAyB;AACzB,mBAAkB;AAClB,mBAAiB;AACjB,wBAAuD;AAKvD,eAAsB,0BACrB,IACA,mBAA0B;AAE1B,QAAM,aAAa,aAAAA,QAAK,KACvB,qBAAqB,6BACrB,oBAAoB;AAGrB,MAAI,CAAE,UAAM,0BAAW,IAAI,UAAU,GAAI;AACxC,UAAM,IAAI,uBACT,gDACA,4BAAgB,cAAc;EAEhC;AACA,MAAI;AACH,UAAM,eAAe,UAAM,4BAAa,IAAI,YAAY,MAAM;AAC9D,UAAM,aAAa,aAAAC,QAAM,MAAM,YAAY;AAC3C,QAAI,KAAC,4BAAS,UAAU,GAAG;AAC1B,gDACC,iBACA,gCAAgC;IAElC;AAEA,UAAM,gBAAgB,oBAAI,IAAG;AAC7B,eAAW,CAAC,IAAI,IAAI,KAAK,OAAO,QAAQ,UAAU,GAAG;AACpD,UAAI,CAAC,qCAAmB,KAAK,EAAE,GAAG;AACjC,kDACC,iBACA,qBAAqB,EAAE,qEAAqE;MAE9F;AACA,UAAI,OAAO,SAAS,UAAU;AAC7B,kDACC,iBACA,OAAO,EAAE,qCAAqC;MAEhD;AACA,YAAM,QAAQ,SAAS,GAAG,MAAM,CAAC,GAAG,EAAE;AACtC,oBAAc,IAAI,OAAO,IAAI;IAC9B;AAEA,WAAO;EACR,SAAS,GAAG;AACX,YAAI,0BAAa,CAAC,KAAO,EAAU,SAAS,UAAW;AACtD,YAAM;IACP,OAAO;AACN,gDAAmB,eAAe;IACnC;EACD;AACD;AAnDsB;AAwDtB,eAAsB,0BACrB,IACA,eAA+B;AAE/B,QAAM,OAA+B,CAAA;AAErC,QAAM,aAAa,IAAI,IACtB,CAAC,GAAG,aAAa,EAAE,KAAK,CAAC,GAAG,MAAO,EAAE,CAAC,IAAI,EAAE,CAAC,IAAI,IAAI,EAAG,CAAC;AAG1D,aAAW,CAAC,IAAI,IAAI,KAAK,YAAY;AACpC,aAAK,wBAAS,EAAE,CAAC,IAAI;EACtB;AAEA,QAAM,aAAa,aAAAD,QAAK,KAAK,6BAAW,oBAAoB;AAC5D,YAAM,6BAAc,IAAI,gBAAY,yBAAU,MAAM,GAAI,IAAI,IAAI;AACjE;AAhBsB;",
4
+ "sourcesContent": ["import { configDir } from \"#config_dir\";\nimport { ZWaveError, ZWaveErrorCodes, isZWaveError } from \"@zwave-js/core\";\nimport {\n\tformatId,\n\tpathExists,\n\treadTextFile,\n\tstringify,\n\twriteTextFile,\n} from \"@zwave-js/shared\";\nimport type {\n\tReadFile,\n\tReadFileSystemInfo,\n\tWriteFile,\n} from \"@zwave-js/shared/bindings\";\nimport { isObject } from \"alcalzone-shared/typeguards\";\nimport JSON5 from \"json5\";\nimport path from \"pathe\";\nimport { hexKeyRegex4Digits, throwInvalidConfig } from \"./utils_safe.js\";\n\nexport type ManufacturersMap = Map<number, string>;\n\n/** @internal */\nexport async function loadManufacturersInternal(\n\tfs: ReadFileSystemInfo & ReadFile,\n\texternalConfigDir?: string,\n): Promise<ManufacturersMap> {\n\tconst configPath = path.join(\n\t\texternalConfigDir || configDir,\n\t\t\"manufacturers.json\",\n\t);\n\n\tif (!(await pathExists(fs, configPath))) {\n\t\tthrow new ZWaveError(\n\t\t\t\"The manufacturer config file does not exist!\",\n\t\t\tZWaveErrorCodes.Config_Invalid,\n\t\t);\n\t}\n\ttry {\n\t\tconst fileContents = await readTextFile(fs, configPath, \"utf8\");\n\t\tconst definition = JSON5.parse(fileContents);\n\t\tif (!isObject(definition)) {\n\t\t\tthrowInvalidConfig(\n\t\t\t\t\"manufacturers\",\n\t\t\t\t`the database is not an object!`,\n\t\t\t);\n\t\t}\n\n\t\tconst manufacturers = new Map();\n\t\tfor (const [id, name] of Object.entries(definition)) {\n\t\t\tif (!hexKeyRegex4Digits.test(id)) {\n\t\t\t\tthrowInvalidConfig(\n\t\t\t\t\t\"manufacturers\",\n\t\t\t\t\t`found invalid key ${id} at the root level. Manufacturer IDs must be hexadecimal lowercase.`,\n\t\t\t\t);\n\t\t\t}\n\t\t\tif (typeof name !== \"string\") {\n\t\t\t\tthrowInvalidConfig(\n\t\t\t\t\t\"manufacturers\",\n\t\t\t\t\t`Key ${id} has a non-string manufacturer name`,\n\t\t\t\t);\n\t\t\t}\n\t\t\tconst idNum = parseInt(id.slice(2), 16);\n\t\t\tmanufacturers.set(idNum, name);\n\t\t}\n\n\t\treturn manufacturers;\n\t} catch (e) {\n\t\tif (isZWaveError(e) || ((e as any).code === \"ENOENT\")) {\n\t\t\tthrow e;\n\t\t} else {\n\t\t\tthrowInvalidConfig(\"manufacturers\");\n\t\t}\n\t}\n}\n\n/**\n * Write current manufacturers map to json\n */\nexport async function saveManufacturersInternal(\n\tfs: WriteFile,\n\tmanufacturers: ManufacturersMap,\n): Promise<void> {\n\tconst data: Record<string, string> = {};\n\n\tconst orderedMap = new Map(\n\t\t[...manufacturers].toSorted((a, b) => (a[0] > b[0] ? 1 : -1)),\n\t);\n\n\tfor (const [id, name] of orderedMap) {\n\t\tdata[formatId(id)] = name;\n\t}\n\n\tconst configPath = path.join(configDir, \"manufacturers.json\");\n\tawait writeTextFile(fs, configPath, stringify(data, \"\\t\") + \"\\n\");\n}\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;;;;;AAAA,wBAA0B;AAC1B,kBAA0D;AAC1D,oBAMO;AAMP,wBAAyB;AACzB,mBAAkB;AAClB,mBAAiB;AACjB,wBAAuD;AAKvD,eAAsB,0BACrB,IACA,mBAA0B;AAE1B,QAAM,aAAa,aAAAA,QAAK,KACvB,qBAAqB,6BACrB,oBAAoB;AAGrB,MAAI,CAAE,UAAM,0BAAW,IAAI,UAAU,GAAI;AACxC,UAAM,IAAI,uBACT,gDACA,4BAAgB,cAAc;EAEhC;AACA,MAAI;AACH,UAAM,eAAe,UAAM,4BAAa,IAAI,YAAY,MAAM;AAC9D,UAAM,aAAa,aAAAC,QAAM,MAAM,YAAY;AAC3C,QAAI,KAAC,4BAAS,UAAU,GAAG;AAC1B,gDACC,iBACA,gCAAgC;IAElC;AAEA,UAAM,gBAAgB,oBAAI,IAAG;AAC7B,eAAW,CAAC,IAAI,IAAI,KAAK,OAAO,QAAQ,UAAU,GAAG;AACpD,UAAI,CAAC,qCAAmB,KAAK,EAAE,GAAG;AACjC,kDACC,iBACA,qBAAqB,EAAE,qEAAqE;MAE9F;AACA,UAAI,OAAO,SAAS,UAAU;AAC7B,kDACC,iBACA,OAAO,EAAE,qCAAqC;MAEhD;AACA,YAAM,QAAQ,SAAS,GAAG,MAAM,CAAC,GAAG,EAAE;AACtC,oBAAc,IAAI,OAAO,IAAI;IAC9B;AAEA,WAAO;EACR,SAAS,GAAG;AACX,YAAI,0BAAa,CAAC,KAAO,EAAU,SAAS,UAAW;AACtD,YAAM;IACP,OAAO;AACN,gDAAmB,eAAe;IACnC;EACD;AACD;AAnDsB;AAwDtB,eAAsB,0BACrB,IACA,eAA+B;AAE/B,QAAM,OAA+B,CAAA;AAErC,QAAM,aAAa,IAAI,IACtB,CAAC,GAAG,aAAa,EAAE,SAAS,CAAC,GAAG,MAAO,EAAE,CAAC,IAAI,EAAE,CAAC,IAAI,IAAI,EAAG,CAAC;AAG9D,aAAW,CAAC,IAAI,IAAI,KAAK,YAAY;AACpC,aAAK,wBAAS,EAAE,CAAC,IAAI;EACtB;AAEA,QAAM,aAAa,aAAAD,QAAK,KAAK,6BAAW,oBAAoB;AAC5D,YAAM,6BAAc,IAAI,gBAAY,yBAAU,MAAM,GAAI,IAAI,IAAI;AACjE;AAhBsB;",
6
6
  "names": ["path", "JSON5"]
7
7
  }
@@ -1,2 +1,2 @@
1
- export declare const PACKAGE_VERSION = "15.15.3";
1
+ export declare const PACKAGE_VERSION = "15.17.0";
2
2
  //# sourceMappingURL=_version.d.ts.map
@@ -21,7 +21,7 @@ __export(version_exports, {
21
21
  PACKAGE_VERSION: () => PACKAGE_VERSION
22
22
  });
23
23
  module.exports = __toCommonJS(version_exports);
24
- const PACKAGE_VERSION = "15.15.3";
24
+ const PACKAGE_VERSION = "15.17.0";
25
25
  // Annotate the CommonJS export names for ESM import in node:
26
26
  0 && (module.exports = {
27
27
  PACKAGE_VERSION
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/_version.ts"],
4
- "sourcesContent": ["// This file is auto-generated by the codegen maintenance script\nexport const PACKAGE_VERSION = \"15.15.3\";\n"],
4
+ "sourcesContent": ["// This file is auto-generated by the codegen maintenance script\nexport const PACKAGE_VERSION = \"15.17.0\";\n"],
5
5
  "mappings": ";;;;;;;;;;;;;;;;;;AAAA;;;;;AACO,MAAM,kBAAkB;",
6
6
  "names": []
7
7
  }
@@ -1,4 +1,4 @@
1
- import { type JSONObject } from "@zwave-js/shared";
1
+ import { type BytesView, type JSONObject } from "@zwave-js/shared";
2
2
  import type { ReadFile, ReadFileSystemInfo } from "@zwave-js/shared/bindings";
3
3
  import { type AssociationConfig, ConditionalAssociationConfig } from "./AssociationConfig.js";
4
4
  import { type CompatConfig, ConditionalCompatConfig } from "./CompatConfig.js";
@@ -117,8 +117,8 @@ export declare class DeviceConfig {
117
117
  /**
118
118
  * Returns a hash code that can be used to check whether a device config has changed enough to require a re-interview.
119
119
  */
120
- getHash(version?: 0 | 1 | 2): Promise<Uint8Array>;
120
+ getHash(version?: 0 | 1 | 2): Promise<BytesView>;
121
121
  static get maxHashVersion(): 2;
122
- static areHashesEqual(hash: Uint8Array, other: Uint8Array): boolean;
122
+ static areHashesEqual(hash: BytesView, other: BytesView): boolean;
123
123
  }
124
124
  //# sourceMappingURL=DeviceConfig.d.ts.map
@@ -469,7 +469,7 @@ class DeviceConfig {
469
469
  };
470
470
  const sortObject = /* @__PURE__ */ __name((obj) => {
471
471
  const ret = {};
472
- for (const key of Object.keys(obj).sort()) {
472
+ for (const key of Object.keys(obj).toSorted()) {
473
473
  ret[key] = obj[key];
474
474
  }
475
475
  return ret;
@@ -490,7 +490,7 @@ class DeviceConfig {
490
490
  if (!map || !map.size)
491
491
  return;
492
492
  const getParamKey = /* @__PURE__ */ __name((param) => `${param.parameterNumber}${param.valueBitMask ? `[${(0, import_shared.num2hex)(param.valueBitMask)}]` : ""}`, "getParamKey");
493
- target.paramInformation = [...map.values()].sort((a, b) => getParamKey(a).localeCompare(getParamKey(b))).map((p) => (0, import_shared.cloneDeep)(p));
493
+ target.paramInformation = [...map.values()].toSorted((a, b) => getParamKey(a).localeCompare(getParamKey(b))).map((p) => (0, import_shared.cloneDeep)(p));
494
494
  }, "cloneParamInformationMap");
495
495
  {
496
496
  let ep0 = {};
@@ -545,7 +545,7 @@ class DeviceConfig {
545
545
  c.removeCCs = Object.fromEntries(this.compat.removeCCs);
546
546
  }
547
547
  if (this.compat.treatSetAsReport) {
548
- c.treatSetAsReport = [...this.compat.treatSetAsReport].sort();
548
+ c.treatSetAsReport = [...this.compat.treatSetAsReport].toSorted();
549
549
  }
550
550
  c = sortObject(c);
551
551
  if (Object.keys(c).length > 0) {