runcell 0.1.16a0__py3-none-any.whl → 0.1.16a2__py3-none-any.whl

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 (557) hide show
  1. d5m_ai/_version.py +1 -1
  2. d5m_ai/completion/__init__.py +11 -1
  3. d5m_ai/empty_display/__init__.py +3 -0
  4. d5m_ai/empty_display/empty_display_handler.py +137 -0
  5. d5m_ai/extension.py +12 -1
  6. d5m_ai/git_status_handler.py +225 -0
  7. d5m_ai/gitignore_handler.py +120 -0
  8. d5m_ai/labextension/package.json +7 -2
  9. d5m_ai/labextension/schemas/runcell/file-browser-toggle.json +22 -0
  10. d5m_ai/labextension/schemas/runcell/package.json.orig +7 -2
  11. d5m_ai/labextension/static/1105.da3b3cc0801d5b7daf78.js +1 -0
  12. d5m_ai/labextension/static/1113.a6206c1ce30c44e74d65.js +1 -0
  13. d5m_ai/labextension/static/1424.7330f97f81a7cbac0293.js +1 -0
  14. d5m_ai/labextension/static/1482.5594d3330698044d51b6.js +1 -0
  15. d5m_ai/labextension/static/1681.b7dbfbfc8e8bb443b01d.js +1 -0
  16. d5m_ai/labextension/static/1741.0e30660c73a4aa6109e0.js +1 -0
  17. d5m_ai/labextension/static/1980.a1d8fd213c03964ca2dd.js +1 -0
  18. d5m_ai/labextension/static/2313.e3756d51e535b61cbc41.js +1 -0
  19. d5m_ai/labextension/static/2331.f0e4d66886493b7ff0f6.js +48 -0
  20. d5m_ai/labextension/static/239.17dc9f15aff0e2c966f0.js +1 -0
  21. d5m_ai/labextension/static/2443.590c85be4982d61f9378.js +1 -0
  22. runcell-0.1.16a0.data/data/share/jupyter/labextensions/runcell/static/4077.edd571d319dc66c9d7fa.js → d5m_ai/labextension/static/2490.742d719657af69afad3e.js +1 -1
  23. d5m_ai/labextension/static/2636.c45f9685b0508a44882a.js +1 -0
  24. d5m_ai/labextension/static/2726.e9c471b4ad7fed0d085b.js +1 -0
  25. d5m_ai/labextension/static/2783.e11cc76ea288d3c135d0.js +1 -0
  26. d5m_ai/labextension/static/2922.8cdf00bb7d09c5419d78.js +2 -0
  27. d5m_ai/labextension/static/2951.ef10b72fe6b301f68146.js +1 -0
  28. d5m_ai/labextension/static/2958.38f8dc8fc705367ecec4.js +1 -0
  29. runcell-0.1.16a0.data/data/share/jupyter/labextensions/runcell/static/5408.f0ba6921f1e4477b4a96.js → d5m_ai/labextension/static/3027.2226147340da305061f3.js +1 -1
  30. d5m_ai/labextension/static/3033.98d8aa6a2f13a942b945.js +1 -0
  31. d5m_ai/labextension/static/3131.5b8a2d5bc188f95b8229.js +1 -0
  32. d5m_ai/labextension/static/3340.6609b3985073e002c83d.js +2 -0
  33. runcell-0.1.16a0.data/data/share/jupyter/labextensions/runcell/static/415.c2838574e93d05eb13ea.js → d5m_ai/labextension/static/415.0a1fdc1d9f76c0431d42.js +1 -1
  34. runcell-0.1.16a0.data/data/share/jupyter/labextensions/runcell/static/9451.9bf13bcd4aa14be0ce6e.js → d5m_ai/labextension/static/4175.550a71c6766138e5a6ee.js +1 -1
  35. runcell-0.1.16a0.data/data/share/jupyter/labextensions/runcell/static/4296.22c023f73b9ef8838492.js → d5m_ai/labextension/static/4296.7f1db6691a4ac120a383.js +1 -1
  36. d5m_ai/labextension/static/434.bfe4f51db2eb9644fbe7.js +2 -0
  37. d5m_ai/labextension/static/4497.5c0323113f039c9558b6.js +1 -0
  38. d5m_ai/labextension/static/4664.73a65498a9c43ddcf17e.js +1 -0
  39. d5m_ai/labextension/static/5112.5f1cd8ee9c2297a251f7.js +1 -0
  40. d5m_ai/labextension/static/5228.05d972957a2421ec1ce0.js +1 -0
  41. d5m_ai/labextension/static/5264.37c842e2843ca2bf4298.js +1 -0
  42. d5m_ai/labextension/static/{8652.ccf18cf55b444e7e4609.js → 539.7b5e45294371c047b74e.js} +1 -1
  43. d5m_ai/labextension/static/5391.375b4314cb4b851f0915.js +2 -0
  44. d5m_ai/labextension/static/5408.07fc40e33d3fd1a3f7b6.js +1 -0
  45. d5m_ai/labextension/static/5455.c1d01203e7e387437b83.js +1 -0
  46. d5m_ai/labextension/static/559.a4c3a83a74025324f179.js +1 -0
  47. d5m_ai/labextension/static/6131.0393c6487450018afcae.js +1 -0
  48. d5m_ai/labextension/static/6354.0025efd7872b7d32b46b.js +2 -0
  49. d5m_ai/labextension/static/6494.da246ca8363db0bb8bfc.js +1 -0
  50. runcell-0.1.16a0.data/data/share/jupyter/labextensions/runcell/static/4175.d23c246efa6921b45150.js → d5m_ai/labextension/static/6556.7a46eed7932ddfc9e659.js +1 -1
  51. d5m_ai/labextension/static/6633.6708bbc3c085110097da.js +1 -0
  52. d5m_ai/labextension/static/6820.b3aba76c0f17b2560849.js +1 -0
  53. d5m_ai/labextension/static/7440.4e80677e4d48bac95cb6.js +1 -0
  54. d5m_ai/labextension/static/7556.c28352f72f5c6ab4e9e9.js +1 -0
  55. d5m_ai/labextension/static/7665.9b5dec1a38d313e36c39.js +1 -0
  56. d5m_ai/labextension/static/7772.094d82c7ec81259764f4.js +2 -0
  57. d5m_ai/labextension/static/8053.ebcecafa176e4cb5c439.js +2 -0
  58. d5m_ai/labextension/static/8263.47d184d4682b2f6564c4.js +1 -0
  59. d5m_ai/labextension/static/9319.6255ff90c37ad4298707.js +1 -0
  60. d5m_ai/labextension/static/9417.b1bbd219cb5ae78f19f9.js +1 -0
  61. d5m_ai/labextension/static/9517.b2f4fa51abd8b9d6687e.js +1 -0
  62. d5m_ai/labextension/static/9599.456325f0d51fefd16a42.js +1 -0
  63. d5m_ai/labextension/static/9977.17f268665ed85e3ccc62.js +1 -0
  64. d5m_ai/labextension/static/9997.1716894eb29a02d76575.js +1 -0
  65. d5m_ai/labextension/static/remoteEntry.c31036ba7b40ed91b072.js +1 -0
  66. d5m_ai/labextension/static/third-party-licenses.json +78 -12
  67. d5m_ai/ping/ping_handler.py +10 -1
  68. d5m_ai/quick_fix/__init__.py +9 -0
  69. d5m_ai/quick_fix/quick_fix_handler.py +142 -0
  70. d5m_ai/search_replace_handler.py +404 -0
  71. d5m_ai/tools/grep.py +54 -10
  72. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/package.json +7 -2
  73. runcell-0.1.16a2.data/data/share/jupyter/labextensions/runcell/schemas/runcell/file-browser-toggle.json +22 -0
  74. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/schemas/runcell/package.json.orig +7 -2
  75. runcell-0.1.16a2.data/data/share/jupyter/labextensions/runcell/static/1105.da3b3cc0801d5b7daf78.js +1 -0
  76. runcell-0.1.16a2.data/data/share/jupyter/labextensions/runcell/static/1113.a6206c1ce30c44e74d65.js +1 -0
  77. runcell-0.1.16a2.data/data/share/jupyter/labextensions/runcell/static/1424.7330f97f81a7cbac0293.js +1 -0
  78. runcell-0.1.16a2.data/data/share/jupyter/labextensions/runcell/static/1482.5594d3330698044d51b6.js +1 -0
  79. runcell-0.1.16a2.data/data/share/jupyter/labextensions/runcell/static/1681.b7dbfbfc8e8bb443b01d.js +1 -0
  80. runcell-0.1.16a2.data/data/share/jupyter/labextensions/runcell/static/1741.0e30660c73a4aa6109e0.js +1 -0
  81. runcell-0.1.16a2.data/data/share/jupyter/labextensions/runcell/static/1980.a1d8fd213c03964ca2dd.js +1 -0
  82. runcell-0.1.16a2.data/data/share/jupyter/labextensions/runcell/static/2313.e3756d51e535b61cbc41.js +1 -0
  83. runcell-0.1.16a2.data/data/share/jupyter/labextensions/runcell/static/2331.f0e4d66886493b7ff0f6.js +48 -0
  84. runcell-0.1.16a2.data/data/share/jupyter/labextensions/runcell/static/239.17dc9f15aff0e2c966f0.js +1 -0
  85. runcell-0.1.16a2.data/data/share/jupyter/labextensions/runcell/static/2443.590c85be4982d61f9378.js +1 -0
  86. d5m_ai/labextension/static/4077.edd571d319dc66c9d7fa.js → runcell-0.1.16a2.data/data/share/jupyter/labextensions/runcell/static/2490.742d719657af69afad3e.js +1 -1
  87. runcell-0.1.16a2.data/data/share/jupyter/labextensions/runcell/static/2636.c45f9685b0508a44882a.js +1 -0
  88. runcell-0.1.16a2.data/data/share/jupyter/labextensions/runcell/static/2726.e9c471b4ad7fed0d085b.js +1 -0
  89. runcell-0.1.16a2.data/data/share/jupyter/labextensions/runcell/static/2783.e11cc76ea288d3c135d0.js +1 -0
  90. runcell-0.1.16a2.data/data/share/jupyter/labextensions/runcell/static/2922.8cdf00bb7d09c5419d78.js +2 -0
  91. runcell-0.1.16a2.data/data/share/jupyter/labextensions/runcell/static/2951.ef10b72fe6b301f68146.js +1 -0
  92. runcell-0.1.16a2.data/data/share/jupyter/labextensions/runcell/static/2958.38f8dc8fc705367ecec4.js +1 -0
  93. d5m_ai/labextension/static/5408.f0ba6921f1e4477b4a96.js → runcell-0.1.16a2.data/data/share/jupyter/labextensions/runcell/static/3027.2226147340da305061f3.js +1 -1
  94. runcell-0.1.16a2.data/data/share/jupyter/labextensions/runcell/static/3033.98d8aa6a2f13a942b945.js +1 -0
  95. runcell-0.1.16a2.data/data/share/jupyter/labextensions/runcell/static/3131.5b8a2d5bc188f95b8229.js +1 -0
  96. runcell-0.1.16a2.data/data/share/jupyter/labextensions/runcell/static/3340.6609b3985073e002c83d.js +2 -0
  97. d5m_ai/labextension/static/415.c2838574e93d05eb13ea.js → runcell-0.1.16a2.data/data/share/jupyter/labextensions/runcell/static/415.0a1fdc1d9f76c0431d42.js +1 -1
  98. d5m_ai/labextension/static/9451.9bf13bcd4aa14be0ce6e.js → runcell-0.1.16a2.data/data/share/jupyter/labextensions/runcell/static/4175.550a71c6766138e5a6ee.js +1 -1
  99. d5m_ai/labextension/static/4296.22c023f73b9ef8838492.js → runcell-0.1.16a2.data/data/share/jupyter/labextensions/runcell/static/4296.7f1db6691a4ac120a383.js +1 -1
  100. runcell-0.1.16a2.data/data/share/jupyter/labextensions/runcell/static/434.bfe4f51db2eb9644fbe7.js +2 -0
  101. runcell-0.1.16a2.data/data/share/jupyter/labextensions/runcell/static/4497.5c0323113f039c9558b6.js +1 -0
  102. runcell-0.1.16a2.data/data/share/jupyter/labextensions/runcell/static/4664.73a65498a9c43ddcf17e.js +1 -0
  103. runcell-0.1.16a2.data/data/share/jupyter/labextensions/runcell/static/5112.5f1cd8ee9c2297a251f7.js +1 -0
  104. runcell-0.1.16a2.data/data/share/jupyter/labextensions/runcell/static/5228.05d972957a2421ec1ce0.js +1 -0
  105. runcell-0.1.16a2.data/data/share/jupyter/labextensions/runcell/static/5264.37c842e2843ca2bf4298.js +1 -0
  106. runcell-0.1.16a0.data/data/share/jupyter/labextensions/runcell/static/8652.ccf18cf55b444e7e4609.js → runcell-0.1.16a2.data/data/share/jupyter/labextensions/runcell/static/539.7b5e45294371c047b74e.js +1 -1
  107. runcell-0.1.16a2.data/data/share/jupyter/labextensions/runcell/static/5391.375b4314cb4b851f0915.js +2 -0
  108. runcell-0.1.16a2.data/data/share/jupyter/labextensions/runcell/static/5408.07fc40e33d3fd1a3f7b6.js +1 -0
  109. runcell-0.1.16a2.data/data/share/jupyter/labextensions/runcell/static/5455.c1d01203e7e387437b83.js +1 -0
  110. runcell-0.1.16a2.data/data/share/jupyter/labextensions/runcell/static/559.a4c3a83a74025324f179.js +1 -0
  111. runcell-0.1.16a2.data/data/share/jupyter/labextensions/runcell/static/5973.4e08bf1ee13205326051.js.LICENSE.txt +9 -0
  112. runcell-0.1.16a2.data/data/share/jupyter/labextensions/runcell/static/6131.0393c6487450018afcae.js +1 -0
  113. runcell-0.1.16a2.data/data/share/jupyter/labextensions/runcell/static/6354.0025efd7872b7d32b46b.js +2 -0
  114. runcell-0.1.16a2.data/data/share/jupyter/labextensions/runcell/static/6354.0025efd7872b7d32b46b.js.LICENSE.txt +9 -0
  115. runcell-0.1.16a2.data/data/share/jupyter/labextensions/runcell/static/6494.da246ca8363db0bb8bfc.js +1 -0
  116. d5m_ai/labextension/static/4175.d23c246efa6921b45150.js → runcell-0.1.16a2.data/data/share/jupyter/labextensions/runcell/static/6556.7a46eed7932ddfc9e659.js +1 -1
  117. runcell-0.1.16a2.data/data/share/jupyter/labextensions/runcell/static/6633.6708bbc3c085110097da.js +1 -0
  118. runcell-0.1.16a2.data/data/share/jupyter/labextensions/runcell/static/6820.b3aba76c0f17b2560849.js +1 -0
  119. runcell-0.1.16a2.data/data/share/jupyter/labextensions/runcell/static/7440.4e80677e4d48bac95cb6.js +1 -0
  120. runcell-0.1.16a2.data/data/share/jupyter/labextensions/runcell/static/7556.c28352f72f5c6ab4e9e9.js +1 -0
  121. runcell-0.1.16a2.data/data/share/jupyter/labextensions/runcell/static/7665.9b5dec1a38d313e36c39.js +1 -0
  122. runcell-0.1.16a2.data/data/share/jupyter/labextensions/runcell/static/7772.094d82c7ec81259764f4.js +2 -0
  123. runcell-0.1.16a2.data/data/share/jupyter/labextensions/runcell/static/7772.094d82c7ec81259764f4.js.LICENSE.txt +9 -0
  124. runcell-0.1.16a2.data/data/share/jupyter/labextensions/runcell/static/8053.ebcecafa176e4cb5c439.js +2 -0
  125. runcell-0.1.16a2.data/data/share/jupyter/labextensions/runcell/static/8263.47d184d4682b2f6564c4.js +1 -0
  126. runcell-0.1.16a2.data/data/share/jupyter/labextensions/runcell/static/8354.3044135d1229985d61c6.js.LICENSE.txt +9 -0
  127. runcell-0.1.16a2.data/data/share/jupyter/labextensions/runcell/static/9319.6255ff90c37ad4298707.js +1 -0
  128. runcell-0.1.16a2.data/data/share/jupyter/labextensions/runcell/static/9417.b1bbd219cb5ae78f19f9.js +1 -0
  129. runcell-0.1.16a2.data/data/share/jupyter/labextensions/runcell/static/9517.b2f4fa51abd8b9d6687e.js +1 -0
  130. runcell-0.1.16a2.data/data/share/jupyter/labextensions/runcell/static/9599.456325f0d51fefd16a42.js +1 -0
  131. runcell-0.1.16a2.data/data/share/jupyter/labextensions/runcell/static/9977.17f268665ed85e3ccc62.js +1 -0
  132. runcell-0.1.16a2.data/data/share/jupyter/labextensions/runcell/static/9997.1716894eb29a02d76575.js +1 -0
  133. runcell-0.1.16a2.data/data/share/jupyter/labextensions/runcell/static/remoteEntry.c31036ba7b40ed91b072.js +1 -0
  134. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/third-party-licenses.json +78 -12
  135. {runcell-0.1.16a0.dist-info → runcell-0.1.16a2.dist-info}/METADATA +1 -1
  136. {runcell-0.1.16a0.dist-info → runcell-0.1.16a2.dist-info}/RECORD +467 -448
  137. d5m_ai/labextension/static/1028.9233307a672b5ed5f6dd.js +0 -2
  138. d5m_ai/labextension/static/1120.3a5c6cffcba0bf68b641.js +0 -1
  139. d5m_ai/labextension/static/1447.ac66ae39ce884d1a18d0.js +0 -1
  140. d5m_ai/labextension/static/1582.7da217d25960ba5397bd.js +0 -1
  141. d5m_ai/labextension/static/2161.b9e3a2903ed779f592ea.js +0 -1
  142. d5m_ai/labextension/static/2331.0c857f144a2f2b00f8a5.js +0 -48
  143. d5m_ai/labextension/static/2550.378fe2b47040840cbba8.js +0 -1
  144. d5m_ai/labextension/static/2629.316d3a1d7d7cfbfac695.js +0 -1
  145. d5m_ai/labextension/static/2650.3216fbc0094940682386.js +0 -1
  146. d5m_ai/labextension/static/3180.b882d8142e31a22c4ef1.js +0 -1
  147. d5m_ai/labextension/static/3390.801e2850a27488d150ad.js +0 -1
  148. d5m_ai/labextension/static/3898.7734843ff02cdada588b.js +0 -1
  149. d5m_ai/labextension/static/4023.69d752d417de37d76ade.js +0 -1
  150. d5m_ai/labextension/static/434.70808d0ec3c658d2b92d.js +0 -2
  151. d5m_ai/labextension/static/4580.34e04f4a7023e431d23d.js +0 -1
  152. d5m_ai/labextension/static/4662.421f5305b60cba12c534.js +0 -2
  153. d5m_ai/labextension/static/474.4f1d89bf1d32e86115a7.js +0 -1
  154. d5m_ai/labextension/static/505.0b3c0acccb75ef5c5f94.js +0 -1
  155. d5m_ai/labextension/static/5760.0764c352a23fbaf92015.js +0 -1
  156. d5m_ai/labextension/static/5768.1d2c1415c5e377656758.js +0 -1
  157. d5m_ai/labextension/static/5803.8d0ab269e03508d953f8.js +0 -1
  158. d5m_ai/labextension/static/6157.7340caa53e91c3c15c24.js +0 -1
  159. d5m_ai/labextension/static/6276.cf7ae04d4618ea88cb7d.js +0 -1
  160. d5m_ai/labextension/static/6405.3929194169c6276fd501.js +0 -1
  161. d5m_ai/labextension/static/6581.88276d028c7008c0d7e1.js +0 -1
  162. d5m_ai/labextension/static/7032.eca9d66cd1609cf6f365.js +0 -1
  163. d5m_ai/labextension/static/7060.bbf2c588a4144f5248ae.js +0 -1
  164. d5m_ai/labextension/static/7242.38eda68fb874a3721eea.js +0 -1
  165. d5m_ai/labextension/static/7261.d6bfa79184bf99829ca9.js +0 -1
  166. d5m_ai/labextension/static/7315.251f78c6623473a27bab.js +0 -1
  167. d5m_ai/labextension/static/7585.51f0157a7dd49a9a534e.js +0 -1
  168. d5m_ai/labextension/static/7618.c9e659f65fd9f8796383.js +0 -1
  169. d5m_ai/labextension/static/7728.3148ff9da2a552a37b64.js +0 -2
  170. d5m_ai/labextension/static/8053.cbb88a6e4c3f6b0fae8b.js +0 -2
  171. d5m_ai/labextension/static/8054.90b94cd21bd8db02f876.js +0 -1
  172. d5m_ai/labextension/static/8585.6f732e5d01ff2d4e2366.js +0 -1
  173. d5m_ai/labextension/static/8688.169ad6021b8624f8bf54.js +0 -1
  174. d5m_ai/labextension/static/8690.35988dd5d6c6da52307d.js +0 -1
  175. d5m_ai/labextension/static/8832.7d601f47c6263b04b71e.js +0 -1
  176. d5m_ai/labextension/static/9439.5294b5c7c6b988f8f312.js +0 -1
  177. d5m_ai/labextension/static/9744.402daf30add997cbcb0c.js +0 -1
  178. d5m_ai/labextension/static/9805.e511a6e51466a29b390f.js +0 -1
  179. d5m_ai/labextension/static/998.1d4225ccb6a06740f941.js +0 -1
  180. d5m_ai/labextension/static/9997.bc013b353c8eda57ad1c.js +0 -1
  181. d5m_ai/labextension/static/remoteEntry.d0ed4a0bca8c2e002f18.js +0 -1
  182. runcell-0.1.16a0.data/data/share/jupyter/labextensions/runcell/static/1028.9233307a672b5ed5f6dd.js +0 -2
  183. runcell-0.1.16a0.data/data/share/jupyter/labextensions/runcell/static/1120.3a5c6cffcba0bf68b641.js +0 -1
  184. runcell-0.1.16a0.data/data/share/jupyter/labextensions/runcell/static/1447.ac66ae39ce884d1a18d0.js +0 -1
  185. runcell-0.1.16a0.data/data/share/jupyter/labextensions/runcell/static/1582.7da217d25960ba5397bd.js +0 -1
  186. runcell-0.1.16a0.data/data/share/jupyter/labextensions/runcell/static/2161.b9e3a2903ed779f592ea.js +0 -1
  187. runcell-0.1.16a0.data/data/share/jupyter/labextensions/runcell/static/2331.0c857f144a2f2b00f8a5.js +0 -48
  188. runcell-0.1.16a0.data/data/share/jupyter/labextensions/runcell/static/2550.378fe2b47040840cbba8.js +0 -1
  189. runcell-0.1.16a0.data/data/share/jupyter/labextensions/runcell/static/2629.316d3a1d7d7cfbfac695.js +0 -1
  190. runcell-0.1.16a0.data/data/share/jupyter/labextensions/runcell/static/2650.3216fbc0094940682386.js +0 -1
  191. runcell-0.1.16a0.data/data/share/jupyter/labextensions/runcell/static/3180.b882d8142e31a22c4ef1.js +0 -1
  192. runcell-0.1.16a0.data/data/share/jupyter/labextensions/runcell/static/3390.801e2850a27488d150ad.js +0 -1
  193. runcell-0.1.16a0.data/data/share/jupyter/labextensions/runcell/static/3898.7734843ff02cdada588b.js +0 -1
  194. runcell-0.1.16a0.data/data/share/jupyter/labextensions/runcell/static/4023.69d752d417de37d76ade.js +0 -1
  195. runcell-0.1.16a0.data/data/share/jupyter/labextensions/runcell/static/434.70808d0ec3c658d2b92d.js +0 -2
  196. runcell-0.1.16a0.data/data/share/jupyter/labextensions/runcell/static/4580.34e04f4a7023e431d23d.js +0 -1
  197. runcell-0.1.16a0.data/data/share/jupyter/labextensions/runcell/static/4662.421f5305b60cba12c534.js +0 -2
  198. runcell-0.1.16a0.data/data/share/jupyter/labextensions/runcell/static/474.4f1d89bf1d32e86115a7.js +0 -1
  199. runcell-0.1.16a0.data/data/share/jupyter/labextensions/runcell/static/505.0b3c0acccb75ef5c5f94.js +0 -1
  200. runcell-0.1.16a0.data/data/share/jupyter/labextensions/runcell/static/5760.0764c352a23fbaf92015.js +0 -1
  201. runcell-0.1.16a0.data/data/share/jupyter/labextensions/runcell/static/5768.1d2c1415c5e377656758.js +0 -1
  202. runcell-0.1.16a0.data/data/share/jupyter/labextensions/runcell/static/5803.8d0ab269e03508d953f8.js +0 -1
  203. runcell-0.1.16a0.data/data/share/jupyter/labextensions/runcell/static/6157.7340caa53e91c3c15c24.js +0 -1
  204. runcell-0.1.16a0.data/data/share/jupyter/labextensions/runcell/static/6276.cf7ae04d4618ea88cb7d.js +0 -1
  205. runcell-0.1.16a0.data/data/share/jupyter/labextensions/runcell/static/6405.3929194169c6276fd501.js +0 -1
  206. runcell-0.1.16a0.data/data/share/jupyter/labextensions/runcell/static/6581.88276d028c7008c0d7e1.js +0 -1
  207. runcell-0.1.16a0.data/data/share/jupyter/labextensions/runcell/static/7032.eca9d66cd1609cf6f365.js +0 -1
  208. runcell-0.1.16a0.data/data/share/jupyter/labextensions/runcell/static/7060.bbf2c588a4144f5248ae.js +0 -1
  209. runcell-0.1.16a0.data/data/share/jupyter/labextensions/runcell/static/7242.38eda68fb874a3721eea.js +0 -1
  210. runcell-0.1.16a0.data/data/share/jupyter/labextensions/runcell/static/7261.d6bfa79184bf99829ca9.js +0 -1
  211. runcell-0.1.16a0.data/data/share/jupyter/labextensions/runcell/static/7315.251f78c6623473a27bab.js +0 -1
  212. runcell-0.1.16a0.data/data/share/jupyter/labextensions/runcell/static/7585.51f0157a7dd49a9a534e.js +0 -1
  213. runcell-0.1.16a0.data/data/share/jupyter/labextensions/runcell/static/7618.c9e659f65fd9f8796383.js +0 -1
  214. runcell-0.1.16a0.data/data/share/jupyter/labextensions/runcell/static/7728.3148ff9da2a552a37b64.js +0 -2
  215. runcell-0.1.16a0.data/data/share/jupyter/labextensions/runcell/static/8053.cbb88a6e4c3f6b0fae8b.js +0 -2
  216. runcell-0.1.16a0.data/data/share/jupyter/labextensions/runcell/static/8054.90b94cd21bd8db02f876.js +0 -1
  217. runcell-0.1.16a0.data/data/share/jupyter/labextensions/runcell/static/8585.6f732e5d01ff2d4e2366.js +0 -1
  218. runcell-0.1.16a0.data/data/share/jupyter/labextensions/runcell/static/8688.169ad6021b8624f8bf54.js +0 -1
  219. runcell-0.1.16a0.data/data/share/jupyter/labextensions/runcell/static/8690.35988dd5d6c6da52307d.js +0 -1
  220. runcell-0.1.16a0.data/data/share/jupyter/labextensions/runcell/static/8832.7d601f47c6263b04b71e.js +0 -1
  221. runcell-0.1.16a0.data/data/share/jupyter/labextensions/runcell/static/9439.5294b5c7c6b988f8f312.js +0 -1
  222. runcell-0.1.16a0.data/data/share/jupyter/labextensions/runcell/static/9744.402daf30add997cbcb0c.js +0 -1
  223. runcell-0.1.16a0.data/data/share/jupyter/labextensions/runcell/static/9805.e511a6e51466a29b390f.js +0 -1
  224. runcell-0.1.16a0.data/data/share/jupyter/labextensions/runcell/static/998.1d4225ccb6a06740f941.js +0 -1
  225. runcell-0.1.16a0.data/data/share/jupyter/labextensions/runcell/static/9997.bc013b353c8eda57ad1c.js +0 -1
  226. runcell-0.1.16a0.data/data/share/jupyter/labextensions/runcell/static/remoteEntry.d0ed4a0bca8c2e002f18.js +0 -1
  227. /d5m_ai/labextension/static/{2331.0c857f144a2f2b00f8a5.js.LICENSE.txt → 2331.f0e4d66886493b7ff0f6.js.LICENSE.txt} +0 -0
  228. /d5m_ai/labextension/static/{1028.9233307a672b5ed5f6dd.js.LICENSE.txt → 2922.8cdf00bb7d09c5419d78.js.LICENSE.txt} +0 -0
  229. /d5m_ai/labextension/static/{4662.421f5305b60cba12c534.js.LICENSE.txt → 3340.6609b3985073e002c83d.js.LICENSE.txt} +0 -0
  230. /d5m_ai/labextension/static/{434.70808d0ec3c658d2b92d.js.LICENSE.txt → 434.bfe4f51db2eb9644fbe7.js.LICENSE.txt} +0 -0
  231. /d5m_ai/labextension/static/{7728.3148ff9da2a552a37b64.js.LICENSE.txt → 5391.375b4314cb4b851f0915.js.LICENSE.txt} +0 -0
  232. /runcell-0.1.16a0.data/data/share/jupyter/labextensions/runcell/static/1028.9233307a672b5ed5f6dd.js.LICENSE.txt → /d5m_ai/labextension/static/6354.0025efd7872b7d32b46b.js.LICENSE.txt +0 -0
  233. /runcell-0.1.16a0.data/data/share/jupyter/labextensions/runcell/static/2031.155ab0916a863c8787a7.js.LICENSE.txt → /d5m_ai/labextension/static/7772.094d82c7ec81259764f4.js.LICENSE.txt +0 -0
  234. /d5m_ai/labextension/static/{8053.cbb88a6e4c3f6b0fae8b.js.LICENSE.txt → 8053.ebcecafa176e4cb5c439.js.LICENSE.txt} +0 -0
  235. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/etc/jupyter/jupyter_server_config.d/d5m_ai.json +0 -0
  236. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/etc/jupyter/jupyter_server_config.d/runcell.json +0 -0
  237. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/install.json +0 -0
  238. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/schemas/runcell/plugin.json +0 -0
  239. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/1045.a76db59a7c20953976f0.js +0 -0
  240. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/1055.87aafb19805530488a2c.js +0 -0
  241. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/108.d7dbe40ec7e0ae1a68f8.js +0 -0
  242. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/1104.a2b939bacec5e69efd99.js +0 -0
  243. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/1171.130d3cc54764cac92856.js +0 -0
  244. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/1178.3e25fad4a45450e227c9.js +0 -0
  245. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/1203.5deaeee9e57ffc718f19.js +0 -0
  246. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/1226.ff48aa5741f77eb739fe.js +0 -0
  247. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/1273.4c5992b03f129c9e3025.js +0 -0
  248. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/1285.cf3bab9529c47ac9288d.js +0 -0
  249. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/1307.d98ceb66a2401e5f4ddd.js +0 -0
  250. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/1328.38964f7daa84901e866f.js +0 -0
  251. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/1377.edf5c2163aedef75c6a1.js +0 -0
  252. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/1391.ab61eb03aed289d9d44c.js +0 -0
  253. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/1431.a691b4fa7cf229072fc0.js +0 -0
  254. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/1521.9f3807c4a4dd19a6ab8c.js +0 -0
  255. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/1524.188ff9d525210d499ff3.js +0 -0
  256. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/1534.39ba9b2bf5712b697b63.js +0 -0
  257. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/1540.9eba7e882fd8e00a782a.js +0 -0
  258. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/1552.5203480dcdda6574ef51.js +0 -0
  259. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/1555.686745d50bd19fd9d271.js +0 -0
  260. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/1618.9abd2093263741894755.js +0 -0
  261. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/1635.84bd383b17e41c9fe103.js +0 -0
  262. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/1678.57b141401f73a26257c8.js +0 -0
  263. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/1685.842997eb9757846fe690.js +0 -0
  264. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/1745.e6bb2c6882da5bf9883a.js +0 -0
  265. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/1752.8c4ecff560428215fe75.js +0 -0
  266. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/1797.f8ca14c3ec1c0f51f403.js +0 -0
  267. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/1897.7cca7a664a9ca9b486ac.js +0 -0
  268. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/1902.364fa5e977055fe14150.js +0 -0
  269. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/1915.b55b7d52608421a7fc41.js +0 -0
  270. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/1970.dff4fcccbb6cadb04d0c.js +0 -0
  271. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/200.f1d30c245c18bbb03312.js +0 -0
  272. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/2031.155ab0916a863c8787a7.js +0 -0
  273. /runcell-0.1.16a0.data/data/share/jupyter/labextensions/runcell/static/4412.23a8cb5fb7377d3c81ab.js.LICENSE.txt → /runcell-0.1.16a2.data/data/share/jupyter/labextensions/runcell/static/2031.155ab0916a863c8787a7.js.LICENSE.txt +0 -0
  274. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/207.f5bd6d1b383a6b01ca69.js +0 -0
  275. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/2072.a4d04cc98bb118e689a1.js +0 -0
  276. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/2075.5d6a026d7308b71b70a1.js +0 -0
  277. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/2111.a3c1f620c0a31e54cb9f.js +0 -0
  278. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/2152.4db0fcf1f4dccf54b600.js +0 -0
  279. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/2173.9fddf72b827a6d629bad.js +0 -0
  280. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/2198.e195afcaabb2e4063da9.js +0 -0
  281. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/2224.c86b12cf9e2165904033.js +0 -0
  282. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/2225.8d31eec53891ca7775b7.js +0 -0
  283. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/2271.69d9ea25d4ddd02710f6.js +0 -0
  284. /runcell-0.1.16a0.data/data/share/jupyter/labextensions/runcell/static/2331.0c857f144a2f2b00f8a5.js.LICENSE.txt → /runcell-0.1.16a2.data/data/share/jupyter/labextensions/runcell/static/2331.f0e4d66886493b7ff0f6.js.LICENSE.txt +0 -0
  285. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/2349.e7c5b5e507c7a81d1427.js +0 -0
  286. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/2353.7b6b36b3164a86427209.js +0 -0
  287. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/2382.9e67478cc4b31aede22c.js +0 -0
  288. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/2385.cd85a7dd4acb5be739da.js +0 -0
  289. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/248.693fd98760ec6ce42219.js +0 -0
  290. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/2555.7168a2616a6071addb97.js +0 -0
  291. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/2576.56496d8cba50d3d69eb5.js +0 -0
  292. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/2639.eb2553a7be688366d9f3.js +0 -0
  293. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/2654.2453f6b5846a4719dba4.js +0 -0
  294. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/267.829ce2ca38940b778c91.js +0 -0
  295. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/270.9409a2f5631a31c79cd9.js +0 -0
  296. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/2768.9e5b7c6ed84b2486f835.js +0 -0
  297. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/2789.12830cdb21c09111668d.js +0 -0
  298. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/2824.d02df014c07b7288e78c.js +0 -0
  299. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/2824.d02df014c07b7288e78c.js.LICENSE.txt +0 -0
  300. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/2838.2e689afee276e5e21c57.js +0 -0
  301. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/2843.65aeb8be3744d20229b8.js +0 -0
  302. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/2897.7bc91ca284ea12b863e8.js +0 -0
  303. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/2905.0d34ef7a481f9a968f05.js +0 -0
  304. /runcell-0.1.16a0.data/data/share/jupyter/labextensions/runcell/static/5973.4e08bf1ee13205326051.js.LICENSE.txt → /runcell-0.1.16a2.data/data/share/jupyter/labextensions/runcell/static/2922.8cdf00bb7d09c5419d78.js.LICENSE.txt +0 -0
  305. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/2971.60c60668c130ed05d493.js +0 -0
  306. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/299.8600f54b39a11eeff427.js +0 -0
  307. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/3028.953cd3b9865063969086.js +0 -0
  308. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/3041.4059f9ba4f9eba56672a.js +0 -0
  309. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/3045.a457aa1d023ba5f799c2.js +0 -0
  310. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/3092.fad665f8cdb1da61b55b.js +0 -0
  311. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/3142.7df01050c977ede2b13b.js +0 -0
  312. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/3157.bcb9f8ff06fa4af27b6a.js +0 -0
  313. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/3214.a986c1896fa590b2da27.js +0 -0
  314. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/3239.4562297487744a7cc1d4.js +0 -0
  315. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/325.bd1e5cab3b6e068b25bc.js +0 -0
  316. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/3254.9e1aa1fee12644fea2d9.js +0 -0
  317. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/3267.ff884bf47b52ac634854.js +0 -0
  318. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/3291.156ad2d1520857115575.js +0 -0
  319. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/3311.dc97fd544e85acac8477.js +0 -0
  320. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/3319.687f07bb2f993c1dc44b.js +0 -0
  321. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/3325.c100f45711f539a7f262.js +0 -0
  322. /runcell-0.1.16a0.data/data/share/jupyter/labextensions/runcell/static/4662.421f5305b60cba12c534.js.LICENSE.txt → /runcell-0.1.16a2.data/data/share/jupyter/labextensions/runcell/static/3340.6609b3985073e002c83d.js.LICENSE.txt +0 -0
  323. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/3386.4c8eebdb8d318c2913ce.js +0 -0
  324. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/3386.4c8eebdb8d318c2913ce.js.LICENSE.txt +0 -0
  325. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/3407.cbbf99a2ff4805726f3e.js +0 -0
  326. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/3424.92b1a820ff2aa6156c36.js +0 -0
  327. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/3426.27afd4c41cfad8e1a63d.js +0 -0
  328. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/3436.ea677bb3e7f3ce87d7fd.js +0 -0
  329. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/3449.5d8818fac081c207ce79.js +0 -0
  330. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/3514.c8a1863df3cfd5390617.js +0 -0
  331. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/355.45290b03d6d4be49a58e.js +0 -0
  332. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/3551.87e6eb270a212d08b1b5.js +0 -0
  333. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/359.1463d2cf955623ecceae.js +0 -0
  334. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/3619.3dfa7c4eaa067a407275.js +0 -0
  335. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/3645.5ea37d9f483120f69f4e.js +0 -0
  336. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/3659.056fa5e4e39b72bc358b.js +0 -0
  337. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/3688.7bd1ba5006b22ed5616e.js +0 -0
  338. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/3722.688cdfd335ffeac13492.js +0 -0
  339. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/3724.06a5a1b542ff978df3b4.js +0 -0
  340. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/376.f9c52e5bbd650da7b67f.js +0 -0
  341. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/3794.c0236d400b2129ac42a9.js +0 -0
  342. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/3930.b142768bad429b3ebb04.js +0 -0
  343. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/4003.95678dd199222938923b.js +0 -0
  344. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/4017.d35a7557e5338be92770.js +0 -0
  345. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/4050.00a6bfc9f23c6ef07199.js +0 -0
  346. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/4087.ea430b62171512019400.js +0 -0
  347. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/410.fd643a255d72a83c1be6.js +0 -0
  348. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/4127.0e783d9a497298e9fe18.js +0 -0
  349. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/4238.bd4642c4f9256441aea5.js +0 -0
  350. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/4246.d8aedd2b15d1a95f1288.js +0 -0
  351. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/4272.c92c9a0d98749863c853.js +0 -0
  352. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/4317.1ba9f3c33b7a1484c5df.js +0 -0
  353. /runcell-0.1.16a0.data/data/share/jupyter/labextensions/runcell/static/434.70808d0ec3c658d2b92d.js.LICENSE.txt → /runcell-0.1.16a2.data/data/share/jupyter/labextensions/runcell/static/434.bfe4f51db2eb9644fbe7.js.LICENSE.txt +0 -0
  354. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/4353.6a83dae11a48e9d1b345.js +0 -0
  355. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/4358.53a6106c5c93c3fda026.js +0 -0
  356. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/4364.e87c307df69aa50a5b2a.js +0 -0
  357. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/4365.b2b4496cc260301256b9.js +0 -0
  358. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/4371.647bc44642d1ad0e99e4.js +0 -0
  359. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/4390.1cafd3d4635b09e0c945.js +0 -0
  360. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/4412.23a8cb5fb7377d3c81ab.js +0 -0
  361. /runcell-0.1.16a0.data/data/share/jupyter/labextensions/runcell/static/7728.3148ff9da2a552a37b64.js.LICENSE.txt → /runcell-0.1.16a2.data/data/share/jupyter/labextensions/runcell/static/4412.23a8cb5fb7377d3c81ab.js.LICENSE.txt +0 -0
  362. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/4425.a34c4f44daa5996eeec4.js +0 -0
  363. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/4447.3ad32bafee045d2c0bab.js +0 -0
  364. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/4477.d9e871faf650e6ad238a.js +0 -0
  365. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/45.560ee8b955f55e6a7471.js +0 -0
  366. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/4503.794c4dd58c6bf2e6a66d.js +0 -0
  367. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/4584.c610d4a425b036b86759.js +0 -0
  368. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/4613.05840d3fc617590fff51.js +0 -0
  369. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/4630.a78300f70b9af36897eb.js +0 -0
  370. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/4682.1b69aa450cedd96227c9.js +0 -0
  371. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/4713.4e4e598399fd6de85f5d.js +0 -0
  372. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/4725.5447994a36dfeda58b9f.js +0 -0
  373. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/4755.74d46f71eb4d23e4bca2.js +0 -0
  374. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/4838.688e36ea43737e72dbdc.js +0 -0
  375. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/485.d27de91b0124447cf435.js +0 -0
  376. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/4872.1404f5d25464532c27c2.js +0 -0
  377. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/4886.443bcf6af7b83f72b4b5.js +0 -0
  378. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/4913.d226f3c41ebb36489ce3.js +0 -0
  379. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/492.a7f5e972b35c8c877bf1.js +0 -0
  380. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/4928.5c8ad7f80ba081dfdbba.js +0 -0
  381. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/5146.45d9b015343e5a7cace1.js +0 -0
  382. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/5183.8c5527ebc7a807107471.js +0 -0
  383. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/524.927c6a42244b04ee834f.js +0 -0
  384. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/5253.2cea0b927b50c952fe98.js +0 -0
  385. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/5331.c971f98ac4fd9e9751a4.js +0 -0
  386. /runcell-0.1.16a0.data/data/share/jupyter/labextensions/runcell/static/8354.3044135d1229985d61c6.js.LICENSE.txt → /runcell-0.1.16a2.data/data/share/jupyter/labextensions/runcell/static/5391.375b4314cb4b851f0915.js.LICENSE.txt +0 -0
  387. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/5431.528d309549815d363599.js +0 -0
  388. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/5447.1267bc4aa4938bd0f08d.js +0 -0
  389. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/5466.e1da4e862af22e314f82.js +0 -0
  390. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/5473.7ac9ad0a3e047bfeceb0.js +0 -0
  391. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/5509.c8c8ddebaabc3579daba.js +0 -0
  392. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/5590.fd188e01caa78afb3ec4.js +0 -0
  393. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/5620.cd3cd230d09209b34fb5.js +0 -0
  394. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/5636.ca803ffcf0d43c2402c9.js +0 -0
  395. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/5672.156ad2d1520857115575.js +0 -0
  396. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/5695.0da6228c48571d9386f3.js +0 -0
  397. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/5715.66ad4e7324b22a5e27fb.js +0 -0
  398. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/5741.edd8fd814866705aad98.js +0 -0
  399. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/5748.53eb48f5623074a948ba.js +0 -0
  400. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/5765.e957d823cdfe2746a356.js +0 -0
  401. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/5788.b9c62804c0698b91ca8a.js +0 -0
  402. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/5882.b40b5d690d3f6f67f09a.js +0 -0
  403. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/5885.8cd4d3e3008fdb31ce2a.js +0 -0
  404. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/5900.6dca06924caef83a5b52.js +0 -0
  405. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/5906.870c0d7bb4e022aaca9d.js +0 -0
  406. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/5908.e81f83f7a9906d9d7542.js +0 -0
  407. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/5973.4e08bf1ee13205326051.js +0 -0
  408. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/5977.d264e9baaebc417e35c0.js +0 -0
  409. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/6007.987a9850d5891b1908ae.js +0 -0
  410. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/6030.dd5fd07844168dbaa6f6.js +0 -0
  411. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/6030.dd5fd07844168dbaa6f6.js.LICENSE.txt +0 -0
  412. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/6079.5c80b9de6aabb0be08d2.js +0 -0
  413. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/6084.bf8d6b1da6c4cad209bb.js +0 -0
  414. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/6094.f96654ca0070f8f391b1.js +0 -0
  415. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/611.5ae7fb260af8629f1528.js +0 -0
  416. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/6176.bd441d4d6fe942889bf3.js +0 -0
  417. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/6221.457e64a4f06be421eaa4.js +0 -0
  418. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/6266.4f2bcc95c2d61cdaacbc.js +0 -0
  419. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/627.84c4aa26f69662abb72d.js +0 -0
  420. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/6293.823b9bfe50fdfd62dd42.js +0 -0
  421. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/6299.b14c1d46ba4ad9799f63.js +0 -0
  422. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/6306.8d22227d6aa1dfc32da5.js +0 -0
  423. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/6320.b844d6686eebcb036643.js +0 -0
  424. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/6322.997db39a5d4b63e72b21.js +0 -0
  425. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/6336.92de365c5fb0f261f799.js +0 -0
  426. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/6366.5049626e7d5bb38a8574.js +0 -0
  427. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/640.ebfad36f1dde45e9cd05.js +0 -0
  428. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/642.817a48a77e1c16e6e65d.js +0 -0
  429. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/6520.ff2a9ec2e50dd45868ac.js +0 -0
  430. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/6573.7899a873adb98c3c0190.js +0 -0
  431. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/6648.b7ed5e9a732275dc85ac.js +0 -0
  432. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/6676.1a71900a6131dbe02aad.js +0 -0
  433. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/6678.fe58c12ce33b0f5706f5.js +0 -0
  434. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/6772.01fcccfcabd525210aee.js +0 -0
  435. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/6774.1e0a751d7079179f8f73.js +0 -0
  436. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/6795.1c49fa950817836e3f1e.js +0 -0
  437. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/6803.eccda2da06d869b0acda.js +0 -0
  438. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/6822.5bf91484ea172f864747.js +0 -0
  439. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/6853.48004207e7c689ec55b4.js +0 -0
  440. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/6880.c3cfce260b3d25d9ef5e.js +0 -0
  441. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/6906.1f65b08daf64af8d1f27.js +0 -0
  442. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/6982.d9f1a29fe7834b53c855.js +0 -0
  443. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/7005.9f8920f4e58652fe3ef9.js +0 -0
  444. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/711.5c259d7417620cf8eef8.js +0 -0
  445. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/7131.cab088ddb371234f1fd6.js +0 -0
  446. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/7161.f03be5c4590ae6db98c1.js +0 -0
  447. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/7166.6e64d20ff3d06bb0726a.js +0 -0
  448. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/7181.1d3f5611193e734beaf4.js +0 -0
  449. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/72.081fe34e2c76320135d0.js +0 -0
  450. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/7232.5969981a73dac6835b93.js +0 -0
  451. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/7273.9e6765278092fd30a14f.js +0 -0
  452. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/7280.5862e5cf2b594fd45f82.js +0 -0
  453. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/7336.b8136533f61cd1b71adc.js +0 -0
  454. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/7359.7bc0ef939742600dba39.js +0 -0
  455. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/7399.6fa42c5d34d3659f9f68.js +0 -0
  456. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/7400.ea48afe8766bd82b3741.js +0 -0
  457. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/7441.bce20fb0ea3d8638bc30.js +0 -0
  458. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/7488.f63b5ad13eb23dbc3915.js +0 -0
  459. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/751.48ddf412afdd781e868f.js +0 -0
  460. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/7572.937d1e5ce68a384389e9.js +0 -0
  461. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/7652.cf086dfcd950ff2c4554.js +0 -0
  462. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/7672.61e8e5299259407f1ee1.js +0 -0
  463. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/7705.962a56002e394e3755aa.js +0 -0
  464. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/7719.9dbadc40622a97c6fa90.js +0 -0
  465. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/7771.efa5c4cf41907b4c8cfc.js +0 -0
  466. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/779.c50f60eeca2b40bf96db.js +0 -0
  467. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/7792.e67368a87fa703a97f25.js +0 -0
  468. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/7812.1b53bb1f6cce555d0b70.js +0 -0
  469. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/7890.c8c8ddebaabc3579daba.js +0 -0
  470. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/7954.b02433d4bd38b648ec0e.js +0 -0
  471. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/7959.75734676fe5e861ad899.js +0 -0
  472. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/7967.ccc236f921abba961fcb.js +0 -0
  473. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/7981.c14b5974541e98a1b340.js +0 -0
  474. /runcell-0.1.16a0.data/data/share/jupyter/labextensions/runcell/static/8053.cbb88a6e4c3f6b0fae8b.js.LICENSE.txt → /runcell-0.1.16a2.data/data/share/jupyter/labextensions/runcell/static/8053.ebcecafa176e4cb5c439.js.LICENSE.txt +0 -0
  475. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/8056.06f4e4d87d7ccc1e4662.js +0 -0
  476. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/8066.ad6692e614937d4dc480.js +0 -0
  477. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/8122.f671cfb05d97b5e220fa.js +0 -0
  478. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/8146.fc69595fa9fb4dc989ec.js +0 -0
  479. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/8151.e18e503723ffa9d576f7.js +0 -0
  480. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/8177.d8e81718e82279286385.js +0 -0
  481. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/8179.33453f3165561d33347d.js +0 -0
  482. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/8181.0f15741bcd037cfaf528.js +0 -0
  483. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/8249.01410b92489460697717.js +0 -0
  484. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/8295.39003c08c2539bf22593.js +0 -0
  485. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/8304.075c39345f3b817edfb1.js +0 -0
  486. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/8321.3ba6a40e5ed74b977afc.js +0 -0
  487. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/8343.31e93467f566af5fb10e.js +0 -0
  488. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/8354.3044135d1229985d61c6.js +0 -0
  489. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/8366.55b8257f92b23e6f49ec.js +0 -0
  490. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/8369.80293e64ec102044c767.js +0 -0
  491. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/84.3575d43472885d2b7714.js +0 -0
  492. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/8400.7d8ed1bca69c56f67486.js +0 -0
  493. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/8404.1c1c675dc23d7d9d80de.js +0 -0
  494. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/8437.795ac38d87895b50d98e.js +0 -0
  495. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/8480.6698a41d2cf895aafe0f.js +0 -0
  496. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/8482.85d03122dfec6d4f9307.js +0 -0
  497. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/851.9faa523fb28cedcd6b88.js +0 -0
  498. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/8522.dd261948e958bcf4ae64.js +0 -0
  499. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/8524.4c79a5ea5e22a1389a1f.js +0 -0
  500. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/8649.b722755e4bccf4a39cd5.js +0 -0
  501. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/8675.ffadeba0edbfd8d2285d.js +0 -0
  502. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/8748.bb9c4496cf4ab7577e74.js +0 -0
  503. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/8751.e80b9f51b9cdb544d16b.js +0 -0
  504. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/8768.4aba875e6cfb350edfa7.js +0 -0
  505. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/880.0bcd5ab06196cb9533c4.js +0 -0
  506. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/8824.4b08a890046be218bb35.js +0 -0
  507. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/8829.c51ecb2bf77a1ca2a962.js +0 -0
  508. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/8856.6e271445d6d3837302ec.js +0 -0
  509. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/8860.c824d17d8869a6dd6207.js +0 -0
  510. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/8887.6480b4ee0c5fa187c2d7.js +0 -0
  511. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/8929.3329d360058c1764e201.js +0 -0
  512. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/8957.4f33250ba35099dbe048.js +0 -0
  513. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/9014.0e67032c3d7119ce3370.js +0 -0
  514. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/904.60333ec0aebf2d092197.js +0 -0
  515. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/9040.9376593b8e7caa5ed6a0.js +0 -0
  516. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/9055.7b9ab3136d6a82b298a4.js +0 -0
  517. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/9071.d8aea526bf53118639a9.js +0 -0
  518. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/9113.f9e25015d31ee397e490.js +0 -0
  519. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/9115.c30adf6f374eb1bd3b93.js +0 -0
  520. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/9125.26a8a929493c19af9f50.js +0 -0
  521. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/9165.8b0907227f85ba27306b.js +0 -0
  522. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/9180.7d6cded0c9f36ac75093.js +0 -0
  523. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/9184.33de87e8d509010a9bdf.js +0 -0
  524. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/9193.3666b71cf376fdec58b4.js +0 -0
  525. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/9205.a2f5f2a2c0b69582717e.js +0 -0
  526. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/9251.822a5aa9397713d54ea2.js +0 -0
  527. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/9255.ad693b359f0d12767fe1.js +0 -0
  528. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/9262.bebc0ed75d7f86d722f2.js +0 -0
  529. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/9277.f3623a34b457ca052d80.js +0 -0
  530. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/9285.2d3c4984387ebca606d4.js +0 -0
  531. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/9289.9fb56f7beb83d721e654.js +0 -0
  532. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/934.3ce5b696b827323e706e.js +0 -0
  533. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/9402.b8868b6860051723bf48.js +0 -0
  534. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/9404.f6ff67c04b5dfb52e3d9.js +0 -0
  535. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/9412.fe8cf617636a0df90247.js +0 -0
  536. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/9456.2f96fda82d4be6b0448e.js +0 -0
  537. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/9494.b4ae8d6a63ec84cc4ec3.js +0 -0
  538. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/9513.0db046603be52099c3ec.js +0 -0
  539. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/9514.458d7630c50b4b658200.js +0 -0
  540. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/9559.07e6563cb0b401ff88a6.js +0 -0
  541. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/9576.b2d6c2e9831fda63f41f.js +0 -0
  542. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/9607.a4f836281d0337527f6e.js +0 -0
  543. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/9621.55ea68ee13d702908a10.js +0 -0
  544. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/9640.c489050f3a1342328779.js +0 -0
  545. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/9650.b4d4a115ac2fca1dfbe8.js +0 -0
  546. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/9704.f4c6d15183531d37b825.js +0 -0
  547. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/9734.63cf17414a5103d290bb.js +0 -0
  548. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/9754.2f617d267f5167be63ed.js +0 -0
  549. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/9885.f84ed1b0565de3b61e99.js +0 -0
  550. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/9912.b6643895a628f9ea506c.js +0 -0
  551. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/9926.6e52dbb62a19476aae87.js +0 -0
  552. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/9939.eab64dfd409dd1df1844.js +0 -0
  553. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/9986.e953beace913bfa7ba74.js +0 -0
  554. {runcell-0.1.16a0.data → runcell-0.1.16a2.data}/data/share/jupyter/labextensions/runcell/static/style.js +0 -0
  555. {runcell-0.1.16a0.dist-info → runcell-0.1.16a2.dist-info}/WHEEL +0 -0
  556. {runcell-0.1.16a0.dist-info → runcell-0.1.16a2.dist-info}/entry_points.txt +0 -0
  557. {runcell-0.1.16a0.dist-info → runcell-0.1.16a2.dist-info}/licenses/LICENSE +0 -0
@@ -1 +1 @@
1
- "use strict";(self.webpackChunkruncell=self.webpackChunkruncell||[]).push([[8652],{54034:(e,t,n)=>{n.d(t,{c:()=>s});var r=n(17517),i=4;function s(e){return(0,r.b)(e,i)}},58652:(e,t,n)=>{n.d(t,{a:()=>Td,c:()=>pd,d:()=>kd,e:()=>wd,f:()=>ud,g:()=>_d,h:()=>jd,p:()=>zd});var r=n(4662),i=n(17517),s=n(76276),a=n(54034),o=n(39907),l=Object.defineProperty,c=(e,t,n)=>((e,t,n)=>t in e?l(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n)(e,"symbol"!=typeof t?t+"":t,n);function u(e,t,n){var r=-1,i=e.length;t<0&&(t=-t>i?0:i+t),(n=n>i?i:n)<0&&(n+=i),i=t>n?0:n-t>>>0,t>>>=0;for(var s=Array(i);++r<i;)s[r]=e[r+t];return s}function d(e){return"string"==typeof e||!(0,r.aS)(e)&&(0,r.bm)(e)&&"[object String]"==(0,r.bn)(e)}function h(e){return e&&e.length?(0,i.a)(e):[]}function f(e,t){if(null==e)return{};var n=(0,i.o)((0,i.w)(e),function(e){return[e]});return t=(0,i.l)(t),(0,s.b)(e,n,function(e,n){return t(e,n[0])})}var p=(0,r.ar)(function(e,t){return(0,r.as)(e)?function(e,t){var n=-1,r=i.x,s=!0,a=e.length,o=[],l=t.length;if(!a)return o;t.length>=200&&(r=i.y,s=!1,t=new i.S(t));e:for(;++n<a;){var c=e[n],u=c;if(c=0!==c?c:0,s&&u==u){for(var d=l;d--;)if(t[d]===u)continue e;o.push(c)}else r(t,u,undefined)||o.push(c)}return o}(e,(0,i.c)(t,1,r.as,!0)):[]}),m=Object.prototype.hasOwnProperty,g=(0,r.bA)(function(e,t){if((0,r.bB)(t)||(0,r.aR)(t))(0,r.bp)(t,(0,i.k)(t),e);else for(var n in t)m.call(t,n)&&(0,r.aN)(e,n,t[n])});function y(e){for(var t=-1,n=null==e?0:e.length,r=0,i=[];++t<n;){var s=e[t];s&&(i[r++]=s)}return i}function T(e,t,n,r){for(var i=-1,s=null==e?0:e.length;++i<s;){var a=e[i];t(r,a,n(a),e)}return r}function v(e,t,n,r){return(0,i.n)(e,function(e,i,s){t(r,e,n(e),s)}),r}function R(e,t,n){var r=null==e?0:e.length;return r?u(e,(t=void 0===t?1:(0,s.j)(t))<0?0:t,r):[]}function $(e,t,n){var r=null==e?0:e.length;return r?u(e,0,(t=r-(t=void 0===t?1:(0,s.j)(t)))<0?0:t):[]}function E(e,t){for(var n=-1,r=null==e?0:e.length;++n<r;)if(!t(e[n],n,e))return!1;return!0}function A(e,t){var n=!0;return(0,i.n)(e,function(e,r,i){return n=!!t(e,r,i)}),n}function k(e,t,n){return((0,r.aS)(e)?E:A)(e,(0,i.l)(t))}function x(e){return e&&e.length?e[0]:void 0}function I(e,t){return(0,i.c)((0,s.m)(e,t))}var S,C=Object.prototype.hasOwnProperty,N=(S=function(e,t,n){C.call(e,n)?e[n].push(t):(0,r.ba)(e,n,[t])},function(e,t){var n={};return((0,r.aS)(e)?T:v)(e,S,(0,i.l)(t),n)}),w=Math.max;function L(e,t,n,a){e=(0,r.aR)(e)?e:(0,i.v)(e),n=n?(0,s.j)(n):0;var o=e.length;return n<0&&(n=w(o+n,0)),d(e)?n<=o&&e.indexOf(t,n)>-1:!!o&&(0,i.z)(e,t,n)>-1}function b(e,t,n){return null!=e&&e.length?(0,i.z)(e,t,0):-1}var O=r.bt&&r.bt.isRegExp,_=O?(0,r.bb)(O):function(e){return(0,r.bm)(e)&&"[object RegExp]"==(0,r.bn)(e)};function P(e,t){return((0,r.aS)(e)?i.A:i.B)(e,function(e){if("function"!=typeof e)throw new TypeError("Expected a function");return function(){var t=arguments;switch(t.length){case 0:return!e.call(this);case 1:return!e.call(this,t[0]);case 2:return!e.call(this,t[0],t[1]);case 3:return!e.call(this,t[0],t[1],t[2])}return!e.apply(this,t)}}((0,i.l)(t)))}function M(e,t){var n;return(0,i.n)(e,function(e,r,i){return!(n=t(e,r,i))}),!!n}function D(e,t,n){return((0,r.aS)(e)?i.C:M)(e,(0,i.l)(t))}function U(e){return"object"==typeof e&&null!==e&&"string"==typeof e.$type}function F(e){return"object"==typeof e&&null!==e&&"string"==typeof e.$refText}function G(e){return"object"==typeof e&&null!==e&&U(e.container)&&F(e.reference)&&"string"==typeof e.message}class B{constructor(){this.subtypes={},this.allSubtypes={}}isInstance(e,t){return U(e)&&this.isSubtype(e.$type,t)}isSubtype(e,t){if(e===t)return!0;let n=this.subtypes[e];n||(n=this.subtypes[e]={});const r=n[t];if(void 0!==r)return r;{const r=this.computeIsSubtype(e,t);return n[t]=r,r}}getAllSubTypes(e){const t=this.allSubtypes[e];if(t)return t;{const t=this.getAllTypes(),n=[];for(const r of t)this.isSubtype(r,e)&&n.push(r);return this.allSubtypes[e]=n,n}}}function K(e){return"object"==typeof e&&null!==e&&Array.isArray(e.content)}function V(e){return"object"==typeof e&&null!==e&&"object"==typeof e.tokenType}function j(e){return K(e)&&"string"==typeof e.fullText}class H{constructor(e,t){this.startFn=e,this.nextFn=t}iterator(){const e={state:this.startFn(),next:()=>this.nextFn(e.state),[Symbol.iterator]:()=>e};return e}[Symbol.iterator](){return this.iterator()}isEmpty(){return!!this.iterator().next().done}count(){const e=this.iterator();let t=0,n=e.next();for(;!n.done;)t++,n=e.next();return t}toArray(){const e=[],t=this.iterator();let n;do{n=t.next(),void 0!==n.value&&e.push(n.value)}while(!n.done);return e}toSet(){return new Set(this)}toMap(e,t){const n=this.map(n=>[e?e(n):n,t?t(n):n]);return new Map(n)}toString(){return this.join()}concat(e){return new H(()=>({first:this.startFn(),firstDone:!1,iterator:e[Symbol.iterator]()}),e=>{let t;if(!e.firstDone){do{if(t=this.nextFn(e.first),!t.done)return t}while(!t.done);e.firstDone=!0}do{if(t=e.iterator.next(),!t.done)return t}while(!t.done);return q})}join(e=","){const t=this.iterator();let n,r="",i=!1;do{n=t.next(),n.done||(i&&(r+=e),r+=W(n.value)),i=!0}while(!n.done);return r}indexOf(e,t=0){const n=this.iterator();let r=0,i=n.next();for(;!i.done;){if(r>=t&&i.value===e)return r;i=n.next(),r++}return-1}every(e){const t=this.iterator();let n=t.next();for(;!n.done;){if(!e(n.value))return!1;n=t.next()}return!0}some(e){const t=this.iterator();let n=t.next();for(;!n.done;){if(e(n.value))return!0;n=t.next()}return!1}forEach(e){const t=this.iterator();let n=0,r=t.next();for(;!r.done;)e(r.value,n),r=t.next(),n++}map(e){return new H(this.startFn,t=>{const{done:n,value:r}=this.nextFn(t);return n?q:{done:!1,value:e(r)}})}filter(e){return new H(this.startFn,t=>{let n;do{if(n=this.nextFn(t),!n.done&&e(n.value))return n}while(!n.done);return q})}nonNullable(){return this.filter(e=>null!=e)}reduce(e,t){const n=this.iterator();let r=t,i=n.next();for(;!i.done;)r=void 0===r?i.value:e(r,i.value),i=n.next();return r}reduceRight(e,t){return this.recursiveReduce(this.iterator(),e,t)}recursiveReduce(e,t,n){const r=e.next();if(r.done)return n;const i=this.recursiveReduce(e,t,n);return void 0===i?r.value:t(i,r.value)}find(e){const t=this.iterator();let n=t.next();for(;!n.done;){if(e(n.value))return n.value;n=t.next()}}findIndex(e){const t=this.iterator();let n=0,r=t.next();for(;!r.done;){if(e(r.value))return n;r=t.next(),n++}return-1}includes(e){const t=this.iterator();let n=t.next();for(;!n.done;){if(n.value===e)return!0;n=t.next()}return!1}flatMap(e){return new H(()=>({this:this.startFn()}),t=>{do{if(t.iterator){const e=t.iterator.next();if(!e.done)return e;t.iterator=void 0}const{done:n,value:r}=this.nextFn(t.this);if(!n){const n=e(r);if(!z(n))return{done:!1,value:n};t.iterator=n[Symbol.iterator]()}}while(t.iterator);return q})}flat(e){if(void 0===e&&(e=1),e<=0)return this;const t=e>1?this.flat(e-1):this;return new H(()=>({this:t.startFn()}),e=>{do{if(e.iterator){const t=e.iterator.next();if(!t.done)return t;e.iterator=void 0}const{done:n,value:r}=t.nextFn(e.this);if(!n){if(!z(r))return{done:!1,value:r};e.iterator=r[Symbol.iterator]()}}while(e.iterator);return q})}head(){const e=this.iterator().next();if(!e.done)return e.value}tail(e=1){return new H(()=>{const t=this.startFn();for(let n=0;n<e;n++)if(this.nextFn(t).done)return t;return t},this.nextFn)}limit(e){return new H(()=>({size:0,state:this.startFn()}),t=>(t.size++,t.size>e?q:this.nextFn(t.state)))}distinct(e){return new H(()=>({set:new Set,internalState:this.startFn()}),t=>{let n;do{if(n=this.nextFn(t.internalState),!n.done){const r=e?e(n.value):n.value;if(!t.set.has(r))return t.set.add(r),n}}while(!n.done);return q})}exclude(e,t){const n=new Set;for(const r of e){const e=t?t(r):r;n.add(e)}return this.filter(e=>{const r=t?t(e):e;return!n.has(r)})}}function W(e){return"string"==typeof e?e:typeof e>"u"?"undefined":"function"==typeof e.toString?e.toString():Object.prototype.toString.call(e)}function z(e){return!!e&&"function"==typeof e[Symbol.iterator]}const Y=new H(()=>{},()=>q),q=Object.freeze({done:!0,value:void 0});function X(...e){if(1===e.length){const t=e[0];if(t instanceof H)return t;if(z(t))return new H(()=>t[Symbol.iterator](),e=>e.next());if("number"==typeof t.length)return new H(()=>({index:0}),e=>e.index<t.length?{done:!1,value:t[e.index++]}:q)}return e.length>1?new H(()=>({collIndex:0,arrIndex:0}),t=>{do{if(t.iterator){const e=t.iterator.next();if(!e.done)return e;t.iterator=void 0}if(t.array){if(t.arrIndex<t.array.length)return{done:!1,value:t.array[t.arrIndex++]};t.array=void 0,t.arrIndex=0}if(t.collIndex<e.length){const n=e[t.collIndex++];z(n)?t.iterator=n[Symbol.iterator]():n&&"number"==typeof n.length&&(t.array=n)}}while(t.iterator||t.array||t.collIndex<e.length);return q}):Y}class Q extends H{constructor(e,t,n){super(()=>({iterators:null!=n&&n.includeRoot?[[e][Symbol.iterator]()]:[t(e)[Symbol.iterator]()],pruned:!1}),e=>{for(e.pruned&&(e.iterators.pop(),e.pruned=!1);e.iterators.length>0;){const n=e.iterators[e.iterators.length-1].next();if(!n.done)return e.iterators.push(t(n.value)[Symbol.iterator]()),n;e.iterators.pop()}return q})}iterator(){const e={state:this.startFn(),next:()=>this.nextFn(e.state),prune:()=>{e.state.pruned=!0},[Symbol.iterator]:()=>e};return e}}var Z,J;function ee(e){return new Q(e,e=>K(e)?e.content:[],{includeRoot:!0})}function te(e){return{start:{character:e.startColumn-1,line:e.startLine-1},end:{character:e.endColumn,line:e.endLine-1}}}function ne(e){if(!e)return;const{offset:t,end:n,range:r}=e;return{range:r,offset:t,end:n,length:n-t}}!function(e){e.sum=function(e){return e.reduce((e,t)=>e+t,0)},e.product=function(e){return e.reduce((e,t)=>e*t,0)},e.min=function(e){return e.reduce((e,t)=>Math.min(e,t))},e.max=function(e){return e.reduce((e,t)=>Math.max(e,t))}}(Z||(Z={})),function(e){e[e.Before=0]="Before",e[e.After=1]="After",e[e.OverlapFront=2]="OverlapFront",e[e.OverlapBack=3]="OverlapBack",e[e.Inside=4]="Inside",e[e.Outside=5]="Outside"}(J||(J={}));const re=/^[\w\p{L}]$/u;function ie(e,t){return V(e)&&t.includes(e.tokenType.name)}class se extends Error{constructor(e,t){super(e?`${t} at ${e.range.start.line}:${e.range.start.character}`:t)}}function ae(e){throw new Error("Error! The input value was not handled.")}const oe="AbstractRule",le="AbstractType",ce="Condition",ue="TypeDefinition",de="ValueLiteral",he="AbstractElement";function fe(e){return mt.isInstance(e,he)}const pe="ArrayLiteral",me="ArrayType",ge="BooleanLiteral",ye="Conjunction",Te="Disjunction",ve="Grammar",Re="GrammarImport",$e="InferredType";function Ee(e){return mt.isInstance(e,$e)}const Ae="Interface";function ke(e){return mt.isInstance(e,Ae)}const xe="NamedArgument",Ie="Negation",Se="NumberLiteral",Ce="Parameter",Ne="ParameterReference",we="ParserRule";function Le(e){return mt.isInstance(e,we)}const be="ReferenceType",Oe="ReturnType",_e="SimpleType";function Pe(e){return mt.isInstance(e,_e)}const Me="StringLiteral",De="TerminalRule";function Ue(e){return mt.isInstance(e,De)}const Fe="Type";function Ge(e){return mt.isInstance(e,Fe)}const Be="TypeAttribute",Ke="UnionType",Ve="Action";function je(e){return mt.isInstance(e,Ve)}const He="Alternatives";function We(e){return mt.isInstance(e,He)}const ze="Assignment";function Ye(e){return mt.isInstance(e,ze)}const qe="CharacterRange",Xe="CrossReference";function Qe(e){return mt.isInstance(e,Xe)}const Ze="EndOfFile",Je="Group";function et(e){return mt.isInstance(e,Je)}const tt="Keyword";function nt(e){return mt.isInstance(e,tt)}const rt="NegatedToken",it="RegexToken",st="RuleCall";function at(e){return mt.isInstance(e,st)}const ot="TerminalAlternatives",lt="TerminalGroup",ct="TerminalRuleCall",ut="UnorderedGroup";function dt(e){return mt.isInstance(e,ut)}const ht="UntilToken",ft="Wildcard";class pt extends B{getAllTypes(){return[he,oe,le,Ve,He,pe,me,ze,ge,qe,ce,ye,Xe,Te,Ze,ve,Re,Je,$e,Ae,tt,xe,rt,Ie,Se,Ce,Ne,we,be,it,Oe,st,_e,Me,ot,lt,De,ct,Fe,Be,ue,Ke,ut,ht,de,ft]}computeIsSubtype(e,t){switch(e){case Ve:case He:case ze:case qe:case Xe:case Ze:case Je:case tt:case rt:case it:case st:case ot:case lt:case ct:case ut:case ht:case ft:return this.isSubtype(he,t);case pe:case Se:case Me:return this.isSubtype(de,t);case me:case be:case _e:case Ke:return this.isSubtype(ue,t);case ge:return this.isSubtype(ce,t)||this.isSubtype(de,t);case ye:case Te:case Ie:case Ne:return this.isSubtype(ce,t);case $e:case Ae:case Fe:return this.isSubtype(le,t);case we:return this.isSubtype(oe,t)||this.isSubtype(le,t);case De:return this.isSubtype(oe,t);default:return!1}}getReferenceType(e){const t=`${e.container.$type}:${e.property}`;switch(t){case"Action:type":case"CrossReference:type":case"Interface:superTypes":case"ParserRule:returnType":case"SimpleType:typeRef":return le;case"Grammar:hiddenTokens":case"ParserRule:hiddenTokens":case"RuleCall:rule":return oe;case"Grammar:usedGrammars":return ve;case"NamedArgument:parameter":case"ParameterReference:parameter":return Ce;case"TerminalRuleCall:rule":return De;default:throw new Error(`${t} is not a valid reference id.`)}}getTypeMetaData(e){switch(e){case he:return{name:he,properties:[{name:"cardinality"},{name:"lookahead"}]};case pe:return{name:pe,properties:[{name:"elements",defaultValue:[]}]};case me:return{name:me,properties:[{name:"elementType"}]};case ge:return{name:ge,properties:[{name:"true",defaultValue:!1}]};case ye:return{name:ye,properties:[{name:"left"},{name:"right"}]};case Te:return{name:Te,properties:[{name:"left"},{name:"right"}]};case ve:return{name:ve,properties:[{name:"definesHiddenTokens",defaultValue:!1},{name:"hiddenTokens",defaultValue:[]},{name:"imports",defaultValue:[]},{name:"interfaces",defaultValue:[]},{name:"isDeclared",defaultValue:!1},{name:"name"},{name:"rules",defaultValue:[]},{name:"types",defaultValue:[]},{name:"usedGrammars",defaultValue:[]}]};case Re:return{name:Re,properties:[{name:"path"}]};case $e:return{name:$e,properties:[{name:"name"}]};case Ae:return{name:Ae,properties:[{name:"attributes",defaultValue:[]},{name:"name"},{name:"superTypes",defaultValue:[]}]};case xe:return{name:xe,properties:[{name:"calledByName",defaultValue:!1},{name:"parameter"},{name:"value"}]};case Ie:return{name:Ie,properties:[{name:"value"}]};case Se:return{name:Se,properties:[{name:"value"}]};case Ce:return{name:Ce,properties:[{name:"name"}]};case Ne:return{name:Ne,properties:[{name:"parameter"}]};case we:return{name:we,properties:[{name:"dataType"},{name:"definesHiddenTokens",defaultValue:!1},{name:"definition"},{name:"entry",defaultValue:!1},{name:"fragment",defaultValue:!1},{name:"hiddenTokens",defaultValue:[]},{name:"inferredType"},{name:"name"},{name:"parameters",defaultValue:[]},{name:"returnType"},{name:"wildcard",defaultValue:!1}]};case be:return{name:be,properties:[{name:"referenceType"}]};case Oe:return{name:Oe,properties:[{name:"name"}]};case _e:return{name:_e,properties:[{name:"primitiveType"},{name:"stringType"},{name:"typeRef"}]};case Me:return{name:Me,properties:[{name:"value"}]};case De:return{name:De,properties:[{name:"definition"},{name:"fragment",defaultValue:!1},{name:"hidden",defaultValue:!1},{name:"name"},{name:"type"}]};case Fe:return{name:Fe,properties:[{name:"name"},{name:"type"}]};case Be:return{name:Be,properties:[{name:"defaultValue"},{name:"isOptional",defaultValue:!1},{name:"name"},{name:"type"}]};case Ke:return{name:Ke,properties:[{name:"types",defaultValue:[]}]};case Ve:return{name:Ve,properties:[{name:"cardinality"},{name:"feature"},{name:"inferredType"},{name:"lookahead"},{name:"operator"},{name:"type"}]};case He:return{name:He,properties:[{name:"cardinality"},{name:"elements",defaultValue:[]},{name:"lookahead"}]};case ze:return{name:ze,properties:[{name:"cardinality"},{name:"feature"},{name:"lookahead"},{name:"operator"},{name:"terminal"}]};case qe:return{name:qe,properties:[{name:"cardinality"},{name:"left"},{name:"lookahead"},{name:"right"}]};case Xe:return{name:Xe,properties:[{name:"cardinality"},{name:"deprecatedSyntax",defaultValue:!1},{name:"lookahead"},{name:"terminal"},{name:"type"}]};case Ze:return{name:Ze,properties:[{name:"cardinality"},{name:"lookahead"}]};case Je:return{name:Je,properties:[{name:"cardinality"},{name:"elements",defaultValue:[]},{name:"guardCondition"},{name:"lookahead"}]};case tt:return{name:tt,properties:[{name:"cardinality"},{name:"lookahead"},{name:"value"}]};case rt:return{name:rt,properties:[{name:"cardinality"},{name:"lookahead"},{name:"terminal"}]};case it:return{name:it,properties:[{name:"cardinality"},{name:"lookahead"},{name:"regex"}]};case st:return{name:st,properties:[{name:"arguments",defaultValue:[]},{name:"cardinality"},{name:"lookahead"},{name:"rule"}]};case ot:return{name:ot,properties:[{name:"cardinality"},{name:"elements",defaultValue:[]},{name:"lookahead"}]};case lt:return{name:lt,properties:[{name:"cardinality"},{name:"elements",defaultValue:[]},{name:"lookahead"}]};case ct:return{name:ct,properties:[{name:"cardinality"},{name:"lookahead"},{name:"rule"}]};case ut:return{name:ut,properties:[{name:"cardinality"},{name:"elements",defaultValue:[]},{name:"lookahead"}]};case ht:return{name:ht,properties:[{name:"cardinality"},{name:"lookahead"},{name:"terminal"}]};case ft:return{name:ft,properties:[{name:"cardinality"},{name:"lookahead"}]};default:return{name:e,properties:[]}}}}const mt=new pt;function gt(e,t){let n=e;for(;n;){if(t(n))return n;n=n.$container}}function yt(e){const t=Tt(e).$document;if(!t)throw new Error("AST node has no document.");return t}function Tt(e){for(;e.$container;)e=e.$container;return e}function vt(e,t){if(!e)throw new Error("Node must be an AstNode.");const n=null==t?void 0:t.range;return new H(()=>({keys:Object.keys(e),keyIndex:0,arrayIndex:0}),t=>{for(;t.keyIndex<t.keys.length;){const r=t.keys[t.keyIndex];if(!r.startsWith("$")){const i=e[r];if(U(i)){if(t.keyIndex++,Et(i,n))return{done:!1,value:i}}else if(Array.isArray(i)){for(;t.arrayIndex<i.length;){const e=i[t.arrayIndex++];if(U(e)&&Et(e,n))return{done:!1,value:e}}t.arrayIndex=0}}t.keyIndex++}return q})}function Rt(e,t){if(!e)throw new Error("Root node must be an AstNode.");return new Q(e,e=>vt(e,t))}function $t(e,t){if(!e)throw new Error("Root node must be an AstNode.");return new Q(e,e=>vt(e,t),{includeRoot:!0})}function Et(e,t){var n;if(!t)return!0;const r=null===(n=e.$cstNode)||void 0===n?void 0:n.range;return!!r&&function(e,t){return function(e,t){if(e.end.line<t.start.line||e.end.line===t.start.line&&e.end.character<=t.start.character)return J.Before;if(e.start.line>t.end.line||e.start.line===t.end.line&&e.start.character>=t.end.character)return J.After;const n=e.start.line>t.start.line||e.start.line===t.start.line&&e.start.character>=t.start.character,r=e.end.line<t.end.line||e.end.line===t.end.line&&e.end.character<=t.end.character;return n&&r?J.Inside:n?J.OverlapBack:r?J.OverlapFront:J.Outside}(e,t)>J.After}(r,t)}function At(e){return new H(()=>({keys:Object.keys(e),keyIndex:0,arrayIndex:0}),t=>{for(;t.keyIndex<t.keys.length;){const n=t.keys[t.keyIndex];if(!n.startsWith("$")){const r=e[n];if(F(r))return t.keyIndex++,{done:!1,value:{reference:r,container:e,property:n}};if(Array.isArray(r)){for(;t.arrayIndex<r.length;){const i=t.arrayIndex++,s=r[i];if(F(s))return{done:!1,value:{reference:s,container:e,property:n,index:i}}}t.arrayIndex=0}}t.keyIndex++}return q})}function kt(e){return Array.isArray(e)?[...e.map(kt)]:e}function xt(e){return e.charCodeAt(0)}function It(e,t){Array.isArray(e)?e.forEach(function(e){t.push(e)}):t.push(e)}function St(e,t){if(!0===e[t])throw"duplicate flag "+t;e[t],e[t]=!0}function Ct(e){if(void 0===e)throw Error("Internal Error - Should never get here!");return!0}function Nt(e){return"Character"===e.type}const wt=[];for(let e=xt("0");e<=xt("9");e++)wt.push(e);const Lt=[xt("_")].concat(wt);for(let e=xt("a");e<=xt("z");e++)Lt.push(e);for(let e=xt("A");e<=xt("Z");e++)Lt.push(e);const bt=[xt(" "),xt("\f"),xt("\n"),xt("\r"),xt("\t"),xt("\v"),xt("\t"),xt(" "),xt(" "),xt(" "),xt(" "),xt(" "),xt(" "),xt(" "),xt(" "),xt(" "),xt(" "),xt(" "),xt(" "),xt(" "),xt("\u2028"),xt("\u2029"),xt(" "),xt(" "),xt(" "),xt("\ufeff")],Ot=/[0-9a-fA-F]/,_t=/[0-9]/,Pt=/[1-9]/;class Mt{constructor(){this.idx=0,this.input="",this.groupIdx=0}saveState(){return{idx:this.idx,input:this.input,groupIdx:this.groupIdx}}restoreState(e){this.idx=e.idx,this.input=e.input,this.groupIdx=e.groupIdx}pattern(e){this.idx=0,this.input=e,this.groupIdx=0,this.consumeChar("/");const t=this.disjunction();this.consumeChar("/");const n={type:"Flags",loc:{begin:this.idx,end:e.length},global:!1,ignoreCase:!1,multiLine:!1,unicode:!1,sticky:!1};for(;this.isRegExpFlag();)switch(this.popChar()){case"g":St(n,"global");break;case"i":St(n,"ignoreCase");break;case"m":St(n,"multiLine");break;case"u":St(n,"unicode");break;case"y":St(n,"sticky")}if(this.idx!==this.input.length)throw Error("Redundant input: "+this.input.substring(this.idx));return{type:"Pattern",flags:n,value:t,loc:this.loc(0)}}disjunction(){const e=[],t=this.idx;for(e.push(this.alternative());"|"===this.peekChar();)this.consumeChar("|"),e.push(this.alternative());return{type:"Disjunction",value:e,loc:this.loc(t)}}alternative(){const e=[],t=this.idx;for(;this.isTerm();)e.push(this.term());return{type:"Alternative",value:e,loc:this.loc(t)}}term(){return this.isAssertion()?this.assertion():this.atom()}assertion(){const e=this.idx;switch(this.popChar()){case"^":return{type:"StartAnchor",loc:this.loc(e)};case"$":return{type:"EndAnchor",loc:this.loc(e)};case"\\":switch(this.popChar()){case"b":return{type:"WordBoundary",loc:this.loc(e)};case"B":return{type:"NonWordBoundary",loc:this.loc(e)}}throw Error("Invalid Assertion Escape");case"(":let t;switch(this.consumeChar("?"),this.popChar()){case"=":t="Lookahead";break;case"!":t="NegativeLookahead"}Ct(t);const n=this.disjunction();return this.consumeChar(")"),{type:t,value:n,loc:this.loc(e)}}return function(){throw Error("Internal Error - Should never get here!")}()}quantifier(e=!1){let t;const n=this.idx;switch(this.popChar()){case"*":t={atLeast:0,atMost:1/0};break;case"+":t={atLeast:1,atMost:1/0};break;case"?":t={atLeast:0,atMost:1};break;case"{":const n=this.integerIncludingZero();switch(this.popChar()){case"}":t={atLeast:n,atMost:n};break;case",":let e;this.isDigit()?(e=this.integerIncludingZero(),t={atLeast:n,atMost:e}):t={atLeast:n,atMost:1/0},this.consumeChar("}")}if(!0===e&&void 0===t)return;Ct(t)}if((!0!==e||void 0!==t)&&Ct(t))return"?"===this.peekChar(0)?(this.consumeChar("?"),t.greedy=!1):t.greedy=!0,t.type="Quantifier",t.loc=this.loc(n),t}atom(){let e;const t=this.idx;switch(this.peekChar()){case".":e=this.dotAll();break;case"\\":e=this.atomEscape();break;case"[":e=this.characterClass();break;case"(":e=this.group()}if(void 0===e&&this.isPatternCharacter()&&(e=this.patternCharacter()),Ct(e))return e.loc=this.loc(t),this.isQuantifier()&&(e.quantifier=this.quantifier()),e}dotAll(){return this.consumeChar("."),{type:"Set",complement:!0,value:[xt("\n"),xt("\r"),xt("\u2028"),xt("\u2029")]}}atomEscape(){switch(this.consumeChar("\\"),this.peekChar()){case"1":case"2":case"3":case"4":case"5":case"6":case"7":case"8":case"9":return this.decimalEscapeAtom();case"d":case"D":case"s":case"S":case"w":case"W":return this.characterClassEscape();case"f":case"n":case"r":case"t":case"v":return this.controlEscapeAtom();case"c":return this.controlLetterEscapeAtom();case"0":return this.nulCharacterAtom();case"x":return this.hexEscapeSequenceAtom();case"u":return this.regExpUnicodeEscapeSequenceAtom();default:return this.identityEscapeAtom()}}decimalEscapeAtom(){return{type:"GroupBackReference",value:this.positiveInteger()}}characterClassEscape(){let e,t=!1;switch(this.popChar()){case"d":e=wt;break;case"D":e=wt,t=!0;break;case"s":e=bt;break;case"S":e=bt,t=!0;break;case"w":e=Lt;break;case"W":e=Lt,t=!0}if(Ct(e))return{type:"Set",value:e,complement:t}}controlEscapeAtom(){let e;switch(this.popChar()){case"f":e=xt("\f");break;case"n":e=xt("\n");break;case"r":e=xt("\r");break;case"t":e=xt("\t");break;case"v":e=xt("\v")}if(Ct(e))return{type:"Character",value:e}}controlLetterEscapeAtom(){this.consumeChar("c");const e=this.popChar();if(!1===/[a-zA-Z]/.test(e))throw Error("Invalid ");return{type:"Character",value:e.toUpperCase().charCodeAt(0)-64}}nulCharacterAtom(){return this.consumeChar("0"),{type:"Character",value:xt("\0")}}hexEscapeSequenceAtom(){return this.consumeChar("x"),this.parseHexDigits(2)}regExpUnicodeEscapeSequenceAtom(){return this.consumeChar("u"),this.parseHexDigits(4)}identityEscapeAtom(){return{type:"Character",value:xt(this.popChar())}}classPatternCharacterAtom(){switch(this.peekChar()){case"\n":case"\r":case"\u2028":case"\u2029":case"\\":case"]":throw Error("TBD");default:return{type:"Character",value:xt(this.popChar())}}}characterClass(){const e=[];let t=!1;for(this.consumeChar("["),"^"===this.peekChar(0)&&(this.consumeChar("^"),t=!0);this.isClassAtom();){const t=this.classAtom();if(t.type,Nt(t)&&this.isRangeDash()){this.consumeChar("-");const n=this.classAtom();if(n.type,Nt(n)){if(n.value<t.value)throw Error("Range out of order in character class");e.push({from:t.value,to:n.value})}else It(t.value,e),e.push(xt("-")),It(n.value,e)}else It(t.value,e)}return this.consumeChar("]"),{type:"Set",complement:t,value:e}}classAtom(){switch(this.peekChar()){case"]":case"\n":case"\r":case"\u2028":case"\u2029":throw Error("TBD");case"\\":return this.classEscape();default:return this.classPatternCharacterAtom()}}classEscape(){switch(this.consumeChar("\\"),this.peekChar()){case"b":return this.consumeChar("b"),{type:"Character",value:xt("\b")};case"d":case"D":case"s":case"S":case"w":case"W":return this.characterClassEscape();case"f":case"n":case"r":case"t":case"v":return this.controlEscapeAtom();case"c":return this.controlLetterEscapeAtom();case"0":return this.nulCharacterAtom();case"x":return this.hexEscapeSequenceAtom();case"u":return this.regExpUnicodeEscapeSequenceAtom();default:return this.identityEscapeAtom()}}group(){let e=!0;"?"===(this.consumeChar("("),this.peekChar(0))?(this.consumeChar("?"),this.consumeChar(":"),e=!1):this.groupIdx++;const t=this.disjunction();this.consumeChar(")");const n={type:"Group",capturing:e,value:t};return e&&(n.idx=this.groupIdx),n}positiveInteger(){let e=this.popChar();if(!1===Pt.test(e))throw Error("Expecting a positive integer");for(;_t.test(this.peekChar(0));)e+=this.popChar();return parseInt(e,10)}integerIncludingZero(){let e=this.popChar();if(!1===_t.test(e))throw Error("Expecting an integer");for(;_t.test(this.peekChar(0));)e+=this.popChar();return parseInt(e,10)}patternCharacter(){const e=this.popChar();switch(e){case"\n":case"\r":case"\u2028":case"\u2029":case"^":case"$":case"\\":case".":case"*":case"+":case"?":case"(":case")":case"[":case"|":throw Error("TBD");default:return{type:"Character",value:xt(e)}}}isRegExpFlag(){switch(this.peekChar(0)){case"g":case"i":case"m":case"u":case"y":return!0;default:return!1}}isRangeDash(){return"-"===this.peekChar()&&this.isClassAtom(1)}isDigit(){return _t.test(this.peekChar(0))}isClassAtom(e=0){switch(this.peekChar(e)){case"]":case"\n":case"\r":case"\u2028":case"\u2029":return!1;default:return!0}}isTerm(){return this.isAtom()||this.isAssertion()}isAtom(){if(this.isPatternCharacter())return!0;switch(this.peekChar(0)){case".":case"\\":case"[":case"(":return!0;default:return!1}}isAssertion(){switch(this.peekChar(0)){case"^":case"$":return!0;case"\\":switch(this.peekChar(1)){case"b":case"B":return!0;default:return!1}case"(":return"?"===this.peekChar(1)&&("="===this.peekChar(2)||"!"===this.peekChar(2));default:return!1}}isQuantifier(){const e=this.saveState();try{return void 0!==this.quantifier(!0)}catch{return!1}finally{this.restoreState(e)}}isPatternCharacter(){switch(this.peekChar()){case"^":case"$":case"\\":case".":case"*":case"+":case"?":case"(":case")":case"[":case"|":case"/":case"\n":case"\r":case"\u2028":case"\u2029":return!1;default:return!0}}parseHexDigits(e){let t="";for(let n=0;n<e;n++){const e=this.popChar();if(!1===Ot.test(e))throw Error("Expecting a HexDecimal digits");t+=e}return{type:"Character",value:parseInt(t,16)}}peekChar(e=0){return this.input[this.idx+e]}popChar(){const e=this.peekChar(0);return this.consumeChar(void 0),e}consumeChar(e){if(void 0!==e&&this.input[this.idx]!==e)throw Error("Expected: '"+e+"' but found: '"+this.input[this.idx]+"' at offset: "+this.idx);if(this.idx>=this.input.length)throw Error("Unexpected end of input");this.idx++}loc(e){return{begin:e,end:this.idx}}}class Dt{visitChildren(e){for(const t in e){const n=e[t];e.hasOwnProperty(t)&&(void 0!==n.type?this.visit(n):Array.isArray(n)&&n.forEach(e=>{this.visit(e)},this))}}visit(e){switch(e.type){case"Pattern":this.visitPattern(e);break;case"Flags":this.visitFlags(e);break;case"Disjunction":this.visitDisjunction(e);break;case"Alternative":this.visitAlternative(e);break;case"StartAnchor":this.visitStartAnchor(e);break;case"EndAnchor":this.visitEndAnchor(e);break;case"WordBoundary":this.visitWordBoundary(e);break;case"NonWordBoundary":this.visitNonWordBoundary(e);break;case"Lookahead":this.visitLookahead(e);break;case"NegativeLookahead":this.visitNegativeLookahead(e);break;case"Character":this.visitCharacter(e);break;case"Set":this.visitSet(e);break;case"Group":this.visitGroup(e);break;case"GroupBackReference":this.visitGroupBackReference(e);break;case"Quantifier":this.visitQuantifier(e)}this.visitChildren(e)}visitPattern(e){}visitFlags(e){}visitDisjunction(e){}visitAlternative(e){}visitStartAnchor(e){}visitEndAnchor(e){}visitWordBoundary(e){}visitNonWordBoundary(e){}visitLookahead(e){}visitNegativeLookahead(e){}visitCharacter(e){}visitSet(e){}visitGroup(e){}visitGroupBackReference(e){}visitQuantifier(e){}}const Ut=/\r?\n/gm,Ft=new Mt,Gt=new class extends Dt{constructor(){super(...arguments),this.isStarting=!0,this.endRegexpStack=[],this.multiline=!1}get endRegex(){return this.endRegexpStack.join("")}reset(e){this.multiline=!1,this.regex=e,this.startRegexp="",this.isStarting=!0,this.endRegexpStack=[]}visitGroup(e){e.quantifier&&(this.isStarting=!1,this.endRegexpStack=[])}visitCharacter(e){const t=String.fromCharCode(e.value);if(!this.multiline&&"\n"===t&&(this.multiline=!0),e.quantifier)this.isStarting=!1,this.endRegexpStack=[];else{const e=jt(t);this.endRegexpStack.push(e),this.isStarting&&(this.startRegexp+=e)}}visitSet(e){if(!this.multiline){const t=this.regex.substring(e.loc.begin,e.loc.end),n=new RegExp(t);this.multiline=!!"\n".match(n)}if(e.quantifier)this.isStarting=!1,this.endRegexpStack=[];else{const t=this.regex.substring(e.loc.begin,e.loc.end);this.endRegexpStack.push(t),this.isStarting&&(this.startRegexp+=t)}}visitChildren(e){"Group"===e.type&&e.quantifier||super.visitChildren(e)}};function Bt(e){try{return"string"==typeof e&&(e=new RegExp(e)),e=e.toString(),Gt.reset(e),Gt.visit(Ft.pattern(e)),Gt.multiline}catch{return!1}}const Kt="\f\n\r\t\v              \u2028\u2029   \ufeff".split("");function Vt(e){const t="string"==typeof e?new RegExp(e):e;return Kt.some(e=>t.test(e))}function jt(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function Ht(e,t){const n=new Set,r=function(e){return e.rules.find(e=>Le(e)&&e.entry)}(e);if(!r)return new Set(e.rules);const i=[r].concat(function(e){return e.rules.filter(e=>Ue(e)&&e.hidden)}(e));for(const e of i)Wt(e,n,t);const s=new Set;for(const t of e.rules)(n.has(t.name)||Ue(t)&&t.hidden)&&s.add(t);return s}function Wt(e,t,n){t.add(e.name),Rt(e).forEach(e=>{if(at(e)||n){const r=e.rule.ref;r&&!t.has(r.name)&&Wt(r,t,n)}})}function zt(e){return e.hidden&&!Vt(nn(e))}function Yt(e,t,n){if(!e||!t)return;const r=qt(e,t,e.astNode,!0);return 0!==r.length?r[n=void 0!==n?Math.max(0,Math.min(n,r.length-1)):0]:void 0}function qt(e,t,n,r){if(!r){const n=gt(e.grammarSource,Ye);if(n&&n.feature===t)return[e]}return K(e)&&e.astNode===n?e.content.flatMap(e=>qt(e,t,n,!1)):[]}function Xt(e){let t=e;return Ee(t)&&(je(t.$container)?t=t.$container.$container:Le(t.$container)?t=t.$container:ae(t.$container)),Qt(e,t,new Map)}function Qt(e,t,n){var r;function i(t,r){let i;return gt(t,Ye)||(i=Qt(r,r,n)),n.set(e,i),i}if(n.has(e))return n.get(e);n.set(e,void 0);for(const s of Rt(t)){if(Ye(s)&&"name"===s.feature.toLowerCase())return n.set(e,s),s;if(at(s)&&Le(s.rule.ref))return i(s,s.rule.ref);if(Pe(s)&&null!==(r=s.typeRef)&&void 0!==r&&r.ref)return i(s,s.typeRef.ref)}}function Zt(e){return Jt(e,new Set)}function Jt(e,t){if(t.has(e))return!0;t.add(e);for(const n of Rt(e))if(at(n)){if(!n.rule.ref||Le(n.rule.ref)&&!Jt(n.rule.ref,t))return!1}else{if(Ye(n))return!1;if(je(n))return!1}return!!e.definition}function en(e){if(e.inferredType)return e.inferredType.name;if(e.dataType)return e.dataType;if(e.returnType){const t=e.returnType.ref;if(t){if(Le(t))return t.name;if(ke(t)||Ge(t))return t.name}}}function tn(e){var t;if(Le(e))return Zt(e)?e.name:null!==(t=en(e))&&void 0!==t?t:e.name;if(ke(e)||Ge(e)||function(e){return mt.isInstance(e,Oe)}(e))return e.name;if(je(e)){const t=function(e){var t;return e.inferredType?e.inferredType.name:null!==(t=e.type)&&void 0!==t&&t.ref?tn(e.type.ref):void 0}(e);if(t)return t}else if(Ee(e))return e.name;throw new Error("Cannot get name of Unknown Type")}function nn(e){const t={s:!1,i:!1,u:!1},n=sn(e.definition,t),r=Object.entries(t).filter(([,e])=>e).map(([e])=>e).join("");return new RegExp(n,r)}const rn=/[\s\S]/.source;function sn(e,t){if(function(e){return mt.isInstance(e,ot)}(e))return function(e){return on(e.elements.map(e=>sn(e)).join("|"),{cardinality:e.cardinality,lookahead:e.lookahead})}(e);if(function(e){return mt.isInstance(e,lt)}(e))return function(e){return on(e.elements.map(e=>sn(e)).join(""),{cardinality:e.cardinality,lookahead:e.lookahead})}(e);if(function(e){return mt.isInstance(e,qe)}(e))return function(e){return e.right?on(`[${an(e.left)}-${an(e.right)}]`,{cardinality:e.cardinality,lookahead:e.lookahead,wrap:!1}):on(an(e.left),{cardinality:e.cardinality,lookahead:e.lookahead,wrap:!1})}(e);if(function(e){return mt.isInstance(e,ct)}(e)){const t=e.rule.ref;if(!t)throw new Error("Missing rule reference.");return on(sn(t.definition),{cardinality:e.cardinality,lookahead:e.lookahead})}if(function(e){return mt.isInstance(e,rt)}(e))return function(e){return on(`(?!${sn(e.terminal)})${rn}*?`,{cardinality:e.cardinality,lookahead:e.lookahead})}(e);if(function(e){return mt.isInstance(e,ht)}(e))return function(e){return on(`${rn}*?${sn(e.terminal)}`,{cardinality:e.cardinality,lookahead:e.lookahead})}(e);if(function(e){return mt.isInstance(e,it)}(e)){const n=e.regex.lastIndexOf("/"),r=e.regex.substring(1,n),i=e.regex.substring(n+1);return t&&(t.i=i.includes("i"),t.s=i.includes("s"),t.u=i.includes("u")),on(r,{cardinality:e.cardinality,lookahead:e.lookahead,wrap:!1})}if(function(e){return mt.isInstance(e,ft)}(e))return on(rn,{cardinality:e.cardinality,lookahead:e.lookahead});throw new Error(`Invalid terminal element: ${null==e?void 0:e.$type}`)}function an(e){return jt(e.value)}function on(e,t){var n;return(!1!==t.wrap||t.lookahead)&&(e=`(${null!==(n=t.lookahead)&&void 0!==n?n:""}${e})`),t.cardinality?`${e}${t.cardinality}`:e}function ln(e){console&&console.error&&console.error(`Error: ${e}`)}function cn(e){console&&console.warn&&console.warn(`Warning: ${e}`)}function un(e){const t=(new Date).getTime(),n=e();return{time:(new Date).getTime()-t,value:n}}function dn(e){function t(){}t.prototype=e;const n=new t;function r(){return typeof n.bar}return r(),r(),e}function hn(e){return function(e){return d(e.LABEL)&&""!==e.LABEL}(e)?e.LABEL:e.name}class fn{get definition(){return this._definition}set definition(e){this._definition=e}constructor(e){this._definition=e}accept(e){e.visit(this),(0,i.d)(this.definition,t=>{t.accept(e)})}}class pn extends fn{constructor(e){super([]),this.idx=1,g(this,f(e,e=>void 0!==e))}set definition(e){}get definition(){return void 0!==this.referencedRule?this.referencedRule.definition:[]}accept(e){e.visit(this)}}class mn extends fn{constructor(e){super(e.definition),this.orgText="",g(this,f(e,e=>void 0!==e))}}class gn extends fn{constructor(e){super(e.definition),this.ignoreAmbiguities=!1,g(this,f(e,e=>void 0!==e))}}let yn=class extends fn{constructor(e){super(e.definition),this.idx=1,g(this,f(e,e=>void 0!==e))}};class Tn extends fn{constructor(e){super(e.definition),this.idx=1,g(this,f(e,e=>void 0!==e))}}class vn extends fn{constructor(e){super(e.definition),this.idx=1,g(this,f(e,e=>void 0!==e))}}class Rn extends fn{constructor(e){super(e.definition),this.idx=1,g(this,f(e,e=>void 0!==e))}}class $n extends fn{constructor(e){super(e.definition),this.idx=1,g(this,f(e,e=>void 0!==e))}}class En extends fn{get definition(){return this._definition}set definition(e){this._definition=e}constructor(e){super(e.definition),this.idx=1,this.ignoreAmbiguities=!1,this.hasPredicates=!1,g(this,f(e,e=>void 0!==e))}}class An{constructor(e){this.idx=1,g(this,f(e,e=>void 0!==e))}accept(e){e.visit(this)}}function kn(e){function t(e){return(0,s.m)(e,kn)}if(e instanceof pn){const t={type:"NonTerminal",name:e.nonTerminalName,idx:e.idx};return d(e.label)&&(t.label=e.label),t}if(e instanceof gn)return{type:"Alternative",definition:t(e.definition)};if(e instanceof yn)return{type:"Option",idx:e.idx,definition:t(e.definition)};if(e instanceof Tn)return{type:"RepetitionMandatory",idx:e.idx,definition:t(e.definition)};if(e instanceof vn)return{type:"RepetitionMandatoryWithSeparator",idx:e.idx,separator:kn(new An({terminalType:e.separator})),definition:t(e.definition)};if(e instanceof $n)return{type:"RepetitionWithSeparator",idx:e.idx,separator:kn(new An({terminalType:e.separator})),definition:t(e.definition)};if(e instanceof Rn)return{type:"Repetition",idx:e.idx,definition:t(e.definition)};if(e instanceof En)return{type:"Alternation",idx:e.idx,definition:t(e.definition)};if(e instanceof An){const t={type:"Terminal",name:e.terminalType.name,label:hn(e.terminalType),idx:e.idx};d(e.label)&&(t.terminalLabel=e.label);const n=e.terminalType.PATTERN;return e.terminalType.PATTERN&&(t.pattern=_(n)?n.source:n),t}if(e instanceof mn)return{type:"Rule",name:e.name,orgText:e.orgText,definition:t(e.definition)};throw Error("non exhaustive match")}class xn{visit(e){const t=e;switch(t.constructor){case pn:return this.visitNonTerminal(t);case gn:return this.visitAlternative(t);case yn:return this.visitOption(t);case Tn:return this.visitRepetitionMandatory(t);case vn:return this.visitRepetitionMandatoryWithSeparator(t);case $n:return this.visitRepetitionWithSeparator(t);case Rn:return this.visitRepetition(t);case En:return this.visitAlternation(t);case An:return this.visitTerminal(t);case mn:return this.visitRule(t);default:throw Error("non exhaustive match")}}visitNonTerminal(e){}visitAlternative(e){}visitOption(e){}visitRepetition(e){}visitRepetitionMandatory(e){}visitRepetitionMandatoryWithSeparator(e){}visitRepetitionWithSeparator(e){}visitAlternation(e){}visitTerminal(e){}visitRule(e){}}function In(e,t=[]){return e instanceof yn||e instanceof Rn||e instanceof $n||(e instanceof En?D(e.definition,e=>In(e,t)):!(e instanceof pn&&L(t,e))&&e instanceof fn&&(e instanceof pn&&t.push(e),k(e.definition,e=>In(e,t))))}function Sn(e){if(e instanceof pn)return"SUBRULE";if(e instanceof yn)return"OPTION";if(e instanceof En)return"OR";if(e instanceof Tn)return"AT_LEAST_ONE";if(e instanceof vn)return"AT_LEAST_ONE_SEP";if(e instanceof $n)return"MANY_SEP";if(e instanceof Rn)return"MANY";if(e instanceof An)return"CONSUME";throw Error("non exhaustive match")}class Cn{walk(e,t=[]){(0,i.d)(e.definition,(n,r)=>{const i=R(e.definition,r+1);if(n instanceof pn)this.walkProdRef(n,i,t);else if(n instanceof An)this.walkTerminal(n,i,t);else if(n instanceof gn)this.walkFlat(n,i,t);else if(n instanceof yn)this.walkOption(n,i,t);else if(n instanceof Tn)this.walkAtLeastOne(n,i,t);else if(n instanceof vn)this.walkAtLeastOneSep(n,i,t);else if(n instanceof $n)this.walkManySep(n,i,t);else if(n instanceof Rn)this.walkMany(n,i,t);else{if(!(n instanceof En))throw Error("non exhaustive match");this.walkOr(n,i,t)}})}walkTerminal(e,t,n){}walkProdRef(e,t,n){}walkFlat(e,t,n){const r=t.concat(n);this.walk(e,r)}walkOption(e,t,n){const r=t.concat(n);this.walk(e,r)}walkAtLeastOne(e,t,n){const r=[new yn({definition:e.definition})].concat(t,n);this.walk(e,r)}walkAtLeastOneSep(e,t,n){const r=Nn(e,t,n);this.walk(e,r)}walkMany(e,t,n){const r=[new yn({definition:e.definition})].concat(t,n);this.walk(e,r)}walkManySep(e,t,n){const r=Nn(e,t,n);this.walk(e,r)}walkOr(e,t,n){const r=t.concat(n);(0,i.d)(e.definition,e=>{const t=new gn({definition:[e]});this.walk(t,r)})}}function Nn(e,t,n){return[new yn({definition:[new An({terminalType:e.separator})].concat(e.definition)})].concat(t,n)}function wn(e){if(e instanceof pn)return wn(e.referencedRule);if(e instanceof An)return function(e){return[e.terminalType]}(e);if(function(e){return e instanceof gn||e instanceof yn||e instanceof Rn||e instanceof Tn||e instanceof vn||e instanceof $n||e instanceof An||e instanceof mn}(e))return function(e){let t=[];const n=e.definition;let r,i=0,s=n.length>i,a=!0;for(;s&&a;)r=n[i],a=In(r),t=t.concat(wn(r)),i+=1,s=n.length>i;return h(t)}(e);if(function(e){return e instanceof En}(e))return function(e){const t=(0,s.m)(e.definition,e=>wn(e));return h((0,s.f)(t))}(e);throw Error("non exhaustive match")}const Ln="_~IN~_";class bn extends Cn{constructor(e){super(),this.topProd=e,this.follows={}}startWalking(){return this.walk(this.topProd),this.follows}walkTerminal(e,t,n){}walkProdRef(e,t,n){const r=function(e,t){return e.name+t+Ln}(e.referencedRule,e.idx)+this.topProd.name,i=t.concat(n),s=wn(new gn({definition:i}));this.follows[r]=s}}let On={};const _n=new Mt;function Pn(e){const t=e.toString();if(On.hasOwnProperty(t))return On[t];{const e=_n.pattern(t);return On[t]=e,e}}const Mn="Complement Sets are not supported for first char optimization",Dn='Unable to use "first char" lexer optimizations:\n';function Un(e,t=!1){try{const t=Pn(e);return Fn(t.value,{},t.flags.ignoreCase)}catch(n){if(n.message===Mn)t&&cn(`${Dn}\tUnable to optimize: < ${e.toString()} >\n\tComplement Sets cannot be automatically optimized.\n\tThis will disable the lexer's first char optimizations.\n\tSee: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#COMPLEMENT for details.`);else{let n="";t&&(n="\n\tThis will disable the lexer's first char optimizations.\n\tSee: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#REGEXP_PARSING for details."),ln(`${Dn}\n\tFailed parsing: < ${e.toString()} >\n\tUsing the @chevrotain/regexp-to-ast library\n\tPlease open an issue at: https://github.com/chevrotain/chevrotain/issues`+n)}}return[]}function Fn(e,t,n){switch(e.type){case"Disjunction":for(let r=0;r<e.value.length;r++)Fn(e.value[r],t,n);break;case"Alternative":const r=e.value;for(let e=0;e<r.length;e++){const s=r[e];switch(s.type){case"EndAnchor":case"GroupBackReference":case"Lookahead":case"NegativeLookahead":case"StartAnchor":case"WordBoundary":case"NonWordBoundary":continue}const a=s;switch(a.type){case"Character":Gn(a.value,t,n);break;case"Set":if(!0===a.complement)throw Error(Mn);(0,i.d)(a.value,e=>{if("number"==typeof e)Gn(e,t,n);else{const r=e;if(!0===n)for(let e=r.from;e<=r.to;e++)Gn(e,t,n);else{for(let e=r.from;e<=r.to&&e<ar;e++)Gn(e,t,n);if(r.to>=ar){const e=r.from>=ar?r.from:ar,n=r.to,i=lr(e),s=lr(n);for(let e=i;e<=s;e++)t[e]=e}}}});break;case"Group":Fn(a.value,t,n);break;default:throw Error("Non Exhaustive Match")}const o=void 0!==a.quantifier&&0===a.quantifier.atLeast;if("Group"===a.type&&!1===Kn(a)||"Group"!==a.type&&!1===o)break}break;default:throw Error("non exhaustive match!")}return(0,i.v)(t)}function Gn(e,t,n){const r=lr(e);t[r]=r,!0===n&&function(e,t){const n=String.fromCharCode(e),r=n.toUpperCase();if(r!==n){const e=lr(r.charCodeAt(0));t[e]=e}else{const e=n.toLowerCase();if(e!==n){const n=lr(e.charCodeAt(0));t[n]=n}}}(e,t)}function Bn(e,t){return(0,s.g)(e.value,e=>{if("number"==typeof e)return L(t,e);{const n=e;return void 0!==(0,s.g)(t,e=>n.from<=e&&e<=n.to)}})}function Kn(e){const t=e.quantifier;return!(!t||0!==t.atLeast)||!!e.value&&((0,r.aS)(e.value)?k(e.value,Kn):Kn(e.value))}class Vn extends Dt{constructor(e){super(),this.targetCharCodes=e,this.found=!1}visitChildren(e){if(!0!==this.found){switch(e.type){case"Lookahead":return void this.visitLookahead(e);case"NegativeLookahead":return void this.visitNegativeLookahead(e)}super.visitChildren(e)}}visitCharacter(e){L(this.targetCharCodes,e.value)&&(this.found=!0)}visitSet(e){e.complement?void 0===Bn(e,this.targetCharCodes)&&(this.found=!0):void 0!==Bn(e,this.targetCharCodes)&&(this.found=!0)}}function jn(e,t){if(t instanceof RegExp){const n=Pn(t),r=new Vn(e);return r.visit(n),r.found}return void 0!==(0,s.g)(t,t=>L(e,t.charCodeAt(0)))}const Hn="PATTERN",Wn="defaultMode",zn="modes";let Yn="boolean"==typeof new RegExp("(?:)").sticky;const qn=/[^\\][$]/,Xn=/[^\\[][\^]|^\^/;function Qn(e){const t=e.ignoreCase?"i":"";return new RegExp(`^(?:${e.source})`,t)}function Zn(e){const t=e.ignoreCase?"iy":"y";return new RegExp(`${e.source}`,t)}function Jn(e){const t=e.PATTERN;if(_(t))return!1;if((0,r.au)(t))return!0;if((0,s.h)(t,"exec"))return!0;if(d(t))return!1;throw Error("non exhaustive match")}function er(e){return!(!d(e)||1!==e.length)&&e.charCodeAt(0)}const tr={test:function(e){const t=e.length;for(let n=this.lastIndex;n<t;n++){const t=e.charCodeAt(n);if(10===t)return this.lastIndex=n+1,!0;if(13===t)return 10===e.charCodeAt(n+1)?this.lastIndex=n+2:this.lastIndex=n+1,!0}return!1},lastIndex:0};function nr(e,t){if((0,s.h)(e,"LINE_BREAKS"))return!1;if(_(e.PATTERN)){try{jn(t,e.PATTERN)}catch(e){return{issue:vr.IDENTIFY_TERMINATOR,errMsg:e.message}}return!1}if(d(e.PATTERN))return!1;if(Jn(e))return{issue:vr.CUSTOM_LINE_BREAK};throw Error("non exhaustive match")}function rr(e,t){if(t.issue===vr.IDENTIFY_TERMINATOR)return`Warning: unable to identify line terminator usage in pattern.\n\tThe problem is in the <${e.name}> Token Type\n\t Root cause: ${t.errMsg}.\n\tFor details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#IDENTIFY_TERMINATOR`;if(t.issue===vr.CUSTOM_LINE_BREAK)return`Warning: A Custom Token Pattern should specify the <line_breaks> option.\n\tThe problem is in the <${e.name}> Token Type\n\tFor details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#CUSTOM_LINE_BREAK`;throw Error("non exhaustive match")}function ir(e){return(0,s.m)(e,e=>d(e)?e.charCodeAt(0):e)}function sr(e,t,n){void 0===e[t]?e[t]=[n]:e[t].push(n)}const ar=256;let or=[];function lr(e){return e<ar?e:or[e]}function cr(e,t){const n=e.tokenTypeIdx;return n===t.tokenTypeIdx||!0===t.isParent&&!0===t.categoryMatchesMap[n]}function ur(e,t){return e.tokenTypeIdx===t.tokenTypeIdx}let dr=1;const hr={};function fr(e){const t=function(e){let t=(0,a.c)(e),n=e,i=!0;for(;i;){n=y((0,s.f)((0,s.m)(n,e=>e.CATEGORIES)));const e=p(n,t);t=t.concat(e),(0,r.av)(e)?i=!1:n=e}return t}(e);(function(e){(0,i.d)(e,e=>{mr(e)||(hr[dr]=e,e.tokenTypeIdx=dr++),gr(e)&&!(0,r.aS)(e.CATEGORIES)&&(e.CATEGORIES=[e.CATEGORIES]),gr(e)||(e.CATEGORIES=[]),function(e){return(0,s.h)(e,"categoryMatches")}(e)||(e.categoryMatches=[]),function(e){return(0,s.h)(e,"categoryMatchesMap")}(e)||(e.categoryMatchesMap={})})})(t),function(e){(0,i.d)(e,e=>{pr([],e)})}(t),function(e){(0,i.d)(e,e=>{e.categoryMatches=[],(0,i.d)(e.categoryMatchesMap,(t,n)=>{e.categoryMatches.push(hr[n].tokenTypeIdx)})})}(t),(0,i.d)(t,e=>{e.isParent=e.categoryMatches.length>0})}function pr(e,t){(0,i.d)(e,e=>{t.categoryMatchesMap[e.tokenTypeIdx]=!0}),(0,i.d)(t.CATEGORIES,n=>{const r=e.concat(t);L(r,n)||pr(r,n)})}function mr(e){return(0,s.h)(e,"tokenTypeIdx")}function gr(e){return(0,s.h)(e,"CATEGORIES")}function yr(e){return(0,s.h)(e,"tokenTypeIdx")}const Tr={buildUnableToPopLexerModeMessage:e=>`Unable to pop Lexer Mode after encountering Token ->${e.image}<- The Mode Stack is empty`,buildUnexpectedCharactersMessage:(e,t,n,r,i)=>`unexpected character: ->${e.charAt(t)}<- at offset: ${t}, skipped ${n} characters.`};var vr;!function(e){e[e.MISSING_PATTERN=0]="MISSING_PATTERN",e[e.INVALID_PATTERN=1]="INVALID_PATTERN",e[e.EOI_ANCHOR_FOUND=2]="EOI_ANCHOR_FOUND",e[e.UNSUPPORTED_FLAGS_FOUND=3]="UNSUPPORTED_FLAGS_FOUND",e[e.DUPLICATE_PATTERNS_FOUND=4]="DUPLICATE_PATTERNS_FOUND",e[e.INVALID_GROUP_TYPE_FOUND=5]="INVALID_GROUP_TYPE_FOUND",e[e.PUSH_MODE_DOES_NOT_EXIST=6]="PUSH_MODE_DOES_NOT_EXIST",e[e.MULTI_MODE_LEXER_WITHOUT_DEFAULT_MODE=7]="MULTI_MODE_LEXER_WITHOUT_DEFAULT_MODE",e[e.MULTI_MODE_LEXER_WITHOUT_MODES_PROPERTY=8]="MULTI_MODE_LEXER_WITHOUT_MODES_PROPERTY",e[e.MULTI_MODE_LEXER_DEFAULT_MODE_VALUE_DOES_NOT_EXIST=9]="MULTI_MODE_LEXER_DEFAULT_MODE_VALUE_DOES_NOT_EXIST",e[e.LEXER_DEFINITION_CANNOT_CONTAIN_UNDEFINED=10]="LEXER_DEFINITION_CANNOT_CONTAIN_UNDEFINED",e[e.SOI_ANCHOR_FOUND=11]="SOI_ANCHOR_FOUND",e[e.EMPTY_MATCH_PATTERN=12]="EMPTY_MATCH_PATTERN",e[e.NO_LINE_BREAKS_FLAGS=13]="NO_LINE_BREAKS_FLAGS",e[e.UNREACHABLE_PATTERN=14]="UNREACHABLE_PATTERN",e[e.IDENTIFY_TERMINATOR=15]="IDENTIFY_TERMINATOR",e[e.CUSTOM_LINE_BREAK=16]="CUSTOM_LINE_BREAK",e[e.MULTI_MODE_LEXER_LONGER_ALT_NOT_IN_CURRENT_MODE=17]="MULTI_MODE_LEXER_LONGER_ALT_NOT_IN_CURRENT_MODE"}(vr||(vr={}));const Rr={deferDefinitionErrorsHandling:!1,positionTracking:"full",lineTerminatorsPattern:/\n|\r\n?/g,lineTerminatorCharacters:["\n","\r"],ensureOptimizations:!1,safeMode:!1,errorMessageProvider:Tr,traceInitPerf:!1,skipValidations:!1,recoveryEnabled:!0};Object.freeze(Rr);class $r{constructor(e,t=Rr){if(this.lexerDefinition=e,this.lexerDefinitionErrors=[],this.lexerDefinitionWarning=[],this.patternIdxToConfig={},this.charCodeToPatternIdxToConfig={},this.modes=[],this.emptyGroups={},this.trackStartLines=!0,this.trackEndLines=!0,this.hasCustom=!1,this.canModeBeOptimized={},this.TRACE_INIT=(e,t)=>{if(!0===this.traceInitPerf){this.traceInitIndent++;const n=new Array(this.traceInitIndent+1).join("\t");this.traceInitIndent<this.traceInitMaxIdent&&console.log(`${n}--\x3e <${e}>`);const{time:r,value:i}=un(t),s=r>10?console.warn:console.log;return this.traceInitIndent<this.traceInitMaxIdent&&s(`${n}<-- <${e}> time: ${r}ms`),this.traceInitIndent--,i}return t()},"boolean"==typeof t)throw Error("The second argument to the Lexer constructor is now an ILexerConfig Object.\na boolean 2nd argument is no longer supported");this.config=g({},Rr,t);const n=this.config.traceInitPerf;!0===n?(this.traceInitMaxIdent=1/0,this.traceInitPerf=!0):"number"==typeof n&&(this.traceInitMaxIdent=n,this.traceInitPerf=!0),this.traceInitIndent=-1,this.TRACE_INIT("Lexer Constructor",()=>{let n,o=!0;this.TRACE_INIT("Lexer Config handling",()=>{if(this.config.lineTerminatorsPattern===Rr.lineTerminatorsPattern)this.config.lineTerminatorsPattern=tr;else if(this.config.lineTerminatorCharacters===Rr.lineTerminatorCharacters)throw Error("Error: Missing <lineTerminatorCharacters> property on the Lexer config.\n\tFor details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#MISSING_LINE_TERM_CHARS");if(t.safeMode&&t.ensureOptimizations)throw Error('"safeMode" and "ensureOptimizations" flags are mutually exclusive.');this.trackStartLines=/full|onlyStart/i.test(this.config.positionTracking),this.trackEndLines=/full/i.test(this.config.positionTracking),(0,r.aS)(e)?n={modes:{defaultMode:(0,a.c)(e)},defaultMode:Wn}:(o=!1,n=(0,a.c)(e))}),!1===this.config.skipValidations&&(this.TRACE_INIT("performRuntimeChecks",()=>{this.lexerDefinitionErrors=this.lexerDefinitionErrors.concat(function(e){const t=[];return(0,s.h)(e,Wn)||t.push({message:"A MultiMode Lexer cannot be initialized without a <"+Wn+"> property in its definition\n",type:vr.MULTI_MODE_LEXER_WITHOUT_DEFAULT_MODE}),(0,s.h)(e,zn)||t.push({message:"A MultiMode Lexer cannot be initialized without a <modes> property in its definition\n",type:vr.MULTI_MODE_LEXER_WITHOUT_MODES_PROPERTY}),(0,s.h)(e,zn)&&(0,s.h)(e,Wn)&&!(0,s.h)(e.modes,e.defaultMode)&&t.push({message:`A MultiMode Lexer cannot be initialized with a ${Wn}: <${e.defaultMode}>which does not exist\n`,type:vr.MULTI_MODE_LEXER_DEFAULT_MODE_VALUE_DOES_NOT_EXIST}),(0,s.h)(e,zn)&&(0,i.d)(e.modes,(e,n)=>{(0,i.d)(e,(a,o)=>{if((0,i.i)(a))t.push({message:`A Lexer cannot be initialized using an undefined Token Type. Mode:<${n}> at index: <${o}>\n`,type:vr.LEXER_DEFINITION_CANNOT_CONTAIN_UNDEFINED});else if((0,s.h)(a,"LONGER_ALT")){const s=(0,r.aS)(a.LONGER_ALT)?a.LONGER_ALT:[a.LONGER_ALT];(0,i.d)(s,r=>{!(0,i.i)(r)&&!L(e,r)&&t.push({message:`A MultiMode Lexer cannot be initialized with a longer_alt <${r.name}> on token <${a.name}> outside of mode <${n}>\n`,type:vr.MULTI_MODE_LEXER_LONGER_ALT_NOT_IN_CURRENT_MODE})})}})}),t}(n,this.trackStartLines,this.config.lineTerminatorCharacters))}),this.TRACE_INIT("performWarningRuntimeChecks",()=>{this.lexerDefinitionWarning=this.lexerDefinitionWarning.concat(function(e,t,n){const r=[];let a=!1;const o=P(y((0,s.f)((0,i.v)(e.modes))),e=>e[Hn]===$r.NA),l=ir(n);return t&&(0,i.d)(o,e=>{const t=nr(e,l);if(!1!==t){const n={message:rr(e,t),type:t.issue,tokenType:e};r.push(n)}else(0,s.h)(e,"LINE_BREAKS")?!0===e.LINE_BREAKS&&(a=!0):jn(l,e.PATTERN)&&(a=!0)}),t&&!a&&r.push({message:"Warning: No LINE_BREAKS Found.\n\tThis Lexer has been defined to track line and column information,\n\tBut none of the Token Types can be identified as matching a line terminator.\n\tSee https://chevrotain.io/docs/guide/resolving_lexer_errors.html#LINE_BREAKS \n\tfor details.",type:vr.NO_LINE_BREAKS_FLAGS}),r}(n,this.trackStartLines,this.config.lineTerminatorCharacters))})),n.modes=n.modes?n.modes:{},(0,i.d)(n.modes,(e,t)=>{n.modes[t]=P(e,e=>(0,i.i)(e))});const l=(0,i.k)(n.modes);if((0,i.d)(n.modes,(e,n)=>{this.TRACE_INIT(`Mode: <${n}> processing`,()=>{if(this.modes.push(n),!1===this.config.skipValidations&&this.TRACE_INIT("validatePatterns",()=>{this.lexerDefinitionErrors=this.lexerDefinitionErrors.concat(function(e,t){let n=[];const a=function(e){const t=(0,i.f)(e,e=>!(0,s.h)(e,Hn)),n=(0,s.m)(t,e=>({message:"Token Type: ->"+e.name+"<- missing static 'PATTERN' property",type:vr.MISSING_PATTERN,tokenTypes:[e]}));return{errors:n,valid:p(e,t)}}(e);n=n.concat(a.errors);const o=function(e){const t=(0,i.f)(e,e=>{const t=e[Hn];return!(_(t)||(0,r.au)(t)||(0,s.h)(t,"exec")||d(t))}),n=(0,s.m)(t,e=>({message:"Token Type: ->"+e.name+"<- static 'PATTERN' can only be a RegExp, a Function matching the {CustomPatternMatcherFunc} type or an Object matching the {ICustomPattern} interface.",type:vr.INVALID_PATTERN,tokenTypes:[e]}));return{errors:n,valid:p(e,t)}}(a.valid),l=o.valid;return n=n.concat(o.errors),n=n.concat(function(e){let t=[];const n=(0,i.f)(e,e=>_(e[Hn]));return t=t.concat(function(e){class t extends Dt{constructor(){super(...arguments),this.found=!1}visitEndAnchor(e){this.found=!0}}const n=(0,i.f)(e,e=>{const n=e.PATTERN;try{const e=Pn(n),r=new t;return r.visit(e),r.found}catch{return qn.test(n.source)}});return(0,s.m)(n,e=>({message:"Unexpected RegExp Anchor Error:\n\tToken Type: ->"+e.name+"<- static 'PATTERN' cannot contain end of input anchor '$'\n\tSee chevrotain.io/docs/guide/resolving_lexer_errors.html#ANCHORS\tfor details.",type:vr.EOI_ANCHOR_FOUND,tokenTypes:[e]}))}(n)),t=t.concat(function(e){class t extends Dt{constructor(){super(...arguments),this.found=!1}visitStartAnchor(e){this.found=!0}}const n=(0,i.f)(e,e=>{const n=e.PATTERN;try{const e=Pn(n),r=new t;return r.visit(e),r.found}catch{return Xn.test(n.source)}});return(0,s.m)(n,e=>({message:"Unexpected RegExp Anchor Error:\n\tToken Type: ->"+e.name+"<- static 'PATTERN' cannot contain start of input anchor '^'\n\tSee https://chevrotain.io/docs/guide/resolving_lexer_errors.html#ANCHORS\tfor details.",type:vr.SOI_ANCHOR_FOUND,tokenTypes:[e]}))}(n)),t=t.concat(function(e){const t=(0,i.f)(e,e=>{const t=e[Hn];return t instanceof RegExp&&(t.multiline||t.global)});return(0,s.m)(t,e=>({message:"Token Type: ->"+e.name+"<- static 'PATTERN' may NOT contain global('g') or multiline('m')",type:vr.UNSUPPORTED_FLAGS_FOUND,tokenTypes:[e]}))}(n)),t=t.concat(function(e){const t=[];let n=(0,s.m)(e,n=>(0,i.r)(e,(e,r)=>(n.PATTERN.source===r.PATTERN.source&&!L(t,r)&&r.PATTERN!==$r.NA&&(t.push(r),e.push(r)),e),[]));n=y(n);const r=(0,i.f)(n,e=>e.length>1);return(0,s.m)(r,e=>{const t=(0,s.m)(e,e=>e.name);return{message:`The same RegExp pattern ->${x(e).PATTERN}<-has been used in all of the following Token Types: ${t.join(", ")} <-`,type:vr.DUPLICATE_PATTERNS_FOUND,tokenTypes:e}})}(n)),t=t.concat(function(e){const t=(0,i.f)(e,e=>e.PATTERN.test(""));return(0,s.m)(t,e=>({message:"Token Type: ->"+e.name+"<- static 'PATTERN' must not match an empty string",type:vr.EMPTY_MATCH_PATTERN,tokenTypes:[e]}))}(n)),t}(l)),n=n.concat(function(e){const t=(0,i.f)(e,e=>{if(!(0,s.h)(e,"GROUP"))return!1;const t=e.GROUP;return t!==$r.SKIPPED&&t!==$r.NA&&!d(t)});return(0,s.m)(t,e=>({message:"Token Type: ->"+e.name+"<- static 'GROUP' can only be Lexer.SKIPPED/Lexer.NA/A String",type:vr.INVALID_GROUP_TYPE_FOUND,tokenTypes:[e]}))}(l)),n=n.concat(function(e,t){const n=(0,i.f)(e,e=>void 0!==e.PUSH_MODE&&!L(t,e.PUSH_MODE));return(0,s.m)(n,e=>({message:`Token Type: ->${e.name}<- static 'PUSH_MODE' value cannot refer to a Lexer Mode ->${e.PUSH_MODE}<-which does not exist`,type:vr.PUSH_MODE_DOES_NOT_EXIST,tokenTypes:[e]}))}(l,t)),n=n.concat(function(e){const t=[],n=(0,i.r)(e,(e,t,n)=>{const r=t.PATTERN;return r===$r.NA||(d(r)?e.push({str:r,idx:n,tokenType:t}):_(r)&&function(e){return void 0===(0,s.g)([".","\\","[","]","|","^","$","(",")","?","*","+","{"],t=>-1!==e.source.indexOf(t))}(r)&&e.push({str:r.source,idx:n,tokenType:t})),e},[]);return(0,i.d)(e,(e,a)=>{(0,i.d)(n,({str:n,idx:i,tokenType:o})=>{if(a<i&&function(e,t){if(_(t)){const n=t.exec(e);return null!==n&&0===n.index}if((0,r.au)(t))return t(e,0,[],{});if((0,s.h)(t,"exec"))return t.exec(e,0,[],{});if("string"==typeof t)return t===e;throw Error("non exhaustive match")}(n,e.PATTERN)){const n=`Token: ->${o.name}<- can never be matched.\nBecause it appears AFTER the Token Type ->${e.name}<-in the lexer's definition.\nSee https://chevrotain.io/docs/guide/resolving_lexer_errors.html#UNREACHABLE`;t.push({message:n,type:vr.UNREACHABLE_PATTERN,tokenTypes:[e,o]})}})}),t}(l)),n}(e,l))}),(0,r.av)(this.lexerDefinitionErrors)){let a;fr(e),this.TRACE_INIT("analyzeTokenTypes",()=>{a=function(e,t){const n=(t=(0,s.i)(t,{useSticky:Yn,debug:!1,safeMode:!1,positionTracking:"full",lineTerminatorCharacters:["\r","\n"],tracer:(e,t)=>t()})).tracer;let a;n("initCharCodeToOptimizedIndexMap",()=>{!function(){if((0,r.av)(or)){or=new Array(65536);for(let e=0;e<65536;e++)or[e]=e>255?255+~~(e/255):e}}()}),n("Reject Lexer.NA",()=>{a=P(e,e=>e[Hn]===$r.NA)});let o,l,c,u,h,f,p,m,g,y,T,v=!1;n("Transform Patterns",()=>{v=!1,o=(0,s.m)(a,e=>{const n=e[Hn];if(_(n)){const e=n.source;return 1!==e.length||"^"===e||"$"===e||"."===e||n.ignoreCase?2!==e.length||"\\"!==e[0]||L(["d","D","s","S","t","r","n","t","0","c","b","B","f","v","w","W"],e[1])?t.useSticky?Zn(n):Qn(n):e[1]:e}if((0,r.au)(n))return v=!0,{exec:n};if("object"==typeof n)return v=!0,n;if("string"==typeof n){if(1===n.length)return n;{const e=n.replace(/[\\^$.*+?()[\]{}|]/g,"\\$&"),r=new RegExp(e);return t.useSticky?Zn(r):Qn(r)}}throw Error("non exhaustive match")})}),n("misc mapping",()=>{l=(0,s.m)(a,e=>e.tokenTypeIdx),c=(0,s.m)(a,e=>{const t=e.GROUP;if(t!==$r.SKIPPED){if(d(t))return t;if((0,i.i)(t))return!1;throw Error("non exhaustive match")}}),u=(0,s.m)(a,e=>{const t=e.LONGER_ALT;if(t)return(0,r.aS)(t)?(0,s.m)(t,e=>b(a,e)):[b(a,t)]}),h=(0,s.m)(a,e=>e.PUSH_MODE),f=(0,s.m)(a,e=>(0,s.h)(e,"POP_MODE"))}),n("Line Terminator Handling",()=>{const e=ir(t.lineTerminatorCharacters);p=(0,s.m)(a,e=>!1),"onlyOffset"!==t.positionTracking&&(p=(0,s.m)(a,t=>(0,s.h)(t,"LINE_BREAKS")?!!t.LINE_BREAKS:!1===nr(t,e)&&jn(e,t.PATTERN)))}),n("Misc Mapping #2",()=>{m=(0,s.m)(a,Jn),g=(0,s.m)(o,er),y=(0,i.r)(a,(e,t)=>{const n=t.GROUP;return d(n)&&n!==$r.SKIPPED&&(e[n]=[]),e},{}),T=(0,s.m)(o,(e,t)=>({pattern:o[t],longerAlt:u[t],canLineTerminator:p[t],isCustom:m[t],short:g[t],group:c[t],push:h[t],pop:f[t],tokenTypeIdx:l[t],tokenType:a[t]}))});let R=!0,$=[];return t.safeMode||n("First Char Optimization",()=>{$=(0,i.r)(a,(e,n,s)=>{if("string"==typeof n.PATTERN){const t=lr(n.PATTERN.charCodeAt(0));sr(e,t,T[s])}else if((0,r.aS)(n.START_CHARS_HINT)){let t;(0,i.d)(n.START_CHARS_HINT,n=>{const r=lr("string"==typeof n?n.charCodeAt(0):n);t!==r&&(t=r,sr(e,r,T[s]))})}else if(_(n.PATTERN))if(n.PATTERN.unicode)R=!1,t.ensureOptimizations&&ln(`${Dn}\tUnable to analyze < ${n.PATTERN.toString()} > pattern.\n\tThe regexp unicode flag is not currently supported by the regexp-to-ast library.\n\tThis will disable the lexer's first char optimizations.\n\tFor details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#UNICODE_OPTIMIZE`);else{const a=Un(n.PATTERN,t.ensureOptimizations);(0,r.av)(a)&&(R=!1),(0,i.d)(a,t=>{sr(e,t,T[s])})}else t.ensureOptimizations&&ln(`${Dn}\tTokenType: <${n.name}> is using a custom token pattern without providing <start_chars_hint> parameter.\n\tThis will disable the lexer's first char optimizations.\n\tFor details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#CUSTOM_OPTIMIZE`),R=!1;return e},[])}),{emptyGroups:y,patternIdxToConfig:T,charCodeToPatternIdxToConfig:$,hasCustom:v,canBeOptimized:R}}(e,{lineTerminatorCharacters:this.config.lineTerminatorCharacters,positionTracking:t.positionTracking,ensureOptimizations:t.ensureOptimizations,safeMode:t.safeMode,tracer:this.TRACE_INIT})}),this.patternIdxToConfig[n]=a.patternIdxToConfig,this.charCodeToPatternIdxToConfig[n]=a.charCodeToPatternIdxToConfig,this.emptyGroups=g({},this.emptyGroups,a.emptyGroups),this.hasCustom=a.hasCustom||this.hasCustom,this.canModeBeOptimized[n]=a.canBeOptimized}})}),this.defaultMode=n.defaultMode,!(0,r.av)(this.lexerDefinitionErrors)&&!this.config.deferDefinitionErrorsHandling){const e=(0,s.m)(this.lexerDefinitionErrors,e=>e.message).join("-----------------------\n");throw new Error("Errors detected in definition of Lexer:\n"+e)}(0,i.d)(this.lexerDefinitionWarning,e=>{cn(e.message)}),this.TRACE_INIT("Choosing sub-methods implementations",()=>{if(Yn?(this.chopInput=r.aT,this.match=this.matchWithTest):(this.updateLastIndex=i.D,this.match=this.matchWithExec),o&&(this.handleModes=i.D),!1===this.trackStartLines&&(this.computeNewColumn=r.aT),!1===this.trackEndLines&&(this.updateTokenEndLineColumnLocation=i.D),/full/i.test(this.config.positionTracking))this.createTokenInstance=this.createFullToken;else if(/onlyStart/i.test(this.config.positionTracking))this.createTokenInstance=this.createStartOnlyToken;else{if(!/onlyOffset/i.test(this.config.positionTracking))throw Error(`Invalid <positionTracking> config option: "${this.config.positionTracking}"`);this.createTokenInstance=this.createOffsetOnlyToken}this.hasCustom?(this.addToken=this.addTokenUsingPush,this.handlePayload=this.handlePayloadWithCustom):(this.addToken=this.addTokenUsingMemberAccess,this.handlePayload=this.handlePayloadNoCustom)}),this.TRACE_INIT("Failed Optimization Warnings",()=>{const e=(0,i.r)(this.canModeBeOptimized,(e,t,n)=>(!1===t&&e.push(n),e),[]);if(t.ensureOptimizations&&!(0,r.av)(e))throw Error(`Lexer Modes: < ${e.join(", ")} > cannot be optimized.\n\t Disable the "ensureOptimizations" lexer config flag to silently ignore this and run the lexer in an un-optimized mode.\n\t Or inspect the console log for details on how to resolve these issues.`)}),this.TRACE_INIT("clearRegExpParserCache",()=>{On={}}),this.TRACE_INIT("toFastProperties",()=>{dn(this)})})}tokenize(e,t=this.defaultMode){if(!(0,r.av)(this.lexerDefinitionErrors)){const e=(0,s.m)(this.lexerDefinitionErrors,e=>e.message).join("-----------------------\n");throw new Error("Unable to Tokenize because Errors detected in definition of Lexer:\n"+e)}return this.tokenizeInternal(e,t)}tokenizeInternal(e,t){let n,a,o,l,c,u,d,h,f,p,m,g,y,T,v;const R=e,$=R.length;let E=0,A=0;const k=this.hasCustom?0:Math.floor(e.length/10),x=new Array(k),I=[];let S=this.trackStartLines?1:void 0,C=this.trackStartLines?1:void 0;const N=function(e){const t={},n=(0,i.k)(e);return(0,i.d)(n,n=>{const i=e[n];if(!(0,r.aS)(i))throw Error("non exhaustive match");t[n]=[]}),t}(this.emptyGroups),w=this.trackStartLines,L=this.config.lineTerminatorsPattern;let b=0,O=[],_=[];const P=[],M=[];let D;function U(){return O}function F(e){const t=lr(e),n=_[t];return void 0===n?M:n}Object.freeze(M);const G=e=>{if(1===P.length&&void 0===e.tokenType.PUSH_MODE){const t=this.config.errorMessageProvider.buildUnableToPopLexerModeMessage(e);I.push({offset:e.startOffset,line:e.startLine,column:e.startColumn,length:e.image.length,message:t})}else{P.pop();const e=(0,s.l)(P);O=this.patternIdxToConfig[e],_=this.charCodeToPatternIdxToConfig[e],b=O.length;const t=this.canModeBeOptimized[e]&&!1===this.config.safeMode;D=_&&t?F:U}};function B(e){P.push(e),_=this.charCodeToPatternIdxToConfig[e],O=this.patternIdxToConfig[e],b=O.length,b=O.length;const t=this.canModeBeOptimized[e]&&!1===this.config.safeMode;D=_&&t?F:U}let K;B.call(this,t);const V=this.config.recoveryEnabled;for(;E<$;){u=null;const t=R.charCodeAt(E),r=D(t),i=r.length;for(n=0;n<i;n++){K=r[n];const i=K.pattern;d=null;const s=K.short;if(!1!==s?t===s&&(u=i):!0===K.isCustom?(v=i.exec(R,E,x,N),null!==v?(u=v[0],void 0!==v.payload&&(d=v.payload)):u=null):(this.updateLastIndex(i,E),u=this.match(i,e,E)),null!==u){if(c=K.longerAlt,void 0!==c){const t=c.length;for(o=0;o<t;o++){const t=O[c[o]],n=t.pattern;if(h=null,!0===t.isCustom?(v=n.exec(R,E,x,N),null!==v?(l=v[0],void 0!==v.payload&&(h=v.payload)):l=null):(this.updateLastIndex(n,E),l=this.match(n,e,E)),l&&l.length>u.length){u=l,d=h,K=t;break}}}break}}if(null!==u){if(f=u.length,p=K.group,void 0!==p&&(m=K.tokenTypeIdx,g=this.createTokenInstance(u,E,m,K.tokenType,S,C,f),this.handlePayload(g,d),!1===p?A=this.addToken(x,A,g):N[p].push(g)),e=this.chopInput(e,f),E+=f,C=this.computeNewColumn(C,f),!0===w&&!0===K.canLineTerminator){let e,t,n=0;L.lastIndex=0;do{e=L.test(u),!0===e&&(t=L.lastIndex-1,n++)}while(!0===e);0!==n&&(S+=n,C=f-t,this.updateTokenEndLineColumnLocation(g,p,t,n,S,C,f))}this.handleModes(K,G,B,g)}else{const t=E,n=S,r=C;let i=!1===V;for(;!1===i&&E<$;)for(e=this.chopInput(e,1),E++,a=0;a<b;a++){const t=O[a],n=t.pattern,r=t.short;if(!1!==r?R.charCodeAt(E)===r&&(i=!0):!0===t.isCustom?i=null!==n.exec(R,E,x,N):(this.updateLastIndex(n,E),i=null!==n.exec(e)),!0===i)break}if(y=E-t,C=this.computeNewColumn(C,y),T=this.config.errorMessageProvider.buildUnexpectedCharactersMessage(R,t,y,n,r),I.push({offset:t,line:n,column:r,length:y,message:T}),!1===V)break}}return this.hasCustom||(x.length=A),{tokens:x,groups:N,errors:I}}handleModes(e,t,n,r){if(!0===e.pop){const i=e.push;t(r),void 0!==i&&n.call(this,i)}else void 0!==e.push&&n.call(this,e.push)}chopInput(e,t){return e.substring(t)}updateLastIndex(e,t){e.lastIndex=t}updateTokenEndLineColumnLocation(e,t,n,r,i,s,a){let o,l;void 0!==t&&(o=n===a-1,l=o?-1:0,1===r&&!0===o||(e.endLine=i+l,e.endColumn=s-1-l))}computeNewColumn(e,t){return e+t}createOffsetOnlyToken(e,t,n,r){return{image:e,startOffset:t,tokenTypeIdx:n,tokenType:r}}createStartOnlyToken(e,t,n,r,i,s){return{image:e,startOffset:t,startLine:i,startColumn:s,tokenTypeIdx:n,tokenType:r}}createFullToken(e,t,n,r,i,s,a){return{image:e,startOffset:t,endOffset:t+a-1,startLine:i,endLine:i,startColumn:s,endColumn:s+a-1,tokenTypeIdx:n,tokenType:r}}addTokenUsingPush(e,t,n){return e.push(n),t}addTokenUsingMemberAccess(e,t,n){return e[t]=n,++t}handlePayloadNoCustom(e,t){}handlePayloadWithCustom(e,t){null!==t&&(e.payload=t)}matchWithTest(e,t,n){return!0===e.test(t)?t.substring(n,e.lastIndex):null}matchWithExec(e,t){const n=e.exec(t);return null!==n?n[0]:null}}function Er(e){return Ar(e)?e.LABEL:e.name}function Ar(e){return d(e.LABEL)&&""!==e.LABEL}$r.SKIPPED="This marks a skipped Token pattern, this means each token identified by it willbe consumed and then thrown into oblivion, this can be used to for example to completely ignore whitespace.",$r.NA=/NOT_APPLICABLE/;const kr="categories",xr="label",Ir="group",Sr="push_mode",Cr="pop_mode",Nr="longer_alt",wr="line_breaks",Lr="start_chars_hint";function br(e){return function(e){const t=e.pattern,n={};if(n.name=e.name,(0,i.i)(t)||(n.PATTERN=t),(0,s.h)(e,"parent"))throw"The parent property is no longer supported.\nSee: https://github.com/chevrotain/chevrotain/issues/564#issuecomment-349062346 for details.";return(0,s.h)(e,kr)&&(n.CATEGORIES=e[kr]),fr([n]),(0,s.h)(e,xr)&&(n.LABEL=e[xr]),(0,s.h)(e,Ir)&&(n.GROUP=e[Ir]),(0,s.h)(e,Cr)&&(n.POP_MODE=e[Cr]),(0,s.h)(e,Sr)&&(n.PUSH_MODE=e[Sr]),(0,s.h)(e,Nr)&&(n.LONGER_ALT=e[Nr]),(0,s.h)(e,wr)&&(n.LINE_BREAKS=e[wr]),(0,s.h)(e,Lr)&&(n.START_CHARS_HINT=e[Lr]),n}(e)}const Or=br({name:"EOF",pattern:$r.NA});function _r(e,t,n,r,i,s,a,o){return{image:t,startOffset:n,endOffset:r,startLine:i,endLine:s,startColumn:a,endColumn:o,tokenTypeIdx:e.tokenTypeIdx,tokenType:e}}function Pr(e,t){return cr(e,t)}fr([Or]);const Mr={buildMismatchTokenMessage:({expected:e,actual:t,previous:n,ruleName:r})=>`Expecting ${Ar(e)?`--\x3e ${Er(e)} <--`:`token of type --\x3e ${e.name} <--`} but found --\x3e '${t.image}' <--`,buildNotAllInputParsedMessage:({firstRedundant:e,ruleName:t})=>"Redundant input, expecting EOF but found: "+e.image,buildNoViableAltMessage({expectedPathsPerAlt:e,actual:t,previous:n,customUserDescription:r,ruleName:a}){const o="Expecting: ",l="\nbut found: '"+x(t).image+"'";if(r)return o+r+l;{const t=(0,i.r)(e,(e,t)=>e.concat(t),[]),n=(0,s.m)(t,e=>`[${(0,s.m)(e,e=>Er(e)).join(", ")}]`);return o+`one of these possible Token sequences:\n${(0,s.m)(n,(e,t)=>` ${t+1}. ${e}`).join("\n")}`+l}},buildEarlyExitMessage({expectedIterationPaths:e,actual:t,customUserDescription:n,ruleName:r}){const i="Expecting: ",a="\nbut found: '"+x(t).image+"'";return n?i+n+a:i+`expecting at least one iteration which starts with one of these possible Token sequences::\n <${(0,s.m)(e,e=>`[${(0,s.m)(e,e=>Er(e)).join(",")}]`).join(" ,")}>`+a}};Object.freeze(Mr);const Dr={buildRuleNotFoundError:(e,t)=>"Invalid grammar, reference to a rule which is not defined: ->"+t.nonTerminalName+"<-\ninside top level rule: ->"+e.name+"<-"},Ur={buildDuplicateFoundError(e,t){const n=e.name,r=x(t),i=r.idx,s=Sn(r),a=(o=r)instanceof An?o.terminalType.name:o instanceof pn?o.nonTerminalName:"";var o;let l=`->${s}${i>0?i:""}<- ${a?`with argument: ->${a}<-`:""}\n appears more than once (${t.length} times) in the top level rule: ->${n}<-. \n For further details see: https://chevrotain.io/docs/FAQ.html#NUMERICAL_SUFFIXES \n `;return l=l.replace(/[ \t]+/g," "),l=l.replace(/\s\s+/g,"\n"),l},buildNamespaceConflictError:e=>`Namespace conflict found in grammar.\nThe grammar has both a Terminal(Token) and a Non-Terminal(Rule) named: <${e.name}>.\nTo resolve this make sure each Terminal and Non-Terminal names are unique\nThis is easy to accomplish by using the convention that Terminal names start with an uppercase letter\nand Non-Terminal names start with a lower case letter.`,buildAlternationPrefixAmbiguityError(e){const t=(0,s.m)(e.prefixPath,e=>Er(e)).join(", "),n=0===e.alternation.idx?"":e.alternation.idx;return`Ambiguous alternatives: <${e.ambiguityIndices.join(" ,")}> due to common lookahead prefix\nin <OR${n}> inside <${e.topLevelRule.name}> Rule,\n<${t}> may appears as a prefix path in all these alternatives.\nSee: https://chevrotain.io/docs/guide/resolving_grammar_errors.html#COMMON_PREFIX\nFor Further details.`},buildAlternationAmbiguityError(e){const t=(0,s.m)(e.prefixPath,e=>Er(e)).join(", "),n=0===e.alternation.idx?"":e.alternation.idx;let r=`Ambiguous Alternatives Detected: <${e.ambiguityIndices.join(" ,")}> in <OR${n}> inside <${e.topLevelRule.name}> Rule,\n<${t}> may appears as a prefix path in all these alternatives.\n`;return r+="See: https://chevrotain.io/docs/guide/resolving_grammar_errors.html#AMBIGUOUS_ALTERNATIVES\nFor Further details.",r},buildEmptyRepetitionError(e){let t=Sn(e.repetition);return 0!==e.repetition.idx&&(t+=e.repetition.idx),`The repetition <${t}> within Rule <${e.topLevelRule.name}> can never consume any tokens.\nThis could lead to an infinite loop.`},buildTokenNameError:e=>"deprecated",buildEmptyAlternationError:e=>`Ambiguous empty alternative: <${e.emptyChoiceIdx+1}> in <OR${e.alternation.idx}> inside <${e.topLevelRule.name}> Rule.\nOnly the last alternative may be an empty alternative.`,buildTooManyAlternativesError:e=>`An Alternation cannot have more than 256 alternatives:\n<OR${e.alternation.idx}> inside <${e.topLevelRule.name}> Rule.\n has ${e.alternation.definition.length+1} alternatives.`,buildLeftRecursionError(e){const t=e.topLevelRule.name;return`Left Recursion found in grammar.\nrule: <${t}> can be invoked from itself (directly or indirectly)\nwithout consuming any Tokens. The grammar path that causes this is: \n ${t} --\x3e ${(0,s.m)(e.leftRecursionPath,e=>e.name).concat([t]).join(" --\x3e ")}\n To fix this refactor your grammar to remove the left recursion.\nsee: https://en.wikipedia.org/wiki/LL_parser#Left_factoring.`},buildInvalidRuleNameError:e=>"deprecated",buildDuplicateRuleNameError(e){let t;return t=e.topLevelRule instanceof mn?e.topLevelRule.name:e.topLevelRule,`Duplicate definition, rule: ->${t}<- is already defined in the grammar: ->${e.grammarName}<-`}};class Fr extends xn{constructor(e,t){super(),this.nameToTopRule=e,this.errMsgProvider=t,this.errors=[]}resolveRefs(){(0,i.d)((0,i.v)(this.nameToTopRule),e=>{this.currTopLevel=e,e.accept(this)})}visitNonTerminal(e){const t=this.nameToTopRule[e.nonTerminalName];if(t)e.referencedRule=t;else{const t=this.errMsgProvider.buildRuleNotFoundError(this.currTopLevel,e);this.errors.push({message:t,type:rs.UNRESOLVED_SUBRULE_REF,ruleName:this.currTopLevel.name,unresolvedRefName:e.nonTerminalName})}}}class Gr extends Cn{constructor(e,t){super(),this.topProd=e,this.path=t,this.possibleTokTypes=[],this.nextProductionName="",this.nextProductionOccurrence=0,this.found=!1,this.isAtEndOfPath=!1}startWalking(){if(this.found=!1,this.path.ruleStack[0]!==this.topProd.name)throw Error("The path does not start with the walker's top Rule!");return this.ruleStack=(0,a.c)(this.path.ruleStack).reverse(),this.occurrenceStack=(0,a.c)(this.path.occurrenceStack).reverse(),this.ruleStack.pop(),this.occurrenceStack.pop(),this.updateExpectedNext(),this.walk(this.topProd),this.possibleTokTypes}walk(e,t=[]){this.found||super.walk(e,t)}walkProdRef(e,t,n){if(e.referencedRule.name===this.nextProductionName&&e.idx===this.nextProductionOccurrence){const r=t.concat(n);this.updateExpectedNext(),this.walk(e.referencedRule,r)}}updateExpectedNext(){(0,r.av)(this.ruleStack)?(this.nextProductionName="",this.nextProductionOccurrence=0,this.isAtEndOfPath=!0):(this.nextProductionName=this.ruleStack.pop(),this.nextProductionOccurrence=this.occurrenceStack.pop())}}class Br extends Gr{constructor(e,t){super(e,t),this.path=t,this.nextTerminalName="",this.nextTerminalOccurrence=0,this.nextTerminalName=this.path.lastTok.name,this.nextTerminalOccurrence=this.path.lastTokOccurrence}walkTerminal(e,t,n){if(this.isAtEndOfPath&&e.terminalType.name===this.nextTerminalName&&e.idx===this.nextTerminalOccurrence&&!this.found){const e=t.concat(n),r=new gn({definition:e});this.possibleTokTypes=wn(r),this.found=!0}}}class Kr extends Cn{constructor(e,t){super(),this.topRule=e,this.occurrence=t,this.result={token:void 0,occurrence:void 0,isEndOfRule:void 0}}startWalking(){return this.walk(this.topRule),this.result}}class Vr extends Kr{walkMany(e,t,n){if(e.idx===this.occurrence){const e=x(t.concat(n));this.result.isEndOfRule=void 0===e,e instanceof An&&(this.result.token=e.terminalType,this.result.occurrence=e.idx)}else super.walkMany(e,t,n)}}class jr extends Kr{walkManySep(e,t,n){if(e.idx===this.occurrence){const e=x(t.concat(n));this.result.isEndOfRule=void 0===e,e instanceof An&&(this.result.token=e.terminalType,this.result.occurrence=e.idx)}else super.walkManySep(e,t,n)}}class Hr extends Kr{walkAtLeastOne(e,t,n){if(e.idx===this.occurrence){const e=x(t.concat(n));this.result.isEndOfRule=void 0===e,e instanceof An&&(this.result.token=e.terminalType,this.result.occurrence=e.idx)}else super.walkAtLeastOne(e,t,n)}}class Wr extends Kr{walkAtLeastOneSep(e,t,n){if(e.idx===this.occurrence){const e=x(t.concat(n));this.result.isEndOfRule=void 0===e,e instanceof An&&(this.result.token=e.terminalType,this.result.occurrence=e.idx)}else super.walkAtLeastOneSep(e,t,n)}}function zr(e,t,n=[]){n=(0,a.c)(n);let s=[],o=0;function l(r){const i=zr(function(t){return t.concat(R(e,o+1))}(r),t,n);return s.concat(i)}for(;n.length<t&&o<e.length;){const t=e[o];if(t instanceof gn)return l(t.definition);if(t instanceof pn)return l(t.definition);if(t instanceof yn)s=l(t.definition);else{if(t instanceof Tn)return l(t.definition.concat([new Rn({definition:t.definition})]));if(t instanceof vn)return l([new gn({definition:t.definition}),new Rn({definition:[new An({terminalType:t.separator})].concat(t.definition)})]);if(t instanceof $n){const e=t.definition.concat([new Rn({definition:[new An({terminalType:t.separator})].concat(t.definition)})]);s=l(e)}else if(t instanceof Rn){const e=t.definition.concat([new Rn({definition:t.definition})]);s=l(e)}else{if(t instanceof En)return(0,i.d)(t.definition,e=>{!1===(0,r.av)(e.definition)&&(s=l(e.definition))}),s;if(!(t instanceof An))throw Error("non exhaustive match");n.push(t.terminalType)}}o++}return s.push({partialPath:n,suffixDef:R(e,o)}),s}function Yr(e,t,n,i){const o="EXIT_NONE_TERMINAL",l=[o],c="EXIT_ALTERNATIVE";let u=!1;const d=t.length,h=d-i-1,f=[],p=[];for(p.push({idx:-1,def:e,ruleStack:[],occurrenceStack:[]});!(0,r.av)(p);){const e=p.pop();if(e===c){u&&(0,s.l)(p).idx<=h&&p.pop();continue}const i=e.def,m=e.idx,g=e.ruleStack,y=e.occurrenceStack;if((0,r.av)(i))continue;const T=i[0];if(T===o){const e={idx:m,def:R(i),ruleStack:$(g),occurrenceStack:$(y)};p.push(e)}else if(T instanceof An)if(m<d-1){const e=m+1;if(n(t[e],T.terminalType)){const t={idx:e,def:R(i),ruleStack:g,occurrenceStack:y};p.push(t)}}else{if(m!==d-1)throw Error("non exhaustive match");f.push({nextTokenType:T.terminalType,nextTokenOccurrence:T.idx,ruleStack:g,occurrenceStack:y}),u=!0}else if(T instanceof pn){const e=(0,a.c)(g);e.push(T.nonTerminalName);const t=(0,a.c)(y);t.push(T.idx);const n={idx:m,def:T.definition.concat(l,R(i)),ruleStack:e,occurrenceStack:t};p.push(n)}else if(T instanceof yn){const e={idx:m,def:R(i),ruleStack:g,occurrenceStack:y};p.push(e),p.push(c);const t={idx:m,def:T.definition.concat(R(i)),ruleStack:g,occurrenceStack:y};p.push(t)}else if(T instanceof Tn){const e=new Rn({definition:T.definition,idx:T.idx}),t={idx:m,def:T.definition.concat([e],R(i)),ruleStack:g,occurrenceStack:y};p.push(t)}else if(T instanceof vn){const e=new An({terminalType:T.separator}),t=new Rn({definition:[e].concat(T.definition),idx:T.idx}),n={idx:m,def:T.definition.concat([t],R(i)),ruleStack:g,occurrenceStack:y};p.push(n)}else if(T instanceof $n){const e={idx:m,def:R(i),ruleStack:g,occurrenceStack:y};p.push(e),p.push(c);const t=new An({terminalType:T.separator}),n=new Rn({definition:[t].concat(T.definition),idx:T.idx}),r={idx:m,def:T.definition.concat([n],R(i)),ruleStack:g,occurrenceStack:y};p.push(r)}else if(T instanceof Rn){const e={idx:m,def:R(i),ruleStack:g,occurrenceStack:y};p.push(e),p.push(c);const t=new Rn({definition:T.definition,idx:T.idx}),n={idx:m,def:T.definition.concat([t],R(i)),ruleStack:g,occurrenceStack:y};p.push(n)}else if(T instanceof En)for(let e=T.definition.length-1;e>=0;e--){const t={idx:m,def:T.definition[e].definition.concat(R(i)),ruleStack:g,occurrenceStack:y};p.push(t),p.push(c)}else if(T instanceof gn)p.push({idx:m,def:T.definition.concat(R(i)),ruleStack:g,occurrenceStack:y});else{if(!(T instanceof mn))throw Error("non exhaustive match");p.push(qr(T,m,g,y))}}return f}function qr(e,t,n,r){const i=(0,a.c)(n);i.push(e.name);const s=(0,a.c)(r);return s.push(1),{idx:t,def:e.definition,ruleStack:i,occurrenceStack:s}}var Xr;function Qr(e){if(e instanceof yn||"Option"===e)return Xr.OPTION;if(e instanceof Rn||"Repetition"===e)return Xr.REPETITION;if(e instanceof Tn||"RepetitionMandatory"===e)return Xr.REPETITION_MANDATORY;if(e instanceof vn||"RepetitionMandatoryWithSeparator"===e)return Xr.REPETITION_MANDATORY_WITH_SEPARATOR;if(e instanceof $n||"RepetitionWithSeparator"===e)return Xr.REPETITION_WITH_SEPARATOR;if(e instanceof En||"Alternation"===e)return Xr.ALTERNATION;throw Error("non exhaustive match")}function Zr(e){const{occurrence:t,rule:n,prodType:r,maxLookahead:i}=e,s=Qr(r);return s===Xr.ALTERNATION?oi(t,n,i):li(t,n,s,i)}function Jr(e,t,n,r){const a=e.length,o=k(e,e=>k(e,e=>1===e.length));if(t)return function(t){const r=(0,s.m)(t,e=>e.GATE);for(let t=0;t<a;t++){const i=e[t],s=i.length,a=r[t];if(void 0===a||!1!==a.call(this))e:for(let e=0;e<s;e++){const r=i[e],s=r.length;for(let e=0;e<s;e++){const t=this.LA(e+1);if(!1===n(t,r[e]))continue e}return t}}};if(o&&!r){const t=(0,s.m)(e,e=>(0,s.f)(e)),n=(0,i.r)(t,(e,t,n)=>((0,i.d)(t,t=>{(0,s.h)(e,t.tokenTypeIdx)||(e[t.tokenTypeIdx]=n),(0,i.d)(t.categoryMatches,t=>{(0,s.h)(e,t)||(e[t]=n)})}),e),{});return function(){const e=this.LA(1);return n[e.tokenTypeIdx]}}return function(){for(let t=0;t<a;t++){const r=e[t],i=r.length;e:for(let e=0;e<i;e++){const i=r[e],s=i.length;for(let e=0;e<s;e++){const t=this.LA(e+1);if(!1===n(t,i[e]))continue e}return t}}}}function ei(e,t,n){const a=k(e,e=>1===e.length),o=e.length;if(a&&!n){const t=(0,s.f)(e);if(1===t.length&&(0,r.av)(t[0].categoryMatches)){const e=t[0].tokenTypeIdx;return function(){return this.LA(1).tokenTypeIdx===e}}{const e=(0,i.r)(t,(e,t,n)=>(e[t.tokenTypeIdx]=!0,(0,i.d)(t.categoryMatches,t=>{e[t]=!0}),e),[]);return function(){const t=this.LA(1);return!0===e[t.tokenTypeIdx]}}}return function(){e:for(let n=0;n<o;n++){const r=e[n],i=r.length;for(let e=0;e<i;e++){const n=this.LA(e+1);if(!1===t(n,r[e]))continue e}return!0}return!1}}!function(e){e[e.OPTION=0]="OPTION",e[e.REPETITION=1]="REPETITION",e[e.REPETITION_MANDATORY=2]="REPETITION_MANDATORY",e[e.REPETITION_MANDATORY_WITH_SEPARATOR=3]="REPETITION_MANDATORY_WITH_SEPARATOR",e[e.REPETITION_WITH_SEPARATOR=4]="REPETITION_WITH_SEPARATOR",e[e.ALTERNATION=5]="ALTERNATION"}(Xr||(Xr={}));class ti extends Cn{constructor(e,t,n){super(),this.topProd=e,this.targetOccurrence=t,this.targetProdType=n}startWalking(){return this.walk(this.topProd),this.restDef}checkIsTarget(e,t,n,r){return e.idx===this.targetOccurrence&&this.targetProdType===t&&(this.restDef=n.concat(r),!0)}walkOption(e,t,n){this.checkIsTarget(e,Xr.OPTION,t,n)||super.walkOption(e,t,n)}walkAtLeastOne(e,t,n){this.checkIsTarget(e,Xr.REPETITION_MANDATORY,t,n)||super.walkOption(e,t,n)}walkAtLeastOneSep(e,t,n){this.checkIsTarget(e,Xr.REPETITION_MANDATORY_WITH_SEPARATOR,t,n)||super.walkOption(e,t,n)}walkMany(e,t,n){this.checkIsTarget(e,Xr.REPETITION,t,n)||super.walkOption(e,t,n)}walkManySep(e,t,n){this.checkIsTarget(e,Xr.REPETITION_WITH_SEPARATOR,t,n)||super.walkOption(e,t,n)}}class ni extends xn{constructor(e,t,n){super(),this.targetOccurrence=e,this.targetProdType=t,this.targetRef=n,this.result=[]}checkIsTarget(e,t){e.idx===this.targetOccurrence&&this.targetProdType===t&&(void 0===this.targetRef||e===this.targetRef)&&(this.result=e.definition)}visitOption(e){this.checkIsTarget(e,Xr.OPTION)}visitRepetition(e){this.checkIsTarget(e,Xr.REPETITION)}visitRepetitionMandatory(e){this.checkIsTarget(e,Xr.REPETITION_MANDATORY)}visitRepetitionMandatoryWithSeparator(e){this.checkIsTarget(e,Xr.REPETITION_MANDATORY_WITH_SEPARATOR)}visitRepetitionWithSeparator(e){this.checkIsTarget(e,Xr.REPETITION_WITH_SEPARATOR)}visitAlternation(e){this.checkIsTarget(e,Xr.ALTERNATION)}}function ri(e){const t=new Array(e);for(let n=0;n<e;n++)t[n]=[];return t}function ii(e){let t=[""];for(let n=0;n<e.length;n++){const r=e[n],i=[];for(let e=0;e<t.length;e++){const n=t[e];i.push(n+"_"+r.tokenTypeIdx);for(let e=0;e<r.categoryMatches.length;e++){const t="_"+r.categoryMatches[e];i.push(n+t)}}t=i}return t}function si(e,t,n){for(let r=0;r<e.length;r++){if(r===n)continue;const i=e[r];for(let e=0;e<t.length;e++)if(!0===i[t[e]])return!1}return!0}function ai(e,t){const n=(0,s.m)(e,e=>zr([e],1)),a=ri(n.length),o=(0,s.m)(n,e=>{const t={};return(0,i.d)(e,e=>{const n=ii(e.partialPath);(0,i.d)(n,e=>{t[e]=!0})}),t});let l=n;for(let e=1;e<=t;e++){const n=l;l=ri(n.length);for(let s=0;s<n.length;s++){const c=n[s];for(let n=0;n<c.length;n++){const u=c[n].partialPath,d=c[n].suffixDef,h=ii(u);if(si(o,h,s)||(0,r.av)(d)||u.length===t){const e=a[s];if(!1===ci(e,u)){e.push(u);for(let e=0;e<h.length;e++){const t=h[e];o[s][t]=!0}}}else{const t=zr(d,e+1,u);l[s]=l[s].concat(t),(0,i.d)(t,e=>{const t=ii(e.partialPath);(0,i.d)(t,e=>{o[s][e]=!0})})}}}}return a}function oi(e,t,n,r){const i=new ni(e,Xr.ALTERNATION,r);return t.accept(i),ai(i.result,n)}function li(e,t,n,r){const i=new ni(e,n);t.accept(i);const s=i.result,a=new ti(t,e,n).startWalking();return ai([new gn({definition:s}),new gn({definition:a})],r)}function ci(e,t){e:for(let n=0;n<e.length;n++){const r=e[n];if(r.length===t.length){for(let e=0;e<r.length;e++){const n=t[e],i=r[e];if(0==(n===i||void 0!==i.categoryMatchesMap[n.tokenTypeIdx]))continue e}return!0}}return!1}function ui(e){return k(e,e=>k(e,e=>k(e,e=>(0,r.av)(e.categoryMatches))))}function di(e){return`${Sn(e)}_#_${e.idx}_#_${hi(e)}`}function hi(e){return e instanceof An?e.terminalType.name:e instanceof pn?e.nonTerminalName:""}class fi extends xn{constructor(){super(...arguments),this.allProductions=[]}visitNonTerminal(e){this.allProductions.push(e)}visitOption(e){this.allProductions.push(e)}visitRepetitionWithSeparator(e){this.allProductions.push(e)}visitRepetitionMandatory(e){this.allProductions.push(e)}visitRepetitionMandatoryWithSeparator(e){this.allProductions.push(e)}visitRepetition(e){this.allProductions.push(e)}visitAlternation(e){this.allProductions.push(e)}visitTerminal(e){this.allProductions.push(e)}}function pi(e,t,n,i=[]){const s=[],o=mi(t.definition);if((0,r.av)(o))return[];{const t=e.name;L(o,e)&&s.push({message:n.buildLeftRecursionError({topLevelRule:e,leftRecursionPath:i}),type:rs.LEFT_RECURSION,ruleName:t});const r=I(p(o,i.concat([e])),t=>{const r=(0,a.c)(i);return r.push(t),pi(e,t,n,r)});return s.concat(r)}}function mi(e){let t=[];if((0,r.av)(e))return t;const n=x(e);if(n instanceof pn)t.push(n.referencedRule);else if(n instanceof gn||n instanceof yn||n instanceof Tn||n instanceof vn||n instanceof $n||n instanceof Rn)t=t.concat(mi(n.definition));else if(n instanceof En)t=(0,s.f)((0,s.m)(n.definition,e=>mi(e.definition)));else if(!(n instanceof An))throw Error("non exhaustive match");const i=In(n),a=e.length>1;if(i&&a){const n=R(e);return t.concat(mi(n))}return t}class gi extends xn{constructor(){super(...arguments),this.alternations=[]}visitAlternation(e){this.alternations.push(e)}}class yi extends xn{constructor(){super(...arguments),this.allProductions=[]}visitRepetitionWithSeparator(e){this.allProductions.push(e)}visitRepetitionMandatory(e){this.allProductions.push(e)}visitRepetitionMandatoryWithSeparator(e){this.allProductions.push(e)}visitRepetition(e){this.allProductions.push(e)}}const Ti="MismatchedTokenException",vi="NoViableAltException",Ri="EarlyExitException",$i="NotAllInputParsedException",Ei=[Ti,vi,Ri,$i];function Ai(e){return L(Ei,e.name)}Object.freeze(Ei);class ki extends Error{constructor(e,t){super(e),this.token=t,this.resyncedTokens=[],Object.setPrototypeOf(this,new.target.prototype),Error.captureStackTrace&&Error.captureStackTrace(this,this.constructor)}}class xi extends ki{constructor(e,t,n){super(e,t),this.previousToken=n,this.name=Ti}}class Ii extends ki{constructor(e,t,n){super(e,t),this.previousToken=n,this.name=vi}}class Si extends ki{constructor(e,t){super(e,t),this.name=$i}}class Ci extends ki{constructor(e,t,n){super(e,t),this.previousToken=n,this.name=Ri}}const Ni={},wi="InRuleRecoveryException";class Li extends Error{constructor(e){super(e),this.name=wi}}function bi(e,t,n,r,i,s,a){const o=this.getKeyForAutomaticLookahead(r,i);let l=this.firstAfterRepMap[o];if(void 0===l){const e=this.getCurrRuleFullName();l=new s(this.getGAstProductions()[e],i).startWalking(),this.firstAfterRepMap[o]=l}let c=l.token,u=l.occurrence;const d=l.isEndOfRule;1===this.RULE_STACK.length&&d&&void 0===c&&(c=Or,u=1),void 0!==c&&void 0!==u&&this.shouldInRepetitionRecoveryBeTried(c,u,a)&&this.tryInRepetitionRecovery(e,t,n,c)}const Oi=1024,_i=1280,Pi=1536;function Mi(e,t,n){return n|t|e}class Di{constructor(e){var t;this.maxLookahead=null!==(t=null==e?void 0:e.maxLookahead)&&void 0!==t?t:ts.maxLookahead}validate(e){const t=this.validateNoLeftRecursion(e.rules);if((0,r.av)(t)){const n=this.validateEmptyOrAlternatives(e.rules),r=this.validateAmbiguousAlternationAlternatives(e.rules,this.maxLookahead),i=this.validateSomeNonEmptyLookaheadPath(e.rules,this.maxLookahead);return[...t,...n,...r,...i]}return t}validateNoLeftRecursion(e){return I(e,e=>pi(e,e,Ur))}validateEmptyOrAlternatives(e){return I(e,e=>function(e,t){const n=new gi;return e.accept(n),I(n.alternations,n=>I($(n.definition),(i,s)=>{const a=Yr([i],[],cr,1);return(0,r.av)(a)?[{message:t.buildEmptyAlternationError({topLevelRule:e,alternation:n,emptyChoiceIdx:s}),type:rs.NONE_LAST_EMPTY_ALT,ruleName:e.name,occurrence:n.idx,alternative:s+1}]:[]}))}(e,Ur))}validateAmbiguousAlternationAlternatives(e,t){return I(e,e=>function(e,t,n){const r=new gi;e.accept(r);let a=r.alternations;return a=P(a,e=>!0===e.ignoreAmbiguities),I(a,r=>{const a=r.idx,o=r.maxLookahead||t,l=oi(a,e,o,r),c=function(e,t,n,r){const a=[],o=(0,i.r)(e,(n,r,s)=>(!0===t.definition[s].ignoreAmbiguities||(0,i.d)(r,r=>{const o=[s];(0,i.d)(e,(e,n)=>{s!==n&&ci(e,r)&&!0!==t.definition[n].ignoreAmbiguities&&o.push(n)}),o.length>1&&!ci(a,r)&&(a.push(r),n.push({alts:o,path:r}))}),n),[]);return(0,s.m)(o,e=>{const i=(0,s.m)(e.alts,e=>e+1);return{message:r.buildAlternationAmbiguityError({topLevelRule:n,alternation:t,ambiguityIndices:i,prefixPath:e.path}),type:rs.AMBIGUOUS_ALTS,ruleName:n.name,occurrence:t.idx,alternatives:e.alts}})}(l,r,e,n),u=function(e,t,n,r){const a=(0,i.r)(e,(e,t,n)=>{const r=(0,s.m)(t,e=>({idx:n,path:e}));return e.concat(r)},[]);return y(I(a,e=>{if(!0===t.definition[e.idx].ignoreAmbiguities)return[];const o=e.idx,l=e.path,c=(0,i.f)(a,e=>!0!==t.definition[e.idx].ignoreAmbiguities&&e.idx<o&&function(e,t){return e.length<t.length&&k(e,(e,n)=>{const r=t[n];return e===r||r.categoryMatchesMap[e.tokenTypeIdx]})}(e.path,l));return(0,s.m)(c,e=>{const i=[e.idx+1,o+1],s=0===t.idx?"":t.idx;return{message:r.buildAlternationPrefixAmbiguityError({topLevelRule:n,alternation:t,ambiguityIndices:i,prefixPath:e.path}),type:rs.AMBIGUOUS_PREFIX_ALTS,ruleName:n.name,occurrence:s,alternatives:i}})}))}(l,r,e,n);return c.concat(u)})}(e,t,Ur))}validateSomeNonEmptyLookaheadPath(e,t){return function(e,t,n){const a=[];return(0,i.d)(e,e=>{const o=new yi;e.accept(o);const l=o.allProductions;(0,i.d)(l,i=>{const o=Qr(i),l=i.maxLookahead||t,c=li(i.idx,e,o,l)[0];if((0,r.av)((0,s.f)(c))){const t=n.buildEmptyRepetitionError({topLevelRule:e,repetition:i});a.push({message:t,type:rs.NO_NON_EMPTY_LOOKAHEAD,ruleName:e.name})}})}),a}(e,t,Ur)}buildLookaheadForAlternation(e){return function(e,t,n,r,i,s){const a=oi(e,t,n);return s(a,r,ui(a)?ur:cr,i)}(e.prodOccurrence,e.rule,e.maxLookahead,e.hasPredicates,e.dynamicTokensEnabled,Jr)}buildLookaheadForOptional(e){return function(e,t,n,r,i,s){const a=li(e,t,i,n),o=ui(a)?ur:cr;return s(a[0],o,r)}(e.prodOccurrence,e.rule,e.maxLookahead,e.dynamicTokensEnabled,Qr(e.prodType),ei)}}const Ui=new class extends xn{constructor(){super(...arguments),this.dslMethods={option:[],alternation:[],repetition:[],repetitionWithSeparator:[],repetitionMandatory:[],repetitionMandatoryWithSeparator:[]}}reset(){this.dslMethods={option:[],alternation:[],repetition:[],repetitionWithSeparator:[],repetitionMandatory:[],repetitionMandatoryWithSeparator:[]}}visitOption(e){this.dslMethods.option.push(e)}visitRepetitionWithSeparator(e){this.dslMethods.repetitionWithSeparator.push(e)}visitRepetitionMandatory(e){this.dslMethods.repetitionMandatory.push(e)}visitRepetitionMandatoryWithSeparator(e){this.dslMethods.repetitionMandatoryWithSeparator.push(e)}visitRepetition(e){this.dslMethods.repetition.push(e)}visitAlternation(e){this.dslMethods.alternation.push(e)}};function Fi(e,t){!0===isNaN(e.startOffset)?(e.startOffset=t.startOffset,e.endOffset=t.endOffset):e.endOffset<t.endOffset&&(e.endOffset=t.endOffset)}function Gi(e,t){!0===isNaN(e.startOffset)?(e.startOffset=t.startOffset,e.startColumn=t.startColumn,e.startLine=t.startLine,e.endOffset=t.endOffset,e.endColumn=t.endColumn,e.endLine=t.endLine):e.endOffset<t.endOffset&&(e.endOffset=t.endOffset,e.endColumn=t.endColumn,e.endLine=t.endLine)}function Bi(e,t){Object.defineProperty(e,"name",{enumerable:!1,configurable:!0,writable:!1,value:t})}function Ki(e,t){const n=(0,i.k)(e),r=n.length;for(let i=0;i<r;i++){const r=e[n[i]],s=r.length;for(let e=0;e<s;e++){const n=r[e];void 0===n.tokenTypeIdx&&this[n.name](n.children,t)}}}var Vi;!function(e){e[e.REDUNDANT_METHOD=0]="REDUNDANT_METHOD",e[e.MISSING_METHOD=1]="MISSING_METHOD"}(Vi||(Vi={}));const ji={description:"This Object indicates the Parser is during Recording Phase"};Object.freeze(ji);const Hi=!0,Wi=Math.pow(2,8)-1,zi=br({name:"RECORDING_PHASE_TOKEN",pattern:$r.NA});fr([zi]);const Yi=_r(zi,"This IToken indicates the Parser is in Recording Phase\n\tSee: https://chevrotain.io/docs/guide/internals.html#grammar-recording for details",-1,-1,-1,-1,-1,-1);Object.freeze(Yi);const qi={name:"This CSTNode indicates the Parser is in Recording Phase\n\tSee: https://chevrotain.io/docs/guide/internals.html#grammar-recording for details",children:{}};function Xi(e,t,n,i=!1){Ji(n);const a=(0,s.l)(this.recordingProdStack),o=(0,r.au)(t)?t:t.DEF,l=new e({definition:[],idx:n});return i&&(l.separator=t.SEP),(0,s.h)(t,"MAX_LOOKAHEAD")&&(l.maxLookahead=t.MAX_LOOKAHEAD),this.recordingProdStack.push(l),o.call(this),a.definition.push(l),this.recordingProdStack.pop(),ji}function Qi(e,t){Ji(t);const n=(0,s.l)(this.recordingProdStack),a=!1===(0,r.aS)(e),o=!1===a?e:e.DEF,l=new En({definition:[],idx:t,ignoreAmbiguities:a&&!0===e.IGNORE_AMBIGUITIES});(0,s.h)(e,"MAX_LOOKAHEAD")&&(l.maxLookahead=e.MAX_LOOKAHEAD);const c=D(o,e=>(0,r.au)(e.GATE));return l.hasPredicates=c,n.definition.push(l),(0,i.d)(o,e=>{const t=new gn({definition:[]});l.definition.push(t),(0,s.h)(e,"IGNORE_AMBIGUITIES")?t.ignoreAmbiguities=e.IGNORE_AMBIGUITIES:(0,s.h)(e,"GATE")&&(t.ignoreAmbiguities=!0),this.recordingProdStack.push(t),e.ALT.call(this),this.recordingProdStack.pop()}),ji}function Zi(e){return 0===e?"":`${e}`}function Ji(e){if(e<0||e>Wi){const t=new Error(`Invalid DSL Method idx value: <${e}>\n\tIdx value must be a none negative value smaller than ${Wi+1}`);throw t.KNOWN_RECORDER_ERROR=!0,t}}const es=_r(Or,"",NaN,NaN,NaN,NaN,NaN,NaN);Object.freeze(es);const ts=Object.freeze({recoveryEnabled:!1,maxLookahead:3,dynamicTokensEnabled:!1,outputCst:!0,errorMessageProvider:Mr,nodeLocationTracking:"none",traceInitPerf:!1,skipValidations:!1}),ns=Object.freeze({recoveryValueFunc:()=>{},resyncEnabled:!0});var rs;function is(e=void 0){return function(){return e}}!function(e){e[e.INVALID_RULE_NAME=0]="INVALID_RULE_NAME",e[e.DUPLICATE_RULE_NAME=1]="DUPLICATE_RULE_NAME",e[e.INVALID_RULE_OVERRIDE=2]="INVALID_RULE_OVERRIDE",e[e.DUPLICATE_PRODUCTIONS=3]="DUPLICATE_PRODUCTIONS",e[e.UNRESOLVED_SUBRULE_REF=4]="UNRESOLVED_SUBRULE_REF",e[e.LEFT_RECURSION=5]="LEFT_RECURSION",e[e.NONE_LAST_EMPTY_ALT=6]="NONE_LAST_EMPTY_ALT",e[e.AMBIGUOUS_ALTS=7]="AMBIGUOUS_ALTS",e[e.CONFLICT_TOKENS_RULES_NAMESPACE=8]="CONFLICT_TOKENS_RULES_NAMESPACE",e[e.INVALID_TOKEN_NAME=9]="INVALID_TOKEN_NAME",e[e.NO_NON_EMPTY_LOOKAHEAD=10]="NO_NON_EMPTY_LOOKAHEAD",e[e.AMBIGUOUS_PREFIX_ALTS=11]="AMBIGUOUS_PREFIX_ALTS",e[e.TOO_MANY_ALTS=12]="TOO_MANY_ALTS",e[e.CUSTOM_LOOKAHEAD_VALIDATION=13]="CUSTOM_LOOKAHEAD_VALIDATION"}(rs||(rs={}));class ss{static performSelfAnalysis(e){throw Error("The **static** `performSelfAnalysis` method has been deprecated.\t\nUse the **instance** method with the same name instead.")}performSelfAnalysis(){this.TRACE_INIT("performSelfAnalysis",()=>{let e;this.selfAnalysisDone=!0;const t=this.className;this.TRACE_INIT("toFastProps",()=>{dn(this)}),this.TRACE_INIT("Grammar Recording",()=>{try{this.enableRecording(),(0,i.d)(this.definedRulesNames,e=>{const t=this[e].originalGrammarAction;let n;this.TRACE_INIT(`${e} Rule`,()=>{n=this.topLevelRuleRecord(e,t)}),this.gastProductionsCache[e]=n})}finally{this.disableRecording()}});let n=[];if(this.TRACE_INIT("Grammar Resolving",()=>{n=function(e){const t=(0,s.i)(e,{errMsgProvider:Dr}),n={};return(0,i.d)(e.rules,e=>{n[e.name]=e}),function(e,t){const n=new Fr(e,t);return n.resolveRefs(),n.errors}(n,t.errMsgProvider)}({rules:(0,i.v)(this.gastProductionsCache)}),this.definitionErrors=this.definitionErrors.concat(n)}),this.TRACE_INIT("Grammar Validations",()=>{if((0,r.av)(n)&&!1===this.skipValidations){const e=function(e){return function(e,t,n,r){const a=I(e,e=>function(e,t){const n=new fi;e.accept(n);const r=n.allProductions,a=f(N(r,di),e=>e.length>1);return(0,s.m)((0,i.v)(a),n=>{const r=x(n),i=t.buildDuplicateFoundError(e,n),s=Sn(r),a={message:i,type:rs.DUPLICATE_PRODUCTIONS,ruleName:e.name,dslName:s,occurrence:r.idx},o=hi(r);return o&&(a.parameter=o),a})}(e,n)),o=function(e,t,n){const r=[],a=(0,s.m)(t,e=>e.name);return(0,i.d)(e,e=>{const t=e.name;if(L(a,t)){const i=n.buildNamespaceConflictError(e);r.push({message:i,type:rs.CONFLICT_TOKENS_RULES_NAMESPACE,ruleName:t})}}),r}(e,t,n),l=I(e,e=>function(e,t){const n=new gi;return e.accept(n),I(n.alternations,n=>n.definition.length>255?[{message:t.buildTooManyAlternativesError({topLevelRule:e,alternation:n}),type:rs.TOO_MANY_ALTS,ruleName:e.name,occurrence:n.idx}]:[])}(e,n)),c=I(e,t=>function(e,t,n,r){const s=[];if((0,i.r)(t,(t,n)=>n.name===e.name?t+1:t,0)>1){const t=r.buildDuplicateRuleNameError({topLevelRule:e,grammarName:n});s.push({message:t,type:rs.DUPLICATE_RULE_NAME,ruleName:e.name})}return s}(t,e,r,n));return a.concat(o,l,c)}((e=(0,s.i)(e,{errMsgProvider:Ur})).rules,e.tokenTypes,e.errMsgProvider,e.grammarName)}({rules:(0,i.v)(this.gastProductionsCache),tokenTypes:(0,i.v)(this.tokensMap),errMsgProvider:Ur,grammarName:t}),n=function(e){const t=e.lookaheadStrategy.validate({rules:e.rules,tokenTypes:e.tokenTypes,grammarName:e.grammarName});return(0,s.m)(t,e=>Object.assign({type:rs.CUSTOM_LOOKAHEAD_VALIDATION},e))}({lookaheadStrategy:this.lookaheadStrategy,rules:(0,i.v)(this.gastProductionsCache),tokenTypes:(0,i.v)(this.tokensMap),grammarName:t});this.definitionErrors=this.definitionErrors.concat(e,n)}}),(0,r.av)(this.definitionErrors)&&(this.recoveryEnabled&&this.TRACE_INIT("computeAllProdsFollows",()=>{const e=function(e){const t={};return(0,i.d)(e,e=>{const n=new bn(e).startWalking();g(t,n)}),t}((0,i.v)(this.gastProductionsCache));this.resyncFollows=e}),this.TRACE_INIT("ComputeLookaheadFunctions",()=>{var e,t;null===(t=(e=this.lookaheadStrategy).initialize)||void 0===t||t.call(e,{rules:(0,i.v)(this.gastProductionsCache)}),this.preComputeLookaheadFunctions((0,i.v)(this.gastProductionsCache))})),!ss.DEFER_DEFINITION_ERRORS_HANDLING&&!(0,r.av)(this.definitionErrors))throw e=(0,s.m)(this.definitionErrors,e=>e.message),new Error(`Parser Definition Errors detected:\n ${e.join("\n-------------------------------\n")}`)})}constructor(e,t){this.definitionErrors=[],this.selfAnalysisDone=!1;const n=this;if(n.initErrorHandler(t),n.initLexerAdapter(),n.initLooksAhead(t),n.initRecognizerEngine(e,t),n.initRecoverable(t),n.initTreeBuilder(t),n.initContentAssist(),n.initGastRecorder(t),n.initPerformanceTracer(t),(0,s.h)(t,"ignoredIssues"))throw new Error("The <ignoredIssues> IParserConfig property has been deprecated.\n\tPlease use the <IGNORE_AMBIGUITIES> flag on the relevant DSL method instead.\n\tSee: https://chevrotain.io/docs/guide/resolving_grammar_errors.html#IGNORING_AMBIGUITIES\n\tFor further details.");this.skipValidations=(0,s.h)(t,"skipValidations")?t.skipValidations:ts.skipValidations}}ss.DEFER_DEFINITION_ERRORS_HANDLING=!1,function(e,t){t.forEach(t=>{const n=t.prototype;Object.getOwnPropertyNames(n).forEach(r=>{if("constructor"===r)return;const i=Object.getOwnPropertyDescriptor(n,r);i&&(i.get||i.set)?Object.defineProperty(e.prototype,r,i):e.prototype[r]=t.prototype[r]})})}(ss,[class{initRecoverable(e){this.firstAfterRepMap={},this.resyncFollows={},this.recoveryEnabled=(0,s.h)(e,"recoveryEnabled")?e.recoveryEnabled:ts.recoveryEnabled,this.recoveryEnabled&&(this.attemptInRepetitionRecovery=bi)}getTokenToInsert(e){const t=_r(e,"",NaN,NaN,NaN,NaN,NaN,NaN);return t.isInsertedInRecovery=!0,t}canTokenTypeBeInsertedInRecovery(e){return!0}canTokenTypeBeDeletedInRecovery(e){return!0}tryInRepetitionRecovery(e,t,n,r){const i=this.findReSyncTokenType(),s=this.exportLexerState(),a=[];let o=!1;const l=this.LA(1);let c=this.LA(1);const u=()=>{const e=this.LA(0),t=this.errorMessageProvider.buildMismatchTokenMessage({expected:r,actual:l,previous:e,ruleName:this.getCurrRuleFullName()}),n=new xi(t,l,this.LA(0));n.resyncedTokens=$(a),this.SAVE_ERROR(n)};for(;!o;){if(this.tokenMatcher(c,r))return void u();if(n.call(this))return u(),void e.apply(this,t);this.tokenMatcher(c,i)?o=!0:(c=this.SKIP_TOKEN(),this.addToResyncTokens(c,a))}this.importLexerState(s)}shouldInRepetitionRecoveryBeTried(e,t,n){return!(!1===n||this.tokenMatcher(this.LA(1),e)||this.isBackTracking()||this.canPerformInRuleRecovery(e,this.getFollowsForInRuleRecovery(e,t)))}getFollowsForInRuleRecovery(e,t){const n=this.getCurrentGrammarPath(e,t);return this.getNextPossibleTokenTypes(n)}tryInRuleRecovery(e,t){if(this.canRecoverWithSingleTokenInsertion(e,t))return this.getTokenToInsert(e);if(this.canRecoverWithSingleTokenDeletion(e)){const e=this.SKIP_TOKEN();return this.consumeToken(),e}throw new Li("sad sad panda")}canPerformInRuleRecovery(e,t){return this.canRecoverWithSingleTokenInsertion(e,t)||this.canRecoverWithSingleTokenDeletion(e)}canRecoverWithSingleTokenInsertion(e,t){if(!this.canTokenTypeBeInsertedInRecovery(e)||(0,r.av)(t))return!1;const n=this.LA(1);return void 0!==(0,s.g)(t,e=>this.tokenMatcher(n,e))}canRecoverWithSingleTokenDeletion(e){return!!this.canTokenTypeBeDeletedInRecovery(e)&&this.tokenMatcher(this.LA(2),e)}isInCurrentRuleReSyncSet(e){const t=this.getCurrFollowKey();return L(this.getFollowSetFromFollowKey(t),e)}findReSyncTokenType(){const e=this.flattenFollowSet();let t=this.LA(1),n=2;for(;;){const r=(0,s.g)(e,e=>Pr(t,e));if(void 0!==r)return r;t=this.LA(n),n++}}getCurrFollowKey(){if(1===this.RULE_STACK.length)return Ni;const e=this.getLastExplicitRuleShortName(),t=this.getLastExplicitRuleOccurrenceIndex(),n=this.getPreviousExplicitRuleShortName();return{ruleName:this.shortRuleNameToFullName(e),idxInCallingRule:t,inRule:this.shortRuleNameToFullName(n)}}buildFullFollowKeyStack(){const e=this.RULE_STACK,t=this.RULE_OCCURRENCE_STACK;return(0,s.m)(e,(n,r)=>0===r?Ni:{ruleName:this.shortRuleNameToFullName(n),idxInCallingRule:t[r],inRule:this.shortRuleNameToFullName(e[r-1])})}flattenFollowSet(){const e=(0,s.m)(this.buildFullFollowKeyStack(),e=>this.getFollowSetFromFollowKey(e));return(0,s.f)(e)}getFollowSetFromFollowKey(e){if(e===Ni)return[Or];const t=e.ruleName+e.idxInCallingRule+Ln+e.inRule;return this.resyncFollows[t]}addToResyncTokens(e,t){return this.tokenMatcher(e,Or)||t.push(e),t}reSyncTo(e){const t=[];let n=this.LA(1);for(;!1===this.tokenMatcher(n,e);)n=this.SKIP_TOKEN(),this.addToResyncTokens(n,t);return $(t)}attemptInRepetitionRecovery(e,t,n,r,i,s,a){}getCurrentGrammarPath(e,t){return{ruleStack:this.getHumanReadableRuleStack(),occurrenceStack:(0,a.c)(this.RULE_OCCURRENCE_STACK),lastTok:e,lastTokOccurrence:t}}getHumanReadableRuleStack(){return(0,s.m)(this.RULE_STACK,e=>this.shortRuleNameToFullName(e))}},class{initLooksAhead(e){this.dynamicTokensEnabled=(0,s.h)(e,"dynamicTokensEnabled")?e.dynamicTokensEnabled:ts.dynamicTokensEnabled,this.maxLookahead=(0,s.h)(e,"maxLookahead")?e.maxLookahead:ts.maxLookahead,this.lookaheadStrategy=(0,s.h)(e,"lookaheadStrategy")?e.lookaheadStrategy:new Di({maxLookahead:this.maxLookahead}),this.lookAheadFuncsCache=new Map}preComputeLookaheadFunctions(e){(0,i.d)(e,e=>{this.TRACE_INIT(`${e.name} Rule Lookahead`,()=>{const{alternation:t,repetition:n,option:r,repetitionMandatory:s,repetitionMandatoryWithSeparator:a,repetitionWithSeparator:o}=function(e){Ui.reset(),e.accept(Ui);const t=Ui.dslMethods;return Ui.reset(),t}(e);(0,i.d)(t,t=>{const n=0===t.idx?"":t.idx;this.TRACE_INIT(`${Sn(t)}${n}`,()=>{const n=this.lookaheadStrategy.buildLookaheadForAlternation({prodOccurrence:t.idx,rule:e,maxLookahead:t.maxLookahead||this.maxLookahead,hasPredicates:t.hasPredicates,dynamicTokensEnabled:this.dynamicTokensEnabled}),r=Mi(this.fullRuleNameToShort[e.name],256,t.idx);this.setLaFuncCache(r,n)})}),(0,i.d)(n,t=>{this.computeLookaheadFunc(e,t.idx,768,"Repetition",t.maxLookahead,Sn(t))}),(0,i.d)(r,t=>{this.computeLookaheadFunc(e,t.idx,512,"Option",t.maxLookahead,Sn(t))}),(0,i.d)(s,t=>{this.computeLookaheadFunc(e,t.idx,Oi,"RepetitionMandatory",t.maxLookahead,Sn(t))}),(0,i.d)(a,t=>{this.computeLookaheadFunc(e,t.idx,Pi,"RepetitionMandatoryWithSeparator",t.maxLookahead,Sn(t))}),(0,i.d)(o,t=>{this.computeLookaheadFunc(e,t.idx,_i,"RepetitionWithSeparator",t.maxLookahead,Sn(t))})})})}computeLookaheadFunc(e,t,n,r,i,s){this.TRACE_INIT(`${s}${0===t?"":t}`,()=>{const s=this.lookaheadStrategy.buildLookaheadForOptional({prodOccurrence:t,rule:e,maxLookahead:i||this.maxLookahead,dynamicTokensEnabled:this.dynamicTokensEnabled,prodType:r}),a=Mi(this.fullRuleNameToShort[e.name],n,t);this.setLaFuncCache(a,s)})}getKeyForAutomaticLookahead(e,t){return Mi(this.getLastExplicitRuleShortName(),e,t)}getLaFuncFromCache(e){return this.lookAheadFuncsCache.get(e)}setLaFuncCache(e,t){this.lookAheadFuncsCache.set(e,t)}},class{initTreeBuilder(e){if(this.CST_STACK=[],this.outputCst=e.outputCst,this.nodeLocationTracking=(0,s.h)(e,"nodeLocationTracking")?e.nodeLocationTracking:ts.nodeLocationTracking,this.outputCst)if(/full/i.test(this.nodeLocationTracking))this.recoveryEnabled?(this.setNodeLocationFromToken=Gi,this.setNodeLocationFromNode=Gi,this.cstPostRule=i.D,this.setInitialNodeLocation=this.setInitialNodeLocationFullRecovery):(this.setNodeLocationFromToken=i.D,this.setNodeLocationFromNode=i.D,this.cstPostRule=this.cstPostRuleFull,this.setInitialNodeLocation=this.setInitialNodeLocationFullRegular);else if(/onlyOffset/i.test(this.nodeLocationTracking))this.recoveryEnabled?(this.setNodeLocationFromToken=Fi,this.setNodeLocationFromNode=Fi,this.cstPostRule=i.D,this.setInitialNodeLocation=this.setInitialNodeLocationOnlyOffsetRecovery):(this.setNodeLocationFromToken=i.D,this.setNodeLocationFromNode=i.D,this.cstPostRule=this.cstPostRuleOnlyOffset,this.setInitialNodeLocation=this.setInitialNodeLocationOnlyOffsetRegular);else{if(!/none/i.test(this.nodeLocationTracking))throw Error(`Invalid <nodeLocationTracking> config option: "${e.nodeLocationTracking}"`);this.setNodeLocationFromToken=i.D,this.setNodeLocationFromNode=i.D,this.cstPostRule=i.D,this.setInitialNodeLocation=i.D}else this.cstInvocationStateUpdate=i.D,this.cstFinallyStateUpdate=i.D,this.cstPostTerminal=i.D,this.cstPostNonTerminal=i.D,this.cstPostRule=i.D}setInitialNodeLocationOnlyOffsetRecovery(e){e.location={startOffset:NaN,endOffset:NaN}}setInitialNodeLocationOnlyOffsetRegular(e){e.location={startOffset:this.LA(1).startOffset,endOffset:NaN}}setInitialNodeLocationFullRecovery(e){e.location={startOffset:NaN,startLine:NaN,startColumn:NaN,endOffset:NaN,endLine:NaN,endColumn:NaN}}setInitialNodeLocationFullRegular(e){const t=this.LA(1);e.location={startOffset:t.startOffset,startLine:t.startLine,startColumn:t.startColumn,endOffset:NaN,endLine:NaN,endColumn:NaN}}cstInvocationStateUpdate(e){const t={name:e,children:Object.create(null)};this.setInitialNodeLocation(t),this.CST_STACK.push(t)}cstFinallyStateUpdate(){this.CST_STACK.pop()}cstPostRuleFull(e){const t=this.LA(0),n=e.location;n.startOffset<=t.startOffset?(n.endOffset=t.endOffset,n.endLine=t.endLine,n.endColumn=t.endColumn):(n.startOffset=NaN,n.startLine=NaN,n.startColumn=NaN)}cstPostRuleOnlyOffset(e){const t=this.LA(0),n=e.location;n.startOffset<=t.startOffset?n.endOffset=t.endOffset:n.startOffset=NaN}cstPostTerminal(e,t){const n=this.CST_STACK[this.CST_STACK.length-1];(function(e,t,n){void 0===e.children[n]?e.children[n]=[t]:e.children[n].push(t)})(n,t,e),this.setNodeLocationFromToken(n.location,t)}cstPostNonTerminal(e,t){const n=this.CST_STACK[this.CST_STACK.length-1];(function(e,t,n){void 0===e.children[t]?e.children[t]=[n]:e.children[t].push(n)})(n,t,e),this.setNodeLocationFromNode(n.location,e.location)}getBaseCstVisitorConstructor(){if((0,i.i)(this.baseCstVisitorConstructor)){const e=function(e,t){const n=function(){};Bi(n,e+"BaseSemantics");const a={visit:function(e,t){if((0,r.aS)(e)&&(e=e[0]),!(0,i.i)(e))return this[e.name](e.children,t)},validateVisitor:function(){const e=function(e,t){return function(e,t){const n=(0,i.f)(t,t=>!1===(0,r.au)(e[t])),a=(0,s.m)(n,t=>({msg:`Missing visitor method: <${t}> on ${e.constructor.name} CST Visitor.`,type:Vi.MISSING_METHOD,methodName:t}));return y(a)}(e,t)}(this,t);if(!(0,r.av)(e)){const t=(0,s.m)(e,e=>e.msg);throw Error(`Errors Detected in CST Visitor <${this.constructor.name}>:\n\t${t.join("\n\n").replace(/\n/g,"\n\t")}`)}}};return(n.prototype=a).constructor=n,n._RULE_NAMES=t,n}(this.className,(0,i.k)(this.gastProductionsCache));return this.baseCstVisitorConstructor=e,e}return this.baseCstVisitorConstructor}getBaseCstVisitorConstructorWithDefaults(){if((0,i.i)(this.baseCstVisitorWithDefaultsConstructor)){const e=function(e,t,n){const r=function(){};Bi(r,e+"BaseSemanticsWithDefaults");const s=Object.create(n.prototype);return(0,i.d)(t,e=>{s[e]=Ki}),(r.prototype=s).constructor=r,r}(this.className,(0,i.k)(this.gastProductionsCache),this.getBaseCstVisitorConstructor());return this.baseCstVisitorWithDefaultsConstructor=e,e}return this.baseCstVisitorWithDefaultsConstructor}getLastExplicitRuleShortName(){const e=this.RULE_STACK;return e[e.length-1]}getPreviousExplicitRuleShortName(){const e=this.RULE_STACK;return e[e.length-2]}getLastExplicitRuleOccurrenceIndex(){const e=this.RULE_OCCURRENCE_STACK;return e[e.length-1]}},class{initLexerAdapter(){this.tokVector=[],this.tokVectorLength=0,this.currIdx=-1}set input(e){if(!0!==this.selfAnalysisDone)throw Error("Missing <performSelfAnalysis> invocation at the end of the Parser's constructor.");this.reset(),this.tokVector=e,this.tokVectorLength=e.length}get input(){return this.tokVector}SKIP_TOKEN(){return this.currIdx<=this.tokVector.length-2?(this.consumeToken(),this.LA(1)):es}LA(e){const t=this.currIdx+e;return t<0||this.tokVectorLength<=t?es:this.tokVector[t]}consumeToken(){this.currIdx++}exportLexerState(){return this.currIdx}importLexerState(e){this.currIdx=e}resetLexerState(){this.currIdx=-1}moveToTerminatedState(){this.currIdx=this.tokVector.length-1}getLexerPosition(){return this.exportLexerState()}},class{initRecognizerEngine(e,t){if(this.className=this.constructor.name,this.shortRuleNameToFull={},this.fullRuleNameToShort={},this.ruleShortNameIdx=256,this.tokenMatcher=ur,this.subruleIdx=0,this.definedRulesNames=[],this.tokensMap={},this.isBackTrackingStack=[],this.RULE_STACK=[],this.RULE_OCCURRENCE_STACK=[],this.gastProductionsCache={},(0,s.h)(t,"serializedGrammar"))throw Error("The Parser's configuration can no longer contain a <serializedGrammar> property.\n\tSee: https://chevrotain.io/docs/changes/BREAKING_CHANGES.html#_6-0-0\n\tFor Further details.");if((0,r.aS)(e)){if((0,r.av)(e))throw Error("A Token Vocabulary cannot be empty.\n\tNote that the first argument for the parser constructor\n\tis no longer a Token vector (since v4.0).");if("number"==typeof e[0].startOffset)throw Error("The Parser constructor no longer accepts a token vector as the first argument.\n\tSee: https://chevrotain.io/docs/changes/BREAKING_CHANGES.html#_4-0-0\n\tFor Further details.")}if((0,r.aS)(e))this.tokensMap=(0,i.r)(e,(e,t)=>(e[t.name]=t,e),{});else if((0,s.h)(e,"modes")&&k((0,s.f)((0,i.v)(e.modes)),yr)){const t=h((0,s.f)((0,i.v)(e.modes)));this.tokensMap=(0,i.r)(t,(e,t)=>(e[t.name]=t,e),{})}else{if(!(0,r.aL)(e))throw new Error("<tokensDictionary> argument must be An Array of Token constructors, A dictionary of Token constructors or an IMultiModeLexerDefinition");this.tokensMap=(0,a.c)(e)}this.tokensMap.EOF=Or;const n=k((0,s.h)(e,"modes")?(0,s.f)((0,i.v)(e.modes)):(0,i.v)(e),e=>(0,r.av)(e.categoryMatches));this.tokenMatcher=n?ur:cr,fr((0,i.v)(this.tokensMap))}defineRule(e,t,n){if(this.selfAnalysisDone)throw Error(`Grammar rule <${e}> may not be defined after the 'performSelfAnalysis' method has been called'\nMake sure that all grammar rule definitions are done before 'performSelfAnalysis' is called.`);const r=(0,s.h)(n,"resyncEnabled")?n.resyncEnabled:ns.resyncEnabled,i=(0,s.h)(n,"recoveryValueFunc")?n.recoveryValueFunc:ns.recoveryValueFunc,a=this.ruleShortNameIdx<<12;let o;return this.ruleShortNameIdx++,this.shortRuleNameToFull[a]=e,this.fullRuleNameToShort[e]=a,o=!0===this.outputCst?function(...n){try{this.ruleInvocationStateUpdate(a,e,this.subruleIdx),t.apply(this,n);const r=this.CST_STACK[this.CST_STACK.length-1];return this.cstPostRule(r),r}catch(e){return this.invokeRuleCatch(e,r,i)}finally{this.ruleFinallyStateUpdate()}}:function(...n){try{return this.ruleInvocationStateUpdate(a,e,this.subruleIdx),t.apply(this,n)}catch(e){return this.invokeRuleCatch(e,r,i)}finally{this.ruleFinallyStateUpdate()}},Object.assign(o,{ruleName:e,originalGrammarAction:t})}invokeRuleCatch(e,t,n){const r=1===this.RULE_STACK.length,i=t&&!this.isBackTracking()&&this.recoveryEnabled;if(Ai(e)){const t=e;if(i){const r=this.findReSyncTokenType();if(this.isInCurrentRuleReSyncSet(r)){if(t.resyncedTokens=this.reSyncTo(r),this.outputCst){const e=this.CST_STACK[this.CST_STACK.length-1];return e.recoveredNode=!0,e}return n(e)}if(this.outputCst){const e=this.CST_STACK[this.CST_STACK.length-1];e.recoveredNode=!0,t.partialCstResult=e}throw t}if(r)return this.moveToTerminatedState(),n(e);throw t}throw e}optionInternal(e,t){const n=this.getKeyForAutomaticLookahead(512,t);return this.optionInternalLogic(e,t,n)}optionInternalLogic(e,t,n){let r,i=this.getLaFuncFromCache(n);if("function"!=typeof e){r=e.DEF;const t=e.GATE;if(void 0!==t){const e=i;i=()=>t.call(this)&&e.call(this)}}else r=e;if(!0===i.call(this))return r.call(this)}atLeastOneInternal(e,t){const n=this.getKeyForAutomaticLookahead(Oi,e);return this.atLeastOneInternalLogic(e,t,n)}atLeastOneInternalLogic(e,t,n){let r,i=this.getLaFuncFromCache(n);if("function"!=typeof t){r=t.DEF;const e=t.GATE;if(void 0!==e){const t=i;i=()=>e.call(this)&&t.call(this)}}else r=t;if(!0!==i.call(this))throw this.raiseEarlyExitException(e,Xr.REPETITION_MANDATORY,t.ERR_MSG);{let e=this.doSingleRepetition(r);for(;!0===i.call(this)&&!0===e;)e=this.doSingleRepetition(r)}this.attemptInRepetitionRecovery(this.atLeastOneInternal,[e,t],i,Oi,e,Hr)}atLeastOneSepFirstInternal(e,t){const n=this.getKeyForAutomaticLookahead(Pi,e);this.atLeastOneSepFirstInternalLogic(e,t,n)}atLeastOneSepFirstInternalLogic(e,t,n){const r=t.DEF,i=t.SEP;if(!0!==this.getLaFuncFromCache(n).call(this))throw this.raiseEarlyExitException(e,Xr.REPETITION_MANDATORY_WITH_SEPARATOR,t.ERR_MSG);{r.call(this);const t=()=>this.tokenMatcher(this.LA(1),i);for(;!0===this.tokenMatcher(this.LA(1),i);)this.CONSUME(i),r.call(this);this.attemptInRepetitionRecovery(this.repetitionSepSecondInternal,[e,i,t,r,Wr],t,Pi,e,Wr)}}manyInternal(e,t){const n=this.getKeyForAutomaticLookahead(768,e);return this.manyInternalLogic(e,t,n)}manyInternalLogic(e,t,n){let r,i=this.getLaFuncFromCache(n);if("function"!=typeof t){r=t.DEF;const e=t.GATE;if(void 0!==e){const t=i;i=()=>e.call(this)&&t.call(this)}}else r=t;let s=!0;for(;!0===i.call(this)&&!0===s;)s=this.doSingleRepetition(r);this.attemptInRepetitionRecovery(this.manyInternal,[e,t],i,768,e,Vr,s)}manySepFirstInternal(e,t){const n=this.getKeyForAutomaticLookahead(_i,e);this.manySepFirstInternalLogic(e,t,n)}manySepFirstInternalLogic(e,t,n){const r=t.DEF,i=t.SEP;if(!0===this.getLaFuncFromCache(n).call(this)){r.call(this);const t=()=>this.tokenMatcher(this.LA(1),i);for(;!0===this.tokenMatcher(this.LA(1),i);)this.CONSUME(i),r.call(this);this.attemptInRepetitionRecovery(this.repetitionSepSecondInternal,[e,i,t,r,jr],t,_i,e,jr)}}repetitionSepSecondInternal(e,t,n,r,i){for(;n();)this.CONSUME(t),r.call(this);this.attemptInRepetitionRecovery(this.repetitionSepSecondInternal,[e,t,n,r,i],n,Pi,e,i)}doSingleRepetition(e){const t=this.getLexerPosition();return e.call(this),this.getLexerPosition()>t}orInternal(e,t){const n=this.getKeyForAutomaticLookahead(256,t),i=(0,r.aS)(e)?e:e.DEF,s=this.getLaFuncFromCache(n).call(this,i);if(void 0!==s)return i[s].ALT.call(this);this.raiseNoAltException(t,e.ERR_MSG)}ruleFinallyStateUpdate(){if(this.RULE_STACK.pop(),this.RULE_OCCURRENCE_STACK.pop(),this.cstFinallyStateUpdate(),0===this.RULE_STACK.length&&!1===this.isAtEndOfInput()){const e=this.LA(1),t=this.errorMessageProvider.buildNotAllInputParsedMessage({firstRedundant:e,ruleName:this.getCurrRuleFullName()});this.SAVE_ERROR(new Si(t,e))}}subruleInternal(e,t,n){let r;try{const i=void 0!==n?n.ARGS:void 0;return this.subruleIdx=t,r=e.apply(this,i),this.cstPostNonTerminal(r,void 0!==n&&void 0!==n.LABEL?n.LABEL:e.ruleName),r}catch(t){throw this.subruleInternalError(t,n,e.ruleName)}}subruleInternalError(e,t,n){throw Ai(e)&&void 0!==e.partialCstResult&&(this.cstPostNonTerminal(e.partialCstResult,void 0!==t&&void 0!==t.LABEL?t.LABEL:n),delete e.partialCstResult),e}consumeInternal(e,t,n){let r;try{const t=this.LA(1);!0===this.tokenMatcher(t,e)?(this.consumeToken(),r=t):this.consumeInternalError(e,t,n)}catch(n){r=this.consumeInternalRecovery(e,t,n)}return this.cstPostTerminal(void 0!==n&&void 0!==n.LABEL?n.LABEL:e.name,r),r}consumeInternalError(e,t,n){let r;const i=this.LA(0);throw r=void 0!==n&&n.ERR_MSG?n.ERR_MSG:this.errorMessageProvider.buildMismatchTokenMessage({expected:e,actual:t,previous:i,ruleName:this.getCurrRuleFullName()}),this.SAVE_ERROR(new xi(r,t,i))}consumeInternalRecovery(e,t,n){if(!this.recoveryEnabled||"MismatchedTokenException"!==n.name||this.isBackTracking())throw n;{const r=this.getFollowsForInRuleRecovery(e,t);try{return this.tryInRuleRecovery(e,r)}catch(e){throw e.name===wi?n:e}}}saveRecogState(){const e=this.errors,t=(0,a.c)(this.RULE_STACK);return{errors:e,lexerState:this.exportLexerState(),RULE_STACK:t,CST_STACK:this.CST_STACK}}reloadRecogState(e){this.errors=e.errors,this.importLexerState(e.lexerState),this.RULE_STACK=e.RULE_STACK}ruleInvocationStateUpdate(e,t,n){this.RULE_OCCURRENCE_STACK.push(n),this.RULE_STACK.push(e),this.cstInvocationStateUpdate(t)}isBackTracking(){return 0!==this.isBackTrackingStack.length}getCurrRuleFullName(){const e=this.getLastExplicitRuleShortName();return this.shortRuleNameToFull[e]}shortRuleNameToFullName(e){return this.shortRuleNameToFull[e]}isAtEndOfInput(){return this.tokenMatcher(this.LA(1),Or)}reset(){this.resetLexerState(),this.subruleIdx=0,this.isBackTrackingStack=[],this.errors=[],this.RULE_STACK=[],this.CST_STACK=[],this.RULE_OCCURRENCE_STACK=[]}},class{ACTION(e){return e.call(this)}consume(e,t,n){return this.consumeInternal(t,e,n)}subrule(e,t,n){return this.subruleInternal(t,e,n)}option(e,t){return this.optionInternal(t,e)}or(e,t){return this.orInternal(t,e)}many(e,t){return this.manyInternal(e,t)}atLeastOne(e,t){return this.atLeastOneInternal(e,t)}CONSUME(e,t){return this.consumeInternal(e,0,t)}CONSUME1(e,t){return this.consumeInternal(e,1,t)}CONSUME2(e,t){return this.consumeInternal(e,2,t)}CONSUME3(e,t){return this.consumeInternal(e,3,t)}CONSUME4(e,t){return this.consumeInternal(e,4,t)}CONSUME5(e,t){return this.consumeInternal(e,5,t)}CONSUME6(e,t){return this.consumeInternal(e,6,t)}CONSUME7(e,t){return this.consumeInternal(e,7,t)}CONSUME8(e,t){return this.consumeInternal(e,8,t)}CONSUME9(e,t){return this.consumeInternal(e,9,t)}SUBRULE(e,t){return this.subruleInternal(e,0,t)}SUBRULE1(e,t){return this.subruleInternal(e,1,t)}SUBRULE2(e,t){return this.subruleInternal(e,2,t)}SUBRULE3(e,t){return this.subruleInternal(e,3,t)}SUBRULE4(e,t){return this.subruleInternal(e,4,t)}SUBRULE5(e,t){return this.subruleInternal(e,5,t)}SUBRULE6(e,t){return this.subruleInternal(e,6,t)}SUBRULE7(e,t){return this.subruleInternal(e,7,t)}SUBRULE8(e,t){return this.subruleInternal(e,8,t)}SUBRULE9(e,t){return this.subruleInternal(e,9,t)}OPTION(e){return this.optionInternal(e,0)}OPTION1(e){return this.optionInternal(e,1)}OPTION2(e){return this.optionInternal(e,2)}OPTION3(e){return this.optionInternal(e,3)}OPTION4(e){return this.optionInternal(e,4)}OPTION5(e){return this.optionInternal(e,5)}OPTION6(e){return this.optionInternal(e,6)}OPTION7(e){return this.optionInternal(e,7)}OPTION8(e){return this.optionInternal(e,8)}OPTION9(e){return this.optionInternal(e,9)}OR(e){return this.orInternal(e,0)}OR1(e){return this.orInternal(e,1)}OR2(e){return this.orInternal(e,2)}OR3(e){return this.orInternal(e,3)}OR4(e){return this.orInternal(e,4)}OR5(e){return this.orInternal(e,5)}OR6(e){return this.orInternal(e,6)}OR7(e){return this.orInternal(e,7)}OR8(e){return this.orInternal(e,8)}OR9(e){return this.orInternal(e,9)}MANY(e){this.manyInternal(0,e)}MANY1(e){this.manyInternal(1,e)}MANY2(e){this.manyInternal(2,e)}MANY3(e){this.manyInternal(3,e)}MANY4(e){this.manyInternal(4,e)}MANY5(e){this.manyInternal(5,e)}MANY6(e){this.manyInternal(6,e)}MANY7(e){this.manyInternal(7,e)}MANY8(e){this.manyInternal(8,e)}MANY9(e){this.manyInternal(9,e)}MANY_SEP(e){this.manySepFirstInternal(0,e)}MANY_SEP1(e){this.manySepFirstInternal(1,e)}MANY_SEP2(e){this.manySepFirstInternal(2,e)}MANY_SEP3(e){this.manySepFirstInternal(3,e)}MANY_SEP4(e){this.manySepFirstInternal(4,e)}MANY_SEP5(e){this.manySepFirstInternal(5,e)}MANY_SEP6(e){this.manySepFirstInternal(6,e)}MANY_SEP7(e){this.manySepFirstInternal(7,e)}MANY_SEP8(e){this.manySepFirstInternal(8,e)}MANY_SEP9(e){this.manySepFirstInternal(9,e)}AT_LEAST_ONE(e){this.atLeastOneInternal(0,e)}AT_LEAST_ONE1(e){return this.atLeastOneInternal(1,e)}AT_LEAST_ONE2(e){this.atLeastOneInternal(2,e)}AT_LEAST_ONE3(e){this.atLeastOneInternal(3,e)}AT_LEAST_ONE4(e){this.atLeastOneInternal(4,e)}AT_LEAST_ONE5(e){this.atLeastOneInternal(5,e)}AT_LEAST_ONE6(e){this.atLeastOneInternal(6,e)}AT_LEAST_ONE7(e){this.atLeastOneInternal(7,e)}AT_LEAST_ONE8(e){this.atLeastOneInternal(8,e)}AT_LEAST_ONE9(e){this.atLeastOneInternal(9,e)}AT_LEAST_ONE_SEP(e){this.atLeastOneSepFirstInternal(0,e)}AT_LEAST_ONE_SEP1(e){this.atLeastOneSepFirstInternal(1,e)}AT_LEAST_ONE_SEP2(e){this.atLeastOneSepFirstInternal(2,e)}AT_LEAST_ONE_SEP3(e){this.atLeastOneSepFirstInternal(3,e)}AT_LEAST_ONE_SEP4(e){this.atLeastOneSepFirstInternal(4,e)}AT_LEAST_ONE_SEP5(e){this.atLeastOneSepFirstInternal(5,e)}AT_LEAST_ONE_SEP6(e){this.atLeastOneSepFirstInternal(6,e)}AT_LEAST_ONE_SEP7(e){this.atLeastOneSepFirstInternal(7,e)}AT_LEAST_ONE_SEP8(e){this.atLeastOneSepFirstInternal(8,e)}AT_LEAST_ONE_SEP9(e){this.atLeastOneSepFirstInternal(9,e)}RULE(e,t,n=ns){if(L(this.definedRulesNames,e)){const t={message:Ur.buildDuplicateRuleNameError({topLevelRule:e,grammarName:this.className}),type:rs.DUPLICATE_RULE_NAME,ruleName:e};this.definitionErrors.push(t)}this.definedRulesNames.push(e);const r=this.defineRule(e,t,n);return this[e]=r,r}OVERRIDE_RULE(e,t,n=ns){const r=function(e,t,n){const r=[];let i;return L(t,e)||(i=`Invalid rule override, rule: ->${e}<- cannot be overridden in the grammar: ->${n}<-as it is not defined in any of the super grammars `,r.push({message:i,type:rs.INVALID_RULE_OVERRIDE,ruleName:e})),r}(e,this.definedRulesNames,this.className);this.definitionErrors=this.definitionErrors.concat(r);const i=this.defineRule(e,t,n);return this[e]=i,i}BACKTRACK(e,t){return function(){this.isBackTrackingStack.push(1);const n=this.saveRecogState();try{return e.apply(this,t),!0}catch(e){if(Ai(e))return!1;throw e}finally{this.reloadRecogState(n),this.isBackTrackingStack.pop()}}}getGAstProductions(){return this.gastProductionsCache}getSerializedGastProductions(){return function(e){return(0,s.m)(e,kn)}((0,i.v)(this.gastProductionsCache))}},class{initErrorHandler(e){this._errors=[],this.errorMessageProvider=(0,s.h)(e,"errorMessageProvider")?e.errorMessageProvider:ts.errorMessageProvider}SAVE_ERROR(e){if(Ai(e))return e.context={ruleStack:this.getHumanReadableRuleStack(),ruleOccurrenceStack:(0,a.c)(this.RULE_OCCURRENCE_STACK)},this._errors.push(e),e;throw Error("Trying to save an Error which is not a RecognitionException")}get errors(){return(0,a.c)(this._errors)}set errors(e){this._errors=e}raiseEarlyExitException(e,t,n){const r=this.getCurrRuleFullName(),i=li(e,this.getGAstProductions()[r],t,this.maxLookahead)[0],s=[];for(let e=1;e<=this.maxLookahead;e++)s.push(this.LA(e));const a=this.errorMessageProvider.buildEarlyExitMessage({expectedIterationPaths:i,actual:s,previous:this.LA(0),customUserDescription:n,ruleName:r});throw this.SAVE_ERROR(new Ci(a,this.LA(1),this.LA(0)))}raiseNoAltException(e,t){const n=this.getCurrRuleFullName(),r=oi(e,this.getGAstProductions()[n],this.maxLookahead),i=[];for(let e=1;e<=this.maxLookahead;e++)i.push(this.LA(e));const s=this.LA(0),a=this.errorMessageProvider.buildNoViableAltMessage({expectedPathsPerAlt:r,actual:i,previous:s,customUserDescription:t,ruleName:this.getCurrRuleFullName()});throw this.SAVE_ERROR(new Ii(a,this.LA(1),s))}},class{initContentAssist(){}computeContentAssist(e,t){const n=this.gastProductionsCache[e];if((0,i.i)(n))throw Error(`Rule ->${e}<- does not exist in this grammar.`);return Yr([n],t,this.tokenMatcher,this.maxLookahead)}getNextPossibleTokenTypes(e){const t=x(e.ruleStack),n=this.getGAstProductions()[t];return new Br(n,e).startWalking()}},class{initGastRecorder(e){this.recordingProdStack=[],this.RECORDING_PHASE=!1}enableRecording(){this.RECORDING_PHASE=!0,this.TRACE_INIT("Enable Recording",()=>{for(let e=0;e<10;e++){const t=e>0?e:"";this[`CONSUME${t}`]=function(t,n){return this.consumeInternalRecord(t,e,n)},this[`SUBRULE${t}`]=function(t,n){return this.subruleInternalRecord(t,e,n)},this[`OPTION${t}`]=function(t){return this.optionInternalRecord(t,e)},this[`OR${t}`]=function(t){return this.orInternalRecord(t,e)},this[`MANY${t}`]=function(t){this.manyInternalRecord(e,t)},this[`MANY_SEP${t}`]=function(t){this.manySepFirstInternalRecord(e,t)},this[`AT_LEAST_ONE${t}`]=function(t){this.atLeastOneInternalRecord(e,t)},this[`AT_LEAST_ONE_SEP${t}`]=function(t){this.atLeastOneSepFirstInternalRecord(e,t)}}this.consume=function(e,t,n){return this.consumeInternalRecord(t,e,n)},this.subrule=function(e,t,n){return this.subruleInternalRecord(t,e,n)},this.option=function(e,t){return this.optionInternalRecord(t,e)},this.or=function(e,t){return this.orInternalRecord(t,e)},this.many=function(e,t){this.manyInternalRecord(e,t)},this.atLeastOne=function(e,t){this.atLeastOneInternalRecord(e,t)},this.ACTION=this.ACTION_RECORD,this.BACKTRACK=this.BACKTRACK_RECORD,this.LA=this.LA_RECORD})}disableRecording(){this.RECORDING_PHASE=!1,this.TRACE_INIT("Deleting Recording methods",()=>{const e=this;for(let t=0;t<10;t++){const n=t>0?t:"";delete e[`CONSUME${n}`],delete e[`SUBRULE${n}`],delete e[`OPTION${n}`],delete e[`OR${n}`],delete e[`MANY${n}`],delete e[`MANY_SEP${n}`],delete e[`AT_LEAST_ONE${n}`],delete e[`AT_LEAST_ONE_SEP${n}`]}delete e.consume,delete e.subrule,delete e.option,delete e.or,delete e.many,delete e.atLeastOne,delete e.ACTION,delete e.BACKTRACK,delete e.LA})}ACTION_RECORD(e){}BACKTRACK_RECORD(e,t){return()=>!0}LA_RECORD(e){return es}topLevelRuleRecord(e,t){try{const n=new mn({definition:[],name:e});return n.name=e,this.recordingProdStack.push(n),t.call(this),this.recordingProdStack.pop(),n}catch(e){if(!0!==e.KNOWN_RECORDER_ERROR)try{e.message=e.message+'\n\t This error was thrown during the "grammar recording phase" For more info see:\n\thttps://chevrotain.io/docs/guide/internals.html#grammar-recording'}catch{throw e}throw e}}optionInternalRecord(e,t){return Xi.call(this,yn,e,t)}atLeastOneInternalRecord(e,t){Xi.call(this,Tn,t,e)}atLeastOneSepFirstInternalRecord(e,t){Xi.call(this,vn,t,e,Hi)}manyInternalRecord(e,t){Xi.call(this,Rn,t,e)}manySepFirstInternalRecord(e,t){Xi.call(this,$n,t,e,Hi)}orInternalRecord(e,t){return Qi.call(this,e,t)}subruleInternalRecord(e,t,n){if(Ji(t),!e||!1===(0,s.h)(e,"ruleName")){const n=new Error(`<SUBRULE${Zi(t)}> argument is invalid expecting a Parser method reference but got: <${JSON.stringify(e)}>\n inside top level rule: <${this.recordingProdStack[0].name}>`);throw n.KNOWN_RECORDER_ERROR=!0,n}const r=(0,s.l)(this.recordingProdStack),i=e.ruleName,a=new pn({idx:t,nonTerminalName:i,label:null==n?void 0:n.LABEL,referencedRule:void 0});return r.definition.push(a),this.outputCst?qi:ji}consumeInternalRecord(e,t,n){if(Ji(t),!mr(e)){const n=new Error(`<CONSUME${Zi(t)}> argument is invalid expecting a TokenType reference but got: <${JSON.stringify(e)}>\n inside top level rule: <${this.recordingProdStack[0].name}>`);throw n.KNOWN_RECORDER_ERROR=!0,n}const r=(0,s.l)(this.recordingProdStack),i=new An({idx:t,terminalType:e,label:null==n?void 0:n.LABEL});return r.definition.push(i),Yi}},class{initPerformanceTracer(e){if((0,s.h)(e,"traceInitPerf")){const t=e.traceInitPerf,n="number"==typeof t;this.traceInitMaxIdent=n?t:1/0,this.traceInitPerf=n?t>0:t}else this.traceInitMaxIdent=0,this.traceInitPerf=ts.traceInitPerf;this.traceInitIndent=-1}TRACE_INIT(e,t){if(!0===this.traceInitPerf){this.traceInitIndent++;const n=new Array(this.traceInitIndent+1).join("\t");this.traceInitIndent<this.traceInitMaxIdent&&console.log(`${n}--\x3e <${e}>`);const{time:r,value:i}=un(t),s=r>10?console.warn:console.log;return this.traceInitIndent<this.traceInitMaxIdent&&s(`${n}<-- <${e}> time: ${r}ms`),this.traceInitIndent--,i}return t()}}]);class as extends ss{constructor(e,t=ts){const n=(0,a.c)(t);n.outputCst=!1,super(e,n)}}function os(e,t,n){return`${e.name}_${t}_${n}`}class ls{constructor(e){this.target=e}isEpsilon(){return!1}}class cs extends ls{constructor(e,t){super(e),this.tokenType=t}}class us extends ls{constructor(e){super(e)}isEpsilon(){return!0}}class ds extends ls{constructor(e,t,n){super(e),this.rule=t,this.followState=n}isEpsilon(){return!0}}function hs(e,t,n){return n instanceof An?Ts(e,t,n.terminalType,n):n instanceof pn?function(e,t,n){const r=n.referencedRule,i=e.ruleToStartState.get(r),s=$s(e,t,n,{type:1}),a=$s(e,t,n,{type:1});return Es(s,new ds(i,r,a)),{left:s,right:a}}(e,t,n):n instanceof En?function(e,t,n){const r=$s(e,t,n,{type:1});gs(e,r);const i=(0,s.m)(n.definition,n=>hs(e,t,n));return ys(e,t,r,n,...i)}(e,t,n):n instanceof yn?function(e,t,n){const r=$s(e,t,n,{type:1});gs(e,r);return function(e,t,n,r){const i=r.left;return Rs(i,r.right),e.decisionMap[os(t,"Option",n.idx)]=i,r}(e,t,n,ys(e,t,r,n,fs(e,t,n)))}(e,t,n):n instanceof Rn?function(e,t,n){const r=$s(e,t,n,{type:5});gs(e,r);return ms(e,t,n,ys(e,t,r,n,fs(e,t,n)))}(e,t,n):n instanceof $n?function(e,t,n){const r=$s(e,t,n,{type:5});gs(e,r);return ms(e,t,n,ys(e,t,r,n,fs(e,t,n)),Ts(e,t,n.separator,n))}(e,t,n):n instanceof Tn?function(e,t,n){const r=$s(e,t,n,{type:4});gs(e,r);return ps(e,t,n,ys(e,t,r,n,fs(e,t,n)))}(e,t,n):n instanceof vn?function(e,t,n){const r=$s(e,t,n,{type:4});gs(e,r);return ps(e,t,n,ys(e,t,r,n,fs(e,t,n)),Ts(e,t,n.separator,n))}(e,t,n):fs(e,t,n)}function fs(e,t,n){const r=(0,i.f)((0,s.m)(n.definition,n=>hs(e,t,n)),e=>void 0!==e);return 1===r.length?r[0]:0===r.length?void 0:function(e,t){const n=t.length;for(let r=0;r<n-1;r++){const n=t[r];let i;1===n.left.transitions.length&&(i=n.left.transitions[0]);const s=i instanceof ds,a=i,o=t[r+1].left;1===n.left.type&&1===n.right.type&&void 0!==i&&(s&&a.followState===n.right||i.target===n.right)?(s?a.followState=o:i.target=o,As(e,n.right)):Rs(n.right,o)}const r=t[0],i=t[n-1];return{left:r.left,right:i.right}}(e,r)}function ps(e,t,n,r,i){const s=r.left,a=r.right,o=$s(e,t,n,{type:11});gs(e,o);const l=$s(e,t,n,{type:12});return s.loopback=o,l.loopback=o,e.decisionMap[os(t,i?"RepetitionMandatoryWithSeparator":"RepetitionMandatory",n.idx)]=o,Rs(a,o),void 0===i?(Rs(o,s),Rs(o,l)):(Rs(o,l),Rs(o,i.left),Rs(i.right,s)),{left:s,right:l}}function ms(e,t,n,r,i){const s=r.left,a=r.right,o=$s(e,t,n,{type:10});gs(e,o);const l=$s(e,t,n,{type:12}),c=$s(e,t,n,{type:9});return o.loopback=c,l.loopback=c,Rs(o,s),Rs(o,l),Rs(a,c),void 0!==i?(Rs(c,l),Rs(c,i.left),Rs(i.right,s)):Rs(c,o),e.decisionMap[os(t,i?"RepetitionWithSeparator":"Repetition",n.idx)]=o,{left:o,right:l}}function gs(e,t){return e.decisionStates.push(t),t.decision=e.decisionStates.length-1,t.decision}function ys(e,t,n,r,...i){const s=$s(e,t,r,{type:8,start:n});n.end=s;for(const e of i)void 0!==e?(Rs(n,e.left),Rs(e.right,s)):Rs(n,s);const a={left:n,right:s};return e.decisionMap[os(t,function(e){if(e instanceof En)return"Alternation";if(e instanceof yn)return"Option";if(e instanceof Rn)return"Repetition";if(e instanceof $n)return"RepetitionWithSeparator";if(e instanceof Tn)return"RepetitionMandatory";if(e instanceof vn)return"RepetitionMandatoryWithSeparator";throw new Error("Invalid production type encountered")}(r),r.idx)]=n,a}function Ts(e,t,n,r){const i=$s(e,t,r,{type:1}),s=$s(e,t,r,{type:1});return Es(i,new cs(s,n)),{left:i,right:s}}function vs(e,t,n){const r=e.ruleToStartState.get(t);Rs(r,n.left);const i=e.ruleToStopState.get(t);return Rs(n.right,i),{left:r,right:i}}function Rs(e,t){Es(e,new us(t))}function $s(e,t,n,r){const i=Object.assign({atn:e,production:n,epsilonOnlyTransitions:!1,rule:t,transitions:[],nextTokenWithinRule:[],stateNumber:e.states.length},r);return e.states.push(i),i}function Es(e,t){0===e.transitions.length&&(e.epsilonOnlyTransitions=t.isEpsilon()),e.transitions.push(t)}function As(e,t){e.states.splice(e.states.indexOf(t),1)}const ks={};class xs{constructor(){this.map={},this.configs=[]}get size(){return this.configs.length}finalize(){this.map={}}add(e){const t=Is(e);t in this.map||(this.map[t]=this.configs.length,this.configs.push(e))}get elements(){return this.configs}get alts(){return(0,s.m)(this.configs,e=>e.alt)}get key(){let e="";for(const t in this.map)e+=t+":";return e}}function Is(e,t=!0){return`${t?`a${e.alt}`:""}s${e.state.stateNumber}:${e.stack.map(e=>e.stateNumber.toString()).join("_")}`}function Ss(e,t){const n={};return r=>{const i=r.toString();let s=n[i];return void 0!==s||(s={atnStartState:e,decision:t,states:{}},n[i]=s),s}}class Cs{constructor(){this.predicates=[]}is(e){return e>=this.predicates.length||this.predicates[e]}set(e,t){this.predicates[e]=t}toString(){let e="";const t=this.predicates.length;for(let n=0;n<t;n++)e+=!0===this.predicates[n]?"1":"0";return e}}const Ns=new Cs;class ws extends Di{constructor(e){var t;super(),this.logging=null!==(t=null==e?void 0:e.logging)&&void 0!==t?t:e=>console.log(e)}initialize(e){this.atn=function(e){const t={decisionMap:{},decisionStates:[],ruleToStartState:new Map,ruleToStopState:new Map,states:[]};!function(e,t){const n=t.length;for(let r=0;r<n;r++){const n=t[r],i=$s(e,n,void 0,{type:2}),s=$s(e,n,void 0,{type:7});i.stop=s,e.ruleToStartState.set(n,i),e.ruleToStopState.set(n,s)}}(t,e);const n=e.length;for(let r=0;r<n;r++){const n=e[r],i=fs(t,n,n);void 0!==i&&vs(t,n,i)}return t}(e.rules),this.dfas=function(e){const t=e.decisionStates.length,n=Array(t);for(let r=0;r<t;r++)n[r]=Ss(e.decisionStates[r],r);return n}(this.atn)}validateAmbiguousAlternationAlternatives(){return[]}validateEmptyOrAlternatives(){return[]}buildLookaheadForAlternation(e){const{prodOccurrence:t,rule:n,hasPredicates:r,dynamicTokensEnabled:a}=e,o=this.dfas,l=this.logging,c=os(n,"Alternation",t),u=this.atn.decisionMap[c].decision,d=(0,s.m)(Zr({maxLookahead:1,occurrence:t,prodType:"Alternation",rule:n}),e=>(0,s.m)(e,e=>e[0]));if(Ls(d,!1)&&!a){const e=(0,i.r)(d,(e,t,n)=>((0,i.d)(t,t=>{t&&(e[t.tokenTypeIdx]=n,(0,i.d)(t.categoryMatches,t=>{e[t]=n}))}),e),{});return r?function(t){var n;const r=this.LA(1),i=e[r.tokenTypeIdx];if(void 0!==t&&void 0!==i){const e=null===(n=t[i])||void 0===n?void 0:n.GATE;if(void 0!==e&&!1===e.call(this))return}return i}:function(){const t=this.LA(1);return e[t.tokenTypeIdx]}}return r?function(e){const t=new Cs,n=void 0===e?0:e.length;for(let r=0;r<n;r++){const n=null==e?void 0:e[r].GATE;t.set(r,void 0===n||n.call(this))}const r=bs.call(this,o,u,t,l);return"number"==typeof r?r:void 0}:function(){const e=bs.call(this,o,u,Ns,l);return"number"==typeof e?e:void 0}}buildLookaheadForOptional(e){const{prodOccurrence:t,rule:n,prodType:a,dynamicTokensEnabled:o}=e,l=this.dfas,c=this.logging,u=os(n,a,t),d=this.atn.decisionMap[u].decision,h=(0,s.m)(Zr({maxLookahead:1,occurrence:t,prodType:a,rule:n}),e=>(0,s.m)(e,e=>e[0]));if(Ls(h)&&h[0][0]&&!o){const e=h[0],t=(0,s.f)(e);if(1===t.length&&(0,r.av)(t[0].categoryMatches)){const e=t[0].tokenTypeIdx;return function(){return this.LA(1).tokenTypeIdx===e}}{const e=(0,i.r)(t,(e,t)=>(void 0!==t&&(e[t.tokenTypeIdx]=!0,(0,i.d)(t.categoryMatches,t=>{e[t]=!0})),e),{});return function(){const t=this.LA(1);return!0===e[t.tokenTypeIdx]}}}return function(){const e=bs.call(this,l,d,Ns,c);return"object"!=typeof e&&0===e}}}function Ls(e,t=!0){const n=new Set;for(const r of e){const e=new Set;for(const i of r){if(void 0===i){if(t)break;return!1}const r=[i.tokenTypeIdx].concat(i.categoryMatches);for(const t of r)if(n.has(t)){if(!e.has(t))return!1}else n.add(t),e.add(t)}}return!0}function bs(e,t,n,r){const i=e[t](n);let s=i.start;if(void 0===s){const e=function(e){const t=new xs,n=e.transitions.length;for(let r=0;r<n;r++)Ks({state:e.transitions[r].target,alt:r,stack:[]},t);return t}(i.atnStartState);s=Bs(i,Fs(e)),i.start=s}return Os.apply(this,[i,s,n,r])}function Os(e,t,n,r){let i=t,s=1;const a=[];let o=this.LA(s++);for(;;){let t=Ds(i,o);if(void 0===t&&(t=_s.apply(this,[e,i,o,s,n,r])),t===ks)return Ms(a,i,o);if(!0===t.isAcceptState)return t.prediction;i=t,a.push(o),o=this.LA(s++)}}function _s(e,t,n,r,i,a){const o=function(e,t,n){const r=new xs,i=[];for(const s of e.elements){if(!1===n.is(s.alt))continue;if(7===s.state.type){i.push(s);continue}const e=s.state.transitions.length;for(let n=0;n<e;n++){const e=Us(s.state.transitions[n],t);void 0!==e&&r.add({state:e,alt:s.alt,stack:s.stack})}}let s;if(0===i.length&&1===r.size&&(s=r),void 0===s){s=new xs;for(const e of r.elements)Ks(e,s)}if(i.length>0&&!function(e){for(const t of e.elements)if(7===t.state.type)return!0;return!1}(s))for(const e of i)s.add(e);return s}(t.configs,n,i);if(0===o.size)return Gs(e,t,n,ks),ks;let l=Fs(o);const c=function(e,t){let n;for(const r of e.elements)if(!0===t.is(r.alt))if(void 0===n)n=r.alt;else if(n!==r.alt)return;return n}(o,i);if(void 0!==c)l.isAcceptState=!0,l.prediction=c,l.configs.uniqueAlt=c;else if(function(e){if(function(e){for(const t of e.elements)if(7!==t.state.type)return!1;return!0}(e))return!0;const t=function(e){const t=new Map;for(const n of e){const e=Is(n,!1);let r=t.get(e);void 0===r&&(r={},t.set(e,r)),r[n.alt]=!0}return t}(e.elements);return function(e){for(const t of Array.from(e.values()))if(Object.keys(t).length>1)return!0;return!1}(t)&&!function(e){for(const t of Array.from(e.values()))if(1===Object.keys(t).length)return!0;return!1}(t)}(o)){const t=(0,s.e)(o.alts);l.isAcceptState=!0,l.prediction=t,l.configs.uniqueAlt=t,Ps.apply(this,[e,r,o.alts,a])}return l=Gs(e,t,n,l),l}function Ps(e,t,n,r){const i=[];for(let e=1;e<=t;e++)i.push(this.LA(e).tokenType);const a=e.atnStartState,o=function(e){const t=(0,s.m)(e.prefixPath,e=>Er(e)).join(", "),n=0===e.production.idx?"":e.production.idx;let r=`Ambiguous Alternatives Detected: <${e.ambiguityIndices.join(", ")}> in <${function(e){if(e instanceof pn)return"SUBRULE";if(e instanceof yn)return"OPTION";if(e instanceof En)return"OR";if(e instanceof Tn)return"AT_LEAST_ONE";if(e instanceof vn)return"AT_LEAST_ONE_SEP";if(e instanceof $n)return"MANY_SEP";if(e instanceof Rn)return"MANY";if(e instanceof An)return"CONSUME";throw Error("non exhaustive match")}(e.production)}${n}> inside <${e.topLevelRule.name}> Rule,\n<${t}> may appears as a prefix path in all these alternatives.\n`;return r+="See: https://chevrotain.io/docs/guide/resolving_grammar_errors.html#AMBIGUOUS_ALTERNATIVES\nFor Further details.",r}({topLevelRule:a.rule,ambiguityIndices:n,production:a.production,prefixPath:i});r(o)}function Ms(e,t,n){const r=function(e){return e&&e.length?(0,i.a)(e,(0,i.l)(e=>e.tokenTypeIdx)):[]}(I(t.configs.elements,e=>e.state.transitions).filter(e=>e instanceof cs).map(e=>e.tokenType));return{actualToken:n,possibleTokenTypes:r,tokenPath:e}}function Ds(e,t){return e.edges[t.tokenTypeIdx]}function Us(e,t){if(e instanceof cs&&Pr(t,e.tokenType))return e.target}function Fs(e){return{configs:e,edges:{},isAcceptState:!1,prediction:-1}}function Gs(e,t,n,r){return r=Bs(e,r),t.edges[n.tokenTypeIdx]=r,r}function Bs(e,t){if(t===ks)return t;const n=t.configs.key,r=e.states[n];return void 0!==r?r:(t.configs.finalize(),e.states[n]=t,t)}function Ks(e,t){const n=e.state;if(7===n.type){if(e.stack.length>0){const n=[...e.stack];Ks({state:n.pop(),alt:e.alt,stack:n},t)}else t.add(e);return}n.epsilonOnlyTransitions||t.add(e);const r=n.transitions.length;for(let i=0;i<r;i++){const r=Vs(e,n.transitions[i]);void 0!==r&&Ks(r,t)}}function Vs(e,t){if(t instanceof us)return{state:t.target,alt:e.alt,stack:e.stack};if(t instanceof ds){const n=[...e.stack,t.followState];return{state:t.target,alt:e.alt,stack:n}}}var js,Hs,Ws,zs,Ys,qs,Xs,Qs,Zs,Js,ea,ta,na,ra,ia,sa,aa,oa,la,ca,ua,da,ha,fa,pa,ma,ga,ya,Ta,va,Ra,$a,Ea,Aa,ka,xa,Ia,Sa,Ca,Na,wa,La,ba,Oa,_a,Pa,Ma,Da,Ua,Fa,Ga,Ba,Ka,Va,ja,Ha,Wa,za,Ya,qa,Xa,Qa,Za,Ja,eo,to,no,ro,io,so,ao,oo,lo,co,uo,ho,fo,po,mo;!function(e){e.is=function(e){return"string"==typeof e}}(js||(js={})),function(e){e.is=function(e){return"string"==typeof e}}(Hs||(Hs={})),function(e){e.MIN_VALUE=-2147483648,e.MAX_VALUE=2147483647,e.is=function(t){return"number"==typeof t&&e.MIN_VALUE<=t&&t<=e.MAX_VALUE}}(Ws||(Ws={})),function(e){e.MIN_VALUE=0,e.MAX_VALUE=2147483647,e.is=function(t){return"number"==typeof t&&e.MIN_VALUE<=t&&t<=e.MAX_VALUE}}(zs||(zs={})),function(e){e.create=function(e,t){return e===Number.MAX_VALUE&&(e=zs.MAX_VALUE),t===Number.MAX_VALUE&&(t=zs.MAX_VALUE),{line:e,character:t}},e.is=function(e){let t=e;return yo.objectLiteral(t)&&yo.uinteger(t.line)&&yo.uinteger(t.character)}}(Ys||(Ys={})),function(e){e.create=function(e,t,n,r){if(yo.uinteger(e)&&yo.uinteger(t)&&yo.uinteger(n)&&yo.uinteger(r))return{start:Ys.create(e,t),end:Ys.create(n,r)};if(Ys.is(e)&&Ys.is(t))return{start:e,end:t};throw new Error(`Range#create called with invalid arguments[${e}, ${t}, ${n}, ${r}]`)},e.is=function(e){let t=e;return yo.objectLiteral(t)&&Ys.is(t.start)&&Ys.is(t.end)}}(qs||(qs={})),function(e){e.create=function(e,t){return{uri:e,range:t}},e.is=function(e){let t=e;return yo.objectLiteral(t)&&qs.is(t.range)&&(yo.string(t.uri)||yo.undefined(t.uri))}}(Xs||(Xs={})),function(e){e.create=function(e,t,n,r){return{targetUri:e,targetRange:t,targetSelectionRange:n,originSelectionRange:r}},e.is=function(e){let t=e;return yo.objectLiteral(t)&&qs.is(t.targetRange)&&yo.string(t.targetUri)&&qs.is(t.targetSelectionRange)&&(qs.is(t.originSelectionRange)||yo.undefined(t.originSelectionRange))}}(Qs||(Qs={})),function(e){e.create=function(e,t,n,r){return{red:e,green:t,blue:n,alpha:r}},e.is=function(e){const t=e;return yo.objectLiteral(t)&&yo.numberRange(t.red,0,1)&&yo.numberRange(t.green,0,1)&&yo.numberRange(t.blue,0,1)&&yo.numberRange(t.alpha,0,1)}}(Zs||(Zs={})),function(e){e.create=function(e,t){return{range:e,color:t}},e.is=function(e){const t=e;return yo.objectLiteral(t)&&qs.is(t.range)&&Zs.is(t.color)}}(Js||(Js={})),function(e){e.create=function(e,t,n){return{label:e,textEdit:t,additionalTextEdits:n}},e.is=function(e){const t=e;return yo.objectLiteral(t)&&yo.string(t.label)&&(yo.undefined(t.textEdit)||ca.is(t))&&(yo.undefined(t.additionalTextEdits)||yo.typedArray(t.additionalTextEdits,ca.is))}}(ea||(ea={})),function(e){e.Comment="comment",e.Imports="imports",e.Region="region"}(ta||(ta={})),function(e){e.create=function(e,t,n,r,i,s){const a={startLine:e,endLine:t};return yo.defined(n)&&(a.startCharacter=n),yo.defined(r)&&(a.endCharacter=r),yo.defined(i)&&(a.kind=i),yo.defined(s)&&(a.collapsedText=s),a},e.is=function(e){const t=e;return yo.objectLiteral(t)&&yo.uinteger(t.startLine)&&yo.uinteger(t.startLine)&&(yo.undefined(t.startCharacter)||yo.uinteger(t.startCharacter))&&(yo.undefined(t.endCharacter)||yo.uinteger(t.endCharacter))&&(yo.undefined(t.kind)||yo.string(t.kind))}}(na||(na={})),function(e){e.create=function(e,t){return{location:e,message:t}},e.is=function(e){let t=e;return yo.defined(t)&&Xs.is(t.location)&&yo.string(t.message)}}(ra||(ra={})),function(e){e.Error=1,e.Warning=2,e.Information=3,e.Hint=4}(ia||(ia={})),function(e){e.Unnecessary=1,e.Deprecated=2}(sa||(sa={})),function(e){e.is=function(e){const t=e;return yo.objectLiteral(t)&&yo.string(t.href)}}(aa||(aa={})),function(e){e.create=function(e,t,n,r,i,s){let a={range:e,message:t};return yo.defined(n)&&(a.severity=n),yo.defined(r)&&(a.code=r),yo.defined(i)&&(a.source=i),yo.defined(s)&&(a.relatedInformation=s),a},e.is=function(e){var t;let n=e;return yo.defined(n)&&qs.is(n.range)&&yo.string(n.message)&&(yo.number(n.severity)||yo.undefined(n.severity))&&(yo.integer(n.code)||yo.string(n.code)||yo.undefined(n.code))&&(yo.undefined(n.codeDescription)||yo.string(null===(t=n.codeDescription)||void 0===t?void 0:t.href))&&(yo.string(n.source)||yo.undefined(n.source))&&(yo.undefined(n.relatedInformation)||yo.typedArray(n.relatedInformation,ra.is))}}(oa||(oa={})),function(e){e.create=function(e,t,...n){let r={title:e,command:t};return yo.defined(n)&&n.length>0&&(r.arguments=n),r},e.is=function(e){let t=e;return yo.defined(t)&&yo.string(t.title)&&yo.string(t.command)}}(la||(la={})),function(e){e.replace=function(e,t){return{range:e,newText:t}},e.insert=function(e,t){return{range:{start:e,end:e},newText:t}},e.del=function(e){return{range:e,newText:""}},e.is=function(e){const t=e;return yo.objectLiteral(t)&&yo.string(t.newText)&&qs.is(t.range)}}(ca||(ca={})),function(e){e.create=function(e,t,n){const r={label:e};return void 0!==t&&(r.needsConfirmation=t),void 0!==n&&(r.description=n),r},e.is=function(e){const t=e;return yo.objectLiteral(t)&&yo.string(t.label)&&(yo.boolean(t.needsConfirmation)||void 0===t.needsConfirmation)&&(yo.string(t.description)||void 0===t.description)}}(ua||(ua={})),function(e){e.is=function(e){const t=e;return yo.string(t)}}(da||(da={})),function(e){e.replace=function(e,t,n){return{range:e,newText:t,annotationId:n}},e.insert=function(e,t,n){return{range:{start:e,end:e},newText:t,annotationId:n}},e.del=function(e,t){return{range:e,newText:"",annotationId:t}},e.is=function(e){const t=e;return ca.is(t)&&(ua.is(t.annotationId)||da.is(t.annotationId))}}(ha||(ha={})),function(e){e.create=function(e,t){return{textDocument:e,edits:t}},e.is=function(e){let t=e;return yo.defined(t)&&Ra.is(t.textDocument)&&Array.isArray(t.edits)}}(fa||(fa={})),function(e){e.create=function(e,t,n){let r={kind:"create",uri:e};return void 0!==t&&(void 0!==t.overwrite||void 0!==t.ignoreIfExists)&&(r.options=t),void 0!==n&&(r.annotationId=n),r},e.is=function(e){let t=e;return t&&"create"===t.kind&&yo.string(t.uri)&&(void 0===t.options||(void 0===t.options.overwrite||yo.boolean(t.options.overwrite))&&(void 0===t.options.ignoreIfExists||yo.boolean(t.options.ignoreIfExists)))&&(void 0===t.annotationId||da.is(t.annotationId))}}(pa||(pa={})),function(e){e.create=function(e,t,n,r){let i={kind:"rename",oldUri:e,newUri:t};return void 0!==n&&(void 0!==n.overwrite||void 0!==n.ignoreIfExists)&&(i.options=n),void 0!==r&&(i.annotationId=r),i},e.is=function(e){let t=e;return t&&"rename"===t.kind&&yo.string(t.oldUri)&&yo.string(t.newUri)&&(void 0===t.options||(void 0===t.options.overwrite||yo.boolean(t.options.overwrite))&&(void 0===t.options.ignoreIfExists||yo.boolean(t.options.ignoreIfExists)))&&(void 0===t.annotationId||da.is(t.annotationId))}}(ma||(ma={})),function(e){e.create=function(e,t,n){let r={kind:"delete",uri:e};return void 0!==t&&(void 0!==t.recursive||void 0!==t.ignoreIfNotExists)&&(r.options=t),void 0!==n&&(r.annotationId=n),r},e.is=function(e){let t=e;return t&&"delete"===t.kind&&yo.string(t.uri)&&(void 0===t.options||(void 0===t.options.recursive||yo.boolean(t.options.recursive))&&(void 0===t.options.ignoreIfNotExists||yo.boolean(t.options.ignoreIfNotExists)))&&(void 0===t.annotationId||da.is(t.annotationId))}}(ga||(ga={})),function(e){e.is=function(e){let t=e;return t&&(void 0!==t.changes||void 0!==t.documentChanges)&&(void 0===t.documentChanges||t.documentChanges.every(e=>yo.string(e.kind)?pa.is(e)||ma.is(e)||ga.is(e):fa.is(e)))}}(ya||(ya={})),function(e){e.create=function(e){return{uri:e}},e.is=function(e){let t=e;return yo.defined(t)&&yo.string(t.uri)}}(Ta||(Ta={})),function(e){e.create=function(e,t){return{uri:e,version:t}},e.is=function(e){let t=e;return yo.defined(t)&&yo.string(t.uri)&&yo.integer(t.version)}}(va||(va={})),function(e){e.create=function(e,t){return{uri:e,version:t}},e.is=function(e){let t=e;return yo.defined(t)&&yo.string(t.uri)&&(null===t.version||yo.integer(t.version))}}(Ra||(Ra={})),function(e){e.create=function(e,t,n,r){return{uri:e,languageId:t,version:n,text:r}},e.is=function(e){let t=e;return yo.defined(t)&&yo.string(t.uri)&&yo.string(t.languageId)&&yo.integer(t.version)&&yo.string(t.text)}}($a||($a={})),function(e){e.PlainText="plaintext",e.Markdown="markdown",e.is=function(t){const n=t;return n===e.PlainText||n===e.Markdown}}(Ea||(Ea={})),function(e){e.is=function(e){const t=e;return yo.objectLiteral(e)&&Ea.is(t.kind)&&yo.string(t.value)}}(Aa||(Aa={})),function(e){e.Text=1,e.Method=2,e.Function=3,e.Constructor=4,e.Field=5,e.Variable=6,e.Class=7,e.Interface=8,e.Module=9,e.Property=10,e.Unit=11,e.Value=12,e.Enum=13,e.Keyword=14,e.Snippet=15,e.Color=16,e.File=17,e.Reference=18,e.Folder=19,e.EnumMember=20,e.Constant=21,e.Struct=22,e.Event=23,e.Operator=24,e.TypeParameter=25}(ka||(ka={})),function(e){e.PlainText=1,e.Snippet=2}(xa||(xa={})),function(e){e.Deprecated=1}(Ia||(Ia={})),function(e){e.create=function(e,t,n){return{newText:e,insert:t,replace:n}},e.is=function(e){const t=e;return t&&yo.string(t.newText)&&qs.is(t.insert)&&qs.is(t.replace)}}(Sa||(Sa={})),function(e){e.asIs=1,e.adjustIndentation=2}(Ca||(Ca={})),function(e){e.is=function(e){const t=e;return t&&(yo.string(t.detail)||void 0===t.detail)&&(yo.string(t.description)||void 0===t.description)}}(Na||(Na={})),function(e){e.create=function(e){return{label:e}}}(wa||(wa={})),function(e){e.create=function(e,t){return{items:e||[],isIncomplete:!!t}}}(La||(La={})),function(e){e.fromPlainText=function(e){return e.replace(/[\\`*_{}[\]()#+\-.!]/g,"\\$&")},e.is=function(e){const t=e;return yo.string(t)||yo.objectLiteral(t)&&yo.string(t.language)&&yo.string(t.value)}}(ba||(ba={})),function(e){e.is=function(e){let t=e;return!!t&&yo.objectLiteral(t)&&(Aa.is(t.contents)||ba.is(t.contents)||yo.typedArray(t.contents,ba.is))&&(void 0===e.range||qs.is(e.range))}}(Oa||(Oa={})),function(e){e.create=function(e,t){return t?{label:e,documentation:t}:{label:e}}}(_a||(_a={})),function(e){e.create=function(e,t,...n){let r={label:e};return yo.defined(t)&&(r.documentation=t),yo.defined(n)?r.parameters=n:r.parameters=[],r}}(Pa||(Pa={})),function(e){e.Text=1,e.Read=2,e.Write=3}(Ma||(Ma={})),function(e){e.create=function(e,t){let n={range:e};return yo.number(t)&&(n.kind=t),n}}(Da||(Da={})),function(e){e.File=1,e.Module=2,e.Namespace=3,e.Package=4,e.Class=5,e.Method=6,e.Property=7,e.Field=8,e.Constructor=9,e.Enum=10,e.Interface=11,e.Function=12,e.Variable=13,e.Constant=14,e.String=15,e.Number=16,e.Boolean=17,e.Array=18,e.Object=19,e.Key=20,e.Null=21,e.EnumMember=22,e.Struct=23,e.Event=24,e.Operator=25,e.TypeParameter=26}(Ua||(Ua={})),function(e){e.Deprecated=1}(Fa||(Fa={})),function(e){e.create=function(e,t,n,r,i){let s={name:e,kind:t,location:{uri:r,range:n}};return i&&(s.containerName=i),s}}(Ga||(Ga={})),function(e){e.create=function(e,t,n,r){return void 0!==r?{name:e,kind:t,location:{uri:n,range:r}}:{name:e,kind:t,location:{uri:n}}}}(Ba||(Ba={})),function(e){e.create=function(e,t,n,r,i,s){let a={name:e,detail:t,kind:n,range:r,selectionRange:i};return void 0!==s&&(a.children=s),a},e.is=function(e){let t=e;return t&&yo.string(t.name)&&yo.number(t.kind)&&qs.is(t.range)&&qs.is(t.selectionRange)&&(void 0===t.detail||yo.string(t.detail))&&(void 0===t.deprecated||yo.boolean(t.deprecated))&&(void 0===t.children||Array.isArray(t.children))&&(void 0===t.tags||Array.isArray(t.tags))}}(Ka||(Ka={})),function(e){e.Empty="",e.QuickFix="quickfix",e.Refactor="refactor",e.RefactorExtract="refactor.extract",e.RefactorInline="refactor.inline",e.RefactorRewrite="refactor.rewrite",e.Source="source",e.SourceOrganizeImports="source.organizeImports",e.SourceFixAll="source.fixAll"}(Va||(Va={})),function(e){e.Invoked=1,e.Automatic=2}(ja||(ja={})),function(e){e.create=function(e,t,n){let r={diagnostics:e};return null!=t&&(r.only=t),null!=n&&(r.triggerKind=n),r},e.is=function(e){let t=e;return yo.defined(t)&&yo.typedArray(t.diagnostics,oa.is)&&(void 0===t.only||yo.typedArray(t.only,yo.string))&&(void 0===t.triggerKind||t.triggerKind===ja.Invoked||t.triggerKind===ja.Automatic)}}(Ha||(Ha={})),function(e){e.create=function(e,t,n){let r={title:e},i=!0;return"string"==typeof t?(i=!1,r.kind=t):la.is(t)?r.command=t:r.edit=t,i&&void 0!==n&&(r.kind=n),r},e.is=function(e){let t=e;return t&&yo.string(t.title)&&(void 0===t.diagnostics||yo.typedArray(t.diagnostics,oa.is))&&(void 0===t.kind||yo.string(t.kind))&&(void 0!==t.edit||void 0!==t.command)&&(void 0===t.command||la.is(t.command))&&(void 0===t.isPreferred||yo.boolean(t.isPreferred))&&(void 0===t.edit||ya.is(t.edit))}}(Wa||(Wa={})),function(e){e.create=function(e,t){let n={range:e};return yo.defined(t)&&(n.data=t),n},e.is=function(e){let t=e;return yo.defined(t)&&qs.is(t.range)&&(yo.undefined(t.command)||la.is(t.command))}}(za||(za={})),function(e){e.create=function(e,t){return{tabSize:e,insertSpaces:t}},e.is=function(e){let t=e;return yo.defined(t)&&yo.uinteger(t.tabSize)&&yo.boolean(t.insertSpaces)}}(Ya||(Ya={})),function(e){e.create=function(e,t,n){return{range:e,target:t,data:n}},e.is=function(e){let t=e;return yo.defined(t)&&qs.is(t.range)&&(yo.undefined(t.target)||yo.string(t.target))}}(qa||(qa={})),function(e){e.create=function(e,t){return{range:e,parent:t}},e.is=function(t){let n=t;return yo.objectLiteral(n)&&qs.is(n.range)&&(void 0===n.parent||e.is(n.parent))}}(Xa||(Xa={})),function(e){e.namespace="namespace",e.type="type",e.class="class",e.enum="enum",e.interface="interface",e.struct="struct",e.typeParameter="typeParameter",e.parameter="parameter",e.variable="variable",e.property="property",e.enumMember="enumMember",e.event="event",e.function="function",e.method="method",e.macro="macro",e.keyword="keyword",e.modifier="modifier",e.comment="comment",e.string="string",e.number="number",e.regexp="regexp",e.operator="operator",e.decorator="decorator"}(Qa||(Qa={})),function(e){e.declaration="declaration",e.definition="definition",e.readonly="readonly",e.static="static",e.deprecated="deprecated",e.abstract="abstract",e.async="async",e.modification="modification",e.documentation="documentation",e.defaultLibrary="defaultLibrary"}(Za||(Za={})),function(e){e.is=function(e){const t=e;return yo.objectLiteral(t)&&(void 0===t.resultId||"string"==typeof t.resultId)&&Array.isArray(t.data)&&(0===t.data.length||"number"==typeof t.data[0])}}(Ja||(Ja={})),function(e){e.create=function(e,t){return{range:e,text:t}},e.is=function(e){const t=e;return null!=t&&qs.is(t.range)&&yo.string(t.text)}}(eo||(eo={})),function(e){e.create=function(e,t,n){return{range:e,variableName:t,caseSensitiveLookup:n}},e.is=function(e){const t=e;return null!=t&&qs.is(t.range)&&yo.boolean(t.caseSensitiveLookup)&&(yo.string(t.variableName)||void 0===t.variableName)}}(to||(to={})),function(e){e.create=function(e,t){return{range:e,expression:t}},e.is=function(e){const t=e;return null!=t&&qs.is(t.range)&&(yo.string(t.expression)||void 0===t.expression)}}(no||(no={})),function(e){e.create=function(e,t){return{frameId:e,stoppedLocation:t}},e.is=function(e){const t=e;return yo.defined(t)&&qs.is(e.stoppedLocation)}}(ro||(ro={})),function(e){e.Type=1,e.Parameter=2,e.is=function(e){return 1===e||2===e}}(io||(io={})),function(e){e.create=function(e){return{value:e}},e.is=function(e){const t=e;return yo.objectLiteral(t)&&(void 0===t.tooltip||yo.string(t.tooltip)||Aa.is(t.tooltip))&&(void 0===t.location||Xs.is(t.location))&&(void 0===t.command||la.is(t.command))}}(so||(so={})),function(e){e.create=function(e,t,n){const r={position:e,label:t};return void 0!==n&&(r.kind=n),r},e.is=function(e){const t=e;return yo.objectLiteral(t)&&Ys.is(t.position)&&(yo.string(t.label)||yo.typedArray(t.label,so.is))&&(void 0===t.kind||io.is(t.kind))&&void 0===t.textEdits||yo.typedArray(t.textEdits,ca.is)&&(void 0===t.tooltip||yo.string(t.tooltip)||Aa.is(t.tooltip))&&(void 0===t.paddingLeft||yo.boolean(t.paddingLeft))&&(void 0===t.paddingRight||yo.boolean(t.paddingRight))}}(ao||(ao={})),function(e){e.createSnippet=function(e){return{kind:"snippet",value:e}}}(oo||(oo={})),function(e){e.create=function(e,t,n,r){return{insertText:e,filterText:t,range:n,command:r}}}(lo||(lo={})),function(e){e.create=function(e){return{items:e}}}(co||(co={})),function(e){e.Invoked=0,e.Automatic=1}(uo||(uo={})),function(e){e.create=function(e,t){return{range:e,text:t}}}(ho||(ho={})),function(e){e.create=function(e,t){return{triggerKind:e,selectedCompletionInfo:t}}}(fo||(fo={})),function(e){e.is=function(e){const t=e;return yo.objectLiteral(t)&&Hs.is(t.uri)&&yo.string(t.name)}}(po||(po={})),function(e){function t(e,n){if(e.length<=1)return e;const r=e.length/2|0,i=e.slice(0,r),s=e.slice(r);t(i,n),t(s,n);let a=0,o=0,l=0;for(;a<i.length&&o<s.length;)n(i[a],s[o])<=0?e[l++]=i[a++]:e[l++]=s[o++];for(;a<i.length;)e[l++]=i[a++];for(;o<s.length;)e[l++]=s[o++];return e}e.create=function(e,t,n,r){return new go(e,t,n,r)},e.is=function(e){let t=e;return!!(yo.defined(t)&&yo.string(t.uri)&&(yo.undefined(t.languageId)||yo.string(t.languageId))&&yo.uinteger(t.lineCount)&&yo.func(t.getText)&&yo.func(t.positionAt)&&yo.func(t.offsetAt))},e.applyEdits=function(e,n){let r=e.getText(),i=t(n,(e,t)=>{let n=e.range.start.line-t.range.start.line;return 0===n?e.range.start.character-t.range.start.character:n}),s=r.length;for(let t=i.length-1;t>=0;t--){let n=i[t],a=e.offsetAt(n.range.start),o=e.offsetAt(n.range.end);if(!(o<=s))throw new Error("Overlapping edit");r=r.substring(0,a)+n.newText+r.substring(o,r.length),s=a}return r}}(mo||(mo={}));let go=class{constructor(e,t,n,r){this._uri=e,this._languageId=t,this._version=n,this._content=r,this._lineOffsets=void 0}get uri(){return this._uri}get languageId(){return this._languageId}get version(){return this._version}getText(e){if(e){let t=this.offsetAt(e.start),n=this.offsetAt(e.end);return this._content.substring(t,n)}return this._content}update(e,t){this._content=e.text,this._version=t,this._lineOffsets=void 0}getLineOffsets(){if(void 0===this._lineOffsets){let e=[],t=this._content,n=!0;for(let r=0;r<t.length;r++){n&&(e.push(r),n=!1);let i=t.charAt(r);n="\r"===i||"\n"===i,"\r"===i&&r+1<t.length&&"\n"===t.charAt(r+1)&&r++}n&&t.length>0&&e.push(t.length),this._lineOffsets=e}return this._lineOffsets}positionAt(e){e=Math.max(Math.min(e,this._content.length),0);let t=this.getLineOffsets(),n=0,r=t.length;if(0===r)return Ys.create(0,e);for(;n<r;){let i=Math.floor((n+r)/2);t[i]>e?r=i:n=i+1}let i=n-1;return Ys.create(i,e-t[i])}offsetAt(e){let t=this.getLineOffsets();if(e.line>=t.length)return this._content.length;if(e.line<0)return 0;let n=t[e.line],r=e.line+1<t.length?t[e.line+1]:this._content.length;return Math.max(Math.min(n+e.character,r),n)}get lineCount(){return this.getLineOffsets().length}};var yo;!function(e){const t=Object.prototype.toString;e.defined=function(e){return typeof e<"u"},e.undefined=function(e){return typeof e>"u"},e.boolean=function(e){return!0===e||!1===e},e.string=function(e){return"[object String]"===t.call(e)},e.number=function(e){return"[object Number]"===t.call(e)},e.numberRange=function(e,n,r){return"[object Number]"===t.call(e)&&n<=e&&e<=r},e.integer=function(e){return"[object Number]"===t.call(e)&&-2147483648<=e&&e<=2147483647},e.uinteger=function(e){return"[object Number]"===t.call(e)&&0<=e&&e<=2147483647},e.func=function(e){return"[object Function]"===t.call(e)},e.objectLiteral=function(e){return null!==e&&"object"==typeof e},e.typedArray=function(e,t){return Array.isArray(e)&&e.every(t)}}(yo||(yo={}));class To{constructor(){this.nodeStack=[]}get current(){var e;return null!==(e=this.nodeStack[this.nodeStack.length-1])&&void 0!==e?e:this.rootNode}buildRootNode(e){return this.rootNode=new Ao(e),this.rootNode.root=this.rootNode,this.nodeStack=[this.rootNode],this.rootNode}buildCompositeNode(e){const t=new $o;return t.grammarSource=e,t.root=this.rootNode,this.current.content.push(t),this.nodeStack.push(t),t}buildLeafNode(e,t){const n=new Ro(e.startOffset,e.image.length,te(e),e.tokenType,!t);return n.grammarSource=t,n.root=this.rootNode,this.current.content.push(n),n}removeNode(e){const t=e.container;if(t){const n=t.content.indexOf(e);n>=0&&t.content.splice(n,1)}}addHiddenNodes(e){const t=[];for(const n of e){const e=new Ro(n.startOffset,n.image.length,te(n),n.tokenType,!0);e.root=this.rootNode,t.push(e)}let n=this.current,r=!1;if(n.content.length>0)n.content.push(...t);else{for(;n.container;){const e=n.container.content.indexOf(n);if(e>0){n.container.content.splice(e,0,...t),r=!0;break}n=n.container}r||this.rootNode.content.unshift(...t)}}construct(e){const t=this.current;"string"==typeof e.$type&&(this.current.astNode=e),e.$cstNode=t;const n=this.nodeStack.pop();0===(null==n?void 0:n.content.length)&&this.removeNode(n)}}class vo{get parent(){return this.container}get feature(){return this.grammarSource}get hidden(){return!1}get astNode(){var e,t;const n="string"==typeof(null===(e=this._astNode)||void 0===e?void 0:e.$type)?this._astNode:null===(t=this.container)||void 0===t?void 0:t.astNode;if(!n)throw new Error("This node has no associated AST element");return n}set astNode(e){this._astNode=e}get element(){return this.astNode}get text(){return this.root.fullText.substring(this.offset,this.end)}}class Ro extends vo{get offset(){return this._offset}get length(){return this._length}get end(){return this._offset+this._length}get hidden(){return this._hidden}get tokenType(){return this._tokenType}get range(){return this._range}constructor(e,t,n,r,i=!1){super(),this._hidden=i,this._offset=e,this._tokenType=r,this._length=t,this._range=n}}class $o extends vo{constructor(){super(...arguments),this.content=new Eo(this)}get children(){return this.content}get offset(){var e,t;return null!==(t=null===(e=this.firstNonHiddenNode)||void 0===e?void 0:e.offset)&&void 0!==t?t:0}get length(){return this.end-this.offset}get end(){var e,t;return null!==(t=null===(e=this.lastNonHiddenNode)||void 0===e?void 0:e.end)&&void 0!==t?t:0}get range(){const e=this.firstNonHiddenNode,t=this.lastNonHiddenNode;if(e&&t){if(void 0===this._rangeCache){const{range:n}=e,{range:r}=t;this._rangeCache={start:n.start,end:r.end.line<n.start.line?n.start:r.end}}return this._rangeCache}return{start:Ys.create(0,0),end:Ys.create(0,0)}}get firstNonHiddenNode(){for(const e of this.content)if(!e.hidden)return e;return this.content[0]}get lastNonHiddenNode(){for(let e=this.content.length-1;e>=0;e--){const t=this.content[e];if(!t.hidden)return t}return this.content[this.content.length-1]}}class Eo extends Array{constructor(e){super(),this.parent=e,Object.setPrototypeOf(this,Eo.prototype)}push(...e){return this.addParents(e),super.push(...e)}unshift(...e){return this.addParents(e),super.unshift(...e)}splice(e,t,...n){return this.addParents(n),super.splice(e,t,...n)}addParents(e){for(const t of e)t.container=this.parent}}class Ao extends $o{get text(){return this._text.substring(this.offset,this.end)}get fullText(){return this._text}constructor(e){super(),this._text="",this._text=e??""}}const ko=Symbol("Datatype");function xo(e){return e.$type===ko}const Io=e=>e.endsWith("​")?e:e+"​";class So{constructor(e){this._unorderedGroups=new Map,this.allRules=new Map,this.lexer=e.parser.Lexer;const t=this.lexer.definition,n="production"===e.LanguageMetaData.mode;this.wrapper=new Oo(t,Object.assign(Object.assign({},e.parser.ParserConfig),{skipValidations:n,errorMessageProvider:e.parser.ParserErrorMessageProvider}))}alternatives(e,t){this.wrapper.wrapOr(e,t)}optional(e,t){this.wrapper.wrapOption(e,t)}many(e,t){this.wrapper.wrapMany(e,t)}atLeastOne(e,t){this.wrapper.wrapAtLeastOne(e,t)}getRule(e){return this.allRules.get(e)}isRecording(){return this.wrapper.IS_RECORDING}get unorderedGroups(){return this._unorderedGroups}getRuleStack(){return this.wrapper.RULE_STACK}finalize(){this.wrapper.wrapSelfAnalysis()}}class Co extends So{get current(){return this.stack[this.stack.length-1]}constructor(e){super(e),this.nodeBuilder=new To,this.stack=[],this.assignmentMap=new Map,this.linker=e.references.Linker,this.converter=e.parser.ValueConverter,this.astReflection=e.shared.AstReflection}rule(e,t){const n=this.computeRuleType(e),r=this.wrapper.DEFINE_RULE(Io(e.name),this.startImplementation(n,t).bind(this));return this.allRules.set(e.name,r),e.entry&&(this.mainRule=r),r}computeRuleType(e){if(!e.fragment)return Zt(e)?ko:en(e)??e.name}parse(e,t={}){this.nodeBuilder.buildRootNode(e);const n=this.lexerResult=this.lexer.tokenize(e);this.wrapper.input=n.tokens;const r=t.rule?this.allRules.get(t.rule):this.mainRule;if(!r)throw new Error(t.rule?`No rule found with name '${t.rule}'`:"No main rule available.");const i=r.call(this.wrapper,{});return this.nodeBuilder.addHiddenNodes(n.hidden),this.unorderedGroups.clear(),this.lexerResult=void 0,{value:i,lexerErrors:n.errors,lexerReport:n.report,parserErrors:this.wrapper.errors}}startImplementation(e,t){return n=>{const r=!this.isRecording()&&void 0!==e;if(r){const t={$type:e};this.stack.push(t),e===ko&&(t.value="")}let i;try{i=t(n)}catch{i=void 0}return void 0===i&&r&&(i=this.construct()),i}}extractHiddenTokens(e){const t=this.lexerResult.hidden;if(!t.length)return[];const n=e.startOffset;for(let e=0;e<t.length;e++)if(t[e].startOffset>n)return t.splice(0,e);return t.splice(0,t.length)}consume(e,t,n){const r=this.wrapper.wrapConsume(e,t);if(!this.isRecording()&&this.isValidToken(r)){const e=this.extractHiddenTokens(r);this.nodeBuilder.addHiddenNodes(e);const t=this.nodeBuilder.buildLeafNode(r,n),{assignment:i,isCrossRef:s}=this.getAssignment(n),a=this.current;if(i){const e=nt(n)?r.image:this.converter.convert(r.image,t);this.assign(i.operator,i.feature,e,t,s)}else if(xo(a)){let e=r.image;nt(n)||(e=this.converter.convert(e,t).toString()),a.value+=e}}}isValidToken(e){return!e.isInsertedInRecovery&&!isNaN(e.startOffset)&&"number"==typeof e.endOffset&&!isNaN(e.endOffset)}subrule(e,t,n,r,i){let s;!this.isRecording()&&!n&&(s=this.nodeBuilder.buildCompositeNode(r));const a=this.wrapper.wrapSubrule(e,t,i);!this.isRecording()&&s&&s.length>0&&this.performSubruleAssignment(a,r,s)}performSubruleAssignment(e,t,n){const{assignment:r,isCrossRef:i}=this.getAssignment(t);if(r)this.assign(r.operator,r.feature,e,n,i);else if(!r){const t=this.current;if(xo(t))t.value+=e.toString();else if("object"==typeof e&&e){const n=this.assignWithoutOverride(e,t);this.stack.pop(),this.stack.push(n)}}}action(e,t){if(!this.isRecording()){let n=this.current;if(t.feature&&t.operator){n=this.construct(),this.nodeBuilder.removeNode(n.$cstNode),this.nodeBuilder.buildCompositeNode(t).content.push(n.$cstNode);const r={$type:e};this.stack.push(r),this.assign(t.operator,t.feature,n,n.$cstNode,!1)}else n.$type=e}}construct(){if(this.isRecording())return;const e=this.current;return function(e){for(const[t,n]of Object.entries(e))t.startsWith("$")||(Array.isArray(n)?n.forEach((n,r)=>{U(n)&&(n.$container=e,n.$containerProperty=t,n.$containerIndex=r)}):U(n)&&(n.$container=e,n.$containerProperty=t))}(e),this.nodeBuilder.construct(e),this.stack.pop(),xo(e)?this.converter.convert(e.value,e.$cstNode):(function(e,t){const n=e.getTypeMetaData(t.$type),r=t;for(const e of n.properties)void 0!==e.defaultValue&&void 0===r[e.name]&&(r[e.name]=kt(e.defaultValue))}(this.astReflection,e),e)}getAssignment(e){if(!this.assignmentMap.has(e)){const t=gt(e,Ye);this.assignmentMap.set(e,{assignment:t,isCrossRef:!!t&&Qe(t.terminal)})}return this.assignmentMap.get(e)}assign(e,t,n,r,i){const s=this.current;let a;switch(a=i&&"string"==typeof n?this.linker.buildReference(s,t,r,n):n,e){case"=":s[t]=a;break;case"?=":s[t]=!0;break;case"+=":Array.isArray(s[t])||(s[t]=[]),s[t].push(a)}}assignWithoutOverride(e,t){for(const[n,r]of Object.entries(t)){const t=e[n];void 0===t?e[n]=r:Array.isArray(t)&&Array.isArray(r)&&(r.push(...t),e[n]=r)}const n=e.$cstNode;return n&&(n.astNode=void 0,e.$cstNode=void 0),e}get definitionErrors(){return this.wrapper.definitionErrors}}class No{buildMismatchTokenMessage(e){return Mr.buildMismatchTokenMessage(e)}buildNotAllInputParsedMessage(e){return Mr.buildNotAllInputParsedMessage(e)}buildNoViableAltMessage(e){return Mr.buildNoViableAltMessage(e)}buildEarlyExitMessage(e){return Mr.buildEarlyExitMessage(e)}}class wo extends No{buildMismatchTokenMessage({expected:e,actual:t}){return`Expecting ${e.LABEL?"`"+e.LABEL+"`":e.name.endsWith(":KW")?`keyword '${e.name.substring(0,e.name.length-3)}'`:`token of type '${e.name}'`} but found \`${t.image}\`.`}buildNotAllInputParsedMessage({firstRedundant:e}){return`Expecting end of file but found \`${e.image}\`.`}}class Lo extends So{constructor(){super(...arguments),this.tokens=[],this.elementStack=[],this.lastElementStack=[],this.nextTokenIndex=0,this.stackSize=0}action(){}construct(){}parse(e){this.resetState();const t=this.lexer.tokenize(e,{mode:"partial"});return this.tokens=t.tokens,this.wrapper.input=[...this.tokens],this.mainRule.call(this.wrapper,{}),this.unorderedGroups.clear(),{tokens:this.tokens,elementStack:[...this.lastElementStack],tokenIndex:this.nextTokenIndex}}rule(e,t){const n=this.wrapper.DEFINE_RULE(Io(e.name),this.startImplementation(t).bind(this));return this.allRules.set(e.name,n),e.entry&&(this.mainRule=n),n}resetState(){this.elementStack=[],this.lastElementStack=[],this.nextTokenIndex=0,this.stackSize=0}startImplementation(e){return t=>{const n=this.keepStackSize();try{e(t)}finally{this.resetStackSize(n)}}}removeUnexpectedElements(){this.elementStack.splice(this.stackSize)}keepStackSize(){const e=this.elementStack.length;return this.stackSize=e,e}resetStackSize(e){this.removeUnexpectedElements(),this.stackSize=e}consume(e,t,n){this.wrapper.wrapConsume(e,t),this.isRecording()||(this.lastElementStack=[...this.elementStack,n],this.nextTokenIndex=this.currIdx+1)}subrule(e,t,n,r,i){this.before(r),this.wrapper.wrapSubrule(e,t,i),this.after(r)}before(e){this.isRecording()||this.elementStack.push(e)}after(e){if(!this.isRecording()){const t=this.elementStack.lastIndexOf(e);t>=0&&this.elementStack.splice(t)}}get currIdx(){return this.wrapper.currIdx}}const bo={recoveryEnabled:!0,nodeLocationTracking:"full",skipValidations:!0,errorMessageProvider:new wo};class Oo extends as{constructor(e,t){const n=t&&"maxLookahead"in t;super(e,Object.assign(Object.assign(Object.assign({},bo),{lookaheadStrategy:n?new Di({maxLookahead:t.maxLookahead}):new ws({logging:t.skipValidations?()=>{}:void 0})}),t))}get IS_RECORDING(){return this.RECORDING_PHASE}DEFINE_RULE(e,t){return this.RULE(e,t)}wrapSelfAnalysis(){this.performSelfAnalysis()}wrapConsume(e,t){return this.consume(e,t)}wrapSubrule(e,t,n){return this.subrule(e,t,{ARGS:[n]})}wrapOr(e,t){this.or(e,t)}wrapOption(e,t){this.option(e,t)}wrapMany(e,t){this.many(e,t)}wrapAtLeastOne(e,t){this.atLeastOne(e,t)}}function _o(e,t,n){return function(e,t){const n=Ht(t,!1),r=X(t.rules).filter(Le).filter(e=>n.has(e));for(const t of r){const n=Object.assign(Object.assign({},e),{consume:1,optional:1,subrule:1,many:1,or:1});e.parser.rule(t,Po(n,t.definition))}}({parser:t,tokens:n,ruleNames:new Map},e),t}function Po(e,t,n=!1){let r;if(nt(t))r=function(e,t){const n=e.consume++,r=e.tokens[t.value];if(!r)throw new Error("Could not find token for keyword: "+t.value);return()=>e.parser.consume(n,r,t)}(e,t);else if(je(t))r=function(e,t){const n=tn(t);return()=>e.parser.action(n,t)}(e,t);else if(Ye(t))r=Po(e,t.terminal);else if(Qe(t))r=Uo(e,t);else if(at(t))r=function(e,t){const n=t.rule.ref;if(Le(n)){const r=e.subrule++,i=n.fragment,s=t.arguments.length>0?function(e,t){const n=t.map(e=>Mo(e.value));return t=>{const r={};for(let i=0;i<n.length;i++){const s=e.parameters[i],a=n[i];r[s.name]=a(t)}return r}}(n,t.arguments):()=>({});return a=>e.parser.subrule(r,Go(e,n),i,t,s(a))}if(Ue(n)){const r=e.consume++,i=Bo(e,n.name);return()=>e.parser.consume(r,i,t)}if(!n)throw new se(t.$cstNode,`Undefined rule: ${t.rule.$refText}`);ae()}(e,t);else if(We(t))r=function(e,t){if(1===t.elements.length)return Po(e,t.elements[0]);{const n=[];for(const r of t.elements){const t={ALT:Po(e,r,!0)},i=Do(r);i&&(t.GATE=Mo(i)),n.push(t)}const r=e.or++;return t=>e.parser.alternatives(r,n.map(e=>{const n={ALT:()=>e.ALT(t)},r=e.GATE;return r&&(n.GATE=()=>r(t)),n}))}}(e,t);else if(dt(t))r=function(e,t){if(1===t.elements.length)return Po(e,t.elements[0]);const n=[];for(const r of t.elements){const t={ALT:Po(e,r,!0)},i=Do(r);i&&(t.GATE=Mo(i)),n.push(t)}const r=e.or++,i=(e,t)=>`uGroup_${e}_${t.getRuleStack().join("-")}`,s=Fo(e,Do(t),t=>e.parser.alternatives(r,n.map((n,s)=>{const a={ALT:()=>!0},o=e.parser;a.ALT=()=>{if(n.ALT(t),!o.isRecording()){const e=i(r,o);o.unorderedGroups.get(e)||o.unorderedGroups.set(e,[]);const t=o.unorderedGroups.get(e);typeof(null==t?void 0:t[s])>"u"&&(t[s]=!0)}};const l=n.GATE;return a.GATE=l?()=>l(t):()=>{const e=o.unorderedGroups.get(i(r,o));return!(null!=e&&e[s])},a})),"*");return t=>{s(t),e.parser.isRecording()||e.parser.unorderedGroups.delete(i(r,e.parser))}}(e,t);else if(et(t))r=function(e,t){const n=t.elements.map(t=>Po(e,t));return e=>n.forEach(t=>t(e))}(e,t);else{if(!function(e){return mt.isInstance(e,Ze)}(t))throw new se(t.$cstNode,`Unexpected element type: ${t.$type}`);{const n=e.consume++;r=()=>e.parser.consume(n,Or,t)}}return Fo(e,n?void 0:Do(t),r,t.cardinality)}function Mo(e){if(function(e){return mt.isInstance(e,Te)}(e)){const t=Mo(e.left),n=Mo(e.right);return e=>t(e)||n(e)}if(function(e){return mt.isInstance(e,ye)}(e)){const t=Mo(e.left),n=Mo(e.right);return e=>t(e)&&n(e)}if(function(e){return mt.isInstance(e,Ie)}(e)){const t=Mo(e.value);return e=>!t(e)}if(function(e){return mt.isInstance(e,Ne)}(e)){const t=e.parameter.ref.name;return e=>void 0!==e&&!0===e[t]}if(function(e){return mt.isInstance(e,ge)}(e)){const t=!!e.true;return()=>t}ae()}function Do(e){if(et(e))return e.guardCondition}function Uo(e,t,n=t.terminal){if(n){if(at(n)&&Le(n.rule.ref)){const r=n.rule.ref,i=e.subrule++;return n=>e.parser.subrule(i,Go(e,r),!1,t,n)}if(at(n)&&Ue(n.rule.ref)){const r=e.consume++,i=Bo(e,n.rule.ref.name);return()=>e.parser.consume(r,i,t)}if(nt(n)){const r=e.consume++,i=Bo(e,n.value);return()=>e.parser.consume(r,i,t)}throw new Error("Could not build cross reference parser")}{if(!t.type.ref)throw new Error("Could not resolve reference to type: "+t.type.$refText);const n=Xt(t.type.ref),r=null==n?void 0:n.terminal;if(!r)throw new Error("Could not find name assignment for type: "+tn(t.type.ref));return Uo(e,t,r)}}function Fo(e,t,n,r){const i=t&&Mo(t);if(!r){if(i){const t=e.or++;return r=>e.parser.alternatives(t,[{ALT:()=>n(r),GATE:()=>i(r)},{ALT:is(),GATE:()=>!i(r)}])}return n}if("*"===r){const t=e.many++;return r=>e.parser.many(t,{DEF:()=>n(r),GATE:i?()=>i(r):void 0})}if("+"===r){const t=e.many++;if(i){const r=e.or++;return s=>e.parser.alternatives(r,[{ALT:()=>e.parser.atLeastOne(t,{DEF:()=>n(s)}),GATE:()=>i(s)},{ALT:is(),GATE:()=>!i(s)}])}return r=>e.parser.atLeastOne(t,{DEF:()=>n(r)})}if("?"===r){const t=e.optional++;return r=>e.parser.optional(t,{DEF:()=>n(r),GATE:i?()=>i(r):void 0})}ae()}function Go(e,t){const n=function(e,t){if(Le(t))return t.name;if(e.ruleNames.has(t))return e.ruleNames.get(t);{let n=t,r=n.$container,i=t.$type;for(;!Le(r);)(et(r)||We(r)||dt(r))&&(i=r.elements.indexOf(n).toString()+":"+i),n=r,r=r.$container;return i=r.name+":"+i,e.ruleNames.set(t,i),i}}(e,t),r=e.parser.getRule(n);if(!r)throw new Error(`Rule "${n}" not found."`);return r}function Bo(e,t){const n=e.tokens[t];if(!n)throw new Error(`Token "${t}" not found."`);return n}class Ko{constructor(){this.diagnostics=[]}buildTokens(e,t){const n=X(Ht(e,!1)),r=this.buildTerminalTokens(n),i=this.buildKeywordTokens(n,r,t);return r.forEach(e=>{const t=e.PATTERN;"object"==typeof t&&t&&"test"in t&&Vt(t)?i.unshift(e):i.push(e)}),i}flushLexingReport(e){return{diagnostics:this.popDiagnostics()}}popDiagnostics(){const e=[...this.diagnostics];return this.diagnostics=[],e}buildTerminalTokens(e){return e.filter(Ue).filter(e=>!e.fragment).map(e=>this.buildTerminalToken(e)).toArray()}buildTerminalToken(e){const t=nn(e),n=this.requiresCustomPattern(t)?this.regexPatternFunction(t):t,r={name:e.name,PATTERN:n};return"function"==typeof n&&(r.LINE_BREAKS=!0),e.hidden&&(r.GROUP=Vt(t)?$r.SKIPPED:"hidden"),r}requiresCustomPattern(e){return!!(e.flags.includes("u")||e.flags.includes("s")||e.source.includes("?<=")||e.source.includes("?<!"))}regexPatternFunction(e){const t=new RegExp(e,e.flags+"y");return(e,n)=>(t.lastIndex=n,t.exec(e))}buildKeywordTokens(e,t,n){return e.filter(Le).flatMap(e=>Rt(e).filter(nt)).distinct(e=>e.value).toArray().sort((e,t)=>t.value.length-e.value.length).map(e=>this.buildKeywordToken(e,t,!(null==n||!n.caseInsensitive)))}buildKeywordToken(e,t,n){const r=this.buildKeywordPattern(e,n),i={name:e.value,PATTERN:r,LONGER_ALT:this.findLongerAlt(e,t)};return"function"==typeof r&&(i.LINE_BREAKS=!0),i}buildKeywordPattern(e,t){return t?new RegExp(function(e){return Array.prototype.map.call(e,e=>/\w/.test(e)?`[${e.toLowerCase()}${e.toUpperCase()}]`:jt(e)).join("")}(e.value)):e.value}findLongerAlt(e,t){return t.reduce((t,n)=>{const r=null==n?void 0:n.PATTERN;return null!=r&&r.source&&function(e,t){const n=function(e){"string"==typeof e&&(e=new RegExp(e));const t=e,n=e.source;let r=0;return new RegExp(function e(){let i,s="";function a(e){s+=n.substr(r,e),r+=e}function o(e){s+="(?:"+n.substr(r,e)+"|$)",r+=e}for(;r<n.length;)switch(n[r]){case"\\":switch(n[r+1]){case"c":o(3);break;case"x":o(4);break;case"u":t.unicode?"{"===n[r+2]?o(n.indexOf("}",r)-r+1):o(6):o(2);break;case"p":case"P":t.unicode?o(n.indexOf("}",r)-r+1):o(2);break;case"k":o(n.indexOf(">",r)-r+1);break;default:o(2)}break;case"[":i=/\[(?:\\.|.)*?\]/g,i.lastIndex=r,i=i.exec(n)||[],o(i[0].length);break;case"|":case"^":case"$":case"*":case"+":case"?":a(1);break;case"{":i=/\{\d+,?\d*\}/g,i.lastIndex=r,i=i.exec(n),i?a(i[0].length):o(1);break;case"(":if("?"===n[r+1])switch(n[r+2]){case":":s+="(?:",r+=3,s+=e()+"|$)";break;case"=":s+="(?=",r+=3,s+=e()+")";break;case"!":i=r,r+=3,e(),s+=n.substr(i,r-i);break;case"<":switch(n[r+3]){case"=":case"!":i=r,r+=4,e(),s+=n.substr(i,r-i);break;default:a(n.indexOf(">",r)-r+1),s+=e()+"|$)"}}else a(1),s+=e()+"|$)";break;case")":return++r,s;default:o(1)}return s}(),e.flags)}(e),r=t.match(n);return!!r&&r[0].length>0}("^"+r.source+"$",e.value)&&t.push(n),t},[])}}class Vo{convert(e,t){let n=t.grammarSource;if(Qe(n)&&(n=function(e){if(e.terminal)return e.terminal;if(e.type.ref){const t=Xt(e.type.ref);return null==t?void 0:t.terminal}}(n)),at(n)){const r=n.rule.ref;if(!r)throw new Error("This cst node was not parsed by a rule.");return this.runConverter(r,e,t)}return e}runConverter(e,t,n){var r;switch(e.name.toUpperCase()){case"INT":return jo.convertInt(t);case"STRING":return jo.convertString(t);case"ID":return jo.convertID(t)}switch(null===(r=function(e){var t,n,r;return Ue(e)?null!==(n=null===(t=e.type)||void 0===t?void 0:t.name)&&void 0!==n?n:"string":null!==(r=en(e))&&void 0!==r?r:e.name}(e))||void 0===r?void 0:r.toLowerCase()){case"number":return jo.convertNumber(t);case"boolean":return jo.convertBoolean(t);case"bigint":return jo.convertBigint(t);case"date":return jo.convertDate(t);default:return t}}}var jo;!function(e){function t(e){switch(e){case"b":return"\b";case"f":return"\f";case"n":return"\n";case"r":return"\r";case"t":return"\t";case"v":return"\v";case"0":return"\0";default:return e}}e.convertString=function(e){let n="";for(let r=1;r<e.length-1;r++){const i=e.charAt(r);n+="\\"===i?t(e.charAt(++r)):i}return n},e.convertID=function(e){return"^"===e.charAt(0)?e.substring(1):e},e.convertInt=function(e){return parseInt(e)},e.convertBigint=function(e){return BigInt(e)},e.convertDate=function(e){return new Date(e)},e.convertNumber=function(e){return Number(e)},e.convertBoolean=function(e){return"true"===e.toLowerCase()}}(jo||(jo={}));var Ho,Wo={},zo={};function Yo(){if(Ho)return zo;let e;function t(){if(void 0===e)throw new Error("No runtime abstraction layer installed");return e}return Ho=1,Object.defineProperty(zo,"__esModule",{value:!0}),(t||(t={})).install=function(t){if(void 0===t)throw new Error("No runtime abstraction layer provided");e=t},zo.default=t,zo}var qo,Xo,Qo,Zo={},Jo={};function el(){return Xo||(Xo=1,function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.Emitter=e.Event=void 0;const t=Yo();!function(e){const t={dispose(){}};e.None=function(){return t}}(e.Event||(e.Event={}));class n{add(e,t=null,n){this._callbacks||(this._callbacks=[],this._contexts=[]),this._callbacks.push(e),this._contexts.push(t),Array.isArray(n)&&n.push({dispose:()=>this.remove(e,t)})}remove(e,t=null){if(!this._callbacks)return;let n=!1;for(let r=0,i=this._callbacks.length;r<i;r++)if(this._callbacks[r]===e){if(this._contexts[r]===t)return this._callbacks.splice(r,1),void this._contexts.splice(r,1);n=!0}if(n)throw new Error("When adding a listener with a context, you should remove it with the same context")}invoke(...e){if(!this._callbacks)return[];const n=[],r=this._callbacks.slice(0),i=this._contexts.slice(0);for(let s=0,a=r.length;s<a;s++)try{n.push(r[s].apply(i[s],e))}catch(e){t.default().console.error(e)}return n}isEmpty(){return!this._callbacks||0===this._callbacks.length}dispose(){this._callbacks=void 0,this._contexts=void 0}}class r{constructor(e){this._options=e}get event(){return this._event||(this._event=(e,t,i)=>{this._callbacks||(this._callbacks=new n),this._options&&this._options.onFirstListenerAdd&&this._callbacks.isEmpty()&&this._options.onFirstListenerAdd(this),this._callbacks.add(e,t);const s={dispose:()=>{this._callbacks&&(this._callbacks.remove(e,t),s.dispose=r._noop,this._options&&this._options.onLastListenerRemove&&this._callbacks.isEmpty()&&this._options.onLastListenerRemove(this))}};return Array.isArray(i)&&i.push(s),s}),this._event}fire(e){this._callbacks&&this._callbacks.invoke.call(this._callbacks,e)}dispose(){this._callbacks&&(this._callbacks.dispose(),this._callbacks=void 0)}}e.Emitter=r,r._noop=function(){}}(Jo)),Jo}var tl=(Qo||(Qo=1,function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.CancellationTokenSource=e.CancellationToken=void 0;const t=Yo(),n=function(){if(qo)return Zo;function e(e){return"string"==typeof e||e instanceof String}function t(e){return Array.isArray(e)}return qo=1,Object.defineProperty(Zo,"__esModule",{value:!0}),Zo.stringArray=Zo.array=Zo.func=Zo.error=Zo.number=Zo.string=Zo.boolean=void 0,Zo.boolean=function(e){return!0===e||!1===e},Zo.string=e,Zo.number=function(e){return"number"==typeof e||e instanceof Number},Zo.error=function(e){return e instanceof Error},Zo.func=function(e){return"function"==typeof e},Zo.array=t,Zo.stringArray=function(n){return t(n)&&n.every(t=>e(t))},Zo}(),r=el();var i,s;(s=i=e.CancellationToken||(e.CancellationToken={})).None=Object.freeze({isCancellationRequested:!1,onCancellationRequested:r.Event.None}),s.Cancelled=Object.freeze({isCancellationRequested:!0,onCancellationRequested:r.Event.None}),s.is=function(e){const t=e;return t&&(t===s.None||t===s.Cancelled||n.boolean(t.isCancellationRequested)&&!!t.onCancellationRequested)};const a=Object.freeze(function(e,n){const r=t.default().timer.setTimeout(e.bind(n),0);return{dispose(){t.default().timer.clearTimeout(r)}}});class o{constructor(){this._isCancelled=!1}cancel(){this._isCancelled||(this._isCancelled=!0,this._emitter&&(this._emitter.fire(void 0),this.dispose()))}get isCancellationRequested(){return this._isCancelled}get onCancellationRequested(){return this._isCancelled?a:(this._emitter||(this._emitter=new r.Emitter),this._emitter.event)}dispose(){this._emitter&&(this._emitter.dispose(),this._emitter=void 0)}}e.CancellationTokenSource=class{get token(){return this._token||(this._token=new o),this._token}cancel(){this._token?this._token.cancel():this._token=i.Cancelled}dispose(){this._token?this._token instanceof o&&this._token.dispose():this._token=i.None}}}(Wo)),Wo);let nl=0;const rl=Symbol("OperationCancelled");function il(e){return e===rl}async function sl(e){if(e===tl.CancellationToken.None)return;const t=performance.now();if(t-nl>=10&&(nl=t,await new Promise(e=>{typeof setImmediate>"u"?setTimeout(e,0):setImmediate(e)}),nl=performance.now()),e.isCancellationRequested)throw rl}class al{constructor(){this.promise=new Promise((e,t)=>{this.resolve=t=>(e(t),this),this.reject=e=>(t(e),this)})}}class ol{constructor(e,t,n,r){this._uri=e,this._languageId=t,this._version=n,this._content=r,this._lineOffsets=void 0}get uri(){return this._uri}get languageId(){return this._languageId}get version(){return this._version}getText(e){if(e){const t=this.offsetAt(e.start),n=this.offsetAt(e.end);return this._content.substring(t,n)}return this._content}update(e,t){for(const t of e)if(ol.isIncremental(t)){const e=fl(t.range),n=this.offsetAt(e.start),r=this.offsetAt(e.end);this._content=this._content.substring(0,n)+t.text+this._content.substring(r,this._content.length);const i=Math.max(e.start.line,0),s=Math.max(e.end.line,0);let a=this._lineOffsets;const o=dl(t.text,!1,n);if(s-i===o.length)for(let e=0,t=o.length;e<t;e++)a[e+i+1]=o[e];else o.length<1e4?a.splice(i+1,s-i,...o):this._lineOffsets=a=a.slice(0,i+1).concat(o,a.slice(s+1));const l=t.text.length-(r-n);if(0!==l)for(let e=i+1+o.length,t=a.length;e<t;e++)a[e]=a[e]+l}else{if(!ol.isFull(t))throw new Error("Unknown change event received");this._content=t.text,this._lineOffsets=void 0}this._version=t}getLineOffsets(){return void 0===this._lineOffsets&&(this._lineOffsets=dl(this._content,!0)),this._lineOffsets}positionAt(e){e=Math.max(Math.min(e,this._content.length),0);const t=this.getLineOffsets();let n=0,r=t.length;if(0===r)return{line:0,character:e};for(;n<r;){const i=Math.floor((n+r)/2);t[i]>e?r=i:n=i+1}const i=n-1;return{line:i,character:(e=this.ensureBeforeEOL(e,t[i]))-t[i]}}offsetAt(e){const t=this.getLineOffsets();if(e.line>=t.length)return this._content.length;if(e.line<0)return 0;const n=t[e.line];if(e.character<=0)return n;const r=e.line+1<t.length?t[e.line+1]:this._content.length,i=Math.min(n+e.character,r);return this.ensureBeforeEOL(i,n)}ensureBeforeEOL(e,t){for(;e>t&&hl(this._content.charCodeAt(e-1));)e--;return e}get lineCount(){return this.getLineOffsets().length}static isIncremental(e){const t=e;return null!=t&&"string"==typeof t.text&&void 0!==t.range&&(void 0===t.rangeLength||"number"==typeof t.rangeLength)}static isFull(e){const t=e;return null!=t&&"string"==typeof t.text&&void 0===t.range&&void 0===t.rangeLength}}var ll,cl;function ul(e,t){if(e.length<=1)return e;const n=e.length/2|0,r=e.slice(0,n),i=e.slice(n);ul(r,t),ul(i,t);let s=0,a=0,o=0;for(;s<r.length&&a<i.length;)t(r[s],i[a])<=0?e[o++]=r[s++]:e[o++]=i[a++];for(;s<r.length;)e[o++]=r[s++];for(;a<i.length;)e[o++]=i[a++];return e}function dl(e,t,n=0){const r=t?[n]:[];for(let t=0;t<e.length;t++){const i=e.charCodeAt(t);hl(i)&&(13===i&&t+1<e.length&&10===e.charCodeAt(t+1)&&t++,r.push(n+t+1))}return r}function hl(e){return 13===e||10===e}function fl(e){const t=e.start,n=e.end;return t.line>n.line||t.line===n.line&&t.character>n.character?{start:n,end:t}:e}function pl(e){const t=fl(e.range);return t!==e.range?{newText:e.newText,range:t}:e}!function(e){e.create=function(e,t,n,r){return new ol(e,t,n,r)},e.update=function(e,t,n){if(e instanceof ol)return e.update(t,n),e;throw new Error("TextDocument.update: document must be created by TextDocument.create")},e.applyEdits=function(e,t){const n=e.getText(),r=ul(t.map(pl),(e,t)=>{const n=e.range.start.line-t.range.start.line;return 0===n?e.range.start.character-t.range.start.character:n});let i=0;const s=[];for(const t of r){const r=e.offsetAt(t.range.start);if(r<i)throw new Error("Overlapping edit");r>i&&s.push(n.substring(i,r)),t.newText.length&&s.push(t.newText),i=e.offsetAt(t.range.end)}return s.push(n.substr(i)),s.join("")}}(ll||(ll={})),(()=>{var e={470:e=>{function t(e){if("string"!=typeof e)throw new TypeError("Path must be a string. Received "+JSON.stringify(e))}function n(e,t){for(var n,r="",i=0,s=-1,a=0,o=0;o<=e.length;++o){if(o<e.length)n=e.charCodeAt(o);else{if(47===n)break;n=47}if(47===n){if(s!==o-1&&1!==a)if(s!==o-1&&2===a){if(r.length<2||2!==i||46!==r.charCodeAt(r.length-1)||46!==r.charCodeAt(r.length-2))if(r.length>2){var l=r.lastIndexOf("/");if(l!==r.length-1){-1===l?(r="",i=0):i=(r=r.slice(0,l)).length-1-r.lastIndexOf("/"),s=o,a=0;continue}}else if(2===r.length||1===r.length){r="",i=0,s=o,a=0;continue}t&&(r.length>0?r+="/..":r="..",i=2)}else r.length>0?r+="/"+e.slice(s+1,o):r=e.slice(s+1,o),i=o-s-1;s=o,a=0}else 46===n&&-1!==a?++a:a=-1}return r}var r={resolve:function(){for(var e,r="",i=!1,s=arguments.length-1;s>=-1&&!i;s--){var a;s>=0?a=arguments[s]:(void 0===e&&(e=o.cwd()),a=e),t(a),0!==a.length&&(r=a+"/"+r,i=47===a.charCodeAt(0))}return r=n(r,!i),i?r.length>0?"/"+r:"/":r.length>0?r:"."},normalize:function(e){if(t(e),0===e.length)return".";var r=47===e.charCodeAt(0),i=47===e.charCodeAt(e.length-1);return 0!==(e=n(e,!r)).length||r||(e="."),e.length>0&&i&&(e+="/"),r?"/"+e:e},isAbsolute:function(e){return t(e),e.length>0&&47===e.charCodeAt(0)},join:function(){if(0===arguments.length)return".";for(var e,n=0;n<arguments.length;++n){var i=arguments[n];t(i),i.length>0&&(void 0===e?e=i:e+="/"+i)}return void 0===e?".":r.normalize(e)},relative:function(e,n){if(t(e),t(n),e===n||(e=r.resolve(e))===(n=r.resolve(n)))return"";for(var i=1;i<e.length&&47===e.charCodeAt(i);++i);for(var s=e.length,a=s-i,o=1;o<n.length&&47===n.charCodeAt(o);++o);for(var l=n.length-o,c=a<l?a:l,u=-1,d=0;d<=c;++d){if(d===c){if(l>c){if(47===n.charCodeAt(o+d))return n.slice(o+d+1);if(0===d)return n.slice(o+d)}else a>c&&(47===e.charCodeAt(i+d)?u=d:0===d&&(u=0));break}var h=e.charCodeAt(i+d);if(h!==n.charCodeAt(o+d))break;47===h&&(u=d)}var f="";for(d=i+u+1;d<=s;++d)d!==s&&47!==e.charCodeAt(d)||(0===f.length?f+="..":f+="/..");return f.length>0?f+n.slice(o+u):(o+=u,47===n.charCodeAt(o)&&++o,n.slice(o))},_makeLong:function(e){return e},dirname:function(e){if(t(e),0===e.length)return".";for(var n=e.charCodeAt(0),r=47===n,i=-1,s=!0,a=e.length-1;a>=1;--a)if(47===(n=e.charCodeAt(a))){if(!s){i=a;break}}else s=!1;return-1===i?r?"/":".":r&&1===i?"//":e.slice(0,i)},basename:function(e,n){if(void 0!==n&&"string"!=typeof n)throw new TypeError('"ext" argument must be a string');t(e);var r,i=0,s=-1,a=!0;if(void 0!==n&&n.length>0&&n.length<=e.length){if(n.length===e.length&&n===e)return"";var o=n.length-1,l=-1;for(r=e.length-1;r>=0;--r){var c=e.charCodeAt(r);if(47===c){if(!a){i=r+1;break}}else-1===l&&(a=!1,l=r+1),o>=0&&(c===n.charCodeAt(o)?-1==--o&&(s=r):(o=-1,s=l))}return i===s?s=l:-1===s&&(s=e.length),e.slice(i,s)}for(r=e.length-1;r>=0;--r)if(47===e.charCodeAt(r)){if(!a){i=r+1;break}}else-1===s&&(a=!1,s=r+1);return-1===s?"":e.slice(i,s)},extname:function(e){t(e);for(var n=-1,r=0,i=-1,s=!0,a=0,o=e.length-1;o>=0;--o){var l=e.charCodeAt(o);if(47!==l)-1===i&&(s=!1,i=o+1),46===l?-1===n?n=o:1!==a&&(a=1):-1!==n&&(a=-1);else if(!s){r=o+1;break}}return-1===n||-1===i||0===a||1===a&&n===i-1&&n===r+1?"":e.slice(n,i)},format:function(e){if(null===e||"object"!=typeof e)throw new TypeError('The "pathObject" argument must be of type Object. Received type '+typeof e);return n=(t=e).dir||t.root,r=t.base||(t.name||"")+(t.ext||""),n?n===t.root?n+r:n+"/"+r:r;var t,n,r},parse:function(e){t(e);var n={root:"",dir:"",base:"",ext:"",name:""};if(0===e.length)return n;var r,i=e.charCodeAt(0),s=47===i;s?(n.root="/",r=1):r=0;for(var a=-1,o=0,l=-1,c=!0,u=e.length-1,d=0;u>=r;--u)if(47!==(i=e.charCodeAt(u)))-1===l&&(c=!1,l=u+1),46===i?-1===a?a=u:1!==d&&(d=1):-1!==a&&(d=-1);else if(!c){o=u+1;break}return-1===a||-1===l||0===d||1===d&&a===l-1&&a===o+1?-1!==l&&(n.base=n.name=0===o&&s?e.slice(1,l):e.slice(o,l)):(0===o&&s?(n.name=e.slice(1,a),n.base=e.slice(1,l)):(n.name=e.slice(o,a),n.base=e.slice(o,l)),n.ext=e.slice(a,l)),o>0?n.dir=e.slice(0,o-1):s&&(n.dir="/"),n},sep:"/",delimiter:":",win32:null,posix:null};r.posix=r,e.exports=r}},t={};function n(r){var i=t[r];if(void 0!==i)return i.exports;var s=t[r]={exports:{}};return e[r](s,s.exports,n),s.exports}n.d=(e,t)=>{for(var r in t)n.o(t,r)&&!n.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},n.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),n.r=e=>{typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var r={};(()=>{let e;n.r(r),n.d(r,{URI:()=>h,Utils:()=>I}),"object"==typeof o?e="win32"===o.platform:"object"==typeof navigator&&(e=navigator.userAgent.indexOf("Windows")>=0);const t=/^\w[\w\d+.-]*$/,i=/^\//,s=/^\/\//;function a(e,n){if(!e.scheme&&n)throw new Error(`[UriError]: Scheme is missing: {scheme: "", authority: "${e.authority}", path: "${e.path}", query: "${e.query}", fragment: "${e.fragment}"}`);if(e.scheme&&!t.test(e.scheme))throw new Error("[UriError]: Scheme contains illegal characters.");if(e.path)if(e.authority){if(!i.test(e.path))throw new Error('[UriError]: If a URI contains an authority component, then the path component must either be empty or begin with a slash ("/") character')}else if(s.test(e.path))throw new Error('[UriError]: If a URI does not contain an authority component, then the path cannot begin with two slash characters ("//")')}const l="",u="/",d=/^(([^:/?#]+?):)?(\/\/([^/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?/;class h{constructor(e,t,n,r,i,s=!1){c(this,"scheme"),c(this,"authority"),c(this,"path"),c(this,"query"),c(this,"fragment"),"object"==typeof e?(this.scheme=e.scheme||l,this.authority=e.authority||l,this.path=e.path||l,this.query=e.query||l,this.fragment=e.fragment||l):(this.scheme=function(e,t){return e||t?e:"file"}(e,s),this.authority=t||l,this.path=function(e,t){switch(e){case"https":case"http":case"file":t?t[0]!==u&&(t=u+t):t=u}return t}(this.scheme,n||l),this.query=r||l,this.fragment=i||l,a(this,s))}static isUri(e){return e instanceof h||!!e&&"string"==typeof e.authority&&"string"==typeof e.fragment&&"string"==typeof e.path&&"string"==typeof e.query&&"string"==typeof e.scheme&&"string"==typeof e.fsPath&&"function"==typeof e.with&&"function"==typeof e.toString}get fsPath(){return T(this)}with(e){if(!e)return this;let{scheme:t,authority:n,path:r,query:i,fragment:s}=e;return void 0===t?t=this.scheme:null===t&&(t=l),void 0===n?n=this.authority:null===n&&(n=l),void 0===r?r=this.path:null===r&&(r=l),void 0===i?i=this.query:null===i&&(i=l),void 0===s?s=this.fragment:null===s&&(s=l),t===this.scheme&&n===this.authority&&r===this.path&&i===this.query&&s===this.fragment?this:new p(t,n,r,i,s)}static parse(e,t=!1){const n=d.exec(e);return n?new p(n[2]||l,E(n[4]||l),E(n[5]||l),E(n[7]||l),E(n[9]||l),t):new p(l,l,l,l,l)}static file(t){let n=l;if(e&&(t=t.replace(/\\/g,u)),t[0]===u&&t[1]===u){const e=t.indexOf(u,2);-1===e?(n=t.substring(2),t=u):(n=t.substring(2,e),t=t.substring(e)||u)}return new p("file",n,t,l,l)}static from(e){const t=new p(e.scheme,e.authority,e.path,e.query,e.fragment);return a(t,!0),t}toString(e=!1){return v(this,e)}toJSON(){return this}static revive(e){if(e){if(e instanceof h)return e;{const t=new p(e);return t._formatted=e.external,t._fsPath=e._sep===f?e.fsPath:null,t}}return e}}const f=e?1:void 0;class p extends h{constructor(){super(...arguments),c(this,"_formatted",null),c(this,"_fsPath",null)}get fsPath(){return this._fsPath||(this._fsPath=T(this)),this._fsPath}toString(e=!1){return e?v(this,!0):(this._formatted||(this._formatted=v(this,!1)),this._formatted)}toJSON(){const e={$mid:1};return this._fsPath&&(e.fsPath=this._fsPath,e._sep=f),this._formatted&&(e.external=this._formatted),this.path&&(e.path=this.path),this.scheme&&(e.scheme=this.scheme),this.authority&&(e.authority=this.authority),this.query&&(e.query=this.query),this.fragment&&(e.fragment=this.fragment),e}}const m={58:"%3A",47:"%2F",63:"%3F",35:"%23",91:"%5B",93:"%5D",64:"%40",33:"%21",36:"%24",38:"%26",39:"%27",40:"%28",41:"%29",42:"%2A",43:"%2B",44:"%2C",59:"%3B",61:"%3D",32:"%20"};function g(e,t,n){let r,i=-1;for(let s=0;s<e.length;s++){const a=e.charCodeAt(s);if(a>=97&&a<=122||a>=65&&a<=90||a>=48&&a<=57||45===a||46===a||95===a||126===a||t&&47===a||n&&91===a||n&&93===a||n&&58===a)-1!==i&&(r+=encodeURIComponent(e.substring(i,s)),i=-1),void 0!==r&&(r+=e.charAt(s));else{void 0===r&&(r=e.substr(0,s));const t=m[a];void 0!==t?(-1!==i&&(r+=encodeURIComponent(e.substring(i,s)),i=-1),r+=t):-1===i&&(i=s)}}return-1!==i&&(r+=encodeURIComponent(e.substring(i))),void 0!==r?r:e}function y(e){let t;for(let n=0;n<e.length;n++){const r=e.charCodeAt(n);35===r||63===r?(void 0===t&&(t=e.substr(0,n)),t+=m[r]):void 0!==t&&(t+=e[n])}return void 0!==t?t:e}function T(t,n){let r;return r=t.authority&&t.path.length>1&&"file"===t.scheme?`//${t.authority}${t.path}`:47===t.path.charCodeAt(0)&&(t.path.charCodeAt(1)>=65&&t.path.charCodeAt(1)<=90||t.path.charCodeAt(1)>=97&&t.path.charCodeAt(1)<=122)&&58===t.path.charCodeAt(2)?t.path[1].toLowerCase()+t.path.substr(2):t.path,e&&(r=r.replace(/\//g,"\\")),r}function v(e,t){const n=t?y:g;let r="",{scheme:i,authority:s,path:a,query:o,fragment:l}=e;if(i&&(r+=i,r+=":"),(s||"file"===i)&&(r+=u,r+=u),s){let e=s.indexOf("@");if(-1!==e){const t=s.substr(0,e);s=s.substr(e+1),e=t.lastIndexOf(":"),-1===e?r+=n(t,!1,!1):(r+=n(t.substr(0,e),!1,!1),r+=":",r+=n(t.substr(e+1),!1,!0)),r+="@"}s=s.toLowerCase(),e=s.lastIndexOf(":"),-1===e?r+=n(s,!1,!0):(r+=n(s.substr(0,e),!1,!0),r+=s.substr(e))}if(a){if(a.length>=3&&47===a.charCodeAt(0)&&58===a.charCodeAt(2)){const e=a.charCodeAt(1);e>=65&&e<=90&&(a=`/${String.fromCharCode(e+32)}:${a.substr(3)}`)}else if(a.length>=2&&58===a.charCodeAt(1)){const e=a.charCodeAt(0);e>=65&&e<=90&&(a=`${String.fromCharCode(e+32)}:${a.substr(2)}`)}r+=n(a,!0,!1)}return o&&(r+="?",r+=n(o,!1,!1)),l&&(r+="#",r+=t?l:g(l,!1,!1)),r}function R(e){try{return decodeURIComponent(e)}catch{return e.length>3?e.substr(0,3)+R(e.substr(3)):e}}const $=/(%[0-9A-Za-z][0-9A-Za-z])+/g;function E(e){return e.match($)?e.replace($,e=>R(e)):e}var A=n(470);const k=A.posix||A,x="/";var I,S;(S=I||(I={})).joinPath=function(e,...t){return e.with({path:k.join(e.path,...t)})},S.resolvePath=function(e,...t){let n=e.path,r=!1;n[0]!==x&&(n=x+n,r=!0);let i=k.resolve(n,...t);return r&&i[0]===x&&!e.authority&&(i=i.substring(1)),e.with({path:i})},S.dirname=function(e){if(0===e.path.length||e.path===x)return e;let t=k.dirname(e.path);return 1===t.length&&46===t.charCodeAt(0)&&(t=""),e.with({path:t})},S.basename=function(e){return k.basename(e.path)},S.extname=function(e){return k.extname(e.path)}})(),cl=r})();const{URI:ml,Utils:gl}=cl;var yl,Tl;!function(e){e.basename=gl.basename,e.dirname=gl.dirname,e.extname=gl.extname,e.joinPath=gl.joinPath,e.resolvePath=gl.resolvePath,e.equals=function(e,t){return(null==e?void 0:e.toString())===(null==t?void 0:t.toString())},e.relative=function(e,t){const n="string"==typeof e?e:e.path,r="string"==typeof t?t:t.path,i=n.split("/").filter(e=>e.length>0),s=r.split("/").filter(e=>e.length>0);let a=0;for(;a<i.length&&i[a]===s[a];a++);return"../".repeat(i.length-a)+s.slice(a).join("/")},e.normalize=function(e){return ml.parse(e.toString()).toString()}}(yl||(yl={})),function(e){e[e.Changed=0]="Changed",e[e.Parsed=1]="Parsed",e[e.IndexedContent=2]="IndexedContent",e[e.ComputedScopes=3]="ComputedScopes",e[e.Linked=4]="Linked",e[e.IndexedReferences=5]="IndexedReferences",e[e.Validated=6]="Validated"}(Tl||(Tl={}));class vl{constructor(e){this.serviceRegistry=e.ServiceRegistry,this.textDocuments=e.workspace.TextDocuments,this.fileSystemProvider=e.workspace.FileSystemProvider}async fromUri(e,t=tl.CancellationToken.None){const n=await this.fileSystemProvider.readFile(e);return this.createAsync(e,n,t)}fromTextDocument(e,t,n){return t=t??ml.parse(e.uri),tl.CancellationToken.is(n)?this.createAsync(t,e,n):this.create(t,e,n)}fromString(e,t,n){return tl.CancellationToken.is(n)?this.createAsync(t,e,n):this.create(t,e,n)}fromModel(e,t){return this.create(t,{$model:e})}create(e,t,n){if("string"==typeof t){const r=this.parse(e,t,n);return this.createLangiumDocument(r,e,void 0,t)}if("$model"in t){const n={value:t.$model,parserErrors:[],lexerErrors:[]};return this.createLangiumDocument(n,e)}{const r=this.parse(e,t.getText(),n);return this.createLangiumDocument(r,e,t)}}async createAsync(e,t,n){if("string"==typeof t){const r=await this.parseAsync(e,t,n);return this.createLangiumDocument(r,e,void 0,t)}{const r=await this.parseAsync(e,t.getText(),n);return this.createLangiumDocument(r,e,t)}}createLangiumDocument(e,t,n,r){let i;if(n)i={parseResult:e,uri:t,state:Tl.Parsed,references:[],textDocument:n};else{const n=this.createTextDocumentGetter(t,r);i={parseResult:e,uri:t,state:Tl.Parsed,references:[],get textDocument(){return n()}}}return e.value.$document=i,i}async update(e,t){var n,r;const i=null===(n=e.parseResult.value.$cstNode)||void 0===n?void 0:n.root.fullText,s=null===(r=this.textDocuments)||void 0===r?void 0:r.get(e.uri.toString()),a=s?s.getText():await this.fileSystemProvider.readFile(e.uri);if(s)Object.defineProperty(e,"textDocument",{value:s});else{const t=this.createTextDocumentGetter(e.uri,a);Object.defineProperty(e,"textDocument",{get:t})}return i!==a&&(e.parseResult=await this.parseAsync(e.uri,a,t),e.parseResult.value.$document=e),e.state=Tl.Parsed,e}parse(e,t,n){return this.serviceRegistry.getServices(e).parser.LangiumParser.parse(t,n)}parseAsync(e,t,n){return this.serviceRegistry.getServices(e).parser.AsyncParser.parse(t,n)}createTextDocumentGetter(e,t){const n=this.serviceRegistry;let r;return()=>r??(r=ll.create(e.toString(),n.getServices(e).LanguageMetaData.languageId,0,t??""))}}class Rl{constructor(e){this.documentMap=new Map,this.langiumDocumentFactory=e.workspace.LangiumDocumentFactory,this.serviceRegistry=e.ServiceRegistry}get all(){return X(this.documentMap.values())}addDocument(e){const t=e.uri.toString();if(this.documentMap.has(t))throw new Error(`A document with the URI '${t}' is already present.`);this.documentMap.set(t,e)}getDocument(e){const t=e.toString();return this.documentMap.get(t)}async getOrCreateDocument(e,t){let n=this.getDocument(e);return n||(n=await this.langiumDocumentFactory.fromUri(e,t),this.addDocument(n),n)}createDocument(e,t,n){if(n)return this.langiumDocumentFactory.fromString(t,e,n).then(e=>(this.addDocument(e),e));{const n=this.langiumDocumentFactory.fromString(t,e);return this.addDocument(n),n}}hasDocument(e){return this.documentMap.has(e.toString())}invalidateDocument(e){const t=e.toString(),n=this.documentMap.get(t);return n&&(this.serviceRegistry.getServices(e).references.Linker.unlink(n),n.state=Tl.Changed,n.precomputedScopes=void 0,n.diagnostics=void 0),n}deleteDocument(e){const t=e.toString(),n=this.documentMap.get(t);return n&&(n.state=Tl.Changed,this.documentMap.delete(t)),n}}const $l=Symbol("ref_resolving");class El{constructor(e){this.reflection=e.shared.AstReflection,this.langiumDocuments=()=>e.shared.workspace.LangiumDocuments,this.scopeProvider=e.references.ScopeProvider,this.astNodeLocator=e.workspace.AstNodeLocator}async link(e,t=tl.CancellationToken.None){for(const n of $t(e.parseResult.value))await sl(t),At(n).forEach(t=>this.doLink(t,e))}doLink(e,t){var n;const r=e.reference;if(void 0===r._ref){r._ref=$l;try{const t=this.getCandidate(e);if(G(t))r._ref=t;else if(r._nodeDescription=t,this.langiumDocuments().hasDocument(t.documentUri)){const n=this.loadAstNode(t);r._ref=n??this.createLinkingError(e,t)}else r._ref=void 0}catch(t){console.error(`An error occurred while resolving reference to '${r.$refText}':`,t);const i=null!==(n=t.message)&&void 0!==n?n:String(t);r._ref=Object.assign(Object.assign({},e),{message:`An error occurred while resolving reference to '${r.$refText}': ${i}`})}t.references.push(r)}}unlink(e){for(const t of e.references)delete t._ref,delete t._nodeDescription;e.references=[]}getCandidate(e){return this.scopeProvider.getScope(e).getElement(e.reference.$refText)??this.createLinkingError(e)}buildReference(e,t,n,r){const i=this,s={$refNode:n,$refText:r,get ref(){var n;if(U(this._ref))return this._ref;if(function(e){return"object"==typeof e&&null!==e&&"string"==typeof e.name&&"string"==typeof e.type&&"string"==typeof e.path}(this._nodeDescription)){const n=i.loadAstNode(this._nodeDescription);this._ref=n??i.createLinkingError({reference:s,container:e,property:t},this._nodeDescription)}else if(void 0===this._ref){this._ref=$l;const r=Tt(e).$document,a=i.getLinkedNode({reference:s,container:e,property:t});if(a.error&&r&&r.state<Tl.ComputedScopes)return this._ref=void 0;this._ref=null!==(n=a.node)&&void 0!==n?n:a.error,this._nodeDescription=a.descr,null==r||r.references.push(this)}else if(this._ref===$l)throw new Error(`Cyclic reference resolution detected: ${i.astNodeLocator.getAstNodePath(e)}/${t} (symbol '${r}')`);return U(this._ref)?this._ref:void 0},get $nodeDescription(){return this._nodeDescription},get error(){return G(this._ref)?this._ref:void 0}};return s}getLinkedNode(e){var t;try{const t=this.getCandidate(e);if(G(t))return{error:t};const n=this.loadAstNode(t);return n?{node:n,descr:t}:{descr:t,error:this.createLinkingError(e,t)}}catch(n){console.error(`An error occurred while resolving reference to '${e.reference.$refText}':`,n);const r=null!==(t=n.message)&&void 0!==t?t:String(n);return{error:Object.assign(Object.assign({},e),{message:`An error occurred while resolving reference to '${e.reference.$refText}': ${r}`})}}}loadAstNode(e){if(e.node)return e.node;const t=this.langiumDocuments().getDocument(e.documentUri);return t?this.astNodeLocator.getAstNode(t.parseResult.value,e.path):void 0}createLinkingError(e,t){const n=Tt(e.container).$document;n&&n.state<Tl.ComputedScopes&&console.warn(`Attempted reference resolution before document reached ComputedScopes state (${n.uri}).`);const r=this.reflection.getReferenceType(e);return Object.assign(Object.assign({},e),{message:`Could not resolve reference to ${r} named '${e.reference.$refText}'.`,targetDescription:t})}}class Al{getName(e){if(function(e){return"string"==typeof e.name}(e))return e.name}getNameNode(e){return Yt(e.$cstNode,"name")}}class kl{constructor(e){this.nameProvider=e.references.NameProvider,this.index=e.shared.workspace.IndexManager,this.nodeLocator=e.workspace.AstNodeLocator}findDeclaration(e){if(e){const t=function(e){var t;const n=e.astNode;for(;n===(null===(t=e.container)||void 0===t?void 0:t.astNode);){const t=gt(e.grammarSource,Ye);if(t)return t;e=e.container}}(e),n=e.astNode;if(t&&n){const r=n[t.feature];if(F(r))return r.ref;if(Array.isArray(r))for(const t of r)if(F(t)&&t.$refNode&&t.$refNode.offset<=e.offset&&t.$refNode.end>=e.end)return t.ref}if(n){const t=this.nameProvider.getNameNode(n);if(t&&(t===e||function(e,t){for(;e.container;)if((e=e.container)===t)return!0;return!1}(e,t)))return n}}}findDeclarationNode(e){const t=this.findDeclaration(e);if(null!=t&&t.$cstNode)return this.nameProvider.getNameNode(t)??t.$cstNode}findReferences(e,t){const n=[];if(t.includeDeclaration){const t=this.getReferenceToSelf(e);t&&n.push(t)}let r=this.index.findAllReferences(e,this.nodeLocator.getAstNodePath(e));return t.documentUri&&(r=r.filter(e=>yl.equals(e.sourceUri,t.documentUri))),n.push(...r),X(n)}getReferenceToSelf(e){const t=this.nameProvider.getNameNode(e);if(t){const n=yt(e),r=this.nodeLocator.getAstNodePath(e);return{sourceUri:n.uri,sourcePath:r,targetUri:n.uri,targetPath:r,segment:ne(t),local:!0}}}}class xl{constructor(e){if(this.map=new Map,e)for(const[t,n]of e)this.add(t,n)}get size(){return Z.sum(X(this.map.values()).map(e=>e.length))}clear(){this.map.clear()}delete(e,t){if(void 0===t)return this.map.delete(e);{const n=this.map.get(e);if(n){const r=n.indexOf(t);if(r>=0)return 1===n.length?this.map.delete(e):n.splice(r,1),!0}return!1}}get(e){var t;return null!==(t=this.map.get(e))&&void 0!==t?t:[]}has(e,t){if(void 0===t)return this.map.has(e);{const n=this.map.get(e);return!!n&&n.indexOf(t)>=0}}add(e,t){return this.map.has(e)?this.map.get(e).push(t):this.map.set(e,[t]),this}addAll(e,t){return this.map.has(e)?this.map.get(e).push(...t):this.map.set(e,Array.from(t)),this}forEach(e){this.map.forEach((t,n)=>t.forEach(t=>e(t,n,this)))}[Symbol.iterator](){return this.entries().iterator()}entries(){return X(this.map.entries()).flatMap(([e,t])=>t.map(t=>[e,t]))}keys(){return X(this.map.keys())}values(){return X(this.map.values()).flat()}entriesGroupedByKey(){return X(this.map.entries())}}class Il{get size(){return this.map.size}constructor(e){if(this.map=new Map,this.inverse=new Map,e)for(const[t,n]of e)this.set(t,n)}clear(){this.map.clear(),this.inverse.clear()}set(e,t){return this.map.set(e,t),this.inverse.set(t,e),this}get(e){return this.map.get(e)}getKey(e){return this.inverse.get(e)}delete(e){const t=this.map.get(e);return void 0!==t&&(this.map.delete(e),this.inverse.delete(t),!0)}}class Sl{constructor(e){this.nameProvider=e.references.NameProvider,this.descriptions=e.workspace.AstNodeDescriptionProvider}async computeExports(e,t=tl.CancellationToken.None){return this.computeExportsForNode(e.parseResult.value,e,void 0,t)}async computeExportsForNode(e,t,n=vt,r=tl.CancellationToken.None){const i=[];this.exportNode(e,i,t);for(const s of n(e))await sl(r),this.exportNode(s,i,t);return i}exportNode(e,t,n){const r=this.nameProvider.getName(e);r&&t.push(this.descriptions.createDescription(e,r,n))}async computeLocalScopes(e,t=tl.CancellationToken.None){const n=e.parseResult.value,r=new xl;for(const i of Rt(n))await sl(t),this.processNode(i,e,r);return r}processNode(e,t,n){const r=e.$container;if(r){const i=this.nameProvider.getName(e);i&&n.add(r,this.descriptions.createDescription(e,i,t))}}}class Cl{constructor(e,t,n){var r;this.elements=e,this.outerScope=t,this.caseInsensitive=null!==(r=null==n?void 0:n.caseInsensitive)&&void 0!==r&&r}getAllElements(){return this.outerScope?this.elements.concat(this.outerScope.getAllElements()):this.elements}getElement(e){return(this.caseInsensitive?this.elements.find(t=>t.name.toLowerCase()===e.toLowerCase()):this.elements.find(t=>t.name===e))||(this.outerScope?this.outerScope.getElement(e):void 0)}}class Nl{constructor(e,t,n){var r;this.elements=new Map,this.caseInsensitive=null!==(r=null==n?void 0:n.caseInsensitive)&&void 0!==r&&r;for(const t of e){const e=this.caseInsensitive?t.name.toLowerCase():t.name;this.elements.set(e,t)}this.outerScope=t}getElement(e){const t=this.caseInsensitive?e.toLowerCase():e;return this.elements.get(t)||(this.outerScope?this.outerScope.getElement(e):void 0)}getAllElements(){let e=X(this.elements.values());return this.outerScope&&(e=e.concat(this.outerScope.getAllElements())),e}}class wl{constructor(){this.toDispose=[],this.isDisposed=!1}onDispose(e){this.toDispose.push(e)}dispose(){this.throwIfDisposed(),this.clear(),this.isDisposed=!0,this.toDispose.forEach(e=>e.dispose())}throwIfDisposed(){if(this.isDisposed)throw new Error("This cache has already been disposed")}}class Ll extends wl{constructor(){super(...arguments),this.cache=new Map}has(e){return this.throwIfDisposed(),this.cache.has(e)}set(e,t){this.throwIfDisposed(),this.cache.set(e,t)}get(e,t){if(this.throwIfDisposed(),this.cache.has(e))return this.cache.get(e);if(t){const n=t();return this.cache.set(e,n),n}}delete(e){return this.throwIfDisposed(),this.cache.delete(e)}clear(){this.throwIfDisposed(),this.cache.clear()}}class bl extends wl{constructor(e){super(),this.cache=new Map,this.converter=e??(e=>e)}has(e,t){return this.throwIfDisposed(),this.cacheForContext(e).has(t)}set(e,t,n){this.throwIfDisposed(),this.cacheForContext(e).set(t,n)}get(e,t,n){this.throwIfDisposed();const r=this.cacheForContext(e);if(r.has(t))return r.get(t);if(n){const e=n();return r.set(t,e),e}}delete(e,t){return this.throwIfDisposed(),this.cacheForContext(e).delete(t)}clear(e){if(this.throwIfDisposed(),e){const t=this.converter(e);this.cache.delete(t)}else this.cache.clear()}cacheForContext(e){const t=this.converter(e);let n=this.cache.get(t);return n||(n=new Map,this.cache.set(t,n)),n}}class Ol extends Ll{constructor(e,t){super(),t?(this.toDispose.push(e.workspace.DocumentBuilder.onBuildPhase(t,()=>{this.clear()})),this.toDispose.push(e.workspace.DocumentBuilder.onUpdate((e,t)=>{t.length>0&&this.clear()}))):this.toDispose.push(e.workspace.DocumentBuilder.onUpdate(()=>{this.clear()}))}}class _l{constructor(e){this.reflection=e.shared.AstReflection,this.nameProvider=e.references.NameProvider,this.descriptions=e.workspace.AstNodeDescriptionProvider,this.indexManager=e.shared.workspace.IndexManager,this.globalScopeCache=new Ol(e.shared)}getScope(e){const t=[],n=this.reflection.getReferenceType(e),r=yt(e.container).precomputedScopes;if(r){let i=e.container;do{const e=r.get(i);e.length>0&&t.push(X(e).filter(e=>this.reflection.isSubtype(e.type,n))),i=i.$container}while(i)}let i=this.getGlobalScope(n,e);for(let e=t.length-1;e>=0;e--)i=this.createScope(t[e],i);return i}createScope(e,t,n){return new Cl(X(e),t,n)}createScopeForNodes(e,t,n){const r=X(e).map(e=>{const t=this.nameProvider.getName(e);if(t)return this.descriptions.createDescription(e,t)}).nonNullable();return new Cl(r,t,n)}getGlobalScope(e,t){return this.globalScopeCache.get(e,()=>new Nl(this.indexManager.allElements(e)))}}function Pl(e){return"object"==typeof e&&!!e&&("$ref"in e||"$error"in e)}class Ml{constructor(e){this.ignoreProperties=new Set(["$container","$containerProperty","$containerIndex","$document","$cstNode"]),this.langiumDocuments=e.shared.workspace.LangiumDocuments,this.astNodeLocator=e.workspace.AstNodeLocator,this.nameProvider=e.references.NameProvider,this.commentProvider=e.documentation.CommentProvider}serialize(e,t){const n=t??{},r=null==t?void 0:t.replacer,i=(e,t)=>this.replacer(e,t,n),s=r?(e,t)=>r(e,t,i):i;try{return this.currentDocument=yt(e),JSON.stringify(e,s,null==t?void 0:t.space)}finally{this.currentDocument=void 0}}deserialize(e,t){const n=t??{},r=JSON.parse(e);return this.linkNode(r,r,n),r}replacer(e,t,{refText:n,sourceText:r,textRegions:i,comments:s,uriConverter:a}){var o,l,c,u;if(!this.ignoreProperties.has(e)){if(F(t)){const e=t.ref,r=n?t.$refText:void 0;if(e){const n=yt(e);let i="";return this.currentDocument&&this.currentDocument!==n&&(i=a?a(n.uri,t):n.uri.toString()),{$ref:`${i}#${this.astNodeLocator.getAstNodePath(e)}`,$refText:r}}return{$error:null!==(l=null===(o=t.error)||void 0===o?void 0:o.message)&&void 0!==l?l:"Could not resolve reference",$refText:r}}if(U(t)){let n;if(i&&(n=this.addAstNodeRegionWithAssignmentsTo(Object.assign({},t)),(!e||t.$document)&&null!=n&&n.$textRegion&&(n.$textRegion.documentURI=null===(c=this.currentDocument)||void 0===c?void 0:c.uri.toString())),r&&!e&&(n??(n=Object.assign({},t)),n.$sourceText=null===(u=t.$cstNode)||void 0===u?void 0:u.text),s){n??(n=Object.assign({},t));const e=this.commentProvider.getComment(t);e&&(n.$comment=e.replace(/\r/g,""))}return n??t}return t}}addAstNodeRegionWithAssignmentsTo(e){const t=e=>({offset:e.offset,end:e.end,length:e.length,range:e.range});if(e.$cstNode){const n=(e.$textRegion=t(e.$cstNode)).assignments={};return Object.keys(e).filter(e=>!e.startsWith("$")).forEach(r=>{const i=function(e,t){return e&&t?qt(e,t,e.astNode,!0):[]}(e.$cstNode,r).map(t);0!==i.length&&(n[r]=i)}),e}}linkNode(e,t,n,r,i,s){for(const[r,i]of Object.entries(e))if(Array.isArray(i))for(let s=0;s<i.length;s++){const a=i[s];Pl(a)?i[s]=this.reviveReference(e,r,t,a,n):U(a)&&this.linkNode(a,t,n,e,r,s)}else Pl(i)?e[r]=this.reviveReference(e,r,t,i,n):U(i)&&this.linkNode(i,t,n,e,r);const a=e;a.$container=r,a.$containerProperty=i,a.$containerIndex=s}reviveReference(e,t,n,r,i){let s=r.$refText,a=r.$error;if(r.$ref){const e=this.getRefNode(n,r.$ref,i.uriConverter);if(U(e))return s||(s=this.nameProvider.getName(e)),{$refText:s??"",ref:e};a=e}if(a){const n={$refText:s??""};return n.error={container:e,property:t,message:a,reference:n},n}}getRefNode(e,t,n){try{const r=t.indexOf("#");if(0===r)return this.astNodeLocator.getAstNode(e,t.substring(1))||"Could not resolve path: "+t;if(r<0){const e=n?n(t):ml.parse(t),r=this.langiumDocuments.getDocument(e);return r?r.parseResult.value:"Could not find document for URI: "+t}const i=n?n(t.substring(0,r)):ml.parse(t.substring(0,r)),s=this.langiumDocuments.getDocument(i);return s?r===t.length-1?s.parseResult.value:this.astNodeLocator.getAstNode(s.parseResult.value,t.substring(r+1))||"Could not resolve URI: "+t:"Could not find document for URI: "+t}catch(e){return String(e)}}}class Dl{get map(){return this.fileExtensionMap}constructor(e){this.languageIdMap=new Map,this.fileExtensionMap=new Map,this.textDocuments=null==e?void 0:e.workspace.TextDocuments}register(e){const t=e.LanguageMetaData;for(const n of t.fileExtensions)this.fileExtensionMap.has(n)&&console.warn(`The file extension ${n} is used by multiple languages. It is now assigned to '${t.languageId}'.`),this.fileExtensionMap.set(n,e);this.languageIdMap.set(t.languageId,e),1===this.languageIdMap.size?this.singleton=e:this.singleton=void 0}getServices(e){var t,n;if(void 0!==this.singleton)return this.singleton;if(0===this.languageIdMap.size)throw new Error("The service registry is empty. Use `register` to register the services of a language.");const r=null===(n=null===(t=this.textDocuments)||void 0===t?void 0:t.get(e))||void 0===n?void 0:n.languageId;if(void 0!==r){const e=this.languageIdMap.get(r);if(e)return e}const i=yl.extname(e),s=this.fileExtensionMap.get(i);if(!s)throw r?new Error(`The service registry contains no services for the extension '${i}' for language '${r}'.`):new Error(`The service registry contains no services for the extension '${i}'.`);return s}hasServices(e){try{return this.getServices(e),!0}catch{return!1}}get all(){return Array.from(this.languageIdMap.values())}}function Ul(e){return{code:e}}var Fl,Gl;!function(e){e.all=["fast","slow","built-in"]}(Fl||(Fl={}));class Bl{constructor(e){this.entries=new xl,this.entriesBefore=[],this.entriesAfter=[],this.reflection=e.shared.AstReflection}register(e,t=this,n="fast"){if("built-in"===n)throw new Error("The 'built-in' category is reserved for lexer, parser, and linker errors.");for(const[r,i]of Object.entries(e)){const e=i;if(Array.isArray(e))for(const i of e){const e={check:this.wrapValidationException(i,t),category:n};this.addEntry(r,e)}else if("function"==typeof e){const i={check:this.wrapValidationException(e,t),category:n};this.addEntry(r,i)}else ae()}}wrapValidationException(e,t){return async(n,r,i)=>{await this.handleException(()=>e.call(t,n,r,i),"An error occurred during validation",r,n)}}async handleException(e,t,n,r){try{await e()}catch(e){if(il(e))throw e;console.error(`${t}:`,e),e instanceof Error&&e.stack&&console.error(e.stack),n("error",`${t}: ${e instanceof Error?e.message:String(e)}`,{node:r})}}addEntry(e,t){if("AstNode"!==e)for(const n of this.reflection.getAllSubTypes(e))this.entries.add(n,t);else this.entries.add("AstNode",t)}getChecks(e,t){let n=X(this.entries.get(e)).concat(this.entries.get("AstNode"));return t&&(n=n.filter(e=>t.includes(e.category))),n.map(e=>e.check)}registerBeforeDocument(e,t=this){this.entriesBefore.push(this.wrapPreparationException(e,"An error occurred during set-up of the validation",t))}registerAfterDocument(e,t=this){this.entriesAfter.push(this.wrapPreparationException(e,"An error occurred during tear-down of the validation",t))}wrapPreparationException(e,t,n){return async(r,i,s,a)=>{await this.handleException(()=>e.call(n,r,i,s,a),t,i,r)}}get checksBefore(){return this.entriesBefore}get checksAfter(){return this.entriesAfter}}class Kl{constructor(e){this.validationRegistry=e.validation.ValidationRegistry,this.metadata=e.LanguageMetaData}async validateDocument(e,t={},n=tl.CancellationToken.None){const r=e.parseResult,i=[];if(await sl(n),(!t.categories||t.categories.includes("built-in"))&&(this.processLexingErrors(r,i,t),t.stopAfterLexingErrors&&i.some(e=>{var t;return(null===(t=e.data)||void 0===t?void 0:t.code)===Gl.LexingError})||(this.processParsingErrors(r,i,t),t.stopAfterParsingErrors&&i.some(e=>{var t;return(null===(t=e.data)||void 0===t?void 0:t.code)===Gl.ParsingError}))||(this.processLinkingErrors(e,i,t),t.stopAfterLinkingErrors&&i.some(e=>{var t;return(null===(t=e.data)||void 0===t?void 0:t.code)===Gl.LinkingError}))))return i;try{i.push(...await this.validateAst(r.value,t,n))}catch(e){if(il(e))throw e;console.error("An error occurred during validation:",e)}return await sl(n),i}processLexingErrors(e,t,n){var r,i,s;const a=[...e.lexerErrors,...null!==(i=null===(r=e.lexerReport)||void 0===r?void 0:r.diagnostics)&&void 0!==i?i:[]];for(const e of a){const n=null!==(s=e.severity)&&void 0!==s?s:"error",r={severity:jl(n),range:{start:{line:e.line-1,character:e.column-1},end:{line:e.line-1,character:e.column+e.length-1}},message:e.message,data:Hl(n),source:this.getSource()};t.push(r)}}processParsingErrors(e,t,n){for(const n of e.parserErrors){let e;if(isNaN(n.token.startOffset)){if("previousToken"in n){const t=n.previousToken;if(isNaN(t.startOffset)){const t={line:0,character:0};e={start:t,end:t}}else{const n={line:t.endLine-1,character:t.endColumn};e={start:n,end:n}}}}else e=te(n.token);if(e){const r={severity:jl("error"),range:e,message:n.message,data:Ul(Gl.ParsingError),source:this.getSource()};t.push(r)}}}processLinkingErrors(e,t,n){for(const n of e.references){const e=n.error;if(e){const n={node:e.container,property:e.property,index:e.index,data:{code:Gl.LinkingError,containerType:e.container.$type,property:e.property,refText:e.reference.$refText}};t.push(this.toDiagnostic("error",e.message,n))}}}async validateAst(e,t,n=tl.CancellationToken.None){const r=[],i=(e,t,n)=>{r.push(this.toDiagnostic(e,t,n))};return await this.validateAstBefore(e,t,i,n),await this.validateAstNodes(e,t,i,n),await this.validateAstAfter(e,t,i,n),r}async validateAstBefore(e,t,n,r=tl.CancellationToken.None){var i;const s=this.validationRegistry.checksBefore;for(const a of s)await sl(r),await a(e,n,null!==(i=t.categories)&&void 0!==i?i:[],r)}async validateAstNodes(e,t,n,r=tl.CancellationToken.None){await Promise.all($t(e).map(async e=>{await sl(r);const i=this.validationRegistry.getChecks(e.$type,t.categories);for(const t of i)await t(e,n,r)}))}async validateAstAfter(e,t,n,r=tl.CancellationToken.None){var i;const s=this.validationRegistry.checksAfter;for(const a of s)await sl(r),await a(e,n,null!==(i=t.categories)&&void 0!==i?i:[],r)}toDiagnostic(e,t,n){return{message:t,range:Vl(n),severity:jl(e),code:n.code,codeDescription:n.codeDescription,tags:n.tags,relatedInformation:n.relatedInformation,data:n.data,source:this.getSource()}}getSource(){return this.metadata.languageId}}function Vl(e){if(e.range)return e.range;let t;return"string"==typeof e.property?t=Yt(e.node.$cstNode,e.property,e.index):"string"==typeof e.keyword&&(t=function(e,t,n){if(!e)return;const r=function(e,t,n){if(e.astNode!==n)return[];if(nt(e.grammarSource)&&e.grammarSource.value===t)return[e];const r=ee(e).iterator();let i;const s=[];do{if(i=r.next(),!i.done){const e=i.value;e.astNode===n?nt(e.grammarSource)&&e.grammarSource.value===t&&s.push(e):r.prune()}}while(!i.done);return s}(e,t,null==e?void 0:e.astNode);return 0!==r.length?r[n=void 0!==n?Math.max(0,Math.min(n,r.length-1)):0]:void 0}(e.node.$cstNode,e.keyword,e.index)),t??(t=e.node.$cstNode),t?t.range:{start:{line:0,character:0},end:{line:0,character:0}}}function jl(e){switch(e){case"error":return 1;case"warning":return 2;case"info":return 3;case"hint":return 4;default:throw new Error("Invalid diagnostic severity: "+e)}}function Hl(e){switch(e){case"error":return Ul(Gl.LexingError);case"warning":return Ul(Gl.LexingWarning);case"info":return Ul(Gl.LexingInfo);case"hint":return Ul(Gl.LexingHint);default:throw new Error("Invalid diagnostic severity: "+e)}}!function(e){e.LexingError="lexing-error",e.LexingWarning="lexing-warning",e.LexingInfo="lexing-info",e.LexingHint="lexing-hint",e.ParsingError="parsing-error",e.LinkingError="linking-error"}(Gl||(Gl={}));class Wl{constructor(e){this.astNodeLocator=e.workspace.AstNodeLocator,this.nameProvider=e.references.NameProvider}createDescription(e,t,n){const r=n??yt(e);t??(t=this.nameProvider.getName(e));const i=this.astNodeLocator.getAstNodePath(e);if(!t)throw new Error(`Node at path ${i} has no name.`);let s;const a=()=>{var t;return s??(s=ne(null!==(t=this.nameProvider.getNameNode(e))&&void 0!==t?t:e.$cstNode))};return{node:e,name:t,get nameSegment(){return a()},selectionSegment:ne(e.$cstNode),type:e.$type,documentUri:r.uri,path:i}}}class zl{constructor(e){this.nodeLocator=e.workspace.AstNodeLocator}async createDescriptions(e,t=tl.CancellationToken.None){const n=[],r=e.parseResult.value;for(const e of $t(r))await sl(t),At(e).filter(e=>!G(e)).forEach(e=>{const t=this.createDescription(e);t&&n.push(t)});return n}createDescription(e){const t=e.reference.$nodeDescription,n=e.reference.$refNode;if(!t||!n)return;const r=yt(e.container).uri;return{sourceUri:r,sourcePath:this.nodeLocator.getAstNodePath(e.container),targetUri:t.documentUri,targetPath:t.path,segment:ne(n),local:yl.equals(t.documentUri,r)}}}class Yl{constructor(){this.segmentSeparator="/",this.indexSeparator="@"}getAstNodePath(e){if(e.$container){const t=this.getAstNodePath(e.$container),n=this.getPathSegment(e);return t+this.segmentSeparator+n}return""}getPathSegment({$containerProperty:e,$containerIndex:t}){if(!e)throw new Error("Missing '$containerProperty' in AST node.");return void 0!==t?e+this.indexSeparator+t:e}getAstNode(e,t){return t.split(this.segmentSeparator).reduce((e,t)=>{if(!e||0===t.length)return e;const n=t.indexOf(this.indexSeparator);if(n>0){const r=t.substring(0,n),i=parseInt(t.substring(n+1)),s=e[r];return null==s?void 0:s[i]}return e[t]},e)}}var ql,Xl=el();class Ql{constructor(e){this._ready=new al,this.settings={},this.workspaceConfig=!1,this.onConfigurationSectionUpdateEmitter=new Xl.Emitter,this.serviceRegistry=e.ServiceRegistry}get ready(){return this._ready.promise}initialize(e){var t,n;this.workspaceConfig=null!==(n=null===(t=e.capabilities.workspace)||void 0===t?void 0:t.configuration)&&void 0!==n&&n}async initialized(e){if(this.workspaceConfig){if(e.register){const t=this.serviceRegistry.all;e.register({section:t.map(e=>this.toSectionName(e.LanguageMetaData.languageId))})}if(e.fetchConfiguration){const t=this.serviceRegistry.all.map(e=>({section:this.toSectionName(e.LanguageMetaData.languageId)})),n=await e.fetchConfiguration(t);t.forEach((e,t)=>{this.updateSectionConfiguration(e.section,n[t])})}}this._ready.resolve()}updateConfiguration(e){e.settings&&Object.keys(e.settings).forEach(t=>{const n=e.settings[t];this.updateSectionConfiguration(t,n),this.onConfigurationSectionUpdateEmitter.fire({section:t,configuration:n})})}updateSectionConfiguration(e,t){this.settings[e]=t}async getConfiguration(e,t){await this.ready;const n=this.toSectionName(e);if(this.settings[n])return this.settings[n][t]}toSectionName(e){return`${e}`}get onConfigurationSectionUpdate(){return this.onConfigurationSectionUpdateEmitter.event}}!function(e){e.create=function(e){return{dispose:async()=>await e()}}}(ql||(ql={}));class Zl{constructor(e){this.updateBuildOptions={validation:{categories:["built-in","fast"]}},this.updateListeners=[],this.buildPhaseListeners=new xl,this.documentPhaseListeners=new xl,this.buildState=new Map,this.documentBuildWaiters=new Map,this.currentState=Tl.Changed,this.langiumDocuments=e.workspace.LangiumDocuments,this.langiumDocumentFactory=e.workspace.LangiumDocumentFactory,this.textDocuments=e.workspace.TextDocuments,this.indexManager=e.workspace.IndexManager,this.serviceRegistry=e.ServiceRegistry}async build(e,t={},n=tl.CancellationToken.None){var r,i;for(const n of e){const e=n.uri.toString();if(n.state===Tl.Validated){if("boolean"==typeof t.validation&&t.validation)n.state=Tl.IndexedReferences,n.diagnostics=void 0,this.buildState.delete(e);else if("object"==typeof t.validation){const s=this.buildState.get(e),a=null===(r=null==s?void 0:s.result)||void 0===r?void 0:r.validationChecks;if(a){const r=(null!==(i=t.validation.categories)&&void 0!==i?i:Fl.all).filter(e=>!a.includes(e));r.length>0&&(this.buildState.set(e,{completed:!1,options:{validation:Object.assign(Object.assign({},t.validation),{categories:r})},result:s.result}),n.state=Tl.IndexedReferences)}}}else this.buildState.delete(e)}this.currentState=Tl.Changed,await this.emitUpdate(e.map(e=>e.uri),[]),await this.buildDocuments(e,t,n)}async update(e,t,n=tl.CancellationToken.None){this.currentState=Tl.Changed;for(const e of t)this.langiumDocuments.deleteDocument(e),this.buildState.delete(e.toString()),this.indexManager.remove(e);for(const t of e){if(!this.langiumDocuments.invalidateDocument(t)){const e=this.langiumDocumentFactory.fromModel({$type:"INVALID"},t);e.state=Tl.Changed,this.langiumDocuments.addDocument(e)}this.buildState.delete(t.toString())}const r=X(e).concat(t).map(e=>e.toString()).toSet();this.langiumDocuments.all.filter(e=>!r.has(e.uri.toString())&&this.shouldRelink(e,r)).forEach(e=>{this.serviceRegistry.getServices(e.uri).references.Linker.unlink(e),e.state=Math.min(e.state,Tl.ComputedScopes),e.diagnostics=void 0}),await this.emitUpdate(e,t),await sl(n);const i=this.sortDocuments(this.langiumDocuments.all.filter(e=>{var t;return e.state<Tl.Linked||!(null!==(t=this.buildState.get(e.uri.toString()))&&void 0!==t&&t.completed)}).toArray());await this.buildDocuments(i,this.updateBuildOptions,n)}async emitUpdate(e,t){await Promise.all(this.updateListeners.map(n=>n(e,t)))}sortDocuments(e){let t=0,n=e.length-1;for(;t<n;){for(;t<e.length&&this.hasTextDocument(e[t]);)t++;for(;n>=0&&!this.hasTextDocument(e[n]);)n--;t<n&&([e[t],e[n]]=[e[n],e[t]])}return e}hasTextDocument(e){var t;return!(null===(t=this.textDocuments)||void 0===t||!t.get(e.uri))}shouldRelink(e,t){return!!e.references.some(e=>void 0!==e.error)||this.indexManager.isAffected(e,t)}onUpdate(e){return this.updateListeners.push(e),ql.create(()=>{const t=this.updateListeners.indexOf(e);t>=0&&this.updateListeners.splice(t,1)})}async buildDocuments(e,t,n){this.prepareBuild(e,t),await this.runCancelable(e,Tl.Parsed,n,e=>this.langiumDocumentFactory.update(e,n)),await this.runCancelable(e,Tl.IndexedContent,n,e=>this.indexManager.updateContent(e,n)),await this.runCancelable(e,Tl.ComputedScopes,n,async e=>{const t=this.serviceRegistry.getServices(e.uri).references.ScopeComputation;e.precomputedScopes=await t.computeLocalScopes(e,n)}),await this.runCancelable(e,Tl.Linked,n,e=>this.serviceRegistry.getServices(e.uri).references.Linker.link(e,n)),await this.runCancelable(e,Tl.IndexedReferences,n,e=>this.indexManager.updateReferences(e,n));const r=e.filter(e=>this.shouldValidate(e));await this.runCancelable(r,Tl.Validated,n,e=>this.validate(e,n));for(const t of e){const e=this.buildState.get(t.uri.toString());e&&(e.completed=!0)}}prepareBuild(e,t){for(const n of e){const e=n.uri.toString(),r=this.buildState.get(e);(!r||r.completed)&&this.buildState.set(e,{completed:!1,options:t,result:null==r?void 0:r.result})}}async runCancelable(e,t,n,r){const i=e.filter(e=>e.state<t);for(const e of i)await sl(n),await r(e),e.state=t,await this.notifyDocumentPhase(e,t,n);const s=e.filter(e=>e.state===t);await this.notifyBuildPhase(s,t,n),this.currentState=t}onBuildPhase(e,t){return this.buildPhaseListeners.add(e,t),ql.create(()=>{this.buildPhaseListeners.delete(e,t)})}onDocumentPhase(e,t){return this.documentPhaseListeners.add(e,t),ql.create(()=>{this.documentPhaseListeners.delete(e,t)})}waitUntil(e,t,n){let r;if(t&&"path"in t?r=t:n=t,n??(n=tl.CancellationToken.None),r){const t=this.langiumDocuments.getDocument(r);if(t&&t.state>e)return Promise.resolve(r)}return this.currentState>=e?Promise.resolve(void 0):n.isCancellationRequested?Promise.reject(rl):new Promise((t,i)=>{const s=this.onBuildPhase(e,()=>{if(s.dispose(),a.dispose(),r){const e=this.langiumDocuments.getDocument(r);t(null==e?void 0:e.uri)}else t(void 0)}),a=n.onCancellationRequested(()=>{s.dispose(),a.dispose(),i(rl)})})}async notifyDocumentPhase(e,t,n){const r=this.documentPhaseListeners.get(t).slice();for(const t of r)try{await t(e,n)}catch(e){if(!il(e))throw e}}async notifyBuildPhase(e,t,n){if(0===e.length)return;const r=this.buildPhaseListeners.get(t).slice();for(const t of r)await sl(n),await t(e,n)}shouldValidate(e){return!!this.getBuildOptions(e).validation}async validate(e,t){var n,r;const i=this.serviceRegistry.getServices(e.uri).validation.DocumentValidator,s=this.getBuildOptions(e).validation,a="object"==typeof s?s:void 0,o=await i.validateDocument(e,a,t);e.diagnostics?e.diagnostics.push(...o):e.diagnostics=o;const l=this.buildState.get(e.uri.toString());if(l){null!==(n=l.result)&&void 0!==n||(l.result={});const e=null!==(r=null==a?void 0:a.categories)&&void 0!==r?r:Fl.all;l.result.validationChecks?l.result.validationChecks.push(...e):l.result.validationChecks=[...e]}}getBuildOptions(e){var t,n;return null!==(n=null===(t=this.buildState.get(e.uri.toString()))||void 0===t?void 0:t.options)&&void 0!==n?n:{}}}class Jl{constructor(e){this.symbolIndex=new Map,this.symbolByTypeIndex=new bl,this.referenceIndex=new Map,this.documents=e.workspace.LangiumDocuments,this.serviceRegistry=e.ServiceRegistry,this.astReflection=e.AstReflection}findAllReferences(e,t){const n=yt(e).uri,r=[];return this.referenceIndex.forEach(e=>{e.forEach(e=>{yl.equals(e.targetUri,n)&&e.targetPath===t&&r.push(e)})}),X(r)}allElements(e,t){let n=X(this.symbolIndex.keys());return t&&(n=n.filter(e=>!t||t.has(e))),n.map(t=>this.getFileDescriptions(t,e)).flat()}getFileDescriptions(e,t){var n;return t?this.symbolByTypeIndex.get(e,t,()=>{var n;return(null!==(n=this.symbolIndex.get(e))&&void 0!==n?n:[]).filter(e=>this.astReflection.isSubtype(e.type,t))}):null!==(n=this.symbolIndex.get(e))&&void 0!==n?n:[]}remove(e){const t=e.toString();this.symbolIndex.delete(t),this.symbolByTypeIndex.clear(t),this.referenceIndex.delete(t)}async updateContent(e,t=tl.CancellationToken.None){const n=await this.serviceRegistry.getServices(e.uri).references.ScopeComputation.computeExports(e,t),r=e.uri.toString();this.symbolIndex.set(r,n),this.symbolByTypeIndex.clear(r)}async updateReferences(e,t=tl.CancellationToken.None){const n=await this.serviceRegistry.getServices(e.uri).workspace.ReferenceDescriptionProvider.createDescriptions(e,t);this.referenceIndex.set(e.uri.toString(),n)}isAffected(e,t){const n=this.referenceIndex.get(e.uri.toString());return!!n&&n.some(e=>!e.local&&t.has(e.targetUri.toString()))}}class ec{constructor(e){this.initialBuildOptions={},this._ready=new al,this.serviceRegistry=e.ServiceRegistry,this.langiumDocuments=e.workspace.LangiumDocuments,this.documentBuilder=e.workspace.DocumentBuilder,this.fileSystemProvider=e.workspace.FileSystemProvider,this.mutex=e.workspace.WorkspaceLock}get ready(){return this._ready.promise}get workspaceFolders(){return this.folders}initialize(e){var t;this.folders=null!==(t=e.workspaceFolders)&&void 0!==t?t:void 0}initialized(e){return this.mutex.write(e=>{var t;return this.initializeWorkspace(null!==(t=this.folders)&&void 0!==t?t:[],e)})}async initializeWorkspace(e,t=tl.CancellationToken.None){const n=await this.performStartup(e);await sl(t),await this.documentBuilder.build(n,this.initialBuildOptions,t)}async performStartup(e){const t=this.serviceRegistry.all.flatMap(e=>e.LanguageMetaData.fileExtensions),n=[],r=e=>{n.push(e),this.langiumDocuments.hasDocument(e.uri)||this.langiumDocuments.addDocument(e)};return await this.loadAdditionalDocuments(e,r),await Promise.all(e.map(e=>[e,this.getRootFolder(e)]).map(async e=>this.traverseFolder(...e,t,r))),this._ready.resolve(),n}loadAdditionalDocuments(e,t){return Promise.resolve()}getRootFolder(e){return ml.parse(e.uri)}async traverseFolder(e,t,n,r){const i=await this.fileSystemProvider.readDirectory(t);await Promise.all(i.map(async t=>{if(this.includeEntry(e,t,n))if(t.isDirectory)await this.traverseFolder(e,t.uri,n,r);else if(t.isFile){const e=await this.langiumDocuments.getOrCreateDocument(t.uri);r(e)}}))}includeEntry(e,t,n){const r=yl.basename(t.uri);if(r.startsWith("."))return!1;if(t.isDirectory)return"node_modules"!==r&&"out"!==r;if(t.isFile){const e=yl.extname(t.uri);return n.includes(e)}return!1}}class tc{buildUnexpectedCharactersMessage(e,t,n,r,i){return Tr.buildUnexpectedCharactersMessage(e,t,n,r,i)}buildUnableToPopLexerModeMessage(e){return Tr.buildUnableToPopLexerModeMessage(e)}}const nc={mode:"full"};class rc{constructor(e){this.errorMessageProvider=e.parser.LexerErrorMessageProvider,this.tokenBuilder=e.parser.TokenBuilder;const t=this.tokenBuilder.buildTokens(e.Grammar,{caseInsensitive:e.LanguageMetaData.caseInsensitive});this.tokenTypes=this.toTokenTypeDictionary(t);const n=sc(t)?Object.values(t):t,r="production"===e.LanguageMetaData.mode;this.chevrotainLexer=new $r(n,{positionTracking:"full",skipValidations:r,errorMessageProvider:this.errorMessageProvider})}get definition(){return this.tokenTypes}tokenize(e,t=nc){var n,r,i;const s=this.chevrotainLexer.tokenize(e);return{tokens:s.tokens,errors:s.errors,hidden:null!==(n=s.groups.hidden)&&void 0!==n?n:[],report:null===(i=(r=this.tokenBuilder).flushLexingReport)||void 0===i?void 0:i.call(r,e)}}toTokenTypeDictionary(e){if(sc(e))return e;const t=ic(e)?Object.values(e.modes).flat():e,n={};return t.forEach(e=>n[e.name]=e),n}}function ic(e){return e&&"modes"in e&&"defaultMode"in e}function sc(e){return!function(e){return Array.isArray(e)&&(0===e.length||"name"in e[0])}(e)&&!ic(e)}function ac(e){let t="";return t="string"==typeof e?e:e.text,t.split(Ut)}const oc=/\s*(@([\p{L}][\p{L}\p{N}]*)?)/uy,lc=/\{(@[\p{L}][\p{L}\p{N}]*)(\s*)([^\r\n}]+)?\}/gu;function cc(e,t,n,r){const i=[];if(0===e.length){const e=Ys.create(n,r),s=Ys.create(n,r+t.length);i.push({type:"text",content:t,range:qs.create(e,s)})}else{let s=0;for(const a of e){const e=a.index,o=t.substring(s,e);o.length>0&&i.push({type:"text",content:t.substring(s,e),range:qs.create(Ys.create(n,s+r),Ys.create(n,e+r))});let l=o.length+1;const c=a[1];if(i.push({type:"inline-tag",content:c,range:qs.create(Ys.create(n,s+l+r),Ys.create(n,s+l+c.length+r))}),l+=c.length,4===a.length){l+=a[2].length;const e=a[3];i.push({type:"text",content:e,range:qs.create(Ys.create(n,s+l+r),Ys.create(n,s+l+e.length+r))})}else i.push({type:"text",content:"",range:qs.create(Ys.create(n,s+l+r),Ys.create(n,s+l+r))});s=e+a[0].length}const a=t.substring(s);a.length>0&&i.push({type:"text",content:a,range:qs.create(Ys.create(n,s+r),Ys.create(n,s+r+a.length))})}return i}const uc=/\S/,dc=/\s*$/;function hc(e,t){const n=e.substring(t).match(uc);return n?t+n.index:e.length}function fc(e){const t=e.match(dc);if(t&&"number"==typeof t.index)return t.index}function pc(e,t){const n=e.tokens[e.index];return"tag"===n.type?yc(e,!1):"text"===n.type||"inline-tag"===n.type?mc(e):(function(e,t){if(t){const n=new kc("",e.range);"inlines"in t?t.inlines.push(n):t.content.inlines.push(n)}}(n,t),void e.index++)}function mc(e){let t=e.tokens[e.index];const n=t;let r=t;const i=[];for(;t&&"break"!==t.type&&"tag"!==t.type;)i.push(gc(e)),r=t,t=e.tokens[e.index];return new Ac(i,qs.create(n.range.start,r.range.end))}function gc(e){return"inline-tag"===e.tokens[e.index].type?yc(e,!0):Tc(e)}function yc(e,t){const n=e.tokens[e.index++],r=n.content.substring(1),i=e.tokens[e.index];if("text"===(null==i?void 0:i.type)){if(t){const i=Tc(e);return new Ec(r,new Ac([i],i.range),t,qs.create(n.range.start,i.range.end))}{const i=mc(e);return new Ec(r,i,t,qs.create(n.range.start,i.range.end))}}{const e=n.range;return new Ec(r,new Ac([],e),t,e)}}function Tc(e){const t=e.tokens[e.index++];return new kc(t.content,t.range)}function vc(e){if(!e)return vc({start:"/**",end:"*/",line:"*"});const{start:t,end:n,line:r}=e;return{start:Rc(t,!0),end:Rc(n,!1),line:Rc(r,!0)}}function Rc(e,t){if("string"==typeof e||"object"==typeof e){const n="string"==typeof e?jt(e):e.source;return t?new RegExp(`^\\s*${n}`):new RegExp(`\\s*${n}\\s*$`)}return e}class $c{constructor(e,t){this.elements=e,this.range=t}getTag(e){return this.getAllTags().find(t=>t.name===e)}getTags(e){return this.getAllTags().filter(t=>t.name===e)}getAllTags(){return this.elements.filter(e=>"name"in e)}toString(){let e="";for(const t of this.elements)if(0===e.length)e=t.toString();else{const n=t.toString();e+=xc(e)+n}return e.trim()}toMarkdown(e){let t="";for(const n of this.elements)if(0===t.length)t=n.toMarkdown(e);else{const r=n.toMarkdown(e);t+=xc(t)+r}return t.trim()}}class Ec{constructor(e,t,n,r){this.name=e,this.content=t,this.inline=n,this.range=r}toString(){let e=`@${this.name}`;const t=this.content.toString();return 1===this.content.inlines.length?e=`${e} ${t}`:this.content.inlines.length>1&&(e=`${e}\n${t}`),this.inline?`{${e}}`:e}toMarkdown(e){var t,n;return null!==(n=null===(t=null==e?void 0:e.renderTag)||void 0===t?void 0:t.call(e,this))&&void 0!==n?n:this.toMarkdownDefault(e)}toMarkdownDefault(e){const t=this.content.toMarkdown(e);if(this.inline){const n=function(e,t,n){var r,i;if("linkplain"===e||"linkcode"===e||"link"===e){const s=t.indexOf(" ");let a=t;if(s>0){const e=hc(t,s);a=t.substring(e),t=t.substring(0,s)}return("linkcode"===e||"link"===e&&"code"===n.link)&&(a=`\`${a}\``),null!==(i=null===(r=n.renderLink)||void 0===r?void 0:r.call(n,t,a))&&void 0!==i?i:function(e,t){try{return ml.parse(e,!0),`[${t}](${e})`}catch{return e}}(t,a)}}(this.name,t,e??{});if("string"==typeof n)return n}let n="";"italic"===(null==e?void 0:e.tag)||void 0===(null==e?void 0:e.tag)?n="*":"bold"===(null==e?void 0:e.tag)?n="**":"bold-italic"===(null==e?void 0:e.tag)&&(n="***");let r=`${n}@${this.name}${n}`;return 1===this.content.inlines.length?r=`${r} — ${t}`:this.content.inlines.length>1&&(r=`${r}\n${t}`),this.inline?`{${r}}`:r}}class Ac{constructor(e,t){this.inlines=e,this.range=t}toString(){let e="";for(let t=0;t<this.inlines.length;t++){const n=this.inlines[t],r=this.inlines[t+1];e+=n.toString(),r&&r.range.start.line>n.range.start.line&&(e+="\n")}return e}toMarkdown(e){let t="";for(let n=0;n<this.inlines.length;n++){const r=this.inlines[n],i=this.inlines[n+1];t+=r.toMarkdown(e),i&&i.range.start.line>r.range.start.line&&(t+="\n")}return t}}class kc{constructor(e,t){this.text=e,this.range=t}toString(){return this.text}toMarkdown(){return this.text}}function xc(e){return e.endsWith("\n")?"\n":"\n\n"}class Ic{constructor(e){this.indexManager=e.shared.workspace.IndexManager,this.commentProvider=e.documentation.CommentProvider}getDocumentation(e){const t=this.commentProvider.getComment(e);if(t&&function(e){const t=vc(void 0),n=ac(e);if(0===n.length)return!1;const r=n[0],i=n[n.length-1],s=t.start,a=t.end;return!(null==s||!s.exec(r)||null==a||!a.exec(i))}(t))return function(e,t,n){let r,i;"string"==typeof e?(i=t,r=n):(i=e.range.start,r=t),i||(i=Ys.create(0,0));const s=function(e){var t,n,r;const i=[];let s=e.position.line,a=e.position.character;for(let o=0;o<e.lines.length;o++){const l=0===o,c=o===e.lines.length-1;let u=e.lines[o],d=0;if(l&&e.options.start){const n=null===(t=e.options.start)||void 0===t?void 0:t.exec(u);n&&(d=n.index+n[0].length)}else{const t=null===(n=e.options.line)||void 0===n?void 0:n.exec(u);t&&(d=t.index+t[0].length)}if(c){const t=null===(r=e.options.end)||void 0===r?void 0:r.exec(u);t&&(u=u.substring(0,t.index))}if(u=u.substring(0,fc(u)),hc(u,d)>=u.length){if(i.length>0){const e=Ys.create(s,a);i.push({type:"break",content:"",range:qs.create(e,e)})}}else{oc.lastIndex=d;const e=oc.exec(u);if(e){const t=e[0],n=e[1],r=Ys.create(s,a+d),o=Ys.create(s,a+d+t.length);i.push({type:"tag",content:n,range:qs.create(r,o)}),d+=t.length,d=hc(u,d)}if(d<u.length){const e=u.substring(d),t=Array.from(e.matchAll(lc));i.push(...cc(t,e,s,a+d))}}s++,a=0}return i.length>0&&"break"===i[i.length-1].type?i.slice(0,-1):i}({lines:ac(e),position:i,options:vc(r)});return function(e){var t,n,r,i;const s=Ys.create(e.position.line,e.position.character);if(0===e.tokens.length)return new $c([],qs.create(s,s));const a=[];for(;e.index<e.tokens.length;){const t=pc(e,a[a.length-1]);t&&a.push(t)}const o=null!==(n=null===(t=a[0])||void 0===t?void 0:t.range.start)&&void 0!==n?n:s,l=null!==(i=null===(r=a[a.length-1])||void 0===r?void 0:r.range.end)&&void 0!==i?i:s;return new $c(a,qs.create(o,l))}({index:0,tokens:s,position:i})}(t).toMarkdown({renderLink:(t,n)=>this.documentationLinkRenderer(e,t,n),renderTag:t=>this.documentationTagRenderer(e,t)})}documentationLinkRenderer(e,t,n){var r;const i=null!==(r=this.findNameInPrecomputedScopes(e,t))&&void 0!==r?r:this.findNameInGlobalScope(e,t);if(i&&i.nameSegment){const e=i.nameSegment.range.start.line+1,t=i.nameSegment.range.start.character+1;return`[${n}](${i.documentUri.with({fragment:`L${e},${t}`}).toString()})`}}documentationTagRenderer(e,t){}findNameInPrecomputedScopes(e,t){const n=yt(e).precomputedScopes;if(!n)return;let r=e;do{const e=n.get(r).find(e=>e.name===t);if(e)return e;r=r.$container}while(r)}findNameInGlobalScope(e,t){return this.indexManager.allElements().find(e=>e.name===t)}}class Sc{constructor(e){this.grammarConfig=()=>e.parser.GrammarConfig}getComment(e){var t;return function(e){return"string"==typeof e.$comment}(e)?e.$comment:null===(t=function(e,t){if(e){const n=function(e,t=!0){for(;e.container;){const n=e.container;let r=n.content.indexOf(e);for(;r>0;){r--;const e=n.content[r];if(t||!e.hidden)return e}e=n}}(e,!0);if(n&&ie(n,t))return n;if(j(e)){const n=e.content.findIndex(e=>!e.hidden);for(let r=n-1;r>=0;r--){const n=e.content[r];if(ie(n,t))return n}}}}(e.$cstNode,this.grammarConfig().multilineCommentRules))||void 0===t?void 0:t.text}}class Cc{constructor(e){this.syncParser=e.parser.LangiumParser}parse(e,t){return Promise.resolve(this.syncParser.parse(e))}}class Nc{constructor(){this.previousTokenSource=new tl.CancellationTokenSource,this.writeQueue=[],this.readQueue=[],this.done=!0}write(e){this.cancelWrite();const t=(nl=performance.now(),new tl.CancellationTokenSource);return this.previousTokenSource=t,this.enqueue(this.writeQueue,e,t.token)}read(e){return this.enqueue(this.readQueue,e)}enqueue(e,t,n=tl.CancellationToken.None){const r=new al,i={action:t,deferred:r,cancellationToken:n};return e.push(i),this.performNextOperation(),r.promise}async performNextOperation(){if(!this.done)return;const e=[];if(this.writeQueue.length>0)e.push(this.writeQueue.shift());else{if(!(this.readQueue.length>0))return;e.push(...this.readQueue.splice(0,this.readQueue.length))}this.done=!1,await Promise.all(e.map(async({action:e,deferred:t,cancellationToken:n})=>{try{const r=await Promise.resolve().then(()=>e(n));t.resolve(r)}catch(e){il(e)?t.resolve(void 0):t.reject(e)}})),this.done=!0,this.performNextOperation()}cancelWrite(){this.previousTokenSource.cancel()}}class wc{constructor(e){this.grammarElementIdMap=new Il,this.tokenTypeIdMap=new Il,this.grammar=e.Grammar,this.lexer=e.parser.Lexer,this.linker=e.references.Linker}dehydrate(e){return{lexerErrors:e.lexerErrors,lexerReport:e.lexerReport?this.dehydrateLexerReport(e.lexerReport):void 0,parserErrors:e.parserErrors.map(e=>Object.assign(Object.assign({},e),{message:e.message})),value:this.dehydrateAstNode(e.value,this.createDehyrationContext(e.value))}}dehydrateLexerReport(e){return e}createDehyrationContext(e){const t=new Map,n=new Map;for(const n of $t(e))t.set(n,{});if(e.$cstNode)for(const t of ee(e.$cstNode))n.set(t,{});return{astNodes:t,cstNodes:n}}dehydrateAstNode(e,t){const n=t.astNodes.get(e);n.$type=e.$type,n.$containerIndex=e.$containerIndex,n.$containerProperty=e.$containerProperty,void 0!==e.$cstNode&&(n.$cstNode=this.dehydrateCstNode(e.$cstNode,t));for(const[r,i]of Object.entries(e))if(!r.startsWith("$"))if(Array.isArray(i)){const e=[];n[r]=e;for(const n of i)U(n)?e.push(this.dehydrateAstNode(n,t)):F(n)?e.push(this.dehydrateReference(n,t)):e.push(n)}else U(i)?n[r]=this.dehydrateAstNode(i,t):F(i)?n[r]=this.dehydrateReference(i,t):void 0!==i&&(n[r]=i);return n}dehydrateReference(e,t){const n={};return n.$refText=e.$refText,e.$refNode&&(n.$refNode=t.cstNodes.get(e.$refNode)),n}dehydrateCstNode(e,t){const n=t.cstNodes.get(e);return j(e)?n.fullText=e.fullText:n.grammarSource=this.getGrammarElementId(e.grammarSource),n.hidden=e.hidden,n.astNode=t.astNodes.get(e.astNode),K(e)?n.content=e.content.map(e=>this.dehydrateCstNode(e,t)):V(e)&&(n.tokenType=e.tokenType.name,n.offset=e.offset,n.length=e.length,n.startLine=e.range.start.line,n.startColumn=e.range.start.character,n.endLine=e.range.end.line,n.endColumn=e.range.end.character),n}hydrate(e){const t=e.value,n=this.createHydrationContext(t);return"$cstNode"in t&&this.hydrateCstNode(t.$cstNode,n),{lexerErrors:e.lexerErrors,lexerReport:e.lexerReport,parserErrors:e.parserErrors,value:this.hydrateAstNode(t,n)}}createHydrationContext(e){const t=new Map,n=new Map;for(const n of $t(e))t.set(n,{});let r;if(e.$cstNode)for(const t of ee(e.$cstNode)){let e;"fullText"in t?(e=new Ao(t.fullText),r=e):"content"in t?e=new $o:"tokenType"in t&&(e=this.hydrateCstLeafNode(t)),e&&(n.set(t,e),e.root=r)}return{astNodes:t,cstNodes:n}}hydrateAstNode(e,t){const n=t.astNodes.get(e);n.$type=e.$type,n.$containerIndex=e.$containerIndex,n.$containerProperty=e.$containerProperty,e.$cstNode&&(n.$cstNode=t.cstNodes.get(e.$cstNode));for(const[r,i]of Object.entries(e))if(!r.startsWith("$"))if(Array.isArray(i)){const e=[];n[r]=e;for(const s of i)U(s)?e.push(this.setParent(this.hydrateAstNode(s,t),n)):F(s)?e.push(this.hydrateReference(s,n,r,t)):e.push(s)}else U(i)?n[r]=this.setParent(this.hydrateAstNode(i,t),n):F(i)?n[r]=this.hydrateReference(i,n,r,t):void 0!==i&&(n[r]=i);return n}setParent(e,t){return e.$container=t,e}hydrateReference(e,t,n,r){return this.linker.buildReference(t,n,r.cstNodes.get(e.$refNode),e.$refText)}hydrateCstNode(e,t,n=0){const r=t.cstNodes.get(e);if("number"==typeof e.grammarSource&&(r.grammarSource=this.getGrammarElement(e.grammarSource)),r.astNode=t.astNodes.get(e.astNode),K(r))for(const i of e.content){const e=this.hydrateCstNode(i,t,n++);r.content.push(e)}return r}hydrateCstLeafNode(e){const t=this.getTokenType(e.tokenType),n=e.offset,r=e.length,i=e.startLine,s=e.startColumn,a=e.endLine,o=e.endColumn,l=e.hidden;return new Ro(n,r,{start:{line:i,character:s},end:{line:a,character:o}},t,l)}getTokenType(e){return this.lexer.definition[e]}getGrammarElementId(e){if(e)return 0===this.grammarElementIdMap.size&&this.createGrammarElementIdMap(),this.grammarElementIdMap.get(e)}getGrammarElement(e){return 0===this.grammarElementIdMap.size&&this.createGrammarElementIdMap(),this.grammarElementIdMap.getKey(e)}createGrammarElementIdMap(){let e=0;for(const t of $t(this.grammar))fe(t)&&this.grammarElementIdMap.set(t,e++)}}function Lc(e){return{documentation:{CommentProvider:e=>new Sc(e),DocumentationProvider:e=>new Ic(e)},parser:{AsyncParser:e=>new Cc(e),GrammarConfig:e=>function(e){const t=[],n=e.Grammar;for(const e of n.rules)Ue(e)&&zt(e)&&Bt(nn(e))&&t.push(e.name);return{multilineCommentRules:t,nameRegexp:re}}(e),LangiumParser:e=>function(e){const t=function(e){const t=e.Grammar,n=e.parser.Lexer;return _o(t,new Co(e),n.definition)}(e);return t.finalize(),t}(e),CompletionParser:e=>function(e){const t=e.Grammar,n=e.parser.Lexer,r=new Lo(e);return _o(t,r,n.definition),r.finalize(),r}(e),ValueConverter:()=>new Vo,TokenBuilder:()=>new Ko,Lexer:e=>new rc(e),ParserErrorMessageProvider:()=>new wo,LexerErrorMessageProvider:()=>new tc},workspace:{AstNodeLocator:()=>new Yl,AstNodeDescriptionProvider:e=>new Wl(e),ReferenceDescriptionProvider:e=>new zl(e)},references:{Linker:e=>new El(e),NameProvider:()=>new Al,ScopeProvider:e=>new _l(e),ScopeComputation:e=>new Sl(e),References:e=>new kl(e)},serializer:{Hydrator:e=>new wc(e),JsonSerializer:e=>new Ml(e)},validation:{DocumentValidator:e=>new Kl(e),ValidationRegistry:e=>new Bl(e)},shared:()=>e.shared}}function bc(e){return{ServiceRegistry:e=>new Dl(e),workspace:{LangiumDocuments:e=>new Rl(e),LangiumDocumentFactory:e=>new vl(e),DocumentBuilder:e=>new Zl(e),IndexManager:e=>new Jl(e),WorkspaceManager:e=>new ec(e),FileSystemProvider:t=>e.fileSystemProvider(t),WorkspaceLock:()=>new Nc,ConfigurationProvider:e=>new Ql(e)}}}var Oc;function _c(e,t,n,r,i,s,a,o,l){return Mc([e,t,n,r,i,s,a,o,l].reduce(Fc,{}))}!function(e){e.merge=(e,t)=>Fc(Fc({},e),t)}(Oc||(Oc={}));const Pc=Symbol("isProxy");function Mc(e,t){const n=new Proxy({},{deleteProperty:()=>!1,set:()=>{throw new Error("Cannot set property on injected service container")},get:(r,i)=>i===Pc||Uc(r,i,e,t||n),getOwnPropertyDescriptor:(r,i)=>(Uc(r,i,e,t||n),Object.getOwnPropertyDescriptor(r,i)),has:(t,n)=>n in e,ownKeys:()=>[...Object.getOwnPropertyNames(e)]});return n}const Dc=Symbol();function Uc(e,t,n,r){if(t in e){if(e[t]instanceof Error)throw new Error("Construction failure. Please make sure that your dependencies are constructable.",{cause:e[t]});if(e[t]===Dc)throw new Error('Cycle detected. Please make "'+String(t)+'" lazy. Visit https://langium.org/docs/reference/configuration-services/#resolving-cyclic-dependencies');return e[t]}if(t in n){const i=n[t];e[t]=Dc;try{e[t]="function"==typeof i?i(r):Mc(i,r)}catch(n){throw e[t]=n instanceof Error?n:void 0,n}return e[t]}}function Fc(e,t){if(t)for(const[n,r]of Object.entries(t))if(void 0!==r){const t=e[n];e[n]=null!==t&&null!==r&&"object"==typeof t&&"object"==typeof r?Fc(t,r):r}return e}class Gc{readFile(){throw new Error("No file system is available.")}async readDirectory(){return[]}}const Bc={fileSystemProvider:()=>new Gc},Kc={Grammar:()=>{},LanguageMetaData:()=>({caseInsensitive:!1,fileExtensions:[".langium"],languageId:"langium"})},Vc={AstReflection:()=>new pt};function jc(e){var t;const n=function(){const e=_c(bc(Bc),Vc),t=_c(Lc({shared:e}),Kc);return e.ServiceRegistry.register(t),t}(),r=n.serializer.JsonSerializer.deserialize(e);return n.shared.workspace.LangiumDocumentFactory.fromModel(r,ml.parse(`memory://${null!==(t=r.name)&&void 0!==t?t:"grammar"}.langium`)),r}var Hc=Object.defineProperty,Wc=(e,t)=>Hc(e,"name",{value:t,configurable:!0}),zc="Statement",Yc="Architecture";Wc(function(e){return _u.isInstance(e,Yc)},"isArchitecture");var qc="Axis",Xc="Branch";Wc(function(e){return _u.isInstance(e,Xc)},"isBranch");var Qc="Checkout",Zc="CherryPicking",Jc="ClassDefStatement",eu="Commit";Wc(function(e){return _u.isInstance(e,eu)},"isCommit");var tu="Curve",nu="Edge",ru="Entry",iu="GitGraph";Wc(function(e){return _u.isInstance(e,iu)},"isGitGraph");var su="Group",au="Info";Wc(function(e){return _u.isInstance(e,au)},"isInfo");var ou="Item",lu="Junction",cu="Merge";Wc(function(e){return _u.isInstance(e,cu)},"isMerge");var uu="Option",du="Packet";Wc(function(e){return _u.isInstance(e,du)},"isPacket");var hu="PacketBlock";Wc(function(e){return _u.isInstance(e,hu)},"isPacketBlock");var fu="Pie";Wc(function(e){return _u.isInstance(e,fu)},"isPie");var pu="PieSection";Wc(function(e){return _u.isInstance(e,pu)},"isPieSection");var mu="Radar",gu="Service",yu="Treemap";Wc(function(e){return _u.isInstance(e,yu)},"isTreemap");var Tu,vu,Ru,$u,Eu,Au,ku,xu,Iu,Su,Cu,Nu="TreemapRow",wu="Direction",Lu="Leaf",bu="Section",Ou=(Tu=class extends B{getAllTypes(){return[Yc,qc,Xc,Qc,Zc,Jc,eu,tu,wu,nu,ru,iu,su,au,ou,lu,Lu,cu,uu,du,hu,fu,pu,mu,bu,gu,zc,yu,Nu]}computeIsSubtype(e,t){switch(e){case Xc:case Qc:case Zc:case eu:case cu:return this.isSubtype(zc,t);case wu:return this.isSubtype(iu,t);case Lu:case bu:return this.isSubtype(ou,t);default:return!1}}getReferenceType(e){const t=`${e.container.$type}:${e.property}`;if("Entry:axis"===t)return qc;throw new Error(`${t} is not a valid reference id.`)}getTypeMetaData(e){switch(e){case Yc:return{name:Yc,properties:[{name:"accDescr"},{name:"accTitle"},{name:"edges",defaultValue:[]},{name:"groups",defaultValue:[]},{name:"junctions",defaultValue:[]},{name:"services",defaultValue:[]},{name:"title"}]};case qc:return{name:qc,properties:[{name:"label"},{name:"name"}]};case Xc:return{name:Xc,properties:[{name:"name"},{name:"order"}]};case Qc:return{name:Qc,properties:[{name:"branch"}]};case Zc:return{name:Zc,properties:[{name:"id"},{name:"parent"},{name:"tags",defaultValue:[]}]};case Jc:return{name:Jc,properties:[{name:"className"},{name:"styleText"}]};case eu:return{name:eu,properties:[{name:"id"},{name:"message"},{name:"tags",defaultValue:[]},{name:"type"}]};case tu:return{name:tu,properties:[{name:"entries",defaultValue:[]},{name:"label"},{name:"name"}]};case nu:return{name:nu,properties:[{name:"lhsDir"},{name:"lhsGroup",defaultValue:!1},{name:"lhsId"},{name:"lhsInto",defaultValue:!1},{name:"rhsDir"},{name:"rhsGroup",defaultValue:!1},{name:"rhsId"},{name:"rhsInto",defaultValue:!1},{name:"title"}]};case ru:return{name:ru,properties:[{name:"axis"},{name:"value"}]};case iu:return{name:iu,properties:[{name:"accDescr"},{name:"accTitle"},{name:"statements",defaultValue:[]},{name:"title"}]};case su:return{name:su,properties:[{name:"icon"},{name:"id"},{name:"in"},{name:"title"}]};case au:return{name:au,properties:[{name:"accDescr"},{name:"accTitle"},{name:"title"}]};case ou:return{name:ou,properties:[{name:"classSelector"},{name:"name"}]};case lu:return{name:lu,properties:[{name:"id"},{name:"in"}]};case cu:return{name:cu,properties:[{name:"branch"},{name:"id"},{name:"tags",defaultValue:[]},{name:"type"}]};case uu:return{name:uu,properties:[{name:"name"},{name:"value",defaultValue:!1}]};case du:return{name:du,properties:[{name:"accDescr"},{name:"accTitle"},{name:"blocks",defaultValue:[]},{name:"title"}]};case hu:return{name:hu,properties:[{name:"bits"},{name:"end"},{name:"label"},{name:"start"}]};case fu:return{name:fu,properties:[{name:"accDescr"},{name:"accTitle"},{name:"sections",defaultValue:[]},{name:"showData",defaultValue:!1},{name:"title"}]};case pu:return{name:pu,properties:[{name:"label"},{name:"value"}]};case mu:return{name:mu,properties:[{name:"accDescr"},{name:"accTitle"},{name:"axes",defaultValue:[]},{name:"curves",defaultValue:[]},{name:"options",defaultValue:[]},{name:"title"}]};case gu:return{name:gu,properties:[{name:"icon"},{name:"iconText"},{name:"id"},{name:"in"},{name:"title"}]};case yu:return{name:yu,properties:[{name:"accDescr"},{name:"accTitle"},{name:"title"},{name:"TreemapRows",defaultValue:[]}]};case Nu:return{name:Nu,properties:[{name:"indent"},{name:"item"}]};case wu:return{name:wu,properties:[{name:"accDescr"},{name:"accTitle"},{name:"dir"},{name:"statements",defaultValue:[]},{name:"title"}]};case Lu:return{name:Lu,properties:[{name:"classSelector"},{name:"name"},{name:"value"}]};case bu:return{name:bu,properties:[{name:"classSelector"},{name:"name"}]};default:return{name:e,properties:[]}}}},Wc(Tu,"MermaidAstReflection"),Tu),_u=new Ou,Pu=Wc(()=>vu??(vu=jc('{"$type":"Grammar","isDeclared":true,"name":"Info","imports":[],"rules":[{"$type":"ParserRule","entry":true,"name":"Info","definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@12"},"arguments":[],"cardinality":"*"},{"$type":"Keyword","value":"info"},{"$type":"RuleCall","rule":{"$ref":"#/rules@12"},"arguments":[],"cardinality":"*"},{"$type":"Group","elements":[{"$type":"Keyword","value":"showInfo"},{"$type":"RuleCall","rule":{"$ref":"#/rules@12"},"arguments":[],"cardinality":"*"}],"cardinality":"?"},{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[],"cardinality":"?"}]},"definesHiddenTokens":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","fragment":true,"name":"EOL","dataType":"string","definition":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@12"},"arguments":[],"cardinality":"+"},{"$type":"EndOfFile"}]},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","fragment":true,"name":"TitleAndAccessibilities","definition":{"$type":"Group","elements":[{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"accDescr","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@4"},"arguments":[]}},{"$type":"Assignment","feature":"accTitle","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@5"},"arguments":[]}},{"$type":"Assignment","feature":"title","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[]}}]},{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[]}],"cardinality":"+"},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"TerminalRule","name":"BOOLEAN","type":{"$type":"ReturnType","name":"boolean"},"definition":{"$type":"TerminalAlternatives","elements":[{"$type":"CharacterRange","left":{"$type":"Keyword","value":"true"}},{"$type":"CharacterRange","left":{"$type":"Keyword","value":"false"}}]},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_DESCR","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accDescr(?:[\\\\t ]*:([^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)|\\\\s*{([^}]*)})/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accTitle[\\\\t ]*:(?:[^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*title(?:[\\\\t ][^\\\\n\\\\r]*?(?=%%)|[\\\\t ][^\\\\n\\\\r]*|)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"FLOAT","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"RegexToken","regex":"/[0-9]+\\\\.[0-9]+(?!\\\\.)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"INT","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"RegexToken","regex":"/0|[1-9][0-9]*(?!\\\\.)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"NUMBER","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"TerminalAlternatives","elements":[{"$type":"TerminalRuleCall","rule":{"$ref":"#/rules@7"}},{"$type":"TerminalRuleCall","rule":{"$ref":"#/rules@8"}}]},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"STRING","type":{"$type":"ReturnType","name":"string"},"definition":{"$type":"RegexToken","regex":"/\\"([^\\"\\\\\\\\]|\\\\\\\\.)*\\"|\'([^\'\\\\\\\\]|\\\\\\\\.)*\'/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ID","type":{"$type":"ReturnType","name":"string"},"definition":{"$type":"RegexToken","regex":"/[\\\\w]([-\\\\w]*\\\\w)?/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"NEWLINE","definition":{"$type":"RegexToken","regex":"/\\\\r?\\\\n/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","hidden":true,"name":"WHITESPACE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]+/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"YAML","definition":{"$type":"RegexToken","regex":"/---[\\\\t ]*\\\\r?\\\\n(?:[\\\\S\\\\s]*?\\\\r?\\\\n)?---(?:\\\\r?\\\\n|(?!\\\\S))/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"DIRECTIVE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%{[\\\\S\\\\s]*?}%%(?:\\\\r?\\\\n|(?!\\\\S))/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"SINGLE_LINE_COMMENT","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%[^\\\\n\\\\r]*/"},"fragment":false}],"definesHiddenTokens":false,"hiddenTokens":[],"interfaces":[],"types":[],"usedGrammars":[]}')),"InfoGrammar"),Mu=Wc(()=>Ru??(Ru=jc('{"$type":"Grammar","isDeclared":true,"name":"Packet","imports":[],"rules":[{"$type":"ParserRule","entry":true,"name":"Packet","definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@13"},"arguments":[],"cardinality":"*"},{"$type":"Alternatives","elements":[{"$type":"Keyword","value":"packet"},{"$type":"Keyword","value":"packet-beta"}]},{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@3"},"arguments":[]},{"$type":"Assignment","feature":"blocks","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[]}},{"$type":"RuleCall","rule":{"$ref":"#/rules@13"},"arguments":[]}],"cardinality":"*"}]},"definesHiddenTokens":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"PacketBlock","definition":{"$type":"Group","elements":[{"$type":"Alternatives","elements":[{"$type":"Group","elements":[{"$type":"Assignment","feature":"start","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@9"},"arguments":[]}},{"$type":"Group","elements":[{"$type":"Keyword","value":"-"},{"$type":"Assignment","feature":"end","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@9"},"arguments":[]}}],"cardinality":"?"}]},{"$type":"Group","elements":[{"$type":"Keyword","value":"+"},{"$type":"Assignment","feature":"bits","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@9"},"arguments":[]}}]}]},{"$type":"Keyword","value":":"},{"$type":"Assignment","feature":"label","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@11"},"arguments":[]}},{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","fragment":true,"name":"EOL","dataType":"string","definition":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@13"},"arguments":[],"cardinality":"+"},{"$type":"EndOfFile"}]},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","fragment":true,"name":"TitleAndAccessibilities","definition":{"$type":"Group","elements":[{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"accDescr","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@5"},"arguments":[]}},{"$type":"Assignment","feature":"accTitle","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[]}},{"$type":"Assignment","feature":"title","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@7"},"arguments":[]}}]},{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[]}],"cardinality":"+"},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"TerminalRule","name":"BOOLEAN","type":{"$type":"ReturnType","name":"boolean"},"definition":{"$type":"TerminalAlternatives","elements":[{"$type":"CharacterRange","left":{"$type":"Keyword","value":"true"}},{"$type":"CharacterRange","left":{"$type":"Keyword","value":"false"}}]},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_DESCR","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accDescr(?:[\\\\t ]*:([^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)|\\\\s*{([^}]*)})/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accTitle[\\\\t ]*:(?:[^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*title(?:[\\\\t ][^\\\\n\\\\r]*?(?=%%)|[\\\\t ][^\\\\n\\\\r]*|)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"FLOAT","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"RegexToken","regex":"/[0-9]+\\\\.[0-9]+(?!\\\\.)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"INT","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"RegexToken","regex":"/0|[1-9][0-9]*(?!\\\\.)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"NUMBER","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"TerminalAlternatives","elements":[{"$type":"TerminalRuleCall","rule":{"$ref":"#/rules@8"}},{"$type":"TerminalRuleCall","rule":{"$ref":"#/rules@9"}}]},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"STRING","type":{"$type":"ReturnType","name":"string"},"definition":{"$type":"RegexToken","regex":"/\\"([^\\"\\\\\\\\]|\\\\\\\\.)*\\"|\'([^\'\\\\\\\\]|\\\\\\\\.)*\'/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ID","type":{"$type":"ReturnType","name":"string"},"definition":{"$type":"RegexToken","regex":"/[\\\\w]([-\\\\w]*\\\\w)?/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"NEWLINE","definition":{"$type":"RegexToken","regex":"/\\\\r?\\\\n/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","hidden":true,"name":"WHITESPACE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]+/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"YAML","definition":{"$type":"RegexToken","regex":"/---[\\\\t ]*\\\\r?\\\\n(?:[\\\\S\\\\s]*?\\\\r?\\\\n)?---(?:\\\\r?\\\\n|(?!\\\\S))/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"DIRECTIVE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%{[\\\\S\\\\s]*?}%%(?:\\\\r?\\\\n|(?!\\\\S))/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"SINGLE_LINE_COMMENT","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%[^\\\\n\\\\r]*/"},"fragment":false}],"definesHiddenTokens":false,"hiddenTokens":[],"interfaces":[],"types":[],"usedGrammars":[]}')),"PacketGrammar"),Du=Wc(()=>$u??($u=jc('{"$type":"Grammar","isDeclared":true,"name":"Pie","imports":[],"rules":[{"$type":"ParserRule","entry":true,"name":"Pie","definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@16"},"arguments":[],"cardinality":"*"},{"$type":"Keyword","value":"pie"},{"$type":"Assignment","feature":"showData","operator":"?=","terminal":{"$type":"Keyword","value":"showData"},"cardinality":"?"},{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[]},{"$type":"Assignment","feature":"sections","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[]}},{"$type":"RuleCall","rule":{"$ref":"#/rules@16"},"arguments":[]}],"cardinality":"*"}]},"definesHiddenTokens":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"PieSection","definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"label","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@14"},"arguments":[]}},{"$type":"Keyword","value":":"},{"$type":"Assignment","feature":"value","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@4"},"arguments":[]}},{"$type":"RuleCall","rule":{"$ref":"#/rules@5"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"TerminalRule","name":"FLOAT_PIE","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"RegexToken","regex":"/-?[0-9]+\\\\.[0-9]+(?!\\\\.)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"INT_PIE","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"RegexToken","regex":"/-?(0|[1-9][0-9]*)(?!\\\\.)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"NUMBER_PIE","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"TerminalAlternatives","elements":[{"$type":"TerminalRuleCall","rule":{"$ref":"#/rules@2"}},{"$type":"TerminalRuleCall","rule":{"$ref":"#/rules@3"}}]},"fragment":false,"hidden":false},{"$type":"ParserRule","fragment":true,"name":"EOL","dataType":"string","definition":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@16"},"arguments":[],"cardinality":"+"},{"$type":"EndOfFile"}]},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","fragment":true,"name":"TitleAndAccessibilities","definition":{"$type":"Group","elements":[{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"accDescr","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@8"},"arguments":[]}},{"$type":"Assignment","feature":"accTitle","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@9"},"arguments":[]}},{"$type":"Assignment","feature":"title","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@10"},"arguments":[]}}]},{"$type":"RuleCall","rule":{"$ref":"#/rules@5"},"arguments":[]}],"cardinality":"+"},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"TerminalRule","name":"BOOLEAN","type":{"$type":"ReturnType","name":"boolean"},"definition":{"$type":"TerminalAlternatives","elements":[{"$type":"CharacterRange","left":{"$type":"Keyword","value":"true"}},{"$type":"CharacterRange","left":{"$type":"Keyword","value":"false"}}]},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_DESCR","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accDescr(?:[\\\\t ]*:([^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)|\\\\s*{([^}]*)})/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accTitle[\\\\t ]*:(?:[^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*title(?:[\\\\t ][^\\\\n\\\\r]*?(?=%%)|[\\\\t ][^\\\\n\\\\r]*|)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"FLOAT","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"RegexToken","regex":"/[0-9]+\\\\.[0-9]+(?!\\\\.)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"INT","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"RegexToken","regex":"/0|[1-9][0-9]*(?!\\\\.)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"NUMBER","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"TerminalAlternatives","elements":[{"$type":"TerminalRuleCall","rule":{"$ref":"#/rules@11"}},{"$type":"TerminalRuleCall","rule":{"$ref":"#/rules@12"}}]},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"STRING","type":{"$type":"ReturnType","name":"string"},"definition":{"$type":"RegexToken","regex":"/\\"([^\\"\\\\\\\\]|\\\\\\\\.)*\\"|\'([^\'\\\\\\\\]|\\\\\\\\.)*\'/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ID","type":{"$type":"ReturnType","name":"string"},"definition":{"$type":"RegexToken","regex":"/[\\\\w]([-\\\\w]*\\\\w)?/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"NEWLINE","definition":{"$type":"RegexToken","regex":"/\\\\r?\\\\n/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","hidden":true,"name":"WHITESPACE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]+/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"YAML","definition":{"$type":"RegexToken","regex":"/---[\\\\t ]*\\\\r?\\\\n(?:[\\\\S\\\\s]*?\\\\r?\\\\n)?---(?:\\\\r?\\\\n|(?!\\\\S))/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"DIRECTIVE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%{[\\\\S\\\\s]*?}%%(?:\\\\r?\\\\n|(?!\\\\S))/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"SINGLE_LINE_COMMENT","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%[^\\\\n\\\\r]*/"},"fragment":false}],"definesHiddenTokens":false,"hiddenTokens":[],"interfaces":[],"types":[],"usedGrammars":[]}')),"PieGrammar"),Uu=Wc(()=>Eu??(Eu=jc('{"$type":"Grammar","isDeclared":true,"name":"Architecture","imports":[],"rules":[{"$type":"ParserRule","entry":true,"name":"Architecture","definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@23"},"arguments":[],"cardinality":"*"},{"$type":"Keyword","value":"architecture-beta"},{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@23"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@13"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[]}],"cardinality":"*"}]},"definesHiddenTokens":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","fragment":true,"name":"Statement","definition":{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"groups","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@5"},"arguments":[]}},{"$type":"Assignment","feature":"services","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[]}},{"$type":"Assignment","feature":"junctions","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@7"},"arguments":[]}},{"$type":"Assignment","feature":"edges","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@8"},"arguments":[]}}]},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","fragment":true,"name":"LeftPort","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":":"},{"$type":"Assignment","feature":"lhsDir","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@9"},"arguments":[]}}]},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","fragment":true,"name":"RightPort","definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"rhsDir","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@9"},"arguments":[]}},{"$type":"Keyword","value":":"}]},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","fragment":true,"name":"Arrow","definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[]},{"$type":"Assignment","feature":"lhsInto","operator":"?=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@11"},"arguments":[]},"cardinality":"?"},{"$type":"Alternatives","elements":[{"$type":"Keyword","value":"--"},{"$type":"Group","elements":[{"$type":"Keyword","value":"-"},{"$type":"Assignment","feature":"title","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@29"},"arguments":[]}},{"$type":"Keyword","value":"-"}]}]},{"$type":"Assignment","feature":"rhsInto","operator":"?=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@11"},"arguments":[]},"cardinality":"?"},{"$type":"RuleCall","rule":{"$ref":"#/rules@3"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Group","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"group"},{"$type":"Assignment","feature":"id","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@22"},"arguments":[]}},{"$type":"Assignment","feature":"icon","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@28"},"arguments":[]},"cardinality":"?"},{"$type":"Assignment","feature":"title","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@29"},"arguments":[]},"cardinality":"?"},{"$type":"Group","elements":[{"$type":"Keyword","value":"in"},{"$type":"Assignment","feature":"in","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@22"},"arguments":[]}}],"cardinality":"?"},{"$type":"RuleCall","rule":{"$ref":"#/rules@12"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Service","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"service"},{"$type":"Assignment","feature":"id","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@22"},"arguments":[]}},{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"iconText","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@21"},"arguments":[]}},{"$type":"Assignment","feature":"icon","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@28"},"arguments":[]}}],"cardinality":"?"},{"$type":"Assignment","feature":"title","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@29"},"arguments":[]},"cardinality":"?"},{"$type":"Group","elements":[{"$type":"Keyword","value":"in"},{"$type":"Assignment","feature":"in","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@22"},"arguments":[]}}],"cardinality":"?"},{"$type":"RuleCall","rule":{"$ref":"#/rules@12"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Junction","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"junction"},{"$type":"Assignment","feature":"id","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@22"},"arguments":[]}},{"$type":"Group","elements":[{"$type":"Keyword","value":"in"},{"$type":"Assignment","feature":"in","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@22"},"arguments":[]}}],"cardinality":"?"},{"$type":"RuleCall","rule":{"$ref":"#/rules@12"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Edge","definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"lhsId","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@22"},"arguments":[]}},{"$type":"Assignment","feature":"lhsGroup","operator":"?=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@10"},"arguments":[]},"cardinality":"?"},{"$type":"RuleCall","rule":{"$ref":"#/rules@4"},"arguments":[]},{"$type":"Assignment","feature":"rhsId","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@22"},"arguments":[]}},{"$type":"Assignment","feature":"rhsGroup","operator":"?=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@10"},"arguments":[]},"cardinality":"?"},{"$type":"RuleCall","rule":{"$ref":"#/rules@12"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"TerminalRule","name":"ARROW_DIRECTION","definition":{"$type":"TerminalAlternatives","elements":[{"$type":"TerminalAlternatives","elements":[{"$type":"TerminalAlternatives","elements":[{"$type":"CharacterRange","left":{"$type":"Keyword","value":"L"}},{"$type":"CharacterRange","left":{"$type":"Keyword","value":"R"}}]},{"$type":"CharacterRange","left":{"$type":"Keyword","value":"T"}}]},{"$type":"CharacterRange","left":{"$type":"Keyword","value":"B"}}]},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ARROW_GROUP","definition":{"$type":"RegexToken","regex":"/\\\\{group\\\\}/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ARROW_INTO","definition":{"$type":"RegexToken","regex":"/<|>/"},"fragment":false,"hidden":false},{"$type":"ParserRule","fragment":true,"name":"EOL","dataType":"string","definition":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@23"},"arguments":[],"cardinality":"+"},{"$type":"EndOfFile"}]},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","fragment":true,"name":"TitleAndAccessibilities","definition":{"$type":"Group","elements":[{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"accDescr","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@15"},"arguments":[]}},{"$type":"Assignment","feature":"accTitle","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@16"},"arguments":[]}},{"$type":"Assignment","feature":"title","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}}]},{"$type":"RuleCall","rule":{"$ref":"#/rules@12"},"arguments":[]}],"cardinality":"+"},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"TerminalRule","name":"BOOLEAN","type":{"$type":"ReturnType","name":"boolean"},"definition":{"$type":"TerminalAlternatives","elements":[{"$type":"CharacterRange","left":{"$type":"Keyword","value":"true"}},{"$type":"CharacterRange","left":{"$type":"Keyword","value":"false"}}]},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_DESCR","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accDescr(?:[\\\\t ]*:([^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)|\\\\s*{([^}]*)})/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accTitle[\\\\t ]*:(?:[^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*title(?:[\\\\t ][^\\\\n\\\\r]*?(?=%%)|[\\\\t ][^\\\\n\\\\r]*|)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"FLOAT","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"RegexToken","regex":"/[0-9]+\\\\.[0-9]+(?!\\\\.)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"INT","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"RegexToken","regex":"/0|[1-9][0-9]*(?!\\\\.)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"NUMBER","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"TerminalAlternatives","elements":[{"$type":"TerminalRuleCall","rule":{"$ref":"#/rules@18"}},{"$type":"TerminalRuleCall","rule":{"$ref":"#/rules@19"}}]},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"STRING","type":{"$type":"ReturnType","name":"string"},"definition":{"$type":"RegexToken","regex":"/\\"([^\\"\\\\\\\\]|\\\\\\\\.)*\\"|\'([^\'\\\\\\\\]|\\\\\\\\.)*\'/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ID","type":{"$type":"ReturnType","name":"string"},"definition":{"$type":"RegexToken","regex":"/[\\\\w]([-\\\\w]*\\\\w)?/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"NEWLINE","definition":{"$type":"RegexToken","regex":"/\\\\r?\\\\n/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","hidden":true,"name":"WHITESPACE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]+/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"YAML","definition":{"$type":"RegexToken","regex":"/---[\\\\t ]*\\\\r?\\\\n(?:[\\\\S\\\\s]*?\\\\r?\\\\n)?---(?:\\\\r?\\\\n|(?!\\\\S))/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"DIRECTIVE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%{[\\\\S\\\\s]*?}%%(?:\\\\r?\\\\n|(?!\\\\S))/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"SINGLE_LINE_COMMENT","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%[^\\\\n\\\\r]*/"},"fragment":false},{"$type":"TerminalRule","name":"ARCH_ICON","definition":{"$type":"RegexToken","regex":"/\\\\([\\\\w-:]+\\\\)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ARCH_TITLE","definition":{"$type":"RegexToken","regex":"/\\\\[[\\\\w ]+\\\\]/"},"fragment":false,"hidden":false}],"definesHiddenTokens":false,"hiddenTokens":[],"interfaces":[],"types":[],"usedGrammars":[]}')),"ArchitectureGrammar"),Fu=Wc(()=>Au??(Au=jc('{"$type":"Grammar","isDeclared":true,"name":"GitGraph","imports":[],"rules":[{"$type":"ParserRule","entry":true,"name":"GitGraph","definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@19"},"arguments":[],"cardinality":"*"},{"$type":"Alternatives","elements":[{"$type":"Keyword","value":"gitGraph"},{"$type":"Group","elements":[{"$type":"Keyword","value":"gitGraph"},{"$type":"Keyword","value":":"}]},{"$type":"Keyword","value":"gitGraph:"},{"$type":"Group","elements":[{"$type":"Keyword","value":"gitGraph"},{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[]},{"$type":"Keyword","value":":"}]}]},{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@19"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@9"},"arguments":[]},{"$type":"Assignment","feature":"statements","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[]}}],"cardinality":"*"}]},"definesHiddenTokens":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Statement","definition":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@3"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@4"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@5"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@7"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Direction","definition":{"$type":"Assignment","feature":"dir","operator":"=","terminal":{"$type":"Alternatives","elements":[{"$type":"Keyword","value":"LR"},{"$type":"Keyword","value":"TB"},{"$type":"Keyword","value":"BT"}]}},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Commit","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"commit"},{"$type":"Alternatives","elements":[{"$type":"Group","elements":[{"$type":"Keyword","value":"id:"},{"$type":"Assignment","feature":"id","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}}]},{"$type":"Group","elements":[{"$type":"Keyword","value":"msg:","cardinality":"?"},{"$type":"Assignment","feature":"message","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}}]},{"$type":"Group","elements":[{"$type":"Keyword","value":"tag:"},{"$type":"Assignment","feature":"tags","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}}]},{"$type":"Group","elements":[{"$type":"Keyword","value":"type:"},{"$type":"Assignment","feature":"type","operator":"=","terminal":{"$type":"Alternatives","elements":[{"$type":"Keyword","value":"NORMAL"},{"$type":"Keyword","value":"REVERSE"},{"$type":"Keyword","value":"HIGHLIGHT"}]}}]}],"cardinality":"*"},{"$type":"RuleCall","rule":{"$ref":"#/rules@8"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Branch","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"branch"},{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@24"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}]}},{"$type":"Group","elements":[{"$type":"Keyword","value":"order:"},{"$type":"Assignment","feature":"order","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@15"},"arguments":[]}}],"cardinality":"?"},{"$type":"RuleCall","rule":{"$ref":"#/rules@8"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Merge","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"merge"},{"$type":"Assignment","feature":"branch","operator":"=","terminal":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@24"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}]}},{"$type":"Alternatives","elements":[{"$type":"Group","elements":[{"$type":"Keyword","value":"id:"},{"$type":"Assignment","feature":"id","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}}]},{"$type":"Group","elements":[{"$type":"Keyword","value":"tag:"},{"$type":"Assignment","feature":"tags","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}}]},{"$type":"Group","elements":[{"$type":"Keyword","value":"type:"},{"$type":"Assignment","feature":"type","operator":"=","terminal":{"$type":"Alternatives","elements":[{"$type":"Keyword","value":"NORMAL"},{"$type":"Keyword","value":"REVERSE"},{"$type":"Keyword","value":"HIGHLIGHT"}]}}]}],"cardinality":"*"},{"$type":"RuleCall","rule":{"$ref":"#/rules@8"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Checkout","definition":{"$type":"Group","elements":[{"$type":"Alternatives","elements":[{"$type":"Keyword","value":"checkout"},{"$type":"Keyword","value":"switch"}]},{"$type":"Assignment","feature":"branch","operator":"=","terminal":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@24"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}]}},{"$type":"RuleCall","rule":{"$ref":"#/rules@8"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"CherryPicking","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"cherry-pick"},{"$type":"Alternatives","elements":[{"$type":"Group","elements":[{"$type":"Keyword","value":"id:"},{"$type":"Assignment","feature":"id","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}}]},{"$type":"Group","elements":[{"$type":"Keyword","value":"tag:"},{"$type":"Assignment","feature":"tags","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}}]},{"$type":"Group","elements":[{"$type":"Keyword","value":"parent:"},{"$type":"Assignment","feature":"parent","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}}]}],"cardinality":"*"},{"$type":"RuleCall","rule":{"$ref":"#/rules@8"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","fragment":true,"name":"EOL","dataType":"string","definition":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@19"},"arguments":[],"cardinality":"+"},{"$type":"EndOfFile"}]},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","fragment":true,"name":"TitleAndAccessibilities","definition":{"$type":"Group","elements":[{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"accDescr","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@11"},"arguments":[]}},{"$type":"Assignment","feature":"accTitle","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@12"},"arguments":[]}},{"$type":"Assignment","feature":"title","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@13"},"arguments":[]}}]},{"$type":"RuleCall","rule":{"$ref":"#/rules@8"},"arguments":[]}],"cardinality":"+"},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"TerminalRule","name":"BOOLEAN","type":{"$type":"ReturnType","name":"boolean"},"definition":{"$type":"TerminalAlternatives","elements":[{"$type":"CharacterRange","left":{"$type":"Keyword","value":"true"}},{"$type":"CharacterRange","left":{"$type":"Keyword","value":"false"}}]},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_DESCR","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accDescr(?:[\\\\t ]*:([^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)|\\\\s*{([^}]*)})/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accTitle[\\\\t ]*:(?:[^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*title(?:[\\\\t ][^\\\\n\\\\r]*?(?=%%)|[\\\\t ][^\\\\n\\\\r]*|)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"FLOAT","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"RegexToken","regex":"/[0-9]+\\\\.[0-9]+(?!\\\\.)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"INT","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"RegexToken","regex":"/0|[1-9][0-9]*(?!\\\\.)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"NUMBER","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"TerminalAlternatives","elements":[{"$type":"TerminalRuleCall","rule":{"$ref":"#/rules@14"}},{"$type":"TerminalRuleCall","rule":{"$ref":"#/rules@15"}}]},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"STRING","type":{"$type":"ReturnType","name":"string"},"definition":{"$type":"RegexToken","regex":"/\\"([^\\"\\\\\\\\]|\\\\\\\\.)*\\"|\'([^\'\\\\\\\\]|\\\\\\\\.)*\'/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ID","type":{"$type":"ReturnType","name":"string"},"definition":{"$type":"RegexToken","regex":"/[\\\\w]([-\\\\w]*\\\\w)?/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"NEWLINE","definition":{"$type":"RegexToken","regex":"/\\\\r?\\\\n/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","hidden":true,"name":"WHITESPACE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]+/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"YAML","definition":{"$type":"RegexToken","regex":"/---[\\\\t ]*\\\\r?\\\\n(?:[\\\\S\\\\s]*?\\\\r?\\\\n)?---(?:\\\\r?\\\\n|(?!\\\\S))/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"DIRECTIVE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%{[\\\\S\\\\s]*?}%%(?:\\\\r?\\\\n|(?!\\\\S))/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"SINGLE_LINE_COMMENT","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%[^\\\\n\\\\r]*/"},"fragment":false},{"$type":"TerminalRule","name":"REFERENCE","type":{"$type":"ReturnType","name":"string"},"definition":{"$type":"RegexToken","regex":"/\\\\w([-\\\\./\\\\w]*[-\\\\w])?/"},"fragment":false,"hidden":false}],"definesHiddenTokens":false,"hiddenTokens":[],"interfaces":[],"types":[],"usedGrammars":[]}')),"GitGraphGrammar"),Gu=Wc(()=>ku??(ku=jc('{"$type":"Grammar","isDeclared":true,"name":"Radar","imports":[],"rules":[{"$type":"ParserRule","entry":true,"name":"Radar","definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[],"cardinality":"*"},{"$type":"Alternatives","elements":[{"$type":"Keyword","value":"radar-beta"},{"$type":"Keyword","value":"radar-beta:"},{"$type":"Group","elements":[{"$type":"Keyword","value":"radar-beta"},{"$type":"Keyword","value":":"}]}]},{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[],"cardinality":"*"},{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@10"},"arguments":[]},{"$type":"Group","elements":[{"$type":"Keyword","value":"axis"},{"$type":"Assignment","feature":"axes","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[]}},{"$type":"Group","elements":[{"$type":"Keyword","value":","},{"$type":"Assignment","feature":"axes","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[]}}],"cardinality":"*"}]},{"$type":"Group","elements":[{"$type":"Keyword","value":"curve"},{"$type":"Assignment","feature":"curves","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@3"},"arguments":[]}},{"$type":"Group","elements":[{"$type":"Keyword","value":","},{"$type":"Assignment","feature":"curves","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@3"},"arguments":[]}}],"cardinality":"*"}]},{"$type":"Group","elements":[{"$type":"Assignment","feature":"options","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@7"},"arguments":[]}},{"$type":"Group","elements":[{"$type":"Keyword","value":","},{"$type":"Assignment","feature":"options","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@7"},"arguments":[]}}],"cardinality":"*"}]},{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[]}],"cardinality":"*"}]},"definesHiddenTokens":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","fragment":true,"name":"Label","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"["},{"$type":"Assignment","feature":"label","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@18"},"arguments":[]}},{"$type":"Keyword","value":"]"}]},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Axis","definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@19"},"arguments":[]}},{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[],"cardinality":"?"}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Curve","definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@19"},"arguments":[]}},{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[],"cardinality":"?"},{"$type":"Keyword","value":"{"},{"$type":"RuleCall","rule":{"$ref":"#/rules@4"},"arguments":[]},{"$type":"Keyword","value":"}"}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","fragment":true,"name":"Entries","definition":{"$type":"Alternatives","elements":[{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[],"cardinality":"*"},{"$type":"Assignment","feature":"entries","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[]}},{"$type":"Group","elements":[{"$type":"Keyword","value":","},{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[],"cardinality":"*"},{"$type":"Assignment","feature":"entries","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[]}}],"cardinality":"*"},{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[],"cardinality":"*"}]},{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[],"cardinality":"*"},{"$type":"Assignment","feature":"entries","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@5"},"arguments":[]}},{"$type":"Group","elements":[{"$type":"Keyword","value":","},{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[],"cardinality":"*"},{"$type":"Assignment","feature":"entries","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@5"},"arguments":[]}}],"cardinality":"*"},{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[],"cardinality":"*"}]}]},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"DetailedEntry","returnType":{"$ref":"#/interfaces@0"},"definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"axis","operator":"=","terminal":{"$type":"CrossReference","type":{"$ref":"#/rules@2"},"terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@19"},"arguments":[]},"deprecatedSyntax":false}},{"$type":"Keyword","value":":","cardinality":"?"},{"$type":"Assignment","feature":"value","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"NumberEntry","returnType":{"$ref":"#/interfaces@0"},"definition":{"$type":"Assignment","feature":"value","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Option","definition":{"$type":"Alternatives","elements":[{"$type":"Group","elements":[{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"Keyword","value":"showLegend"}},{"$type":"Assignment","feature":"value","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@11"},"arguments":[]}}]},{"$type":"Group","elements":[{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"Keyword","value":"ticks"}},{"$type":"Assignment","feature":"value","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}}]},{"$type":"Group","elements":[{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"Keyword","value":"max"}},{"$type":"Assignment","feature":"value","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}}]},{"$type":"Group","elements":[{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"Keyword","value":"min"}},{"$type":"Assignment","feature":"value","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}}]},{"$type":"Group","elements":[{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"Keyword","value":"graticule"}},{"$type":"Assignment","feature":"value","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@8"},"arguments":[]}}]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"TerminalRule","name":"GRATICULE","type":{"$type":"ReturnType","name":"string"},"definition":{"$type":"TerminalAlternatives","elements":[{"$type":"CharacterRange","left":{"$type":"Keyword","value":"circle"}},{"$type":"CharacterRange","left":{"$type":"Keyword","value":"polygon"}}]},"fragment":false,"hidden":false},{"$type":"ParserRule","fragment":true,"name":"EOL","dataType":"string","definition":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[],"cardinality":"+"},{"$type":"EndOfFile"}]},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","fragment":true,"name":"TitleAndAccessibilities","definition":{"$type":"Group","elements":[{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"accDescr","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@12"},"arguments":[]}},{"$type":"Assignment","feature":"accTitle","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@13"},"arguments":[]}},{"$type":"Assignment","feature":"title","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@14"},"arguments":[]}}]},{"$type":"RuleCall","rule":{"$ref":"#/rules@9"},"arguments":[]}],"cardinality":"+"},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"TerminalRule","name":"BOOLEAN","type":{"$type":"ReturnType","name":"boolean"},"definition":{"$type":"TerminalAlternatives","elements":[{"$type":"CharacterRange","left":{"$type":"Keyword","value":"true"}},{"$type":"CharacterRange","left":{"$type":"Keyword","value":"false"}}]},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_DESCR","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accDescr(?:[\\\\t ]*:([^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)|\\\\s*{([^}]*)})/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accTitle[\\\\t ]*:(?:[^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*title(?:[\\\\t ][^\\\\n\\\\r]*?(?=%%)|[\\\\t ][^\\\\n\\\\r]*|)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"FLOAT","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"RegexToken","regex":"/[0-9]+\\\\.[0-9]+(?!\\\\.)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"INT","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"RegexToken","regex":"/0|[1-9][0-9]*(?!\\\\.)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"NUMBER","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"TerminalAlternatives","elements":[{"$type":"TerminalRuleCall","rule":{"$ref":"#/rules@15"}},{"$type":"TerminalRuleCall","rule":{"$ref":"#/rules@16"}}]},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"STRING","type":{"$type":"ReturnType","name":"string"},"definition":{"$type":"RegexToken","regex":"/\\"([^\\"\\\\\\\\]|\\\\\\\\.)*\\"|\'([^\'\\\\\\\\]|\\\\\\\\.)*\'/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ID","type":{"$type":"ReturnType","name":"string"},"definition":{"$type":"RegexToken","regex":"/[\\\\w]([-\\\\w]*\\\\w)?/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"NEWLINE","definition":{"$type":"RegexToken","regex":"/\\\\r?\\\\n/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","hidden":true,"name":"WHITESPACE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]+/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"YAML","definition":{"$type":"RegexToken","regex":"/---[\\\\t ]*\\\\r?\\\\n(?:[\\\\S\\\\s]*?\\\\r?\\\\n)?---(?:\\\\r?\\\\n|(?!\\\\S))/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"DIRECTIVE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%{[\\\\S\\\\s]*?}%%(?:\\\\r?\\\\n|(?!\\\\S))/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"SINGLE_LINE_COMMENT","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%[^\\\\n\\\\r]*/"},"fragment":false}],"interfaces":[{"$type":"Interface","name":"Entry","attributes":[{"$type":"TypeAttribute","name":"axis","isOptional":true,"type":{"$type":"ReferenceType","referenceType":{"$type":"SimpleType","typeRef":{"$ref":"#/rules@2"}}}},{"$type":"TypeAttribute","name":"value","type":{"$type":"SimpleType","primitiveType":"number"},"isOptional":false}],"superTypes":[]}],"definesHiddenTokens":false,"hiddenTokens":[],"types":[],"usedGrammars":[]}')),"RadarGrammar"),Bu=Wc(()=>xu??(xu=jc('{"$type":"Grammar","isDeclared":true,"name":"Treemap","rules":[{"$type":"ParserRule","fragment":true,"name":"TitleAndAccessibilities","definition":{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"accDescr","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[]}},{"$type":"Assignment","feature":"accTitle","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@3"},"arguments":[]}},{"$type":"Assignment","feature":"title","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@4"},"arguments":[]}}],"cardinality":"+"},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"TerminalRule","name":"BOOLEAN","type":{"$type":"ReturnType","name":"boolean"},"definition":{"$type":"TerminalAlternatives","elements":[{"$type":"CharacterRange","left":{"$type":"Keyword","value":"true"}},{"$type":"CharacterRange","left":{"$type":"Keyword","value":"false"}}]},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_DESCR","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accDescr(?:[\\\\t ]*:([^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)|\\\\s*{([^}]*)})/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accTitle[\\\\t ]*:(?:[^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*title(?:[\\\\t ][^\\\\n\\\\r]*?(?=%%)|[\\\\t ][^\\\\n\\\\r]*|)/"},"fragment":false,"hidden":false},{"$type":"ParserRule","entry":true,"name":"Treemap","returnType":{"$ref":"#/interfaces@4"},"definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[]},{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@0"},"arguments":[]},{"$type":"Assignment","feature":"TreemapRows","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@14"},"arguments":[]}}],"cardinality":"*"}]},"definesHiddenTokens":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"TerminalRule","name":"TREEMAP_KEYWORD","definition":{"$type":"TerminalAlternatives","elements":[{"$type":"CharacterRange","left":{"$type":"Keyword","value":"treemap-beta"}},{"$type":"CharacterRange","left":{"$type":"Keyword","value":"treemap"}}]},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"CLASS_DEF","definition":{"$type":"RegexToken","regex":"/classDef\\\\s+([a-zA-Z_][a-zA-Z0-9_]+)(?:\\\\s+([^;\\\\r\\\\n]*))?(?:;)?/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"STYLE_SEPARATOR","definition":{"$type":"CharacterRange","left":{"$type":"Keyword","value":":::"}},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"SEPARATOR","definition":{"$type":"CharacterRange","left":{"$type":"Keyword","value":":"}},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"COMMA","definition":{"$type":"CharacterRange","left":{"$type":"Keyword","value":","}},"fragment":false,"hidden":false},{"$type":"TerminalRule","hidden":true,"name":"WS","definition":{"$type":"RegexToken","regex":"/[ \\\\t]+/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"ML_COMMENT","definition":{"$type":"RegexToken","regex":"/\\\\%\\\\%[^\\\\n]*/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"NL","definition":{"$type":"RegexToken","regex":"/\\\\r?\\\\n/"},"fragment":false},{"$type":"ParserRule","name":"TreemapRow","definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"indent","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@19"},"arguments":[]},"cardinality":"?"},{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"item","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@16"},"arguments":[]}},{"$type":"RuleCall","rule":{"$ref":"#/rules@15"},"arguments":[]}]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"ClassDef","dataType":"string","definition":{"$type":"RuleCall","rule":{"$ref":"#/rules@7"},"arguments":[]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Item","returnType":{"$ref":"#/interfaces@0"},"definition":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@18"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Section","returnType":{"$ref":"#/interfaces@1"},"definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@23"},"arguments":[]}},{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@8"},"arguments":[]},{"$type":"Assignment","feature":"classSelector","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[]}}],"cardinality":"?"}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Leaf","returnType":{"$ref":"#/interfaces@2"},"definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@23"},"arguments":[]}},{"$type":"RuleCall","rule":{"$ref":"#/rules@19"},"arguments":[],"cardinality":"?"},{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@9"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@10"},"arguments":[]}]},{"$type":"RuleCall","rule":{"$ref":"#/rules@19"},"arguments":[],"cardinality":"?"},{"$type":"Assignment","feature":"value","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@22"},"arguments":[]}},{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@8"},"arguments":[]},{"$type":"Assignment","feature":"classSelector","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[]}}],"cardinality":"?"}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"TerminalRule","name":"INDENTATION","definition":{"$type":"RegexToken","regex":"/[ \\\\t]{1,}/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ID2","definition":{"$type":"RegexToken","regex":"/[a-zA-Z_][a-zA-Z0-9_]*/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"NUMBER2","definition":{"$type":"RegexToken","regex":"/[0-9_\\\\.\\\\,]+/"},"fragment":false,"hidden":false},{"$type":"ParserRule","name":"MyNumber","dataType":"number","definition":{"$type":"RuleCall","rule":{"$ref":"#/rules@21"},"arguments":[]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"TerminalRule","name":"STRING2","definition":{"$type":"RegexToken","regex":"/\\"[^\\"]*\\"|\'[^\']*\'/"},"fragment":false,"hidden":false}],"interfaces":[{"$type":"Interface","name":"Item","attributes":[{"$type":"TypeAttribute","name":"name","type":{"$type":"SimpleType","primitiveType":"string"},"isOptional":false},{"$type":"TypeAttribute","name":"classSelector","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}}],"superTypes":[]},{"$type":"Interface","name":"Section","superTypes":[{"$ref":"#/interfaces@0"}],"attributes":[]},{"$type":"Interface","name":"Leaf","superTypes":[{"$ref":"#/interfaces@0"}],"attributes":[{"$type":"TypeAttribute","name":"value","type":{"$type":"SimpleType","primitiveType":"number"},"isOptional":false}]},{"$type":"Interface","name":"ClassDefStatement","attributes":[{"$type":"TypeAttribute","name":"className","type":{"$type":"SimpleType","primitiveType":"string"},"isOptional":false},{"$type":"TypeAttribute","name":"styleText","type":{"$type":"SimpleType","primitiveType":"string"},"isOptional":false}],"superTypes":[]},{"$type":"Interface","name":"Treemap","attributes":[{"$type":"TypeAttribute","name":"TreemapRows","type":{"$type":"ArrayType","elementType":{"$type":"SimpleType","typeRef":{"$ref":"#/rules@14"}}},"isOptional":false},{"$type":"TypeAttribute","name":"title","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}},{"$type":"TypeAttribute","name":"accTitle","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}},{"$type":"TypeAttribute","name":"accDescr","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}}],"superTypes":[]}],"definesHiddenTokens":false,"hiddenTokens":[],"imports":[],"types":[],"usedGrammars":[],"$comment":"/**\\n * Treemap grammar for Langium\\n * Converted from mindmap grammar\\n *\\n * The ML_COMMENT and NL hidden terminals handle whitespace, comments, and newlines\\n * before the treemap keyword, allowing for empty lines and comments before the\\n * treemap declaration.\\n */"}')),"TreemapGrammar"),Ku={languageId:"info",fileExtensions:[".mmd",".mermaid"],caseInsensitive:!1,mode:"production"},Vu={languageId:"packet",fileExtensions:[".mmd",".mermaid"],caseInsensitive:!1,mode:"production"},ju={languageId:"pie",fileExtensions:[".mmd",".mermaid"],caseInsensitive:!1,mode:"production"},Hu={languageId:"architecture",fileExtensions:[".mmd",".mermaid"],caseInsensitive:!1,mode:"production"},Wu={languageId:"gitGraph",fileExtensions:[".mmd",".mermaid"],caseInsensitive:!1,mode:"production"},zu={languageId:"radar",fileExtensions:[".mmd",".mermaid"],caseInsensitive:!1,mode:"production"},Yu={languageId:"treemap",fileExtensions:[".mmd",".mermaid"],caseInsensitive:!1,mode:"production"},qu={AstReflection:Wc(()=>new Ou,"AstReflection")},Xu={Grammar:Wc(()=>Pu(),"Grammar"),LanguageMetaData:Wc(()=>Ku,"LanguageMetaData"),parser:{}},Qu={Grammar:Wc(()=>Mu(),"Grammar"),LanguageMetaData:Wc(()=>Vu,"LanguageMetaData"),parser:{}},Zu={Grammar:Wc(()=>Du(),"Grammar"),LanguageMetaData:Wc(()=>ju,"LanguageMetaData"),parser:{}},Ju={Grammar:Wc(()=>Uu(),"Grammar"),LanguageMetaData:Wc(()=>Hu,"LanguageMetaData"),parser:{}},ed={Grammar:Wc(()=>Fu(),"Grammar"),LanguageMetaData:Wc(()=>Wu,"LanguageMetaData"),parser:{}},td={Grammar:Wc(()=>Gu(),"Grammar"),LanguageMetaData:Wc(()=>zu,"LanguageMetaData"),parser:{}},nd={Grammar:Wc(()=>Bu(),"Grammar"),LanguageMetaData:Wc(()=>Yu,"LanguageMetaData"),parser:{}},rd={ACC_DESCR:/accDescr(?:[\t ]*:([^\n\r]*)|\s*{([^}]*)})/,ACC_TITLE:/accTitle[\t ]*:([^\n\r]*)/,TITLE:/title([\t ][^\n\r]*|)/},id=(Iu=class extends Vo{runConverter(e,t,n){let r=this.runCommonConverter(e,t,n);return void 0===r&&(r=this.runCustomConverter(e,t,n)),void 0===r?super.runConverter(e,t,n):r}runCommonConverter(e,t,n){const r=rd[e.name];if(void 0===r)return;const i=r.exec(t);if(null!==i){if(void 0!==i[1])return i[1].trim().replace(/[\t ]{2,}/gm," ");if(void 0!==i[2])return i[2].replace(/^\s*/gm,"").replace(/\s+$/gm,"").replace(/[\t ]{2,}/gm," ").replace(/[\n\r]{2,}/gm,"\n")}}},Wc(Iu,"AbstractMermaidValueConverter"),Iu),sd=(Wc(Su=class extends id{runCustomConverter(e,t,n){}},"CommonValueConverter"),Su),ad=(Cu=class extends Ko{constructor(e){super(),this.keywords=new Set(e)}buildKeywordTokens(e,t,n){const r=super.buildKeywordTokens(e,t,n);return r.forEach(e=>{this.keywords.has(e.name)&&void 0!==e.PATTERN&&(e.PATTERN=new RegExp(e.PATTERN.toString()+"(?:(?=%%)|(?!\\S))"))}),r}},Wc(Cu,"AbstractMermaidTokenBuilder"),Cu);Wc(class extends ad{},"CommonTokenBuilder");var od,ld=(Wc(od=class extends ad{constructor(){super(["gitGraph"])}},"GitGraphTokenBuilder"),od),cd={parser:{TokenBuilder:Wc(()=>new ld,"TokenBuilder"),ValueConverter:Wc(()=>new sd,"ValueConverter")}};function ud(e=Bc){const t=_c(bc(e),qu),n=_c(Lc({shared:t}),ed,cd);return t.ServiceRegistry.register(n),{shared:t,GitGraph:n}}Wc(ud,"createGitGraphServices");var dd,hd=(Wc(dd=class extends ad{constructor(){super(["info","showInfo"])}},"InfoTokenBuilder"),dd),fd={parser:{TokenBuilder:Wc(()=>new hd,"TokenBuilder"),ValueConverter:Wc(()=>new sd,"ValueConverter")}};function pd(e=Bc){const t=_c(bc(e),qu),n=_c(Lc({shared:t}),Xu,fd);return t.ServiceRegistry.register(n),{shared:t,Info:n}}Wc(pd,"createInfoServices");var md,gd=(Wc(md=class extends ad{constructor(){super(["packet"])}},"PacketTokenBuilder"),md),yd={parser:{TokenBuilder:Wc(()=>new gd,"TokenBuilder"),ValueConverter:Wc(()=>new sd,"ValueConverter")}};function Td(e=Bc){const t=_c(bc(e),qu),n=_c(Lc({shared:t}),Qu,yd);return t.ServiceRegistry.register(n),{shared:t,Packet:n}}Wc(Td,"createPacketServices");var vd,Rd,$d=(Wc(vd=class extends ad{constructor(){super(["pie","showData"])}},"PieTokenBuilder"),vd),Ed=(Rd=class extends id{runCustomConverter(e,t,n){if("PIE_SECTION_LABEL"===e.name)return t.replace(/"/g,"").trim()}},Wc(Rd,"PieValueConverter"),Rd),Ad={parser:{TokenBuilder:Wc(()=>new $d,"TokenBuilder"),ValueConverter:Wc(()=>new Ed,"ValueConverter")}};function kd(e=Bc){const t=_c(bc(e),qu),n=_c(Lc({shared:t}),Zu,Ad);return t.ServiceRegistry.register(n),{shared:t,Pie:n}}Wc(kd,"createPieServices");var xd,Id,Sd=(Wc(xd=class extends ad{constructor(){super(["architecture"])}},"ArchitectureTokenBuilder"),xd),Cd=(Id=class extends id{runCustomConverter(e,t,n){return"ARCH_ICON"===e.name?t.replace(/[()]/g,"").trim():"ARCH_TEXT_ICON"===e.name?t.replace(/["()]/g,""):"ARCH_TITLE"===e.name?t.replace(/[[\]]/g,"").trim():void 0}},Wc(Id,"ArchitectureValueConverter"),Id),Nd={parser:{TokenBuilder:Wc(()=>new Sd,"TokenBuilder"),ValueConverter:Wc(()=>new Cd,"ValueConverter")}};function wd(e=Bc){const t=_c(bc(e),qu),n=_c(Lc({shared:t}),Ju,Nd);return t.ServiceRegistry.register(n),{shared:t,Architecture:n}}Wc(wd,"createArchitectureServices");var Ld,bd=(Wc(Ld=class extends ad{constructor(){super(["radar-beta"])}},"RadarTokenBuilder"),Ld),Od={parser:{TokenBuilder:Wc(()=>new bd,"TokenBuilder"),ValueConverter:Wc(()=>new sd,"ValueConverter")}};function _d(e=Bc){const t=_c(bc(e),qu),n=_c(Lc({shared:t}),td,Od);return t.ServiceRegistry.register(n),{shared:t,Radar:n}}Wc(_d,"createRadarServices");var Pd,Md,Dd=(Wc(Pd=class extends ad{constructor(){super(["treemap"])}},"TreemapTokenBuilder"),Pd),Ud=/classDef\s+([A-Z_a-z]\w+)(?:\s+([^\n\r;]*))?;?/,Fd=(Md=class extends id{runCustomConverter(e,t,n){if("NUMBER2"===e.name)return parseFloat(t.replace(/,/g,""));if("SEPARATOR"===e.name)return t.substring(1,t.length-1);if("STRING2"===e.name)return t.substring(1,t.length-1);if("INDENTATION"===e.name)return t.length;if("ClassDef"===e.name){if("string"!=typeof t)return t;const e=Ud.exec(t);if(e)return{$type:"ClassDefStatement",className:e[1],styleText:e[2]||void 0}}}},Wc(Md,"TreemapValueConverter"),Md);function Gd(e){const t=e.validation.TreemapValidator,n=e.validation.ValidationRegistry;if(n){const e={Treemap:t.checkSingleRoot.bind(t)};n.register(e,t)}}Wc(Gd,"registerValidationChecks");var Bd,Kd=(Bd=class{checkSingleRoot(e,t){let n;for(const r of e.TreemapRows)r.item&&(void 0===n&&void 0===r.indent?n=0:(void 0===r.indent||void 0!==n&&n>=parseInt(r.indent,10))&&t("error","Multiple root nodes are not allowed in a treemap.",{node:r,property:"item"}))}},Wc(Bd,"TreemapValidator"),Bd),Vd={parser:{TokenBuilder:Wc(()=>new Dd,"TokenBuilder"),ValueConverter:Wc(()=>new Fd,"ValueConverter")},validation:{TreemapValidator:Wc(()=>new Kd,"TreemapValidator")}};function jd(e=Bc){const t=_c(bc(e),qu),n=_c(Lc({shared:t}),nd,Vd);return t.ServiceRegistry.register(n),Gd(n),{shared:t,Treemap:n}}Wc(jd,"createTreemapServices");var Hd={},Wd={info:Wc(async()=>{const{createInfoServices:e}=await n.e(5768).then(n.bind(n,45768)),t=e().Info.parser.LangiumParser;Hd.info=t},"info"),packet:Wc(async()=>{const{createPacketServices:e}=await n.e(3898).then(n.bind(n,53898)),t=e().Packet.parser.LangiumParser;Hd.packet=t},"packet"),pie:Wc(async()=>{const{createPieServices:e}=await n.e(8054).then(n.bind(n,78054)),t=e().Pie.parser.LangiumParser;Hd.pie=t},"pie"),architecture:Wc(async()=>{const{createArchitectureServices:e}=await n.e(5760).then(n.bind(n,5760)),t=e().Architecture.parser.LangiumParser;Hd.architecture=t},"architecture"),gitGraph:Wc(async()=>{const{createGitGraphServices:e}=await n.e(2550).then(n.bind(n,2550)),t=e().GitGraph.parser.LangiumParser;Hd.gitGraph=t},"gitGraph"),radar:Wc(async()=>{const{createRadarServices:e}=await n.e(8585).then(n.bind(n,68585)),t=e().Radar.parser.LangiumParser;Hd.radar=t},"radar"),treemap:Wc(async()=>{const{createTreemapServices:e}=await n.e(4580).then(n.bind(n,14580)),t=e().Treemap.parser.LangiumParser;Hd.treemap=t},"treemap")};async function zd(e,t){const n=Wd[e];if(!n)throw new Error(`Unknown diagram type: ${e}`);Hd[e]||await n();const r=Hd[e].parse(t);if(r.lexerErrors.length>0||r.parserErrors.length>0)throw new qd(r);return r.value}Wc(zd,"parse");var Yd,qd=(Yd=class extends Error{constructor(e){super(`Parsing failed: ${e.lexerErrors.map(e=>e.message).join("\n")} ${e.parserErrors.map(e=>e.message).join("\n")}`),this.result=e}},Wc(Yd,"MermaidParseError"),Yd)}}]);
1
+ "use strict";(self.webpackChunkruncell=self.webpackChunkruncell||[]).push([[539],{18487:(e,t,n)=>{n.d(t,{c:()=>s});var r=n(59369),i=4;function s(e){return(0,r.b)(e,i)}},90539:(e,t,n)=>{n.d(t,{a:()=>Td,c:()=>pd,d:()=>kd,e:()=>wd,f:()=>ud,g:()=>_d,h:()=>jd,p:()=>zd});var r=n(43340),i=n(59369),s=n(81482),a=n(18487),o=n(39907),l=Object.defineProperty,c=(e,t,n)=>((e,t,n)=>t in e?l(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n)(e,"symbol"!=typeof t?t+"":t,n);function u(e,t,n){var r=-1,i=e.length;t<0&&(t=-t>i?0:i+t),(n=n>i?i:n)<0&&(n+=i),i=t>n?0:n-t>>>0,t>>>=0;for(var s=Array(i);++r<i;)s[r]=e[r+t];return s}function d(e){return"string"==typeof e||!(0,r.aS)(e)&&(0,r.bm)(e)&&"[object String]"==(0,r.bn)(e)}function h(e){return e&&e.length?(0,i.a)(e):[]}function f(e,t){if(null==e)return{};var n=(0,i.o)((0,i.w)(e),function(e){return[e]});return t=(0,i.l)(t),(0,s.b)(e,n,function(e,n){return t(e,n[0])})}var p=(0,r.ar)(function(e,t){return(0,r.as)(e)?function(e,t){var n=-1,r=i.x,s=!0,a=e.length,o=[],l=t.length;if(!a)return o;t.length>=200&&(r=i.y,s=!1,t=new i.S(t));e:for(;++n<a;){var c=e[n],u=c;if(c=0!==c?c:0,s&&u==u){for(var d=l;d--;)if(t[d]===u)continue e;o.push(c)}else r(t,u,undefined)||o.push(c)}return o}(e,(0,i.c)(t,1,r.as,!0)):[]}),m=Object.prototype.hasOwnProperty,g=(0,r.bA)(function(e,t){if((0,r.bB)(t)||(0,r.aR)(t))(0,r.bp)(t,(0,i.k)(t),e);else for(var n in t)m.call(t,n)&&(0,r.aN)(e,n,t[n])});function y(e){for(var t=-1,n=null==e?0:e.length,r=0,i=[];++t<n;){var s=e[t];s&&(i[r++]=s)}return i}function T(e,t,n,r){for(var i=-1,s=null==e?0:e.length;++i<s;){var a=e[i];t(r,a,n(a),e)}return r}function v(e,t,n,r){return(0,i.n)(e,function(e,i,s){t(r,e,n(e),s)}),r}function R(e,t,n){var r=null==e?0:e.length;return r?u(e,(t=void 0===t?1:(0,s.j)(t))<0?0:t,r):[]}function $(e,t,n){var r=null==e?0:e.length;return r?u(e,0,(t=r-(t=void 0===t?1:(0,s.j)(t)))<0?0:t):[]}function E(e,t){for(var n=-1,r=null==e?0:e.length;++n<r;)if(!t(e[n],n,e))return!1;return!0}function A(e,t){var n=!0;return(0,i.n)(e,function(e,r,i){return n=!!t(e,r,i)}),n}function k(e,t,n){return((0,r.aS)(e)?E:A)(e,(0,i.l)(t))}function x(e){return e&&e.length?e[0]:void 0}function I(e,t){return(0,i.c)((0,s.m)(e,t))}var S,C=Object.prototype.hasOwnProperty,N=(S=function(e,t,n){C.call(e,n)?e[n].push(t):(0,r.ba)(e,n,[t])},function(e,t){var n={};return((0,r.aS)(e)?T:v)(e,S,(0,i.l)(t),n)}),w=Math.max;function L(e,t,n,a){e=(0,r.aR)(e)?e:(0,i.v)(e),n=n?(0,s.j)(n):0;var o=e.length;return n<0&&(n=w(o+n,0)),d(e)?n<=o&&e.indexOf(t,n)>-1:!!o&&(0,i.z)(e,t,n)>-1}function b(e,t,n){return null!=e&&e.length?(0,i.z)(e,t,0):-1}var O=r.bt&&r.bt.isRegExp,_=O?(0,r.bb)(O):function(e){return(0,r.bm)(e)&&"[object RegExp]"==(0,r.bn)(e)};function P(e,t){return((0,r.aS)(e)?i.A:i.B)(e,function(e){if("function"!=typeof e)throw new TypeError("Expected a function");return function(){var t=arguments;switch(t.length){case 0:return!e.call(this);case 1:return!e.call(this,t[0]);case 2:return!e.call(this,t[0],t[1]);case 3:return!e.call(this,t[0],t[1],t[2])}return!e.apply(this,t)}}((0,i.l)(t)))}function M(e,t){var n;return(0,i.n)(e,function(e,r,i){return!(n=t(e,r,i))}),!!n}function D(e,t,n){return((0,r.aS)(e)?i.C:M)(e,(0,i.l)(t))}function U(e){return"object"==typeof e&&null!==e&&"string"==typeof e.$type}function F(e){return"object"==typeof e&&null!==e&&"string"==typeof e.$refText}function G(e){return"object"==typeof e&&null!==e&&U(e.container)&&F(e.reference)&&"string"==typeof e.message}class B{constructor(){this.subtypes={},this.allSubtypes={}}isInstance(e,t){return U(e)&&this.isSubtype(e.$type,t)}isSubtype(e,t){if(e===t)return!0;let n=this.subtypes[e];n||(n=this.subtypes[e]={});const r=n[t];if(void 0!==r)return r;{const r=this.computeIsSubtype(e,t);return n[t]=r,r}}getAllSubTypes(e){const t=this.allSubtypes[e];if(t)return t;{const t=this.getAllTypes(),n=[];for(const r of t)this.isSubtype(r,e)&&n.push(r);return this.allSubtypes[e]=n,n}}}function K(e){return"object"==typeof e&&null!==e&&Array.isArray(e.content)}function V(e){return"object"==typeof e&&null!==e&&"object"==typeof e.tokenType}function j(e){return K(e)&&"string"==typeof e.fullText}class H{constructor(e,t){this.startFn=e,this.nextFn=t}iterator(){const e={state:this.startFn(),next:()=>this.nextFn(e.state),[Symbol.iterator]:()=>e};return e}[Symbol.iterator](){return this.iterator()}isEmpty(){return!!this.iterator().next().done}count(){const e=this.iterator();let t=0,n=e.next();for(;!n.done;)t++,n=e.next();return t}toArray(){const e=[],t=this.iterator();let n;do{n=t.next(),void 0!==n.value&&e.push(n.value)}while(!n.done);return e}toSet(){return new Set(this)}toMap(e,t){const n=this.map(n=>[e?e(n):n,t?t(n):n]);return new Map(n)}toString(){return this.join()}concat(e){return new H(()=>({first:this.startFn(),firstDone:!1,iterator:e[Symbol.iterator]()}),e=>{let t;if(!e.firstDone){do{if(t=this.nextFn(e.first),!t.done)return t}while(!t.done);e.firstDone=!0}do{if(t=e.iterator.next(),!t.done)return t}while(!t.done);return q})}join(e=","){const t=this.iterator();let n,r="",i=!1;do{n=t.next(),n.done||(i&&(r+=e),r+=W(n.value)),i=!0}while(!n.done);return r}indexOf(e,t=0){const n=this.iterator();let r=0,i=n.next();for(;!i.done;){if(r>=t&&i.value===e)return r;i=n.next(),r++}return-1}every(e){const t=this.iterator();let n=t.next();for(;!n.done;){if(!e(n.value))return!1;n=t.next()}return!0}some(e){const t=this.iterator();let n=t.next();for(;!n.done;){if(e(n.value))return!0;n=t.next()}return!1}forEach(e){const t=this.iterator();let n=0,r=t.next();for(;!r.done;)e(r.value,n),r=t.next(),n++}map(e){return new H(this.startFn,t=>{const{done:n,value:r}=this.nextFn(t);return n?q:{done:!1,value:e(r)}})}filter(e){return new H(this.startFn,t=>{let n;do{if(n=this.nextFn(t),!n.done&&e(n.value))return n}while(!n.done);return q})}nonNullable(){return this.filter(e=>null!=e)}reduce(e,t){const n=this.iterator();let r=t,i=n.next();for(;!i.done;)r=void 0===r?i.value:e(r,i.value),i=n.next();return r}reduceRight(e,t){return this.recursiveReduce(this.iterator(),e,t)}recursiveReduce(e,t,n){const r=e.next();if(r.done)return n;const i=this.recursiveReduce(e,t,n);return void 0===i?r.value:t(i,r.value)}find(e){const t=this.iterator();let n=t.next();for(;!n.done;){if(e(n.value))return n.value;n=t.next()}}findIndex(e){const t=this.iterator();let n=0,r=t.next();for(;!r.done;){if(e(r.value))return n;r=t.next(),n++}return-1}includes(e){const t=this.iterator();let n=t.next();for(;!n.done;){if(n.value===e)return!0;n=t.next()}return!1}flatMap(e){return new H(()=>({this:this.startFn()}),t=>{do{if(t.iterator){const e=t.iterator.next();if(!e.done)return e;t.iterator=void 0}const{done:n,value:r}=this.nextFn(t.this);if(!n){const n=e(r);if(!z(n))return{done:!1,value:n};t.iterator=n[Symbol.iterator]()}}while(t.iterator);return q})}flat(e){if(void 0===e&&(e=1),e<=0)return this;const t=e>1?this.flat(e-1):this;return new H(()=>({this:t.startFn()}),e=>{do{if(e.iterator){const t=e.iterator.next();if(!t.done)return t;e.iterator=void 0}const{done:n,value:r}=t.nextFn(e.this);if(!n){if(!z(r))return{done:!1,value:r};e.iterator=r[Symbol.iterator]()}}while(e.iterator);return q})}head(){const e=this.iterator().next();if(!e.done)return e.value}tail(e=1){return new H(()=>{const t=this.startFn();for(let n=0;n<e;n++)if(this.nextFn(t).done)return t;return t},this.nextFn)}limit(e){return new H(()=>({size:0,state:this.startFn()}),t=>(t.size++,t.size>e?q:this.nextFn(t.state)))}distinct(e){return new H(()=>({set:new Set,internalState:this.startFn()}),t=>{let n;do{if(n=this.nextFn(t.internalState),!n.done){const r=e?e(n.value):n.value;if(!t.set.has(r))return t.set.add(r),n}}while(!n.done);return q})}exclude(e,t){const n=new Set;for(const r of e){const e=t?t(r):r;n.add(e)}return this.filter(e=>{const r=t?t(e):e;return!n.has(r)})}}function W(e){return"string"==typeof e?e:typeof e>"u"?"undefined":"function"==typeof e.toString?e.toString():Object.prototype.toString.call(e)}function z(e){return!!e&&"function"==typeof e[Symbol.iterator]}const Y=new H(()=>{},()=>q),q=Object.freeze({done:!0,value:void 0});function X(...e){if(1===e.length){const t=e[0];if(t instanceof H)return t;if(z(t))return new H(()=>t[Symbol.iterator](),e=>e.next());if("number"==typeof t.length)return new H(()=>({index:0}),e=>e.index<t.length?{done:!1,value:t[e.index++]}:q)}return e.length>1?new H(()=>({collIndex:0,arrIndex:0}),t=>{do{if(t.iterator){const e=t.iterator.next();if(!e.done)return e;t.iterator=void 0}if(t.array){if(t.arrIndex<t.array.length)return{done:!1,value:t.array[t.arrIndex++]};t.array=void 0,t.arrIndex=0}if(t.collIndex<e.length){const n=e[t.collIndex++];z(n)?t.iterator=n[Symbol.iterator]():n&&"number"==typeof n.length&&(t.array=n)}}while(t.iterator||t.array||t.collIndex<e.length);return q}):Y}class Q extends H{constructor(e,t,n){super(()=>({iterators:null!=n&&n.includeRoot?[[e][Symbol.iterator]()]:[t(e)[Symbol.iterator]()],pruned:!1}),e=>{for(e.pruned&&(e.iterators.pop(),e.pruned=!1);e.iterators.length>0;){const n=e.iterators[e.iterators.length-1].next();if(!n.done)return e.iterators.push(t(n.value)[Symbol.iterator]()),n;e.iterators.pop()}return q})}iterator(){const e={state:this.startFn(),next:()=>this.nextFn(e.state),prune:()=>{e.state.pruned=!0},[Symbol.iterator]:()=>e};return e}}var Z,J;function ee(e){return new Q(e,e=>K(e)?e.content:[],{includeRoot:!0})}function te(e){return{start:{character:e.startColumn-1,line:e.startLine-1},end:{character:e.endColumn,line:e.endLine-1}}}function ne(e){if(!e)return;const{offset:t,end:n,range:r}=e;return{range:r,offset:t,end:n,length:n-t}}!function(e){e.sum=function(e){return e.reduce((e,t)=>e+t,0)},e.product=function(e){return e.reduce((e,t)=>e*t,0)},e.min=function(e){return e.reduce((e,t)=>Math.min(e,t))},e.max=function(e){return e.reduce((e,t)=>Math.max(e,t))}}(Z||(Z={})),function(e){e[e.Before=0]="Before",e[e.After=1]="After",e[e.OverlapFront=2]="OverlapFront",e[e.OverlapBack=3]="OverlapBack",e[e.Inside=4]="Inside",e[e.Outside=5]="Outside"}(J||(J={}));const re=/^[\w\p{L}]$/u;function ie(e,t){return V(e)&&t.includes(e.tokenType.name)}class se extends Error{constructor(e,t){super(e?`${t} at ${e.range.start.line}:${e.range.start.character}`:t)}}function ae(e){throw new Error("Error! The input value was not handled.")}const oe="AbstractRule",le="AbstractType",ce="Condition",ue="TypeDefinition",de="ValueLiteral",he="AbstractElement";function fe(e){return mt.isInstance(e,he)}const pe="ArrayLiteral",me="ArrayType",ge="BooleanLiteral",ye="Conjunction",Te="Disjunction",ve="Grammar",Re="GrammarImport",$e="InferredType";function Ee(e){return mt.isInstance(e,$e)}const Ae="Interface";function ke(e){return mt.isInstance(e,Ae)}const xe="NamedArgument",Ie="Negation",Se="NumberLiteral",Ce="Parameter",Ne="ParameterReference",we="ParserRule";function Le(e){return mt.isInstance(e,we)}const be="ReferenceType",Oe="ReturnType",_e="SimpleType";function Pe(e){return mt.isInstance(e,_e)}const Me="StringLiteral",De="TerminalRule";function Ue(e){return mt.isInstance(e,De)}const Fe="Type";function Ge(e){return mt.isInstance(e,Fe)}const Be="TypeAttribute",Ke="UnionType",Ve="Action";function je(e){return mt.isInstance(e,Ve)}const He="Alternatives";function We(e){return mt.isInstance(e,He)}const ze="Assignment";function Ye(e){return mt.isInstance(e,ze)}const qe="CharacterRange",Xe="CrossReference";function Qe(e){return mt.isInstance(e,Xe)}const Ze="EndOfFile",Je="Group";function et(e){return mt.isInstance(e,Je)}const tt="Keyword";function nt(e){return mt.isInstance(e,tt)}const rt="NegatedToken",it="RegexToken",st="RuleCall";function at(e){return mt.isInstance(e,st)}const ot="TerminalAlternatives",lt="TerminalGroup",ct="TerminalRuleCall",ut="UnorderedGroup";function dt(e){return mt.isInstance(e,ut)}const ht="UntilToken",ft="Wildcard";class pt extends B{getAllTypes(){return[he,oe,le,Ve,He,pe,me,ze,ge,qe,ce,ye,Xe,Te,Ze,ve,Re,Je,$e,Ae,tt,xe,rt,Ie,Se,Ce,Ne,we,be,it,Oe,st,_e,Me,ot,lt,De,ct,Fe,Be,ue,Ke,ut,ht,de,ft]}computeIsSubtype(e,t){switch(e){case Ve:case He:case ze:case qe:case Xe:case Ze:case Je:case tt:case rt:case it:case st:case ot:case lt:case ct:case ut:case ht:case ft:return this.isSubtype(he,t);case pe:case Se:case Me:return this.isSubtype(de,t);case me:case be:case _e:case Ke:return this.isSubtype(ue,t);case ge:return this.isSubtype(ce,t)||this.isSubtype(de,t);case ye:case Te:case Ie:case Ne:return this.isSubtype(ce,t);case $e:case Ae:case Fe:return this.isSubtype(le,t);case we:return this.isSubtype(oe,t)||this.isSubtype(le,t);case De:return this.isSubtype(oe,t);default:return!1}}getReferenceType(e){const t=`${e.container.$type}:${e.property}`;switch(t){case"Action:type":case"CrossReference:type":case"Interface:superTypes":case"ParserRule:returnType":case"SimpleType:typeRef":return le;case"Grammar:hiddenTokens":case"ParserRule:hiddenTokens":case"RuleCall:rule":return oe;case"Grammar:usedGrammars":return ve;case"NamedArgument:parameter":case"ParameterReference:parameter":return Ce;case"TerminalRuleCall:rule":return De;default:throw new Error(`${t} is not a valid reference id.`)}}getTypeMetaData(e){switch(e){case he:return{name:he,properties:[{name:"cardinality"},{name:"lookahead"}]};case pe:return{name:pe,properties:[{name:"elements",defaultValue:[]}]};case me:return{name:me,properties:[{name:"elementType"}]};case ge:return{name:ge,properties:[{name:"true",defaultValue:!1}]};case ye:return{name:ye,properties:[{name:"left"},{name:"right"}]};case Te:return{name:Te,properties:[{name:"left"},{name:"right"}]};case ve:return{name:ve,properties:[{name:"definesHiddenTokens",defaultValue:!1},{name:"hiddenTokens",defaultValue:[]},{name:"imports",defaultValue:[]},{name:"interfaces",defaultValue:[]},{name:"isDeclared",defaultValue:!1},{name:"name"},{name:"rules",defaultValue:[]},{name:"types",defaultValue:[]},{name:"usedGrammars",defaultValue:[]}]};case Re:return{name:Re,properties:[{name:"path"}]};case $e:return{name:$e,properties:[{name:"name"}]};case Ae:return{name:Ae,properties:[{name:"attributes",defaultValue:[]},{name:"name"},{name:"superTypes",defaultValue:[]}]};case xe:return{name:xe,properties:[{name:"calledByName",defaultValue:!1},{name:"parameter"},{name:"value"}]};case Ie:return{name:Ie,properties:[{name:"value"}]};case Se:return{name:Se,properties:[{name:"value"}]};case Ce:return{name:Ce,properties:[{name:"name"}]};case Ne:return{name:Ne,properties:[{name:"parameter"}]};case we:return{name:we,properties:[{name:"dataType"},{name:"definesHiddenTokens",defaultValue:!1},{name:"definition"},{name:"entry",defaultValue:!1},{name:"fragment",defaultValue:!1},{name:"hiddenTokens",defaultValue:[]},{name:"inferredType"},{name:"name"},{name:"parameters",defaultValue:[]},{name:"returnType"},{name:"wildcard",defaultValue:!1}]};case be:return{name:be,properties:[{name:"referenceType"}]};case Oe:return{name:Oe,properties:[{name:"name"}]};case _e:return{name:_e,properties:[{name:"primitiveType"},{name:"stringType"},{name:"typeRef"}]};case Me:return{name:Me,properties:[{name:"value"}]};case De:return{name:De,properties:[{name:"definition"},{name:"fragment",defaultValue:!1},{name:"hidden",defaultValue:!1},{name:"name"},{name:"type"}]};case Fe:return{name:Fe,properties:[{name:"name"},{name:"type"}]};case Be:return{name:Be,properties:[{name:"defaultValue"},{name:"isOptional",defaultValue:!1},{name:"name"},{name:"type"}]};case Ke:return{name:Ke,properties:[{name:"types",defaultValue:[]}]};case Ve:return{name:Ve,properties:[{name:"cardinality"},{name:"feature"},{name:"inferredType"},{name:"lookahead"},{name:"operator"},{name:"type"}]};case He:return{name:He,properties:[{name:"cardinality"},{name:"elements",defaultValue:[]},{name:"lookahead"}]};case ze:return{name:ze,properties:[{name:"cardinality"},{name:"feature"},{name:"lookahead"},{name:"operator"},{name:"terminal"}]};case qe:return{name:qe,properties:[{name:"cardinality"},{name:"left"},{name:"lookahead"},{name:"right"}]};case Xe:return{name:Xe,properties:[{name:"cardinality"},{name:"deprecatedSyntax",defaultValue:!1},{name:"lookahead"},{name:"terminal"},{name:"type"}]};case Ze:return{name:Ze,properties:[{name:"cardinality"},{name:"lookahead"}]};case Je:return{name:Je,properties:[{name:"cardinality"},{name:"elements",defaultValue:[]},{name:"guardCondition"},{name:"lookahead"}]};case tt:return{name:tt,properties:[{name:"cardinality"},{name:"lookahead"},{name:"value"}]};case rt:return{name:rt,properties:[{name:"cardinality"},{name:"lookahead"},{name:"terminal"}]};case it:return{name:it,properties:[{name:"cardinality"},{name:"lookahead"},{name:"regex"}]};case st:return{name:st,properties:[{name:"arguments",defaultValue:[]},{name:"cardinality"},{name:"lookahead"},{name:"rule"}]};case ot:return{name:ot,properties:[{name:"cardinality"},{name:"elements",defaultValue:[]},{name:"lookahead"}]};case lt:return{name:lt,properties:[{name:"cardinality"},{name:"elements",defaultValue:[]},{name:"lookahead"}]};case ct:return{name:ct,properties:[{name:"cardinality"},{name:"lookahead"},{name:"rule"}]};case ut:return{name:ut,properties:[{name:"cardinality"},{name:"elements",defaultValue:[]},{name:"lookahead"}]};case ht:return{name:ht,properties:[{name:"cardinality"},{name:"lookahead"},{name:"terminal"}]};case ft:return{name:ft,properties:[{name:"cardinality"},{name:"lookahead"}]};default:return{name:e,properties:[]}}}}const mt=new pt;function gt(e,t){let n=e;for(;n;){if(t(n))return n;n=n.$container}}function yt(e){const t=Tt(e).$document;if(!t)throw new Error("AST node has no document.");return t}function Tt(e){for(;e.$container;)e=e.$container;return e}function vt(e,t){if(!e)throw new Error("Node must be an AstNode.");const n=null==t?void 0:t.range;return new H(()=>({keys:Object.keys(e),keyIndex:0,arrayIndex:0}),t=>{for(;t.keyIndex<t.keys.length;){const r=t.keys[t.keyIndex];if(!r.startsWith("$")){const i=e[r];if(U(i)){if(t.keyIndex++,Et(i,n))return{done:!1,value:i}}else if(Array.isArray(i)){for(;t.arrayIndex<i.length;){const e=i[t.arrayIndex++];if(U(e)&&Et(e,n))return{done:!1,value:e}}t.arrayIndex=0}}t.keyIndex++}return q})}function Rt(e,t){if(!e)throw new Error("Root node must be an AstNode.");return new Q(e,e=>vt(e,t))}function $t(e,t){if(!e)throw new Error("Root node must be an AstNode.");return new Q(e,e=>vt(e,t),{includeRoot:!0})}function Et(e,t){var n;if(!t)return!0;const r=null===(n=e.$cstNode)||void 0===n?void 0:n.range;return!!r&&function(e,t){return function(e,t){if(e.end.line<t.start.line||e.end.line===t.start.line&&e.end.character<=t.start.character)return J.Before;if(e.start.line>t.end.line||e.start.line===t.end.line&&e.start.character>=t.end.character)return J.After;const n=e.start.line>t.start.line||e.start.line===t.start.line&&e.start.character>=t.start.character,r=e.end.line<t.end.line||e.end.line===t.end.line&&e.end.character<=t.end.character;return n&&r?J.Inside:n?J.OverlapBack:r?J.OverlapFront:J.Outside}(e,t)>J.After}(r,t)}function At(e){return new H(()=>({keys:Object.keys(e),keyIndex:0,arrayIndex:0}),t=>{for(;t.keyIndex<t.keys.length;){const n=t.keys[t.keyIndex];if(!n.startsWith("$")){const r=e[n];if(F(r))return t.keyIndex++,{done:!1,value:{reference:r,container:e,property:n}};if(Array.isArray(r)){for(;t.arrayIndex<r.length;){const i=t.arrayIndex++,s=r[i];if(F(s))return{done:!1,value:{reference:s,container:e,property:n,index:i}}}t.arrayIndex=0}}t.keyIndex++}return q})}function kt(e){return Array.isArray(e)?[...e.map(kt)]:e}function xt(e){return e.charCodeAt(0)}function It(e,t){Array.isArray(e)?e.forEach(function(e){t.push(e)}):t.push(e)}function St(e,t){if(!0===e[t])throw"duplicate flag "+t;e[t],e[t]=!0}function Ct(e){if(void 0===e)throw Error("Internal Error - Should never get here!");return!0}function Nt(e){return"Character"===e.type}const wt=[];for(let e=xt("0");e<=xt("9");e++)wt.push(e);const Lt=[xt("_")].concat(wt);for(let e=xt("a");e<=xt("z");e++)Lt.push(e);for(let e=xt("A");e<=xt("Z");e++)Lt.push(e);const bt=[xt(" "),xt("\f"),xt("\n"),xt("\r"),xt("\t"),xt("\v"),xt("\t"),xt(" "),xt(" "),xt(" "),xt(" "),xt(" "),xt(" "),xt(" "),xt(" "),xt(" "),xt(" "),xt(" "),xt(" "),xt(" "),xt("\u2028"),xt("\u2029"),xt(" "),xt(" "),xt(" "),xt("\ufeff")],Ot=/[0-9a-fA-F]/,_t=/[0-9]/,Pt=/[1-9]/;class Mt{constructor(){this.idx=0,this.input="",this.groupIdx=0}saveState(){return{idx:this.idx,input:this.input,groupIdx:this.groupIdx}}restoreState(e){this.idx=e.idx,this.input=e.input,this.groupIdx=e.groupIdx}pattern(e){this.idx=0,this.input=e,this.groupIdx=0,this.consumeChar("/");const t=this.disjunction();this.consumeChar("/");const n={type:"Flags",loc:{begin:this.idx,end:e.length},global:!1,ignoreCase:!1,multiLine:!1,unicode:!1,sticky:!1};for(;this.isRegExpFlag();)switch(this.popChar()){case"g":St(n,"global");break;case"i":St(n,"ignoreCase");break;case"m":St(n,"multiLine");break;case"u":St(n,"unicode");break;case"y":St(n,"sticky")}if(this.idx!==this.input.length)throw Error("Redundant input: "+this.input.substring(this.idx));return{type:"Pattern",flags:n,value:t,loc:this.loc(0)}}disjunction(){const e=[],t=this.idx;for(e.push(this.alternative());"|"===this.peekChar();)this.consumeChar("|"),e.push(this.alternative());return{type:"Disjunction",value:e,loc:this.loc(t)}}alternative(){const e=[],t=this.idx;for(;this.isTerm();)e.push(this.term());return{type:"Alternative",value:e,loc:this.loc(t)}}term(){return this.isAssertion()?this.assertion():this.atom()}assertion(){const e=this.idx;switch(this.popChar()){case"^":return{type:"StartAnchor",loc:this.loc(e)};case"$":return{type:"EndAnchor",loc:this.loc(e)};case"\\":switch(this.popChar()){case"b":return{type:"WordBoundary",loc:this.loc(e)};case"B":return{type:"NonWordBoundary",loc:this.loc(e)}}throw Error("Invalid Assertion Escape");case"(":let t;switch(this.consumeChar("?"),this.popChar()){case"=":t="Lookahead";break;case"!":t="NegativeLookahead"}Ct(t);const n=this.disjunction();return this.consumeChar(")"),{type:t,value:n,loc:this.loc(e)}}return function(){throw Error("Internal Error - Should never get here!")}()}quantifier(e=!1){let t;const n=this.idx;switch(this.popChar()){case"*":t={atLeast:0,atMost:1/0};break;case"+":t={atLeast:1,atMost:1/0};break;case"?":t={atLeast:0,atMost:1};break;case"{":const n=this.integerIncludingZero();switch(this.popChar()){case"}":t={atLeast:n,atMost:n};break;case",":let e;this.isDigit()?(e=this.integerIncludingZero(),t={atLeast:n,atMost:e}):t={atLeast:n,atMost:1/0},this.consumeChar("}")}if(!0===e&&void 0===t)return;Ct(t)}if((!0!==e||void 0!==t)&&Ct(t))return"?"===this.peekChar(0)?(this.consumeChar("?"),t.greedy=!1):t.greedy=!0,t.type="Quantifier",t.loc=this.loc(n),t}atom(){let e;const t=this.idx;switch(this.peekChar()){case".":e=this.dotAll();break;case"\\":e=this.atomEscape();break;case"[":e=this.characterClass();break;case"(":e=this.group()}if(void 0===e&&this.isPatternCharacter()&&(e=this.patternCharacter()),Ct(e))return e.loc=this.loc(t),this.isQuantifier()&&(e.quantifier=this.quantifier()),e}dotAll(){return this.consumeChar("."),{type:"Set",complement:!0,value:[xt("\n"),xt("\r"),xt("\u2028"),xt("\u2029")]}}atomEscape(){switch(this.consumeChar("\\"),this.peekChar()){case"1":case"2":case"3":case"4":case"5":case"6":case"7":case"8":case"9":return this.decimalEscapeAtom();case"d":case"D":case"s":case"S":case"w":case"W":return this.characterClassEscape();case"f":case"n":case"r":case"t":case"v":return this.controlEscapeAtom();case"c":return this.controlLetterEscapeAtom();case"0":return this.nulCharacterAtom();case"x":return this.hexEscapeSequenceAtom();case"u":return this.regExpUnicodeEscapeSequenceAtom();default:return this.identityEscapeAtom()}}decimalEscapeAtom(){return{type:"GroupBackReference",value:this.positiveInteger()}}characterClassEscape(){let e,t=!1;switch(this.popChar()){case"d":e=wt;break;case"D":e=wt,t=!0;break;case"s":e=bt;break;case"S":e=bt,t=!0;break;case"w":e=Lt;break;case"W":e=Lt,t=!0}if(Ct(e))return{type:"Set",value:e,complement:t}}controlEscapeAtom(){let e;switch(this.popChar()){case"f":e=xt("\f");break;case"n":e=xt("\n");break;case"r":e=xt("\r");break;case"t":e=xt("\t");break;case"v":e=xt("\v")}if(Ct(e))return{type:"Character",value:e}}controlLetterEscapeAtom(){this.consumeChar("c");const e=this.popChar();if(!1===/[a-zA-Z]/.test(e))throw Error("Invalid ");return{type:"Character",value:e.toUpperCase().charCodeAt(0)-64}}nulCharacterAtom(){return this.consumeChar("0"),{type:"Character",value:xt("\0")}}hexEscapeSequenceAtom(){return this.consumeChar("x"),this.parseHexDigits(2)}regExpUnicodeEscapeSequenceAtom(){return this.consumeChar("u"),this.parseHexDigits(4)}identityEscapeAtom(){return{type:"Character",value:xt(this.popChar())}}classPatternCharacterAtom(){switch(this.peekChar()){case"\n":case"\r":case"\u2028":case"\u2029":case"\\":case"]":throw Error("TBD");default:return{type:"Character",value:xt(this.popChar())}}}characterClass(){const e=[];let t=!1;for(this.consumeChar("["),"^"===this.peekChar(0)&&(this.consumeChar("^"),t=!0);this.isClassAtom();){const t=this.classAtom();if(t.type,Nt(t)&&this.isRangeDash()){this.consumeChar("-");const n=this.classAtom();if(n.type,Nt(n)){if(n.value<t.value)throw Error("Range out of order in character class");e.push({from:t.value,to:n.value})}else It(t.value,e),e.push(xt("-")),It(n.value,e)}else It(t.value,e)}return this.consumeChar("]"),{type:"Set",complement:t,value:e}}classAtom(){switch(this.peekChar()){case"]":case"\n":case"\r":case"\u2028":case"\u2029":throw Error("TBD");case"\\":return this.classEscape();default:return this.classPatternCharacterAtom()}}classEscape(){switch(this.consumeChar("\\"),this.peekChar()){case"b":return this.consumeChar("b"),{type:"Character",value:xt("\b")};case"d":case"D":case"s":case"S":case"w":case"W":return this.characterClassEscape();case"f":case"n":case"r":case"t":case"v":return this.controlEscapeAtom();case"c":return this.controlLetterEscapeAtom();case"0":return this.nulCharacterAtom();case"x":return this.hexEscapeSequenceAtom();case"u":return this.regExpUnicodeEscapeSequenceAtom();default:return this.identityEscapeAtom()}}group(){let e=!0;"?"===(this.consumeChar("("),this.peekChar(0))?(this.consumeChar("?"),this.consumeChar(":"),e=!1):this.groupIdx++;const t=this.disjunction();this.consumeChar(")");const n={type:"Group",capturing:e,value:t};return e&&(n.idx=this.groupIdx),n}positiveInteger(){let e=this.popChar();if(!1===Pt.test(e))throw Error("Expecting a positive integer");for(;_t.test(this.peekChar(0));)e+=this.popChar();return parseInt(e,10)}integerIncludingZero(){let e=this.popChar();if(!1===_t.test(e))throw Error("Expecting an integer");for(;_t.test(this.peekChar(0));)e+=this.popChar();return parseInt(e,10)}patternCharacter(){const e=this.popChar();switch(e){case"\n":case"\r":case"\u2028":case"\u2029":case"^":case"$":case"\\":case".":case"*":case"+":case"?":case"(":case")":case"[":case"|":throw Error("TBD");default:return{type:"Character",value:xt(e)}}}isRegExpFlag(){switch(this.peekChar(0)){case"g":case"i":case"m":case"u":case"y":return!0;default:return!1}}isRangeDash(){return"-"===this.peekChar()&&this.isClassAtom(1)}isDigit(){return _t.test(this.peekChar(0))}isClassAtom(e=0){switch(this.peekChar(e)){case"]":case"\n":case"\r":case"\u2028":case"\u2029":return!1;default:return!0}}isTerm(){return this.isAtom()||this.isAssertion()}isAtom(){if(this.isPatternCharacter())return!0;switch(this.peekChar(0)){case".":case"\\":case"[":case"(":return!0;default:return!1}}isAssertion(){switch(this.peekChar(0)){case"^":case"$":return!0;case"\\":switch(this.peekChar(1)){case"b":case"B":return!0;default:return!1}case"(":return"?"===this.peekChar(1)&&("="===this.peekChar(2)||"!"===this.peekChar(2));default:return!1}}isQuantifier(){const e=this.saveState();try{return void 0!==this.quantifier(!0)}catch{return!1}finally{this.restoreState(e)}}isPatternCharacter(){switch(this.peekChar()){case"^":case"$":case"\\":case".":case"*":case"+":case"?":case"(":case")":case"[":case"|":case"/":case"\n":case"\r":case"\u2028":case"\u2029":return!1;default:return!0}}parseHexDigits(e){let t="";for(let n=0;n<e;n++){const e=this.popChar();if(!1===Ot.test(e))throw Error("Expecting a HexDecimal digits");t+=e}return{type:"Character",value:parseInt(t,16)}}peekChar(e=0){return this.input[this.idx+e]}popChar(){const e=this.peekChar(0);return this.consumeChar(void 0),e}consumeChar(e){if(void 0!==e&&this.input[this.idx]!==e)throw Error("Expected: '"+e+"' but found: '"+this.input[this.idx]+"' at offset: "+this.idx);if(this.idx>=this.input.length)throw Error("Unexpected end of input");this.idx++}loc(e){return{begin:e,end:this.idx}}}class Dt{visitChildren(e){for(const t in e){const n=e[t];e.hasOwnProperty(t)&&(void 0!==n.type?this.visit(n):Array.isArray(n)&&n.forEach(e=>{this.visit(e)},this))}}visit(e){switch(e.type){case"Pattern":this.visitPattern(e);break;case"Flags":this.visitFlags(e);break;case"Disjunction":this.visitDisjunction(e);break;case"Alternative":this.visitAlternative(e);break;case"StartAnchor":this.visitStartAnchor(e);break;case"EndAnchor":this.visitEndAnchor(e);break;case"WordBoundary":this.visitWordBoundary(e);break;case"NonWordBoundary":this.visitNonWordBoundary(e);break;case"Lookahead":this.visitLookahead(e);break;case"NegativeLookahead":this.visitNegativeLookahead(e);break;case"Character":this.visitCharacter(e);break;case"Set":this.visitSet(e);break;case"Group":this.visitGroup(e);break;case"GroupBackReference":this.visitGroupBackReference(e);break;case"Quantifier":this.visitQuantifier(e)}this.visitChildren(e)}visitPattern(e){}visitFlags(e){}visitDisjunction(e){}visitAlternative(e){}visitStartAnchor(e){}visitEndAnchor(e){}visitWordBoundary(e){}visitNonWordBoundary(e){}visitLookahead(e){}visitNegativeLookahead(e){}visitCharacter(e){}visitSet(e){}visitGroup(e){}visitGroupBackReference(e){}visitQuantifier(e){}}const Ut=/\r?\n/gm,Ft=new Mt,Gt=new class extends Dt{constructor(){super(...arguments),this.isStarting=!0,this.endRegexpStack=[],this.multiline=!1}get endRegex(){return this.endRegexpStack.join("")}reset(e){this.multiline=!1,this.regex=e,this.startRegexp="",this.isStarting=!0,this.endRegexpStack=[]}visitGroup(e){e.quantifier&&(this.isStarting=!1,this.endRegexpStack=[])}visitCharacter(e){const t=String.fromCharCode(e.value);if(!this.multiline&&"\n"===t&&(this.multiline=!0),e.quantifier)this.isStarting=!1,this.endRegexpStack=[];else{const e=jt(t);this.endRegexpStack.push(e),this.isStarting&&(this.startRegexp+=e)}}visitSet(e){if(!this.multiline){const t=this.regex.substring(e.loc.begin,e.loc.end),n=new RegExp(t);this.multiline=!!"\n".match(n)}if(e.quantifier)this.isStarting=!1,this.endRegexpStack=[];else{const t=this.regex.substring(e.loc.begin,e.loc.end);this.endRegexpStack.push(t),this.isStarting&&(this.startRegexp+=t)}}visitChildren(e){"Group"===e.type&&e.quantifier||super.visitChildren(e)}};function Bt(e){try{return"string"==typeof e&&(e=new RegExp(e)),e=e.toString(),Gt.reset(e),Gt.visit(Ft.pattern(e)),Gt.multiline}catch{return!1}}const Kt="\f\n\r\t\v              \u2028\u2029   \ufeff".split("");function Vt(e){const t="string"==typeof e?new RegExp(e):e;return Kt.some(e=>t.test(e))}function jt(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function Ht(e,t){const n=new Set,r=function(e){return e.rules.find(e=>Le(e)&&e.entry)}(e);if(!r)return new Set(e.rules);const i=[r].concat(function(e){return e.rules.filter(e=>Ue(e)&&e.hidden)}(e));for(const e of i)Wt(e,n,t);const s=new Set;for(const t of e.rules)(n.has(t.name)||Ue(t)&&t.hidden)&&s.add(t);return s}function Wt(e,t,n){t.add(e.name),Rt(e).forEach(e=>{if(at(e)||n){const r=e.rule.ref;r&&!t.has(r.name)&&Wt(r,t,n)}})}function zt(e){return e.hidden&&!Vt(nn(e))}function Yt(e,t,n){if(!e||!t)return;const r=qt(e,t,e.astNode,!0);return 0!==r.length?r[n=void 0!==n?Math.max(0,Math.min(n,r.length-1)):0]:void 0}function qt(e,t,n,r){if(!r){const n=gt(e.grammarSource,Ye);if(n&&n.feature===t)return[e]}return K(e)&&e.astNode===n?e.content.flatMap(e=>qt(e,t,n,!1)):[]}function Xt(e){let t=e;return Ee(t)&&(je(t.$container)?t=t.$container.$container:Le(t.$container)?t=t.$container:ae(t.$container)),Qt(e,t,new Map)}function Qt(e,t,n){var r;function i(t,r){let i;return gt(t,Ye)||(i=Qt(r,r,n)),n.set(e,i),i}if(n.has(e))return n.get(e);n.set(e,void 0);for(const s of Rt(t)){if(Ye(s)&&"name"===s.feature.toLowerCase())return n.set(e,s),s;if(at(s)&&Le(s.rule.ref))return i(s,s.rule.ref);if(Pe(s)&&null!==(r=s.typeRef)&&void 0!==r&&r.ref)return i(s,s.typeRef.ref)}}function Zt(e){return Jt(e,new Set)}function Jt(e,t){if(t.has(e))return!0;t.add(e);for(const n of Rt(e))if(at(n)){if(!n.rule.ref||Le(n.rule.ref)&&!Jt(n.rule.ref,t))return!1}else{if(Ye(n))return!1;if(je(n))return!1}return!!e.definition}function en(e){if(e.inferredType)return e.inferredType.name;if(e.dataType)return e.dataType;if(e.returnType){const t=e.returnType.ref;if(t){if(Le(t))return t.name;if(ke(t)||Ge(t))return t.name}}}function tn(e){var t;if(Le(e))return Zt(e)?e.name:null!==(t=en(e))&&void 0!==t?t:e.name;if(ke(e)||Ge(e)||function(e){return mt.isInstance(e,Oe)}(e))return e.name;if(je(e)){const t=function(e){var t;return e.inferredType?e.inferredType.name:null!==(t=e.type)&&void 0!==t&&t.ref?tn(e.type.ref):void 0}(e);if(t)return t}else if(Ee(e))return e.name;throw new Error("Cannot get name of Unknown Type")}function nn(e){const t={s:!1,i:!1,u:!1},n=sn(e.definition,t),r=Object.entries(t).filter(([,e])=>e).map(([e])=>e).join("");return new RegExp(n,r)}const rn=/[\s\S]/.source;function sn(e,t){if(function(e){return mt.isInstance(e,ot)}(e))return function(e){return on(e.elements.map(e=>sn(e)).join("|"),{cardinality:e.cardinality,lookahead:e.lookahead})}(e);if(function(e){return mt.isInstance(e,lt)}(e))return function(e){return on(e.elements.map(e=>sn(e)).join(""),{cardinality:e.cardinality,lookahead:e.lookahead})}(e);if(function(e){return mt.isInstance(e,qe)}(e))return function(e){return e.right?on(`[${an(e.left)}-${an(e.right)}]`,{cardinality:e.cardinality,lookahead:e.lookahead,wrap:!1}):on(an(e.left),{cardinality:e.cardinality,lookahead:e.lookahead,wrap:!1})}(e);if(function(e){return mt.isInstance(e,ct)}(e)){const t=e.rule.ref;if(!t)throw new Error("Missing rule reference.");return on(sn(t.definition),{cardinality:e.cardinality,lookahead:e.lookahead})}if(function(e){return mt.isInstance(e,rt)}(e))return function(e){return on(`(?!${sn(e.terminal)})${rn}*?`,{cardinality:e.cardinality,lookahead:e.lookahead})}(e);if(function(e){return mt.isInstance(e,ht)}(e))return function(e){return on(`${rn}*?${sn(e.terminal)}`,{cardinality:e.cardinality,lookahead:e.lookahead})}(e);if(function(e){return mt.isInstance(e,it)}(e)){const n=e.regex.lastIndexOf("/"),r=e.regex.substring(1,n),i=e.regex.substring(n+1);return t&&(t.i=i.includes("i"),t.s=i.includes("s"),t.u=i.includes("u")),on(r,{cardinality:e.cardinality,lookahead:e.lookahead,wrap:!1})}if(function(e){return mt.isInstance(e,ft)}(e))return on(rn,{cardinality:e.cardinality,lookahead:e.lookahead});throw new Error(`Invalid terminal element: ${null==e?void 0:e.$type}`)}function an(e){return jt(e.value)}function on(e,t){var n;return(!1!==t.wrap||t.lookahead)&&(e=`(${null!==(n=t.lookahead)&&void 0!==n?n:""}${e})`),t.cardinality?`${e}${t.cardinality}`:e}function ln(e){console&&console.error&&console.error(`Error: ${e}`)}function cn(e){console&&console.warn&&console.warn(`Warning: ${e}`)}function un(e){const t=(new Date).getTime(),n=e();return{time:(new Date).getTime()-t,value:n}}function dn(e){function t(){}t.prototype=e;const n=new t;function r(){return typeof n.bar}return r(),r(),e}function hn(e){return function(e){return d(e.LABEL)&&""!==e.LABEL}(e)?e.LABEL:e.name}class fn{get definition(){return this._definition}set definition(e){this._definition=e}constructor(e){this._definition=e}accept(e){e.visit(this),(0,i.d)(this.definition,t=>{t.accept(e)})}}class pn extends fn{constructor(e){super([]),this.idx=1,g(this,f(e,e=>void 0!==e))}set definition(e){}get definition(){return void 0!==this.referencedRule?this.referencedRule.definition:[]}accept(e){e.visit(this)}}class mn extends fn{constructor(e){super(e.definition),this.orgText="",g(this,f(e,e=>void 0!==e))}}class gn extends fn{constructor(e){super(e.definition),this.ignoreAmbiguities=!1,g(this,f(e,e=>void 0!==e))}}let yn=class extends fn{constructor(e){super(e.definition),this.idx=1,g(this,f(e,e=>void 0!==e))}};class Tn extends fn{constructor(e){super(e.definition),this.idx=1,g(this,f(e,e=>void 0!==e))}}class vn extends fn{constructor(e){super(e.definition),this.idx=1,g(this,f(e,e=>void 0!==e))}}class Rn extends fn{constructor(e){super(e.definition),this.idx=1,g(this,f(e,e=>void 0!==e))}}class $n extends fn{constructor(e){super(e.definition),this.idx=1,g(this,f(e,e=>void 0!==e))}}class En extends fn{get definition(){return this._definition}set definition(e){this._definition=e}constructor(e){super(e.definition),this.idx=1,this.ignoreAmbiguities=!1,this.hasPredicates=!1,g(this,f(e,e=>void 0!==e))}}class An{constructor(e){this.idx=1,g(this,f(e,e=>void 0!==e))}accept(e){e.visit(this)}}function kn(e){function t(e){return(0,s.m)(e,kn)}if(e instanceof pn){const t={type:"NonTerminal",name:e.nonTerminalName,idx:e.idx};return d(e.label)&&(t.label=e.label),t}if(e instanceof gn)return{type:"Alternative",definition:t(e.definition)};if(e instanceof yn)return{type:"Option",idx:e.idx,definition:t(e.definition)};if(e instanceof Tn)return{type:"RepetitionMandatory",idx:e.idx,definition:t(e.definition)};if(e instanceof vn)return{type:"RepetitionMandatoryWithSeparator",idx:e.idx,separator:kn(new An({terminalType:e.separator})),definition:t(e.definition)};if(e instanceof $n)return{type:"RepetitionWithSeparator",idx:e.idx,separator:kn(new An({terminalType:e.separator})),definition:t(e.definition)};if(e instanceof Rn)return{type:"Repetition",idx:e.idx,definition:t(e.definition)};if(e instanceof En)return{type:"Alternation",idx:e.idx,definition:t(e.definition)};if(e instanceof An){const t={type:"Terminal",name:e.terminalType.name,label:hn(e.terminalType),idx:e.idx};d(e.label)&&(t.terminalLabel=e.label);const n=e.terminalType.PATTERN;return e.terminalType.PATTERN&&(t.pattern=_(n)?n.source:n),t}if(e instanceof mn)return{type:"Rule",name:e.name,orgText:e.orgText,definition:t(e.definition)};throw Error("non exhaustive match")}class xn{visit(e){const t=e;switch(t.constructor){case pn:return this.visitNonTerminal(t);case gn:return this.visitAlternative(t);case yn:return this.visitOption(t);case Tn:return this.visitRepetitionMandatory(t);case vn:return this.visitRepetitionMandatoryWithSeparator(t);case $n:return this.visitRepetitionWithSeparator(t);case Rn:return this.visitRepetition(t);case En:return this.visitAlternation(t);case An:return this.visitTerminal(t);case mn:return this.visitRule(t);default:throw Error("non exhaustive match")}}visitNonTerminal(e){}visitAlternative(e){}visitOption(e){}visitRepetition(e){}visitRepetitionMandatory(e){}visitRepetitionMandatoryWithSeparator(e){}visitRepetitionWithSeparator(e){}visitAlternation(e){}visitTerminal(e){}visitRule(e){}}function In(e,t=[]){return e instanceof yn||e instanceof Rn||e instanceof $n||(e instanceof En?D(e.definition,e=>In(e,t)):!(e instanceof pn&&L(t,e))&&e instanceof fn&&(e instanceof pn&&t.push(e),k(e.definition,e=>In(e,t))))}function Sn(e){if(e instanceof pn)return"SUBRULE";if(e instanceof yn)return"OPTION";if(e instanceof En)return"OR";if(e instanceof Tn)return"AT_LEAST_ONE";if(e instanceof vn)return"AT_LEAST_ONE_SEP";if(e instanceof $n)return"MANY_SEP";if(e instanceof Rn)return"MANY";if(e instanceof An)return"CONSUME";throw Error("non exhaustive match")}class Cn{walk(e,t=[]){(0,i.d)(e.definition,(n,r)=>{const i=R(e.definition,r+1);if(n instanceof pn)this.walkProdRef(n,i,t);else if(n instanceof An)this.walkTerminal(n,i,t);else if(n instanceof gn)this.walkFlat(n,i,t);else if(n instanceof yn)this.walkOption(n,i,t);else if(n instanceof Tn)this.walkAtLeastOne(n,i,t);else if(n instanceof vn)this.walkAtLeastOneSep(n,i,t);else if(n instanceof $n)this.walkManySep(n,i,t);else if(n instanceof Rn)this.walkMany(n,i,t);else{if(!(n instanceof En))throw Error("non exhaustive match");this.walkOr(n,i,t)}})}walkTerminal(e,t,n){}walkProdRef(e,t,n){}walkFlat(e,t,n){const r=t.concat(n);this.walk(e,r)}walkOption(e,t,n){const r=t.concat(n);this.walk(e,r)}walkAtLeastOne(e,t,n){const r=[new yn({definition:e.definition})].concat(t,n);this.walk(e,r)}walkAtLeastOneSep(e,t,n){const r=Nn(e,t,n);this.walk(e,r)}walkMany(e,t,n){const r=[new yn({definition:e.definition})].concat(t,n);this.walk(e,r)}walkManySep(e,t,n){const r=Nn(e,t,n);this.walk(e,r)}walkOr(e,t,n){const r=t.concat(n);(0,i.d)(e.definition,e=>{const t=new gn({definition:[e]});this.walk(t,r)})}}function Nn(e,t,n){return[new yn({definition:[new An({terminalType:e.separator})].concat(e.definition)})].concat(t,n)}function wn(e){if(e instanceof pn)return wn(e.referencedRule);if(e instanceof An)return function(e){return[e.terminalType]}(e);if(function(e){return e instanceof gn||e instanceof yn||e instanceof Rn||e instanceof Tn||e instanceof vn||e instanceof $n||e instanceof An||e instanceof mn}(e))return function(e){let t=[];const n=e.definition;let r,i=0,s=n.length>i,a=!0;for(;s&&a;)r=n[i],a=In(r),t=t.concat(wn(r)),i+=1,s=n.length>i;return h(t)}(e);if(function(e){return e instanceof En}(e))return function(e){const t=(0,s.m)(e.definition,e=>wn(e));return h((0,s.f)(t))}(e);throw Error("non exhaustive match")}const Ln="_~IN~_";class bn extends Cn{constructor(e){super(),this.topProd=e,this.follows={}}startWalking(){return this.walk(this.topProd),this.follows}walkTerminal(e,t,n){}walkProdRef(e,t,n){const r=function(e,t){return e.name+t+Ln}(e.referencedRule,e.idx)+this.topProd.name,i=t.concat(n),s=wn(new gn({definition:i}));this.follows[r]=s}}let On={};const _n=new Mt;function Pn(e){const t=e.toString();if(On.hasOwnProperty(t))return On[t];{const e=_n.pattern(t);return On[t]=e,e}}const Mn="Complement Sets are not supported for first char optimization",Dn='Unable to use "first char" lexer optimizations:\n';function Un(e,t=!1){try{const t=Pn(e);return Fn(t.value,{},t.flags.ignoreCase)}catch(n){if(n.message===Mn)t&&cn(`${Dn}\tUnable to optimize: < ${e.toString()} >\n\tComplement Sets cannot be automatically optimized.\n\tThis will disable the lexer's first char optimizations.\n\tSee: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#COMPLEMENT for details.`);else{let n="";t&&(n="\n\tThis will disable the lexer's first char optimizations.\n\tSee: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#REGEXP_PARSING for details."),ln(`${Dn}\n\tFailed parsing: < ${e.toString()} >\n\tUsing the @chevrotain/regexp-to-ast library\n\tPlease open an issue at: https://github.com/chevrotain/chevrotain/issues`+n)}}return[]}function Fn(e,t,n){switch(e.type){case"Disjunction":for(let r=0;r<e.value.length;r++)Fn(e.value[r],t,n);break;case"Alternative":const r=e.value;for(let e=0;e<r.length;e++){const s=r[e];switch(s.type){case"EndAnchor":case"GroupBackReference":case"Lookahead":case"NegativeLookahead":case"StartAnchor":case"WordBoundary":case"NonWordBoundary":continue}const a=s;switch(a.type){case"Character":Gn(a.value,t,n);break;case"Set":if(!0===a.complement)throw Error(Mn);(0,i.d)(a.value,e=>{if("number"==typeof e)Gn(e,t,n);else{const r=e;if(!0===n)for(let e=r.from;e<=r.to;e++)Gn(e,t,n);else{for(let e=r.from;e<=r.to&&e<ar;e++)Gn(e,t,n);if(r.to>=ar){const e=r.from>=ar?r.from:ar,n=r.to,i=lr(e),s=lr(n);for(let e=i;e<=s;e++)t[e]=e}}}});break;case"Group":Fn(a.value,t,n);break;default:throw Error("Non Exhaustive Match")}const o=void 0!==a.quantifier&&0===a.quantifier.atLeast;if("Group"===a.type&&!1===Kn(a)||"Group"!==a.type&&!1===o)break}break;default:throw Error("non exhaustive match!")}return(0,i.v)(t)}function Gn(e,t,n){const r=lr(e);t[r]=r,!0===n&&function(e,t){const n=String.fromCharCode(e),r=n.toUpperCase();if(r!==n){const e=lr(r.charCodeAt(0));t[e]=e}else{const e=n.toLowerCase();if(e!==n){const n=lr(e.charCodeAt(0));t[n]=n}}}(e,t)}function Bn(e,t){return(0,s.g)(e.value,e=>{if("number"==typeof e)return L(t,e);{const n=e;return void 0!==(0,s.g)(t,e=>n.from<=e&&e<=n.to)}})}function Kn(e){const t=e.quantifier;return!(!t||0!==t.atLeast)||!!e.value&&((0,r.aS)(e.value)?k(e.value,Kn):Kn(e.value))}class Vn extends Dt{constructor(e){super(),this.targetCharCodes=e,this.found=!1}visitChildren(e){if(!0!==this.found){switch(e.type){case"Lookahead":return void this.visitLookahead(e);case"NegativeLookahead":return void this.visitNegativeLookahead(e)}super.visitChildren(e)}}visitCharacter(e){L(this.targetCharCodes,e.value)&&(this.found=!0)}visitSet(e){e.complement?void 0===Bn(e,this.targetCharCodes)&&(this.found=!0):void 0!==Bn(e,this.targetCharCodes)&&(this.found=!0)}}function jn(e,t){if(t instanceof RegExp){const n=Pn(t),r=new Vn(e);return r.visit(n),r.found}return void 0!==(0,s.g)(t,t=>L(e,t.charCodeAt(0)))}const Hn="PATTERN",Wn="defaultMode",zn="modes";let Yn="boolean"==typeof new RegExp("(?:)").sticky;const qn=/[^\\][$]/,Xn=/[^\\[][\^]|^\^/;function Qn(e){const t=e.ignoreCase?"i":"";return new RegExp(`^(?:${e.source})`,t)}function Zn(e){const t=e.ignoreCase?"iy":"y";return new RegExp(`${e.source}`,t)}function Jn(e){const t=e.PATTERN;if(_(t))return!1;if((0,r.au)(t))return!0;if((0,s.h)(t,"exec"))return!0;if(d(t))return!1;throw Error("non exhaustive match")}function er(e){return!(!d(e)||1!==e.length)&&e.charCodeAt(0)}const tr={test:function(e){const t=e.length;for(let n=this.lastIndex;n<t;n++){const t=e.charCodeAt(n);if(10===t)return this.lastIndex=n+1,!0;if(13===t)return 10===e.charCodeAt(n+1)?this.lastIndex=n+2:this.lastIndex=n+1,!0}return!1},lastIndex:0};function nr(e,t){if((0,s.h)(e,"LINE_BREAKS"))return!1;if(_(e.PATTERN)){try{jn(t,e.PATTERN)}catch(e){return{issue:vr.IDENTIFY_TERMINATOR,errMsg:e.message}}return!1}if(d(e.PATTERN))return!1;if(Jn(e))return{issue:vr.CUSTOM_LINE_BREAK};throw Error("non exhaustive match")}function rr(e,t){if(t.issue===vr.IDENTIFY_TERMINATOR)return`Warning: unable to identify line terminator usage in pattern.\n\tThe problem is in the <${e.name}> Token Type\n\t Root cause: ${t.errMsg}.\n\tFor details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#IDENTIFY_TERMINATOR`;if(t.issue===vr.CUSTOM_LINE_BREAK)return`Warning: A Custom Token Pattern should specify the <line_breaks> option.\n\tThe problem is in the <${e.name}> Token Type\n\tFor details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#CUSTOM_LINE_BREAK`;throw Error("non exhaustive match")}function ir(e){return(0,s.m)(e,e=>d(e)?e.charCodeAt(0):e)}function sr(e,t,n){void 0===e[t]?e[t]=[n]:e[t].push(n)}const ar=256;let or=[];function lr(e){return e<ar?e:or[e]}function cr(e,t){const n=e.tokenTypeIdx;return n===t.tokenTypeIdx||!0===t.isParent&&!0===t.categoryMatchesMap[n]}function ur(e,t){return e.tokenTypeIdx===t.tokenTypeIdx}let dr=1;const hr={};function fr(e){const t=function(e){let t=(0,a.c)(e),n=e,i=!0;for(;i;){n=y((0,s.f)((0,s.m)(n,e=>e.CATEGORIES)));const e=p(n,t);t=t.concat(e),(0,r.av)(e)?i=!1:n=e}return t}(e);(function(e){(0,i.d)(e,e=>{mr(e)||(hr[dr]=e,e.tokenTypeIdx=dr++),gr(e)&&!(0,r.aS)(e.CATEGORIES)&&(e.CATEGORIES=[e.CATEGORIES]),gr(e)||(e.CATEGORIES=[]),function(e){return(0,s.h)(e,"categoryMatches")}(e)||(e.categoryMatches=[]),function(e){return(0,s.h)(e,"categoryMatchesMap")}(e)||(e.categoryMatchesMap={})})})(t),function(e){(0,i.d)(e,e=>{pr([],e)})}(t),function(e){(0,i.d)(e,e=>{e.categoryMatches=[],(0,i.d)(e.categoryMatchesMap,(t,n)=>{e.categoryMatches.push(hr[n].tokenTypeIdx)})})}(t),(0,i.d)(t,e=>{e.isParent=e.categoryMatches.length>0})}function pr(e,t){(0,i.d)(e,e=>{t.categoryMatchesMap[e.tokenTypeIdx]=!0}),(0,i.d)(t.CATEGORIES,n=>{const r=e.concat(t);L(r,n)||pr(r,n)})}function mr(e){return(0,s.h)(e,"tokenTypeIdx")}function gr(e){return(0,s.h)(e,"CATEGORIES")}function yr(e){return(0,s.h)(e,"tokenTypeIdx")}const Tr={buildUnableToPopLexerModeMessage:e=>`Unable to pop Lexer Mode after encountering Token ->${e.image}<- The Mode Stack is empty`,buildUnexpectedCharactersMessage:(e,t,n,r,i)=>`unexpected character: ->${e.charAt(t)}<- at offset: ${t}, skipped ${n} characters.`};var vr;!function(e){e[e.MISSING_PATTERN=0]="MISSING_PATTERN",e[e.INVALID_PATTERN=1]="INVALID_PATTERN",e[e.EOI_ANCHOR_FOUND=2]="EOI_ANCHOR_FOUND",e[e.UNSUPPORTED_FLAGS_FOUND=3]="UNSUPPORTED_FLAGS_FOUND",e[e.DUPLICATE_PATTERNS_FOUND=4]="DUPLICATE_PATTERNS_FOUND",e[e.INVALID_GROUP_TYPE_FOUND=5]="INVALID_GROUP_TYPE_FOUND",e[e.PUSH_MODE_DOES_NOT_EXIST=6]="PUSH_MODE_DOES_NOT_EXIST",e[e.MULTI_MODE_LEXER_WITHOUT_DEFAULT_MODE=7]="MULTI_MODE_LEXER_WITHOUT_DEFAULT_MODE",e[e.MULTI_MODE_LEXER_WITHOUT_MODES_PROPERTY=8]="MULTI_MODE_LEXER_WITHOUT_MODES_PROPERTY",e[e.MULTI_MODE_LEXER_DEFAULT_MODE_VALUE_DOES_NOT_EXIST=9]="MULTI_MODE_LEXER_DEFAULT_MODE_VALUE_DOES_NOT_EXIST",e[e.LEXER_DEFINITION_CANNOT_CONTAIN_UNDEFINED=10]="LEXER_DEFINITION_CANNOT_CONTAIN_UNDEFINED",e[e.SOI_ANCHOR_FOUND=11]="SOI_ANCHOR_FOUND",e[e.EMPTY_MATCH_PATTERN=12]="EMPTY_MATCH_PATTERN",e[e.NO_LINE_BREAKS_FLAGS=13]="NO_LINE_BREAKS_FLAGS",e[e.UNREACHABLE_PATTERN=14]="UNREACHABLE_PATTERN",e[e.IDENTIFY_TERMINATOR=15]="IDENTIFY_TERMINATOR",e[e.CUSTOM_LINE_BREAK=16]="CUSTOM_LINE_BREAK",e[e.MULTI_MODE_LEXER_LONGER_ALT_NOT_IN_CURRENT_MODE=17]="MULTI_MODE_LEXER_LONGER_ALT_NOT_IN_CURRENT_MODE"}(vr||(vr={}));const Rr={deferDefinitionErrorsHandling:!1,positionTracking:"full",lineTerminatorsPattern:/\n|\r\n?/g,lineTerminatorCharacters:["\n","\r"],ensureOptimizations:!1,safeMode:!1,errorMessageProvider:Tr,traceInitPerf:!1,skipValidations:!1,recoveryEnabled:!0};Object.freeze(Rr);class $r{constructor(e,t=Rr){if(this.lexerDefinition=e,this.lexerDefinitionErrors=[],this.lexerDefinitionWarning=[],this.patternIdxToConfig={},this.charCodeToPatternIdxToConfig={},this.modes=[],this.emptyGroups={},this.trackStartLines=!0,this.trackEndLines=!0,this.hasCustom=!1,this.canModeBeOptimized={},this.TRACE_INIT=(e,t)=>{if(!0===this.traceInitPerf){this.traceInitIndent++;const n=new Array(this.traceInitIndent+1).join("\t");this.traceInitIndent<this.traceInitMaxIdent&&console.log(`${n}--\x3e <${e}>`);const{time:r,value:i}=un(t),s=r>10?console.warn:console.log;return this.traceInitIndent<this.traceInitMaxIdent&&s(`${n}<-- <${e}> time: ${r}ms`),this.traceInitIndent--,i}return t()},"boolean"==typeof t)throw Error("The second argument to the Lexer constructor is now an ILexerConfig Object.\na boolean 2nd argument is no longer supported");this.config=g({},Rr,t);const n=this.config.traceInitPerf;!0===n?(this.traceInitMaxIdent=1/0,this.traceInitPerf=!0):"number"==typeof n&&(this.traceInitMaxIdent=n,this.traceInitPerf=!0),this.traceInitIndent=-1,this.TRACE_INIT("Lexer Constructor",()=>{let n,o=!0;this.TRACE_INIT("Lexer Config handling",()=>{if(this.config.lineTerminatorsPattern===Rr.lineTerminatorsPattern)this.config.lineTerminatorsPattern=tr;else if(this.config.lineTerminatorCharacters===Rr.lineTerminatorCharacters)throw Error("Error: Missing <lineTerminatorCharacters> property on the Lexer config.\n\tFor details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#MISSING_LINE_TERM_CHARS");if(t.safeMode&&t.ensureOptimizations)throw Error('"safeMode" and "ensureOptimizations" flags are mutually exclusive.');this.trackStartLines=/full|onlyStart/i.test(this.config.positionTracking),this.trackEndLines=/full/i.test(this.config.positionTracking),(0,r.aS)(e)?n={modes:{defaultMode:(0,a.c)(e)},defaultMode:Wn}:(o=!1,n=(0,a.c)(e))}),!1===this.config.skipValidations&&(this.TRACE_INIT("performRuntimeChecks",()=>{this.lexerDefinitionErrors=this.lexerDefinitionErrors.concat(function(e){const t=[];return(0,s.h)(e,Wn)||t.push({message:"A MultiMode Lexer cannot be initialized without a <"+Wn+"> property in its definition\n",type:vr.MULTI_MODE_LEXER_WITHOUT_DEFAULT_MODE}),(0,s.h)(e,zn)||t.push({message:"A MultiMode Lexer cannot be initialized without a <modes> property in its definition\n",type:vr.MULTI_MODE_LEXER_WITHOUT_MODES_PROPERTY}),(0,s.h)(e,zn)&&(0,s.h)(e,Wn)&&!(0,s.h)(e.modes,e.defaultMode)&&t.push({message:`A MultiMode Lexer cannot be initialized with a ${Wn}: <${e.defaultMode}>which does not exist\n`,type:vr.MULTI_MODE_LEXER_DEFAULT_MODE_VALUE_DOES_NOT_EXIST}),(0,s.h)(e,zn)&&(0,i.d)(e.modes,(e,n)=>{(0,i.d)(e,(a,o)=>{if((0,i.i)(a))t.push({message:`A Lexer cannot be initialized using an undefined Token Type. Mode:<${n}> at index: <${o}>\n`,type:vr.LEXER_DEFINITION_CANNOT_CONTAIN_UNDEFINED});else if((0,s.h)(a,"LONGER_ALT")){const s=(0,r.aS)(a.LONGER_ALT)?a.LONGER_ALT:[a.LONGER_ALT];(0,i.d)(s,r=>{!(0,i.i)(r)&&!L(e,r)&&t.push({message:`A MultiMode Lexer cannot be initialized with a longer_alt <${r.name}> on token <${a.name}> outside of mode <${n}>\n`,type:vr.MULTI_MODE_LEXER_LONGER_ALT_NOT_IN_CURRENT_MODE})})}})}),t}(n,this.trackStartLines,this.config.lineTerminatorCharacters))}),this.TRACE_INIT("performWarningRuntimeChecks",()=>{this.lexerDefinitionWarning=this.lexerDefinitionWarning.concat(function(e,t,n){const r=[];let a=!1;const o=P(y((0,s.f)((0,i.v)(e.modes))),e=>e[Hn]===$r.NA),l=ir(n);return t&&(0,i.d)(o,e=>{const t=nr(e,l);if(!1!==t){const n={message:rr(e,t),type:t.issue,tokenType:e};r.push(n)}else(0,s.h)(e,"LINE_BREAKS")?!0===e.LINE_BREAKS&&(a=!0):jn(l,e.PATTERN)&&(a=!0)}),t&&!a&&r.push({message:"Warning: No LINE_BREAKS Found.\n\tThis Lexer has been defined to track line and column information,\n\tBut none of the Token Types can be identified as matching a line terminator.\n\tSee https://chevrotain.io/docs/guide/resolving_lexer_errors.html#LINE_BREAKS \n\tfor details.",type:vr.NO_LINE_BREAKS_FLAGS}),r}(n,this.trackStartLines,this.config.lineTerminatorCharacters))})),n.modes=n.modes?n.modes:{},(0,i.d)(n.modes,(e,t)=>{n.modes[t]=P(e,e=>(0,i.i)(e))});const l=(0,i.k)(n.modes);if((0,i.d)(n.modes,(e,n)=>{this.TRACE_INIT(`Mode: <${n}> processing`,()=>{if(this.modes.push(n),!1===this.config.skipValidations&&this.TRACE_INIT("validatePatterns",()=>{this.lexerDefinitionErrors=this.lexerDefinitionErrors.concat(function(e,t){let n=[];const a=function(e){const t=(0,i.f)(e,e=>!(0,s.h)(e,Hn)),n=(0,s.m)(t,e=>({message:"Token Type: ->"+e.name+"<- missing static 'PATTERN' property",type:vr.MISSING_PATTERN,tokenTypes:[e]}));return{errors:n,valid:p(e,t)}}(e);n=n.concat(a.errors);const o=function(e){const t=(0,i.f)(e,e=>{const t=e[Hn];return!(_(t)||(0,r.au)(t)||(0,s.h)(t,"exec")||d(t))}),n=(0,s.m)(t,e=>({message:"Token Type: ->"+e.name+"<- static 'PATTERN' can only be a RegExp, a Function matching the {CustomPatternMatcherFunc} type or an Object matching the {ICustomPattern} interface.",type:vr.INVALID_PATTERN,tokenTypes:[e]}));return{errors:n,valid:p(e,t)}}(a.valid),l=o.valid;return n=n.concat(o.errors),n=n.concat(function(e){let t=[];const n=(0,i.f)(e,e=>_(e[Hn]));return t=t.concat(function(e){class t extends Dt{constructor(){super(...arguments),this.found=!1}visitEndAnchor(e){this.found=!0}}const n=(0,i.f)(e,e=>{const n=e.PATTERN;try{const e=Pn(n),r=new t;return r.visit(e),r.found}catch{return qn.test(n.source)}});return(0,s.m)(n,e=>({message:"Unexpected RegExp Anchor Error:\n\tToken Type: ->"+e.name+"<- static 'PATTERN' cannot contain end of input anchor '$'\n\tSee chevrotain.io/docs/guide/resolving_lexer_errors.html#ANCHORS\tfor details.",type:vr.EOI_ANCHOR_FOUND,tokenTypes:[e]}))}(n)),t=t.concat(function(e){class t extends Dt{constructor(){super(...arguments),this.found=!1}visitStartAnchor(e){this.found=!0}}const n=(0,i.f)(e,e=>{const n=e.PATTERN;try{const e=Pn(n),r=new t;return r.visit(e),r.found}catch{return Xn.test(n.source)}});return(0,s.m)(n,e=>({message:"Unexpected RegExp Anchor Error:\n\tToken Type: ->"+e.name+"<- static 'PATTERN' cannot contain start of input anchor '^'\n\tSee https://chevrotain.io/docs/guide/resolving_lexer_errors.html#ANCHORS\tfor details.",type:vr.SOI_ANCHOR_FOUND,tokenTypes:[e]}))}(n)),t=t.concat(function(e){const t=(0,i.f)(e,e=>{const t=e[Hn];return t instanceof RegExp&&(t.multiline||t.global)});return(0,s.m)(t,e=>({message:"Token Type: ->"+e.name+"<- static 'PATTERN' may NOT contain global('g') or multiline('m')",type:vr.UNSUPPORTED_FLAGS_FOUND,tokenTypes:[e]}))}(n)),t=t.concat(function(e){const t=[];let n=(0,s.m)(e,n=>(0,i.r)(e,(e,r)=>(n.PATTERN.source===r.PATTERN.source&&!L(t,r)&&r.PATTERN!==$r.NA&&(t.push(r),e.push(r)),e),[]));n=y(n);const r=(0,i.f)(n,e=>e.length>1);return(0,s.m)(r,e=>{const t=(0,s.m)(e,e=>e.name);return{message:`The same RegExp pattern ->${x(e).PATTERN}<-has been used in all of the following Token Types: ${t.join(", ")} <-`,type:vr.DUPLICATE_PATTERNS_FOUND,tokenTypes:e}})}(n)),t=t.concat(function(e){const t=(0,i.f)(e,e=>e.PATTERN.test(""));return(0,s.m)(t,e=>({message:"Token Type: ->"+e.name+"<- static 'PATTERN' must not match an empty string",type:vr.EMPTY_MATCH_PATTERN,tokenTypes:[e]}))}(n)),t}(l)),n=n.concat(function(e){const t=(0,i.f)(e,e=>{if(!(0,s.h)(e,"GROUP"))return!1;const t=e.GROUP;return t!==$r.SKIPPED&&t!==$r.NA&&!d(t)});return(0,s.m)(t,e=>({message:"Token Type: ->"+e.name+"<- static 'GROUP' can only be Lexer.SKIPPED/Lexer.NA/A String",type:vr.INVALID_GROUP_TYPE_FOUND,tokenTypes:[e]}))}(l)),n=n.concat(function(e,t){const n=(0,i.f)(e,e=>void 0!==e.PUSH_MODE&&!L(t,e.PUSH_MODE));return(0,s.m)(n,e=>({message:`Token Type: ->${e.name}<- static 'PUSH_MODE' value cannot refer to a Lexer Mode ->${e.PUSH_MODE}<-which does not exist`,type:vr.PUSH_MODE_DOES_NOT_EXIST,tokenTypes:[e]}))}(l,t)),n=n.concat(function(e){const t=[],n=(0,i.r)(e,(e,t,n)=>{const r=t.PATTERN;return r===$r.NA||(d(r)?e.push({str:r,idx:n,tokenType:t}):_(r)&&function(e){return void 0===(0,s.g)([".","\\","[","]","|","^","$","(",")","?","*","+","{"],t=>-1!==e.source.indexOf(t))}(r)&&e.push({str:r.source,idx:n,tokenType:t})),e},[]);return(0,i.d)(e,(e,a)=>{(0,i.d)(n,({str:n,idx:i,tokenType:o})=>{if(a<i&&function(e,t){if(_(t)){const n=t.exec(e);return null!==n&&0===n.index}if((0,r.au)(t))return t(e,0,[],{});if((0,s.h)(t,"exec"))return t.exec(e,0,[],{});if("string"==typeof t)return t===e;throw Error("non exhaustive match")}(n,e.PATTERN)){const n=`Token: ->${o.name}<- can never be matched.\nBecause it appears AFTER the Token Type ->${e.name}<-in the lexer's definition.\nSee https://chevrotain.io/docs/guide/resolving_lexer_errors.html#UNREACHABLE`;t.push({message:n,type:vr.UNREACHABLE_PATTERN,tokenTypes:[e,o]})}})}),t}(l)),n}(e,l))}),(0,r.av)(this.lexerDefinitionErrors)){let a;fr(e),this.TRACE_INIT("analyzeTokenTypes",()=>{a=function(e,t){const n=(t=(0,s.i)(t,{useSticky:Yn,debug:!1,safeMode:!1,positionTracking:"full",lineTerminatorCharacters:["\r","\n"],tracer:(e,t)=>t()})).tracer;let a;n("initCharCodeToOptimizedIndexMap",()=>{!function(){if((0,r.av)(or)){or=new Array(65536);for(let e=0;e<65536;e++)or[e]=e>255?255+~~(e/255):e}}()}),n("Reject Lexer.NA",()=>{a=P(e,e=>e[Hn]===$r.NA)});let o,l,c,u,h,f,p,m,g,y,T,v=!1;n("Transform Patterns",()=>{v=!1,o=(0,s.m)(a,e=>{const n=e[Hn];if(_(n)){const e=n.source;return 1!==e.length||"^"===e||"$"===e||"."===e||n.ignoreCase?2!==e.length||"\\"!==e[0]||L(["d","D","s","S","t","r","n","t","0","c","b","B","f","v","w","W"],e[1])?t.useSticky?Zn(n):Qn(n):e[1]:e}if((0,r.au)(n))return v=!0,{exec:n};if("object"==typeof n)return v=!0,n;if("string"==typeof n){if(1===n.length)return n;{const e=n.replace(/[\\^$.*+?()[\]{}|]/g,"\\$&"),r=new RegExp(e);return t.useSticky?Zn(r):Qn(r)}}throw Error("non exhaustive match")})}),n("misc mapping",()=>{l=(0,s.m)(a,e=>e.tokenTypeIdx),c=(0,s.m)(a,e=>{const t=e.GROUP;if(t!==$r.SKIPPED){if(d(t))return t;if((0,i.i)(t))return!1;throw Error("non exhaustive match")}}),u=(0,s.m)(a,e=>{const t=e.LONGER_ALT;if(t)return(0,r.aS)(t)?(0,s.m)(t,e=>b(a,e)):[b(a,t)]}),h=(0,s.m)(a,e=>e.PUSH_MODE),f=(0,s.m)(a,e=>(0,s.h)(e,"POP_MODE"))}),n("Line Terminator Handling",()=>{const e=ir(t.lineTerminatorCharacters);p=(0,s.m)(a,e=>!1),"onlyOffset"!==t.positionTracking&&(p=(0,s.m)(a,t=>(0,s.h)(t,"LINE_BREAKS")?!!t.LINE_BREAKS:!1===nr(t,e)&&jn(e,t.PATTERN)))}),n("Misc Mapping #2",()=>{m=(0,s.m)(a,Jn),g=(0,s.m)(o,er),y=(0,i.r)(a,(e,t)=>{const n=t.GROUP;return d(n)&&n!==$r.SKIPPED&&(e[n]=[]),e},{}),T=(0,s.m)(o,(e,t)=>({pattern:o[t],longerAlt:u[t],canLineTerminator:p[t],isCustom:m[t],short:g[t],group:c[t],push:h[t],pop:f[t],tokenTypeIdx:l[t],tokenType:a[t]}))});let R=!0,$=[];return t.safeMode||n("First Char Optimization",()=>{$=(0,i.r)(a,(e,n,s)=>{if("string"==typeof n.PATTERN){const t=lr(n.PATTERN.charCodeAt(0));sr(e,t,T[s])}else if((0,r.aS)(n.START_CHARS_HINT)){let t;(0,i.d)(n.START_CHARS_HINT,n=>{const r=lr("string"==typeof n?n.charCodeAt(0):n);t!==r&&(t=r,sr(e,r,T[s]))})}else if(_(n.PATTERN))if(n.PATTERN.unicode)R=!1,t.ensureOptimizations&&ln(`${Dn}\tUnable to analyze < ${n.PATTERN.toString()} > pattern.\n\tThe regexp unicode flag is not currently supported by the regexp-to-ast library.\n\tThis will disable the lexer's first char optimizations.\n\tFor details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#UNICODE_OPTIMIZE`);else{const a=Un(n.PATTERN,t.ensureOptimizations);(0,r.av)(a)&&(R=!1),(0,i.d)(a,t=>{sr(e,t,T[s])})}else t.ensureOptimizations&&ln(`${Dn}\tTokenType: <${n.name}> is using a custom token pattern without providing <start_chars_hint> parameter.\n\tThis will disable the lexer's first char optimizations.\n\tFor details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#CUSTOM_OPTIMIZE`),R=!1;return e},[])}),{emptyGroups:y,patternIdxToConfig:T,charCodeToPatternIdxToConfig:$,hasCustom:v,canBeOptimized:R}}(e,{lineTerminatorCharacters:this.config.lineTerminatorCharacters,positionTracking:t.positionTracking,ensureOptimizations:t.ensureOptimizations,safeMode:t.safeMode,tracer:this.TRACE_INIT})}),this.patternIdxToConfig[n]=a.patternIdxToConfig,this.charCodeToPatternIdxToConfig[n]=a.charCodeToPatternIdxToConfig,this.emptyGroups=g({},this.emptyGroups,a.emptyGroups),this.hasCustom=a.hasCustom||this.hasCustom,this.canModeBeOptimized[n]=a.canBeOptimized}})}),this.defaultMode=n.defaultMode,!(0,r.av)(this.lexerDefinitionErrors)&&!this.config.deferDefinitionErrorsHandling){const e=(0,s.m)(this.lexerDefinitionErrors,e=>e.message).join("-----------------------\n");throw new Error("Errors detected in definition of Lexer:\n"+e)}(0,i.d)(this.lexerDefinitionWarning,e=>{cn(e.message)}),this.TRACE_INIT("Choosing sub-methods implementations",()=>{if(Yn?(this.chopInput=r.aT,this.match=this.matchWithTest):(this.updateLastIndex=i.D,this.match=this.matchWithExec),o&&(this.handleModes=i.D),!1===this.trackStartLines&&(this.computeNewColumn=r.aT),!1===this.trackEndLines&&(this.updateTokenEndLineColumnLocation=i.D),/full/i.test(this.config.positionTracking))this.createTokenInstance=this.createFullToken;else if(/onlyStart/i.test(this.config.positionTracking))this.createTokenInstance=this.createStartOnlyToken;else{if(!/onlyOffset/i.test(this.config.positionTracking))throw Error(`Invalid <positionTracking> config option: "${this.config.positionTracking}"`);this.createTokenInstance=this.createOffsetOnlyToken}this.hasCustom?(this.addToken=this.addTokenUsingPush,this.handlePayload=this.handlePayloadWithCustom):(this.addToken=this.addTokenUsingMemberAccess,this.handlePayload=this.handlePayloadNoCustom)}),this.TRACE_INIT("Failed Optimization Warnings",()=>{const e=(0,i.r)(this.canModeBeOptimized,(e,t,n)=>(!1===t&&e.push(n),e),[]);if(t.ensureOptimizations&&!(0,r.av)(e))throw Error(`Lexer Modes: < ${e.join(", ")} > cannot be optimized.\n\t Disable the "ensureOptimizations" lexer config flag to silently ignore this and run the lexer in an un-optimized mode.\n\t Or inspect the console log for details on how to resolve these issues.`)}),this.TRACE_INIT("clearRegExpParserCache",()=>{On={}}),this.TRACE_INIT("toFastProperties",()=>{dn(this)})})}tokenize(e,t=this.defaultMode){if(!(0,r.av)(this.lexerDefinitionErrors)){const e=(0,s.m)(this.lexerDefinitionErrors,e=>e.message).join("-----------------------\n");throw new Error("Unable to Tokenize because Errors detected in definition of Lexer:\n"+e)}return this.tokenizeInternal(e,t)}tokenizeInternal(e,t){let n,a,o,l,c,u,d,h,f,p,m,g,y,T,v;const R=e,$=R.length;let E=0,A=0;const k=this.hasCustom?0:Math.floor(e.length/10),x=new Array(k),I=[];let S=this.trackStartLines?1:void 0,C=this.trackStartLines?1:void 0;const N=function(e){const t={},n=(0,i.k)(e);return(0,i.d)(n,n=>{const i=e[n];if(!(0,r.aS)(i))throw Error("non exhaustive match");t[n]=[]}),t}(this.emptyGroups),w=this.trackStartLines,L=this.config.lineTerminatorsPattern;let b=0,O=[],_=[];const P=[],M=[];let D;function U(){return O}function F(e){const t=lr(e),n=_[t];return void 0===n?M:n}Object.freeze(M);const G=e=>{if(1===P.length&&void 0===e.tokenType.PUSH_MODE){const t=this.config.errorMessageProvider.buildUnableToPopLexerModeMessage(e);I.push({offset:e.startOffset,line:e.startLine,column:e.startColumn,length:e.image.length,message:t})}else{P.pop();const e=(0,s.l)(P);O=this.patternIdxToConfig[e],_=this.charCodeToPatternIdxToConfig[e],b=O.length;const t=this.canModeBeOptimized[e]&&!1===this.config.safeMode;D=_&&t?F:U}};function B(e){P.push(e),_=this.charCodeToPatternIdxToConfig[e],O=this.patternIdxToConfig[e],b=O.length,b=O.length;const t=this.canModeBeOptimized[e]&&!1===this.config.safeMode;D=_&&t?F:U}let K;B.call(this,t);const V=this.config.recoveryEnabled;for(;E<$;){u=null;const t=R.charCodeAt(E),r=D(t),i=r.length;for(n=0;n<i;n++){K=r[n];const i=K.pattern;d=null;const s=K.short;if(!1!==s?t===s&&(u=i):!0===K.isCustom?(v=i.exec(R,E,x,N),null!==v?(u=v[0],void 0!==v.payload&&(d=v.payload)):u=null):(this.updateLastIndex(i,E),u=this.match(i,e,E)),null!==u){if(c=K.longerAlt,void 0!==c){const t=c.length;for(o=0;o<t;o++){const t=O[c[o]],n=t.pattern;if(h=null,!0===t.isCustom?(v=n.exec(R,E,x,N),null!==v?(l=v[0],void 0!==v.payload&&(h=v.payload)):l=null):(this.updateLastIndex(n,E),l=this.match(n,e,E)),l&&l.length>u.length){u=l,d=h,K=t;break}}}break}}if(null!==u){if(f=u.length,p=K.group,void 0!==p&&(m=K.tokenTypeIdx,g=this.createTokenInstance(u,E,m,K.tokenType,S,C,f),this.handlePayload(g,d),!1===p?A=this.addToken(x,A,g):N[p].push(g)),e=this.chopInput(e,f),E+=f,C=this.computeNewColumn(C,f),!0===w&&!0===K.canLineTerminator){let e,t,n=0;L.lastIndex=0;do{e=L.test(u),!0===e&&(t=L.lastIndex-1,n++)}while(!0===e);0!==n&&(S+=n,C=f-t,this.updateTokenEndLineColumnLocation(g,p,t,n,S,C,f))}this.handleModes(K,G,B,g)}else{const t=E,n=S,r=C;let i=!1===V;for(;!1===i&&E<$;)for(e=this.chopInput(e,1),E++,a=0;a<b;a++){const t=O[a],n=t.pattern,r=t.short;if(!1!==r?R.charCodeAt(E)===r&&(i=!0):!0===t.isCustom?i=null!==n.exec(R,E,x,N):(this.updateLastIndex(n,E),i=null!==n.exec(e)),!0===i)break}if(y=E-t,C=this.computeNewColumn(C,y),T=this.config.errorMessageProvider.buildUnexpectedCharactersMessage(R,t,y,n,r),I.push({offset:t,line:n,column:r,length:y,message:T}),!1===V)break}}return this.hasCustom||(x.length=A),{tokens:x,groups:N,errors:I}}handleModes(e,t,n,r){if(!0===e.pop){const i=e.push;t(r),void 0!==i&&n.call(this,i)}else void 0!==e.push&&n.call(this,e.push)}chopInput(e,t){return e.substring(t)}updateLastIndex(e,t){e.lastIndex=t}updateTokenEndLineColumnLocation(e,t,n,r,i,s,a){let o,l;void 0!==t&&(o=n===a-1,l=o?-1:0,1===r&&!0===o||(e.endLine=i+l,e.endColumn=s-1-l))}computeNewColumn(e,t){return e+t}createOffsetOnlyToken(e,t,n,r){return{image:e,startOffset:t,tokenTypeIdx:n,tokenType:r}}createStartOnlyToken(e,t,n,r,i,s){return{image:e,startOffset:t,startLine:i,startColumn:s,tokenTypeIdx:n,tokenType:r}}createFullToken(e,t,n,r,i,s,a){return{image:e,startOffset:t,endOffset:t+a-1,startLine:i,endLine:i,startColumn:s,endColumn:s+a-1,tokenTypeIdx:n,tokenType:r}}addTokenUsingPush(e,t,n){return e.push(n),t}addTokenUsingMemberAccess(e,t,n){return e[t]=n,++t}handlePayloadNoCustom(e,t){}handlePayloadWithCustom(e,t){null!==t&&(e.payload=t)}matchWithTest(e,t,n){return!0===e.test(t)?t.substring(n,e.lastIndex):null}matchWithExec(e,t){const n=e.exec(t);return null!==n?n[0]:null}}function Er(e){return Ar(e)?e.LABEL:e.name}function Ar(e){return d(e.LABEL)&&""!==e.LABEL}$r.SKIPPED="This marks a skipped Token pattern, this means each token identified by it willbe consumed and then thrown into oblivion, this can be used to for example to completely ignore whitespace.",$r.NA=/NOT_APPLICABLE/;const kr="categories",xr="label",Ir="group",Sr="push_mode",Cr="pop_mode",Nr="longer_alt",wr="line_breaks",Lr="start_chars_hint";function br(e){return function(e){const t=e.pattern,n={};if(n.name=e.name,(0,i.i)(t)||(n.PATTERN=t),(0,s.h)(e,"parent"))throw"The parent property is no longer supported.\nSee: https://github.com/chevrotain/chevrotain/issues/564#issuecomment-349062346 for details.";return(0,s.h)(e,kr)&&(n.CATEGORIES=e[kr]),fr([n]),(0,s.h)(e,xr)&&(n.LABEL=e[xr]),(0,s.h)(e,Ir)&&(n.GROUP=e[Ir]),(0,s.h)(e,Cr)&&(n.POP_MODE=e[Cr]),(0,s.h)(e,Sr)&&(n.PUSH_MODE=e[Sr]),(0,s.h)(e,Nr)&&(n.LONGER_ALT=e[Nr]),(0,s.h)(e,wr)&&(n.LINE_BREAKS=e[wr]),(0,s.h)(e,Lr)&&(n.START_CHARS_HINT=e[Lr]),n}(e)}const Or=br({name:"EOF",pattern:$r.NA});function _r(e,t,n,r,i,s,a,o){return{image:t,startOffset:n,endOffset:r,startLine:i,endLine:s,startColumn:a,endColumn:o,tokenTypeIdx:e.tokenTypeIdx,tokenType:e}}function Pr(e,t){return cr(e,t)}fr([Or]);const Mr={buildMismatchTokenMessage:({expected:e,actual:t,previous:n,ruleName:r})=>`Expecting ${Ar(e)?`--\x3e ${Er(e)} <--`:`token of type --\x3e ${e.name} <--`} but found --\x3e '${t.image}' <--`,buildNotAllInputParsedMessage:({firstRedundant:e,ruleName:t})=>"Redundant input, expecting EOF but found: "+e.image,buildNoViableAltMessage({expectedPathsPerAlt:e,actual:t,previous:n,customUserDescription:r,ruleName:a}){const o="Expecting: ",l="\nbut found: '"+x(t).image+"'";if(r)return o+r+l;{const t=(0,i.r)(e,(e,t)=>e.concat(t),[]),n=(0,s.m)(t,e=>`[${(0,s.m)(e,e=>Er(e)).join(", ")}]`);return o+`one of these possible Token sequences:\n${(0,s.m)(n,(e,t)=>` ${t+1}. ${e}`).join("\n")}`+l}},buildEarlyExitMessage({expectedIterationPaths:e,actual:t,customUserDescription:n,ruleName:r}){const i="Expecting: ",a="\nbut found: '"+x(t).image+"'";return n?i+n+a:i+`expecting at least one iteration which starts with one of these possible Token sequences::\n <${(0,s.m)(e,e=>`[${(0,s.m)(e,e=>Er(e)).join(",")}]`).join(" ,")}>`+a}};Object.freeze(Mr);const Dr={buildRuleNotFoundError:(e,t)=>"Invalid grammar, reference to a rule which is not defined: ->"+t.nonTerminalName+"<-\ninside top level rule: ->"+e.name+"<-"},Ur={buildDuplicateFoundError(e,t){const n=e.name,r=x(t),i=r.idx,s=Sn(r),a=(o=r)instanceof An?o.terminalType.name:o instanceof pn?o.nonTerminalName:"";var o;let l=`->${s}${i>0?i:""}<- ${a?`with argument: ->${a}<-`:""}\n appears more than once (${t.length} times) in the top level rule: ->${n}<-. \n For further details see: https://chevrotain.io/docs/FAQ.html#NUMERICAL_SUFFIXES \n `;return l=l.replace(/[ \t]+/g," "),l=l.replace(/\s\s+/g,"\n"),l},buildNamespaceConflictError:e=>`Namespace conflict found in grammar.\nThe grammar has both a Terminal(Token) and a Non-Terminal(Rule) named: <${e.name}>.\nTo resolve this make sure each Terminal and Non-Terminal names are unique\nThis is easy to accomplish by using the convention that Terminal names start with an uppercase letter\nand Non-Terminal names start with a lower case letter.`,buildAlternationPrefixAmbiguityError(e){const t=(0,s.m)(e.prefixPath,e=>Er(e)).join(", "),n=0===e.alternation.idx?"":e.alternation.idx;return`Ambiguous alternatives: <${e.ambiguityIndices.join(" ,")}> due to common lookahead prefix\nin <OR${n}> inside <${e.topLevelRule.name}> Rule,\n<${t}> may appears as a prefix path in all these alternatives.\nSee: https://chevrotain.io/docs/guide/resolving_grammar_errors.html#COMMON_PREFIX\nFor Further details.`},buildAlternationAmbiguityError(e){const t=(0,s.m)(e.prefixPath,e=>Er(e)).join(", "),n=0===e.alternation.idx?"":e.alternation.idx;let r=`Ambiguous Alternatives Detected: <${e.ambiguityIndices.join(" ,")}> in <OR${n}> inside <${e.topLevelRule.name}> Rule,\n<${t}> may appears as a prefix path in all these alternatives.\n`;return r+="See: https://chevrotain.io/docs/guide/resolving_grammar_errors.html#AMBIGUOUS_ALTERNATIVES\nFor Further details.",r},buildEmptyRepetitionError(e){let t=Sn(e.repetition);return 0!==e.repetition.idx&&(t+=e.repetition.idx),`The repetition <${t}> within Rule <${e.topLevelRule.name}> can never consume any tokens.\nThis could lead to an infinite loop.`},buildTokenNameError:e=>"deprecated",buildEmptyAlternationError:e=>`Ambiguous empty alternative: <${e.emptyChoiceIdx+1}> in <OR${e.alternation.idx}> inside <${e.topLevelRule.name}> Rule.\nOnly the last alternative may be an empty alternative.`,buildTooManyAlternativesError:e=>`An Alternation cannot have more than 256 alternatives:\n<OR${e.alternation.idx}> inside <${e.topLevelRule.name}> Rule.\n has ${e.alternation.definition.length+1} alternatives.`,buildLeftRecursionError(e){const t=e.topLevelRule.name;return`Left Recursion found in grammar.\nrule: <${t}> can be invoked from itself (directly or indirectly)\nwithout consuming any Tokens. The grammar path that causes this is: \n ${t} --\x3e ${(0,s.m)(e.leftRecursionPath,e=>e.name).concat([t]).join(" --\x3e ")}\n To fix this refactor your grammar to remove the left recursion.\nsee: https://en.wikipedia.org/wiki/LL_parser#Left_factoring.`},buildInvalidRuleNameError:e=>"deprecated",buildDuplicateRuleNameError(e){let t;return t=e.topLevelRule instanceof mn?e.topLevelRule.name:e.topLevelRule,`Duplicate definition, rule: ->${t}<- is already defined in the grammar: ->${e.grammarName}<-`}};class Fr extends xn{constructor(e,t){super(),this.nameToTopRule=e,this.errMsgProvider=t,this.errors=[]}resolveRefs(){(0,i.d)((0,i.v)(this.nameToTopRule),e=>{this.currTopLevel=e,e.accept(this)})}visitNonTerminal(e){const t=this.nameToTopRule[e.nonTerminalName];if(t)e.referencedRule=t;else{const t=this.errMsgProvider.buildRuleNotFoundError(this.currTopLevel,e);this.errors.push({message:t,type:rs.UNRESOLVED_SUBRULE_REF,ruleName:this.currTopLevel.name,unresolvedRefName:e.nonTerminalName})}}}class Gr extends Cn{constructor(e,t){super(),this.topProd=e,this.path=t,this.possibleTokTypes=[],this.nextProductionName="",this.nextProductionOccurrence=0,this.found=!1,this.isAtEndOfPath=!1}startWalking(){if(this.found=!1,this.path.ruleStack[0]!==this.topProd.name)throw Error("The path does not start with the walker's top Rule!");return this.ruleStack=(0,a.c)(this.path.ruleStack).reverse(),this.occurrenceStack=(0,a.c)(this.path.occurrenceStack).reverse(),this.ruleStack.pop(),this.occurrenceStack.pop(),this.updateExpectedNext(),this.walk(this.topProd),this.possibleTokTypes}walk(e,t=[]){this.found||super.walk(e,t)}walkProdRef(e,t,n){if(e.referencedRule.name===this.nextProductionName&&e.idx===this.nextProductionOccurrence){const r=t.concat(n);this.updateExpectedNext(),this.walk(e.referencedRule,r)}}updateExpectedNext(){(0,r.av)(this.ruleStack)?(this.nextProductionName="",this.nextProductionOccurrence=0,this.isAtEndOfPath=!0):(this.nextProductionName=this.ruleStack.pop(),this.nextProductionOccurrence=this.occurrenceStack.pop())}}class Br extends Gr{constructor(e,t){super(e,t),this.path=t,this.nextTerminalName="",this.nextTerminalOccurrence=0,this.nextTerminalName=this.path.lastTok.name,this.nextTerminalOccurrence=this.path.lastTokOccurrence}walkTerminal(e,t,n){if(this.isAtEndOfPath&&e.terminalType.name===this.nextTerminalName&&e.idx===this.nextTerminalOccurrence&&!this.found){const e=t.concat(n),r=new gn({definition:e});this.possibleTokTypes=wn(r),this.found=!0}}}class Kr extends Cn{constructor(e,t){super(),this.topRule=e,this.occurrence=t,this.result={token:void 0,occurrence:void 0,isEndOfRule:void 0}}startWalking(){return this.walk(this.topRule),this.result}}class Vr extends Kr{walkMany(e,t,n){if(e.idx===this.occurrence){const e=x(t.concat(n));this.result.isEndOfRule=void 0===e,e instanceof An&&(this.result.token=e.terminalType,this.result.occurrence=e.idx)}else super.walkMany(e,t,n)}}class jr extends Kr{walkManySep(e,t,n){if(e.idx===this.occurrence){const e=x(t.concat(n));this.result.isEndOfRule=void 0===e,e instanceof An&&(this.result.token=e.terminalType,this.result.occurrence=e.idx)}else super.walkManySep(e,t,n)}}class Hr extends Kr{walkAtLeastOne(e,t,n){if(e.idx===this.occurrence){const e=x(t.concat(n));this.result.isEndOfRule=void 0===e,e instanceof An&&(this.result.token=e.terminalType,this.result.occurrence=e.idx)}else super.walkAtLeastOne(e,t,n)}}class Wr extends Kr{walkAtLeastOneSep(e,t,n){if(e.idx===this.occurrence){const e=x(t.concat(n));this.result.isEndOfRule=void 0===e,e instanceof An&&(this.result.token=e.terminalType,this.result.occurrence=e.idx)}else super.walkAtLeastOneSep(e,t,n)}}function zr(e,t,n=[]){n=(0,a.c)(n);let s=[],o=0;function l(r){const i=zr(function(t){return t.concat(R(e,o+1))}(r),t,n);return s.concat(i)}for(;n.length<t&&o<e.length;){const t=e[o];if(t instanceof gn)return l(t.definition);if(t instanceof pn)return l(t.definition);if(t instanceof yn)s=l(t.definition);else{if(t instanceof Tn)return l(t.definition.concat([new Rn({definition:t.definition})]));if(t instanceof vn)return l([new gn({definition:t.definition}),new Rn({definition:[new An({terminalType:t.separator})].concat(t.definition)})]);if(t instanceof $n){const e=t.definition.concat([new Rn({definition:[new An({terminalType:t.separator})].concat(t.definition)})]);s=l(e)}else if(t instanceof Rn){const e=t.definition.concat([new Rn({definition:t.definition})]);s=l(e)}else{if(t instanceof En)return(0,i.d)(t.definition,e=>{!1===(0,r.av)(e.definition)&&(s=l(e.definition))}),s;if(!(t instanceof An))throw Error("non exhaustive match");n.push(t.terminalType)}}o++}return s.push({partialPath:n,suffixDef:R(e,o)}),s}function Yr(e,t,n,i){const o="EXIT_NONE_TERMINAL",l=[o],c="EXIT_ALTERNATIVE";let u=!1;const d=t.length,h=d-i-1,f=[],p=[];for(p.push({idx:-1,def:e,ruleStack:[],occurrenceStack:[]});!(0,r.av)(p);){const e=p.pop();if(e===c){u&&(0,s.l)(p).idx<=h&&p.pop();continue}const i=e.def,m=e.idx,g=e.ruleStack,y=e.occurrenceStack;if((0,r.av)(i))continue;const T=i[0];if(T===o){const e={idx:m,def:R(i),ruleStack:$(g),occurrenceStack:$(y)};p.push(e)}else if(T instanceof An)if(m<d-1){const e=m+1;if(n(t[e],T.terminalType)){const t={idx:e,def:R(i),ruleStack:g,occurrenceStack:y};p.push(t)}}else{if(m!==d-1)throw Error("non exhaustive match");f.push({nextTokenType:T.terminalType,nextTokenOccurrence:T.idx,ruleStack:g,occurrenceStack:y}),u=!0}else if(T instanceof pn){const e=(0,a.c)(g);e.push(T.nonTerminalName);const t=(0,a.c)(y);t.push(T.idx);const n={idx:m,def:T.definition.concat(l,R(i)),ruleStack:e,occurrenceStack:t};p.push(n)}else if(T instanceof yn){const e={idx:m,def:R(i),ruleStack:g,occurrenceStack:y};p.push(e),p.push(c);const t={idx:m,def:T.definition.concat(R(i)),ruleStack:g,occurrenceStack:y};p.push(t)}else if(T instanceof Tn){const e=new Rn({definition:T.definition,idx:T.idx}),t={idx:m,def:T.definition.concat([e],R(i)),ruleStack:g,occurrenceStack:y};p.push(t)}else if(T instanceof vn){const e=new An({terminalType:T.separator}),t=new Rn({definition:[e].concat(T.definition),idx:T.idx}),n={idx:m,def:T.definition.concat([t],R(i)),ruleStack:g,occurrenceStack:y};p.push(n)}else if(T instanceof $n){const e={idx:m,def:R(i),ruleStack:g,occurrenceStack:y};p.push(e),p.push(c);const t=new An({terminalType:T.separator}),n=new Rn({definition:[t].concat(T.definition),idx:T.idx}),r={idx:m,def:T.definition.concat([n],R(i)),ruleStack:g,occurrenceStack:y};p.push(r)}else if(T instanceof Rn){const e={idx:m,def:R(i),ruleStack:g,occurrenceStack:y};p.push(e),p.push(c);const t=new Rn({definition:T.definition,idx:T.idx}),n={idx:m,def:T.definition.concat([t],R(i)),ruleStack:g,occurrenceStack:y};p.push(n)}else if(T instanceof En)for(let e=T.definition.length-1;e>=0;e--){const t={idx:m,def:T.definition[e].definition.concat(R(i)),ruleStack:g,occurrenceStack:y};p.push(t),p.push(c)}else if(T instanceof gn)p.push({idx:m,def:T.definition.concat(R(i)),ruleStack:g,occurrenceStack:y});else{if(!(T instanceof mn))throw Error("non exhaustive match");p.push(qr(T,m,g,y))}}return f}function qr(e,t,n,r){const i=(0,a.c)(n);i.push(e.name);const s=(0,a.c)(r);return s.push(1),{idx:t,def:e.definition,ruleStack:i,occurrenceStack:s}}var Xr;function Qr(e){if(e instanceof yn||"Option"===e)return Xr.OPTION;if(e instanceof Rn||"Repetition"===e)return Xr.REPETITION;if(e instanceof Tn||"RepetitionMandatory"===e)return Xr.REPETITION_MANDATORY;if(e instanceof vn||"RepetitionMandatoryWithSeparator"===e)return Xr.REPETITION_MANDATORY_WITH_SEPARATOR;if(e instanceof $n||"RepetitionWithSeparator"===e)return Xr.REPETITION_WITH_SEPARATOR;if(e instanceof En||"Alternation"===e)return Xr.ALTERNATION;throw Error("non exhaustive match")}function Zr(e){const{occurrence:t,rule:n,prodType:r,maxLookahead:i}=e,s=Qr(r);return s===Xr.ALTERNATION?oi(t,n,i):li(t,n,s,i)}function Jr(e,t,n,r){const a=e.length,o=k(e,e=>k(e,e=>1===e.length));if(t)return function(t){const r=(0,s.m)(t,e=>e.GATE);for(let t=0;t<a;t++){const i=e[t],s=i.length,a=r[t];if(void 0===a||!1!==a.call(this))e:for(let e=0;e<s;e++){const r=i[e],s=r.length;for(let e=0;e<s;e++){const t=this.LA(e+1);if(!1===n(t,r[e]))continue e}return t}}};if(o&&!r){const t=(0,s.m)(e,e=>(0,s.f)(e)),n=(0,i.r)(t,(e,t,n)=>((0,i.d)(t,t=>{(0,s.h)(e,t.tokenTypeIdx)||(e[t.tokenTypeIdx]=n),(0,i.d)(t.categoryMatches,t=>{(0,s.h)(e,t)||(e[t]=n)})}),e),{});return function(){const e=this.LA(1);return n[e.tokenTypeIdx]}}return function(){for(let t=0;t<a;t++){const r=e[t],i=r.length;e:for(let e=0;e<i;e++){const i=r[e],s=i.length;for(let e=0;e<s;e++){const t=this.LA(e+1);if(!1===n(t,i[e]))continue e}return t}}}}function ei(e,t,n){const a=k(e,e=>1===e.length),o=e.length;if(a&&!n){const t=(0,s.f)(e);if(1===t.length&&(0,r.av)(t[0].categoryMatches)){const e=t[0].tokenTypeIdx;return function(){return this.LA(1).tokenTypeIdx===e}}{const e=(0,i.r)(t,(e,t,n)=>(e[t.tokenTypeIdx]=!0,(0,i.d)(t.categoryMatches,t=>{e[t]=!0}),e),[]);return function(){const t=this.LA(1);return!0===e[t.tokenTypeIdx]}}}return function(){e:for(let n=0;n<o;n++){const r=e[n],i=r.length;for(let e=0;e<i;e++){const n=this.LA(e+1);if(!1===t(n,r[e]))continue e}return!0}return!1}}!function(e){e[e.OPTION=0]="OPTION",e[e.REPETITION=1]="REPETITION",e[e.REPETITION_MANDATORY=2]="REPETITION_MANDATORY",e[e.REPETITION_MANDATORY_WITH_SEPARATOR=3]="REPETITION_MANDATORY_WITH_SEPARATOR",e[e.REPETITION_WITH_SEPARATOR=4]="REPETITION_WITH_SEPARATOR",e[e.ALTERNATION=5]="ALTERNATION"}(Xr||(Xr={}));class ti extends Cn{constructor(e,t,n){super(),this.topProd=e,this.targetOccurrence=t,this.targetProdType=n}startWalking(){return this.walk(this.topProd),this.restDef}checkIsTarget(e,t,n,r){return e.idx===this.targetOccurrence&&this.targetProdType===t&&(this.restDef=n.concat(r),!0)}walkOption(e,t,n){this.checkIsTarget(e,Xr.OPTION,t,n)||super.walkOption(e,t,n)}walkAtLeastOne(e,t,n){this.checkIsTarget(e,Xr.REPETITION_MANDATORY,t,n)||super.walkOption(e,t,n)}walkAtLeastOneSep(e,t,n){this.checkIsTarget(e,Xr.REPETITION_MANDATORY_WITH_SEPARATOR,t,n)||super.walkOption(e,t,n)}walkMany(e,t,n){this.checkIsTarget(e,Xr.REPETITION,t,n)||super.walkOption(e,t,n)}walkManySep(e,t,n){this.checkIsTarget(e,Xr.REPETITION_WITH_SEPARATOR,t,n)||super.walkOption(e,t,n)}}class ni extends xn{constructor(e,t,n){super(),this.targetOccurrence=e,this.targetProdType=t,this.targetRef=n,this.result=[]}checkIsTarget(e,t){e.idx===this.targetOccurrence&&this.targetProdType===t&&(void 0===this.targetRef||e===this.targetRef)&&(this.result=e.definition)}visitOption(e){this.checkIsTarget(e,Xr.OPTION)}visitRepetition(e){this.checkIsTarget(e,Xr.REPETITION)}visitRepetitionMandatory(e){this.checkIsTarget(e,Xr.REPETITION_MANDATORY)}visitRepetitionMandatoryWithSeparator(e){this.checkIsTarget(e,Xr.REPETITION_MANDATORY_WITH_SEPARATOR)}visitRepetitionWithSeparator(e){this.checkIsTarget(e,Xr.REPETITION_WITH_SEPARATOR)}visitAlternation(e){this.checkIsTarget(e,Xr.ALTERNATION)}}function ri(e){const t=new Array(e);for(let n=0;n<e;n++)t[n]=[];return t}function ii(e){let t=[""];for(let n=0;n<e.length;n++){const r=e[n],i=[];for(let e=0;e<t.length;e++){const n=t[e];i.push(n+"_"+r.tokenTypeIdx);for(let e=0;e<r.categoryMatches.length;e++){const t="_"+r.categoryMatches[e];i.push(n+t)}}t=i}return t}function si(e,t,n){for(let r=0;r<e.length;r++){if(r===n)continue;const i=e[r];for(let e=0;e<t.length;e++)if(!0===i[t[e]])return!1}return!0}function ai(e,t){const n=(0,s.m)(e,e=>zr([e],1)),a=ri(n.length),o=(0,s.m)(n,e=>{const t={};return(0,i.d)(e,e=>{const n=ii(e.partialPath);(0,i.d)(n,e=>{t[e]=!0})}),t});let l=n;for(let e=1;e<=t;e++){const n=l;l=ri(n.length);for(let s=0;s<n.length;s++){const c=n[s];for(let n=0;n<c.length;n++){const u=c[n].partialPath,d=c[n].suffixDef,h=ii(u);if(si(o,h,s)||(0,r.av)(d)||u.length===t){const e=a[s];if(!1===ci(e,u)){e.push(u);for(let e=0;e<h.length;e++){const t=h[e];o[s][t]=!0}}}else{const t=zr(d,e+1,u);l[s]=l[s].concat(t),(0,i.d)(t,e=>{const t=ii(e.partialPath);(0,i.d)(t,e=>{o[s][e]=!0})})}}}}return a}function oi(e,t,n,r){const i=new ni(e,Xr.ALTERNATION,r);return t.accept(i),ai(i.result,n)}function li(e,t,n,r){const i=new ni(e,n);t.accept(i);const s=i.result,a=new ti(t,e,n).startWalking();return ai([new gn({definition:s}),new gn({definition:a})],r)}function ci(e,t){e:for(let n=0;n<e.length;n++){const r=e[n];if(r.length===t.length){for(let e=0;e<r.length;e++){const n=t[e],i=r[e];if(0==(n===i||void 0!==i.categoryMatchesMap[n.tokenTypeIdx]))continue e}return!0}}return!1}function ui(e){return k(e,e=>k(e,e=>k(e,e=>(0,r.av)(e.categoryMatches))))}function di(e){return`${Sn(e)}_#_${e.idx}_#_${hi(e)}`}function hi(e){return e instanceof An?e.terminalType.name:e instanceof pn?e.nonTerminalName:""}class fi extends xn{constructor(){super(...arguments),this.allProductions=[]}visitNonTerminal(e){this.allProductions.push(e)}visitOption(e){this.allProductions.push(e)}visitRepetitionWithSeparator(e){this.allProductions.push(e)}visitRepetitionMandatory(e){this.allProductions.push(e)}visitRepetitionMandatoryWithSeparator(e){this.allProductions.push(e)}visitRepetition(e){this.allProductions.push(e)}visitAlternation(e){this.allProductions.push(e)}visitTerminal(e){this.allProductions.push(e)}}function pi(e,t,n,i=[]){const s=[],o=mi(t.definition);if((0,r.av)(o))return[];{const t=e.name;L(o,e)&&s.push({message:n.buildLeftRecursionError({topLevelRule:e,leftRecursionPath:i}),type:rs.LEFT_RECURSION,ruleName:t});const r=I(p(o,i.concat([e])),t=>{const r=(0,a.c)(i);return r.push(t),pi(e,t,n,r)});return s.concat(r)}}function mi(e){let t=[];if((0,r.av)(e))return t;const n=x(e);if(n instanceof pn)t.push(n.referencedRule);else if(n instanceof gn||n instanceof yn||n instanceof Tn||n instanceof vn||n instanceof $n||n instanceof Rn)t=t.concat(mi(n.definition));else if(n instanceof En)t=(0,s.f)((0,s.m)(n.definition,e=>mi(e.definition)));else if(!(n instanceof An))throw Error("non exhaustive match");const i=In(n),a=e.length>1;if(i&&a){const n=R(e);return t.concat(mi(n))}return t}class gi extends xn{constructor(){super(...arguments),this.alternations=[]}visitAlternation(e){this.alternations.push(e)}}class yi extends xn{constructor(){super(...arguments),this.allProductions=[]}visitRepetitionWithSeparator(e){this.allProductions.push(e)}visitRepetitionMandatory(e){this.allProductions.push(e)}visitRepetitionMandatoryWithSeparator(e){this.allProductions.push(e)}visitRepetition(e){this.allProductions.push(e)}}const Ti="MismatchedTokenException",vi="NoViableAltException",Ri="EarlyExitException",$i="NotAllInputParsedException",Ei=[Ti,vi,Ri,$i];function Ai(e){return L(Ei,e.name)}Object.freeze(Ei);class ki extends Error{constructor(e,t){super(e),this.token=t,this.resyncedTokens=[],Object.setPrototypeOf(this,new.target.prototype),Error.captureStackTrace&&Error.captureStackTrace(this,this.constructor)}}class xi extends ki{constructor(e,t,n){super(e,t),this.previousToken=n,this.name=Ti}}class Ii extends ki{constructor(e,t,n){super(e,t),this.previousToken=n,this.name=vi}}class Si extends ki{constructor(e,t){super(e,t),this.name=$i}}class Ci extends ki{constructor(e,t,n){super(e,t),this.previousToken=n,this.name=Ri}}const Ni={},wi="InRuleRecoveryException";class Li extends Error{constructor(e){super(e),this.name=wi}}function bi(e,t,n,r,i,s,a){const o=this.getKeyForAutomaticLookahead(r,i);let l=this.firstAfterRepMap[o];if(void 0===l){const e=this.getCurrRuleFullName();l=new s(this.getGAstProductions()[e],i).startWalking(),this.firstAfterRepMap[o]=l}let c=l.token,u=l.occurrence;const d=l.isEndOfRule;1===this.RULE_STACK.length&&d&&void 0===c&&(c=Or,u=1),void 0!==c&&void 0!==u&&this.shouldInRepetitionRecoveryBeTried(c,u,a)&&this.tryInRepetitionRecovery(e,t,n,c)}const Oi=1024,_i=1280,Pi=1536;function Mi(e,t,n){return n|t|e}class Di{constructor(e){var t;this.maxLookahead=null!==(t=null==e?void 0:e.maxLookahead)&&void 0!==t?t:ts.maxLookahead}validate(e){const t=this.validateNoLeftRecursion(e.rules);if((0,r.av)(t)){const n=this.validateEmptyOrAlternatives(e.rules),r=this.validateAmbiguousAlternationAlternatives(e.rules,this.maxLookahead),i=this.validateSomeNonEmptyLookaheadPath(e.rules,this.maxLookahead);return[...t,...n,...r,...i]}return t}validateNoLeftRecursion(e){return I(e,e=>pi(e,e,Ur))}validateEmptyOrAlternatives(e){return I(e,e=>function(e,t){const n=new gi;return e.accept(n),I(n.alternations,n=>I($(n.definition),(i,s)=>{const a=Yr([i],[],cr,1);return(0,r.av)(a)?[{message:t.buildEmptyAlternationError({topLevelRule:e,alternation:n,emptyChoiceIdx:s}),type:rs.NONE_LAST_EMPTY_ALT,ruleName:e.name,occurrence:n.idx,alternative:s+1}]:[]}))}(e,Ur))}validateAmbiguousAlternationAlternatives(e,t){return I(e,e=>function(e,t,n){const r=new gi;e.accept(r);let a=r.alternations;return a=P(a,e=>!0===e.ignoreAmbiguities),I(a,r=>{const a=r.idx,o=r.maxLookahead||t,l=oi(a,e,o,r),c=function(e,t,n,r){const a=[],o=(0,i.r)(e,(n,r,s)=>(!0===t.definition[s].ignoreAmbiguities||(0,i.d)(r,r=>{const o=[s];(0,i.d)(e,(e,n)=>{s!==n&&ci(e,r)&&!0!==t.definition[n].ignoreAmbiguities&&o.push(n)}),o.length>1&&!ci(a,r)&&(a.push(r),n.push({alts:o,path:r}))}),n),[]);return(0,s.m)(o,e=>{const i=(0,s.m)(e.alts,e=>e+1);return{message:r.buildAlternationAmbiguityError({topLevelRule:n,alternation:t,ambiguityIndices:i,prefixPath:e.path}),type:rs.AMBIGUOUS_ALTS,ruleName:n.name,occurrence:t.idx,alternatives:e.alts}})}(l,r,e,n),u=function(e,t,n,r){const a=(0,i.r)(e,(e,t,n)=>{const r=(0,s.m)(t,e=>({idx:n,path:e}));return e.concat(r)},[]);return y(I(a,e=>{if(!0===t.definition[e.idx].ignoreAmbiguities)return[];const o=e.idx,l=e.path,c=(0,i.f)(a,e=>!0!==t.definition[e.idx].ignoreAmbiguities&&e.idx<o&&function(e,t){return e.length<t.length&&k(e,(e,n)=>{const r=t[n];return e===r||r.categoryMatchesMap[e.tokenTypeIdx]})}(e.path,l));return(0,s.m)(c,e=>{const i=[e.idx+1,o+1],s=0===t.idx?"":t.idx;return{message:r.buildAlternationPrefixAmbiguityError({topLevelRule:n,alternation:t,ambiguityIndices:i,prefixPath:e.path}),type:rs.AMBIGUOUS_PREFIX_ALTS,ruleName:n.name,occurrence:s,alternatives:i}})}))}(l,r,e,n);return c.concat(u)})}(e,t,Ur))}validateSomeNonEmptyLookaheadPath(e,t){return function(e,t,n){const a=[];return(0,i.d)(e,e=>{const o=new yi;e.accept(o);const l=o.allProductions;(0,i.d)(l,i=>{const o=Qr(i),l=i.maxLookahead||t,c=li(i.idx,e,o,l)[0];if((0,r.av)((0,s.f)(c))){const t=n.buildEmptyRepetitionError({topLevelRule:e,repetition:i});a.push({message:t,type:rs.NO_NON_EMPTY_LOOKAHEAD,ruleName:e.name})}})}),a}(e,t,Ur)}buildLookaheadForAlternation(e){return function(e,t,n,r,i,s){const a=oi(e,t,n);return s(a,r,ui(a)?ur:cr,i)}(e.prodOccurrence,e.rule,e.maxLookahead,e.hasPredicates,e.dynamicTokensEnabled,Jr)}buildLookaheadForOptional(e){return function(e,t,n,r,i,s){const a=li(e,t,i,n),o=ui(a)?ur:cr;return s(a[0],o,r)}(e.prodOccurrence,e.rule,e.maxLookahead,e.dynamicTokensEnabled,Qr(e.prodType),ei)}}const Ui=new class extends xn{constructor(){super(...arguments),this.dslMethods={option:[],alternation:[],repetition:[],repetitionWithSeparator:[],repetitionMandatory:[],repetitionMandatoryWithSeparator:[]}}reset(){this.dslMethods={option:[],alternation:[],repetition:[],repetitionWithSeparator:[],repetitionMandatory:[],repetitionMandatoryWithSeparator:[]}}visitOption(e){this.dslMethods.option.push(e)}visitRepetitionWithSeparator(e){this.dslMethods.repetitionWithSeparator.push(e)}visitRepetitionMandatory(e){this.dslMethods.repetitionMandatory.push(e)}visitRepetitionMandatoryWithSeparator(e){this.dslMethods.repetitionMandatoryWithSeparator.push(e)}visitRepetition(e){this.dslMethods.repetition.push(e)}visitAlternation(e){this.dslMethods.alternation.push(e)}};function Fi(e,t){!0===isNaN(e.startOffset)?(e.startOffset=t.startOffset,e.endOffset=t.endOffset):e.endOffset<t.endOffset&&(e.endOffset=t.endOffset)}function Gi(e,t){!0===isNaN(e.startOffset)?(e.startOffset=t.startOffset,e.startColumn=t.startColumn,e.startLine=t.startLine,e.endOffset=t.endOffset,e.endColumn=t.endColumn,e.endLine=t.endLine):e.endOffset<t.endOffset&&(e.endOffset=t.endOffset,e.endColumn=t.endColumn,e.endLine=t.endLine)}function Bi(e,t){Object.defineProperty(e,"name",{enumerable:!1,configurable:!0,writable:!1,value:t})}function Ki(e,t){const n=(0,i.k)(e),r=n.length;for(let i=0;i<r;i++){const r=e[n[i]],s=r.length;for(let e=0;e<s;e++){const n=r[e];void 0===n.tokenTypeIdx&&this[n.name](n.children,t)}}}var Vi;!function(e){e[e.REDUNDANT_METHOD=0]="REDUNDANT_METHOD",e[e.MISSING_METHOD=1]="MISSING_METHOD"}(Vi||(Vi={}));const ji={description:"This Object indicates the Parser is during Recording Phase"};Object.freeze(ji);const Hi=!0,Wi=Math.pow(2,8)-1,zi=br({name:"RECORDING_PHASE_TOKEN",pattern:$r.NA});fr([zi]);const Yi=_r(zi,"This IToken indicates the Parser is in Recording Phase\n\tSee: https://chevrotain.io/docs/guide/internals.html#grammar-recording for details",-1,-1,-1,-1,-1,-1);Object.freeze(Yi);const qi={name:"This CSTNode indicates the Parser is in Recording Phase\n\tSee: https://chevrotain.io/docs/guide/internals.html#grammar-recording for details",children:{}};function Xi(e,t,n,i=!1){Ji(n);const a=(0,s.l)(this.recordingProdStack),o=(0,r.au)(t)?t:t.DEF,l=new e({definition:[],idx:n});return i&&(l.separator=t.SEP),(0,s.h)(t,"MAX_LOOKAHEAD")&&(l.maxLookahead=t.MAX_LOOKAHEAD),this.recordingProdStack.push(l),o.call(this),a.definition.push(l),this.recordingProdStack.pop(),ji}function Qi(e,t){Ji(t);const n=(0,s.l)(this.recordingProdStack),a=!1===(0,r.aS)(e),o=!1===a?e:e.DEF,l=new En({definition:[],idx:t,ignoreAmbiguities:a&&!0===e.IGNORE_AMBIGUITIES});(0,s.h)(e,"MAX_LOOKAHEAD")&&(l.maxLookahead=e.MAX_LOOKAHEAD);const c=D(o,e=>(0,r.au)(e.GATE));return l.hasPredicates=c,n.definition.push(l),(0,i.d)(o,e=>{const t=new gn({definition:[]});l.definition.push(t),(0,s.h)(e,"IGNORE_AMBIGUITIES")?t.ignoreAmbiguities=e.IGNORE_AMBIGUITIES:(0,s.h)(e,"GATE")&&(t.ignoreAmbiguities=!0),this.recordingProdStack.push(t),e.ALT.call(this),this.recordingProdStack.pop()}),ji}function Zi(e){return 0===e?"":`${e}`}function Ji(e){if(e<0||e>Wi){const t=new Error(`Invalid DSL Method idx value: <${e}>\n\tIdx value must be a none negative value smaller than ${Wi+1}`);throw t.KNOWN_RECORDER_ERROR=!0,t}}const es=_r(Or,"",NaN,NaN,NaN,NaN,NaN,NaN);Object.freeze(es);const ts=Object.freeze({recoveryEnabled:!1,maxLookahead:3,dynamicTokensEnabled:!1,outputCst:!0,errorMessageProvider:Mr,nodeLocationTracking:"none",traceInitPerf:!1,skipValidations:!1}),ns=Object.freeze({recoveryValueFunc:()=>{},resyncEnabled:!0});var rs;function is(e=void 0){return function(){return e}}!function(e){e[e.INVALID_RULE_NAME=0]="INVALID_RULE_NAME",e[e.DUPLICATE_RULE_NAME=1]="DUPLICATE_RULE_NAME",e[e.INVALID_RULE_OVERRIDE=2]="INVALID_RULE_OVERRIDE",e[e.DUPLICATE_PRODUCTIONS=3]="DUPLICATE_PRODUCTIONS",e[e.UNRESOLVED_SUBRULE_REF=4]="UNRESOLVED_SUBRULE_REF",e[e.LEFT_RECURSION=5]="LEFT_RECURSION",e[e.NONE_LAST_EMPTY_ALT=6]="NONE_LAST_EMPTY_ALT",e[e.AMBIGUOUS_ALTS=7]="AMBIGUOUS_ALTS",e[e.CONFLICT_TOKENS_RULES_NAMESPACE=8]="CONFLICT_TOKENS_RULES_NAMESPACE",e[e.INVALID_TOKEN_NAME=9]="INVALID_TOKEN_NAME",e[e.NO_NON_EMPTY_LOOKAHEAD=10]="NO_NON_EMPTY_LOOKAHEAD",e[e.AMBIGUOUS_PREFIX_ALTS=11]="AMBIGUOUS_PREFIX_ALTS",e[e.TOO_MANY_ALTS=12]="TOO_MANY_ALTS",e[e.CUSTOM_LOOKAHEAD_VALIDATION=13]="CUSTOM_LOOKAHEAD_VALIDATION"}(rs||(rs={}));class ss{static performSelfAnalysis(e){throw Error("The **static** `performSelfAnalysis` method has been deprecated.\t\nUse the **instance** method with the same name instead.")}performSelfAnalysis(){this.TRACE_INIT("performSelfAnalysis",()=>{let e;this.selfAnalysisDone=!0;const t=this.className;this.TRACE_INIT("toFastProps",()=>{dn(this)}),this.TRACE_INIT("Grammar Recording",()=>{try{this.enableRecording(),(0,i.d)(this.definedRulesNames,e=>{const t=this[e].originalGrammarAction;let n;this.TRACE_INIT(`${e} Rule`,()=>{n=this.topLevelRuleRecord(e,t)}),this.gastProductionsCache[e]=n})}finally{this.disableRecording()}});let n=[];if(this.TRACE_INIT("Grammar Resolving",()=>{n=function(e){const t=(0,s.i)(e,{errMsgProvider:Dr}),n={};return(0,i.d)(e.rules,e=>{n[e.name]=e}),function(e,t){const n=new Fr(e,t);return n.resolveRefs(),n.errors}(n,t.errMsgProvider)}({rules:(0,i.v)(this.gastProductionsCache)}),this.definitionErrors=this.definitionErrors.concat(n)}),this.TRACE_INIT("Grammar Validations",()=>{if((0,r.av)(n)&&!1===this.skipValidations){const e=function(e){return function(e,t,n,r){const a=I(e,e=>function(e,t){const n=new fi;e.accept(n);const r=n.allProductions,a=f(N(r,di),e=>e.length>1);return(0,s.m)((0,i.v)(a),n=>{const r=x(n),i=t.buildDuplicateFoundError(e,n),s=Sn(r),a={message:i,type:rs.DUPLICATE_PRODUCTIONS,ruleName:e.name,dslName:s,occurrence:r.idx},o=hi(r);return o&&(a.parameter=o),a})}(e,n)),o=function(e,t,n){const r=[],a=(0,s.m)(t,e=>e.name);return(0,i.d)(e,e=>{const t=e.name;if(L(a,t)){const i=n.buildNamespaceConflictError(e);r.push({message:i,type:rs.CONFLICT_TOKENS_RULES_NAMESPACE,ruleName:t})}}),r}(e,t,n),l=I(e,e=>function(e,t){const n=new gi;return e.accept(n),I(n.alternations,n=>n.definition.length>255?[{message:t.buildTooManyAlternativesError({topLevelRule:e,alternation:n}),type:rs.TOO_MANY_ALTS,ruleName:e.name,occurrence:n.idx}]:[])}(e,n)),c=I(e,t=>function(e,t,n,r){const s=[];if((0,i.r)(t,(t,n)=>n.name===e.name?t+1:t,0)>1){const t=r.buildDuplicateRuleNameError({topLevelRule:e,grammarName:n});s.push({message:t,type:rs.DUPLICATE_RULE_NAME,ruleName:e.name})}return s}(t,e,r,n));return a.concat(o,l,c)}((e=(0,s.i)(e,{errMsgProvider:Ur})).rules,e.tokenTypes,e.errMsgProvider,e.grammarName)}({rules:(0,i.v)(this.gastProductionsCache),tokenTypes:(0,i.v)(this.tokensMap),errMsgProvider:Ur,grammarName:t}),n=function(e){const t=e.lookaheadStrategy.validate({rules:e.rules,tokenTypes:e.tokenTypes,grammarName:e.grammarName});return(0,s.m)(t,e=>Object.assign({type:rs.CUSTOM_LOOKAHEAD_VALIDATION},e))}({lookaheadStrategy:this.lookaheadStrategy,rules:(0,i.v)(this.gastProductionsCache),tokenTypes:(0,i.v)(this.tokensMap),grammarName:t});this.definitionErrors=this.definitionErrors.concat(e,n)}}),(0,r.av)(this.definitionErrors)&&(this.recoveryEnabled&&this.TRACE_INIT("computeAllProdsFollows",()=>{const e=function(e){const t={};return(0,i.d)(e,e=>{const n=new bn(e).startWalking();g(t,n)}),t}((0,i.v)(this.gastProductionsCache));this.resyncFollows=e}),this.TRACE_INIT("ComputeLookaheadFunctions",()=>{var e,t;null===(t=(e=this.lookaheadStrategy).initialize)||void 0===t||t.call(e,{rules:(0,i.v)(this.gastProductionsCache)}),this.preComputeLookaheadFunctions((0,i.v)(this.gastProductionsCache))})),!ss.DEFER_DEFINITION_ERRORS_HANDLING&&!(0,r.av)(this.definitionErrors))throw e=(0,s.m)(this.definitionErrors,e=>e.message),new Error(`Parser Definition Errors detected:\n ${e.join("\n-------------------------------\n")}`)})}constructor(e,t){this.definitionErrors=[],this.selfAnalysisDone=!1;const n=this;if(n.initErrorHandler(t),n.initLexerAdapter(),n.initLooksAhead(t),n.initRecognizerEngine(e,t),n.initRecoverable(t),n.initTreeBuilder(t),n.initContentAssist(),n.initGastRecorder(t),n.initPerformanceTracer(t),(0,s.h)(t,"ignoredIssues"))throw new Error("The <ignoredIssues> IParserConfig property has been deprecated.\n\tPlease use the <IGNORE_AMBIGUITIES> flag on the relevant DSL method instead.\n\tSee: https://chevrotain.io/docs/guide/resolving_grammar_errors.html#IGNORING_AMBIGUITIES\n\tFor further details.");this.skipValidations=(0,s.h)(t,"skipValidations")?t.skipValidations:ts.skipValidations}}ss.DEFER_DEFINITION_ERRORS_HANDLING=!1,function(e,t){t.forEach(t=>{const n=t.prototype;Object.getOwnPropertyNames(n).forEach(r=>{if("constructor"===r)return;const i=Object.getOwnPropertyDescriptor(n,r);i&&(i.get||i.set)?Object.defineProperty(e.prototype,r,i):e.prototype[r]=t.prototype[r]})})}(ss,[class{initRecoverable(e){this.firstAfterRepMap={},this.resyncFollows={},this.recoveryEnabled=(0,s.h)(e,"recoveryEnabled")?e.recoveryEnabled:ts.recoveryEnabled,this.recoveryEnabled&&(this.attemptInRepetitionRecovery=bi)}getTokenToInsert(e){const t=_r(e,"",NaN,NaN,NaN,NaN,NaN,NaN);return t.isInsertedInRecovery=!0,t}canTokenTypeBeInsertedInRecovery(e){return!0}canTokenTypeBeDeletedInRecovery(e){return!0}tryInRepetitionRecovery(e,t,n,r){const i=this.findReSyncTokenType(),s=this.exportLexerState(),a=[];let o=!1;const l=this.LA(1);let c=this.LA(1);const u=()=>{const e=this.LA(0),t=this.errorMessageProvider.buildMismatchTokenMessage({expected:r,actual:l,previous:e,ruleName:this.getCurrRuleFullName()}),n=new xi(t,l,this.LA(0));n.resyncedTokens=$(a),this.SAVE_ERROR(n)};for(;!o;){if(this.tokenMatcher(c,r))return void u();if(n.call(this))return u(),void e.apply(this,t);this.tokenMatcher(c,i)?o=!0:(c=this.SKIP_TOKEN(),this.addToResyncTokens(c,a))}this.importLexerState(s)}shouldInRepetitionRecoveryBeTried(e,t,n){return!(!1===n||this.tokenMatcher(this.LA(1),e)||this.isBackTracking()||this.canPerformInRuleRecovery(e,this.getFollowsForInRuleRecovery(e,t)))}getFollowsForInRuleRecovery(e,t){const n=this.getCurrentGrammarPath(e,t);return this.getNextPossibleTokenTypes(n)}tryInRuleRecovery(e,t){if(this.canRecoverWithSingleTokenInsertion(e,t))return this.getTokenToInsert(e);if(this.canRecoverWithSingleTokenDeletion(e)){const e=this.SKIP_TOKEN();return this.consumeToken(),e}throw new Li("sad sad panda")}canPerformInRuleRecovery(e,t){return this.canRecoverWithSingleTokenInsertion(e,t)||this.canRecoverWithSingleTokenDeletion(e)}canRecoverWithSingleTokenInsertion(e,t){if(!this.canTokenTypeBeInsertedInRecovery(e)||(0,r.av)(t))return!1;const n=this.LA(1);return void 0!==(0,s.g)(t,e=>this.tokenMatcher(n,e))}canRecoverWithSingleTokenDeletion(e){return!!this.canTokenTypeBeDeletedInRecovery(e)&&this.tokenMatcher(this.LA(2),e)}isInCurrentRuleReSyncSet(e){const t=this.getCurrFollowKey();return L(this.getFollowSetFromFollowKey(t),e)}findReSyncTokenType(){const e=this.flattenFollowSet();let t=this.LA(1),n=2;for(;;){const r=(0,s.g)(e,e=>Pr(t,e));if(void 0!==r)return r;t=this.LA(n),n++}}getCurrFollowKey(){if(1===this.RULE_STACK.length)return Ni;const e=this.getLastExplicitRuleShortName(),t=this.getLastExplicitRuleOccurrenceIndex(),n=this.getPreviousExplicitRuleShortName();return{ruleName:this.shortRuleNameToFullName(e),idxInCallingRule:t,inRule:this.shortRuleNameToFullName(n)}}buildFullFollowKeyStack(){const e=this.RULE_STACK,t=this.RULE_OCCURRENCE_STACK;return(0,s.m)(e,(n,r)=>0===r?Ni:{ruleName:this.shortRuleNameToFullName(n),idxInCallingRule:t[r],inRule:this.shortRuleNameToFullName(e[r-1])})}flattenFollowSet(){const e=(0,s.m)(this.buildFullFollowKeyStack(),e=>this.getFollowSetFromFollowKey(e));return(0,s.f)(e)}getFollowSetFromFollowKey(e){if(e===Ni)return[Or];const t=e.ruleName+e.idxInCallingRule+Ln+e.inRule;return this.resyncFollows[t]}addToResyncTokens(e,t){return this.tokenMatcher(e,Or)||t.push(e),t}reSyncTo(e){const t=[];let n=this.LA(1);for(;!1===this.tokenMatcher(n,e);)n=this.SKIP_TOKEN(),this.addToResyncTokens(n,t);return $(t)}attemptInRepetitionRecovery(e,t,n,r,i,s,a){}getCurrentGrammarPath(e,t){return{ruleStack:this.getHumanReadableRuleStack(),occurrenceStack:(0,a.c)(this.RULE_OCCURRENCE_STACK),lastTok:e,lastTokOccurrence:t}}getHumanReadableRuleStack(){return(0,s.m)(this.RULE_STACK,e=>this.shortRuleNameToFullName(e))}},class{initLooksAhead(e){this.dynamicTokensEnabled=(0,s.h)(e,"dynamicTokensEnabled")?e.dynamicTokensEnabled:ts.dynamicTokensEnabled,this.maxLookahead=(0,s.h)(e,"maxLookahead")?e.maxLookahead:ts.maxLookahead,this.lookaheadStrategy=(0,s.h)(e,"lookaheadStrategy")?e.lookaheadStrategy:new Di({maxLookahead:this.maxLookahead}),this.lookAheadFuncsCache=new Map}preComputeLookaheadFunctions(e){(0,i.d)(e,e=>{this.TRACE_INIT(`${e.name} Rule Lookahead`,()=>{const{alternation:t,repetition:n,option:r,repetitionMandatory:s,repetitionMandatoryWithSeparator:a,repetitionWithSeparator:o}=function(e){Ui.reset(),e.accept(Ui);const t=Ui.dslMethods;return Ui.reset(),t}(e);(0,i.d)(t,t=>{const n=0===t.idx?"":t.idx;this.TRACE_INIT(`${Sn(t)}${n}`,()=>{const n=this.lookaheadStrategy.buildLookaheadForAlternation({prodOccurrence:t.idx,rule:e,maxLookahead:t.maxLookahead||this.maxLookahead,hasPredicates:t.hasPredicates,dynamicTokensEnabled:this.dynamicTokensEnabled}),r=Mi(this.fullRuleNameToShort[e.name],256,t.idx);this.setLaFuncCache(r,n)})}),(0,i.d)(n,t=>{this.computeLookaheadFunc(e,t.idx,768,"Repetition",t.maxLookahead,Sn(t))}),(0,i.d)(r,t=>{this.computeLookaheadFunc(e,t.idx,512,"Option",t.maxLookahead,Sn(t))}),(0,i.d)(s,t=>{this.computeLookaheadFunc(e,t.idx,Oi,"RepetitionMandatory",t.maxLookahead,Sn(t))}),(0,i.d)(a,t=>{this.computeLookaheadFunc(e,t.idx,Pi,"RepetitionMandatoryWithSeparator",t.maxLookahead,Sn(t))}),(0,i.d)(o,t=>{this.computeLookaheadFunc(e,t.idx,_i,"RepetitionWithSeparator",t.maxLookahead,Sn(t))})})})}computeLookaheadFunc(e,t,n,r,i,s){this.TRACE_INIT(`${s}${0===t?"":t}`,()=>{const s=this.lookaheadStrategy.buildLookaheadForOptional({prodOccurrence:t,rule:e,maxLookahead:i||this.maxLookahead,dynamicTokensEnabled:this.dynamicTokensEnabled,prodType:r}),a=Mi(this.fullRuleNameToShort[e.name],n,t);this.setLaFuncCache(a,s)})}getKeyForAutomaticLookahead(e,t){return Mi(this.getLastExplicitRuleShortName(),e,t)}getLaFuncFromCache(e){return this.lookAheadFuncsCache.get(e)}setLaFuncCache(e,t){this.lookAheadFuncsCache.set(e,t)}},class{initTreeBuilder(e){if(this.CST_STACK=[],this.outputCst=e.outputCst,this.nodeLocationTracking=(0,s.h)(e,"nodeLocationTracking")?e.nodeLocationTracking:ts.nodeLocationTracking,this.outputCst)if(/full/i.test(this.nodeLocationTracking))this.recoveryEnabled?(this.setNodeLocationFromToken=Gi,this.setNodeLocationFromNode=Gi,this.cstPostRule=i.D,this.setInitialNodeLocation=this.setInitialNodeLocationFullRecovery):(this.setNodeLocationFromToken=i.D,this.setNodeLocationFromNode=i.D,this.cstPostRule=this.cstPostRuleFull,this.setInitialNodeLocation=this.setInitialNodeLocationFullRegular);else if(/onlyOffset/i.test(this.nodeLocationTracking))this.recoveryEnabled?(this.setNodeLocationFromToken=Fi,this.setNodeLocationFromNode=Fi,this.cstPostRule=i.D,this.setInitialNodeLocation=this.setInitialNodeLocationOnlyOffsetRecovery):(this.setNodeLocationFromToken=i.D,this.setNodeLocationFromNode=i.D,this.cstPostRule=this.cstPostRuleOnlyOffset,this.setInitialNodeLocation=this.setInitialNodeLocationOnlyOffsetRegular);else{if(!/none/i.test(this.nodeLocationTracking))throw Error(`Invalid <nodeLocationTracking> config option: "${e.nodeLocationTracking}"`);this.setNodeLocationFromToken=i.D,this.setNodeLocationFromNode=i.D,this.cstPostRule=i.D,this.setInitialNodeLocation=i.D}else this.cstInvocationStateUpdate=i.D,this.cstFinallyStateUpdate=i.D,this.cstPostTerminal=i.D,this.cstPostNonTerminal=i.D,this.cstPostRule=i.D}setInitialNodeLocationOnlyOffsetRecovery(e){e.location={startOffset:NaN,endOffset:NaN}}setInitialNodeLocationOnlyOffsetRegular(e){e.location={startOffset:this.LA(1).startOffset,endOffset:NaN}}setInitialNodeLocationFullRecovery(e){e.location={startOffset:NaN,startLine:NaN,startColumn:NaN,endOffset:NaN,endLine:NaN,endColumn:NaN}}setInitialNodeLocationFullRegular(e){const t=this.LA(1);e.location={startOffset:t.startOffset,startLine:t.startLine,startColumn:t.startColumn,endOffset:NaN,endLine:NaN,endColumn:NaN}}cstInvocationStateUpdate(e){const t={name:e,children:Object.create(null)};this.setInitialNodeLocation(t),this.CST_STACK.push(t)}cstFinallyStateUpdate(){this.CST_STACK.pop()}cstPostRuleFull(e){const t=this.LA(0),n=e.location;n.startOffset<=t.startOffset?(n.endOffset=t.endOffset,n.endLine=t.endLine,n.endColumn=t.endColumn):(n.startOffset=NaN,n.startLine=NaN,n.startColumn=NaN)}cstPostRuleOnlyOffset(e){const t=this.LA(0),n=e.location;n.startOffset<=t.startOffset?n.endOffset=t.endOffset:n.startOffset=NaN}cstPostTerminal(e,t){const n=this.CST_STACK[this.CST_STACK.length-1];(function(e,t,n){void 0===e.children[n]?e.children[n]=[t]:e.children[n].push(t)})(n,t,e),this.setNodeLocationFromToken(n.location,t)}cstPostNonTerminal(e,t){const n=this.CST_STACK[this.CST_STACK.length-1];(function(e,t,n){void 0===e.children[t]?e.children[t]=[n]:e.children[t].push(n)})(n,t,e),this.setNodeLocationFromNode(n.location,e.location)}getBaseCstVisitorConstructor(){if((0,i.i)(this.baseCstVisitorConstructor)){const e=function(e,t){const n=function(){};Bi(n,e+"BaseSemantics");const a={visit:function(e,t){if((0,r.aS)(e)&&(e=e[0]),!(0,i.i)(e))return this[e.name](e.children,t)},validateVisitor:function(){const e=function(e,t){return function(e,t){const n=(0,i.f)(t,t=>!1===(0,r.au)(e[t])),a=(0,s.m)(n,t=>({msg:`Missing visitor method: <${t}> on ${e.constructor.name} CST Visitor.`,type:Vi.MISSING_METHOD,methodName:t}));return y(a)}(e,t)}(this,t);if(!(0,r.av)(e)){const t=(0,s.m)(e,e=>e.msg);throw Error(`Errors Detected in CST Visitor <${this.constructor.name}>:\n\t${t.join("\n\n").replace(/\n/g,"\n\t")}`)}}};return(n.prototype=a).constructor=n,n._RULE_NAMES=t,n}(this.className,(0,i.k)(this.gastProductionsCache));return this.baseCstVisitorConstructor=e,e}return this.baseCstVisitorConstructor}getBaseCstVisitorConstructorWithDefaults(){if((0,i.i)(this.baseCstVisitorWithDefaultsConstructor)){const e=function(e,t,n){const r=function(){};Bi(r,e+"BaseSemanticsWithDefaults");const s=Object.create(n.prototype);return(0,i.d)(t,e=>{s[e]=Ki}),(r.prototype=s).constructor=r,r}(this.className,(0,i.k)(this.gastProductionsCache),this.getBaseCstVisitorConstructor());return this.baseCstVisitorWithDefaultsConstructor=e,e}return this.baseCstVisitorWithDefaultsConstructor}getLastExplicitRuleShortName(){const e=this.RULE_STACK;return e[e.length-1]}getPreviousExplicitRuleShortName(){const e=this.RULE_STACK;return e[e.length-2]}getLastExplicitRuleOccurrenceIndex(){const e=this.RULE_OCCURRENCE_STACK;return e[e.length-1]}},class{initLexerAdapter(){this.tokVector=[],this.tokVectorLength=0,this.currIdx=-1}set input(e){if(!0!==this.selfAnalysisDone)throw Error("Missing <performSelfAnalysis> invocation at the end of the Parser's constructor.");this.reset(),this.tokVector=e,this.tokVectorLength=e.length}get input(){return this.tokVector}SKIP_TOKEN(){return this.currIdx<=this.tokVector.length-2?(this.consumeToken(),this.LA(1)):es}LA(e){const t=this.currIdx+e;return t<0||this.tokVectorLength<=t?es:this.tokVector[t]}consumeToken(){this.currIdx++}exportLexerState(){return this.currIdx}importLexerState(e){this.currIdx=e}resetLexerState(){this.currIdx=-1}moveToTerminatedState(){this.currIdx=this.tokVector.length-1}getLexerPosition(){return this.exportLexerState()}},class{initRecognizerEngine(e,t){if(this.className=this.constructor.name,this.shortRuleNameToFull={},this.fullRuleNameToShort={},this.ruleShortNameIdx=256,this.tokenMatcher=ur,this.subruleIdx=0,this.definedRulesNames=[],this.tokensMap={},this.isBackTrackingStack=[],this.RULE_STACK=[],this.RULE_OCCURRENCE_STACK=[],this.gastProductionsCache={},(0,s.h)(t,"serializedGrammar"))throw Error("The Parser's configuration can no longer contain a <serializedGrammar> property.\n\tSee: https://chevrotain.io/docs/changes/BREAKING_CHANGES.html#_6-0-0\n\tFor Further details.");if((0,r.aS)(e)){if((0,r.av)(e))throw Error("A Token Vocabulary cannot be empty.\n\tNote that the first argument for the parser constructor\n\tis no longer a Token vector (since v4.0).");if("number"==typeof e[0].startOffset)throw Error("The Parser constructor no longer accepts a token vector as the first argument.\n\tSee: https://chevrotain.io/docs/changes/BREAKING_CHANGES.html#_4-0-0\n\tFor Further details.")}if((0,r.aS)(e))this.tokensMap=(0,i.r)(e,(e,t)=>(e[t.name]=t,e),{});else if((0,s.h)(e,"modes")&&k((0,s.f)((0,i.v)(e.modes)),yr)){const t=h((0,s.f)((0,i.v)(e.modes)));this.tokensMap=(0,i.r)(t,(e,t)=>(e[t.name]=t,e),{})}else{if(!(0,r.aL)(e))throw new Error("<tokensDictionary> argument must be An Array of Token constructors, A dictionary of Token constructors or an IMultiModeLexerDefinition");this.tokensMap=(0,a.c)(e)}this.tokensMap.EOF=Or;const n=k((0,s.h)(e,"modes")?(0,s.f)((0,i.v)(e.modes)):(0,i.v)(e),e=>(0,r.av)(e.categoryMatches));this.tokenMatcher=n?ur:cr,fr((0,i.v)(this.tokensMap))}defineRule(e,t,n){if(this.selfAnalysisDone)throw Error(`Grammar rule <${e}> may not be defined after the 'performSelfAnalysis' method has been called'\nMake sure that all grammar rule definitions are done before 'performSelfAnalysis' is called.`);const r=(0,s.h)(n,"resyncEnabled")?n.resyncEnabled:ns.resyncEnabled,i=(0,s.h)(n,"recoveryValueFunc")?n.recoveryValueFunc:ns.recoveryValueFunc,a=this.ruleShortNameIdx<<12;let o;return this.ruleShortNameIdx++,this.shortRuleNameToFull[a]=e,this.fullRuleNameToShort[e]=a,o=!0===this.outputCst?function(...n){try{this.ruleInvocationStateUpdate(a,e,this.subruleIdx),t.apply(this,n);const r=this.CST_STACK[this.CST_STACK.length-1];return this.cstPostRule(r),r}catch(e){return this.invokeRuleCatch(e,r,i)}finally{this.ruleFinallyStateUpdate()}}:function(...n){try{return this.ruleInvocationStateUpdate(a,e,this.subruleIdx),t.apply(this,n)}catch(e){return this.invokeRuleCatch(e,r,i)}finally{this.ruleFinallyStateUpdate()}},Object.assign(o,{ruleName:e,originalGrammarAction:t})}invokeRuleCatch(e,t,n){const r=1===this.RULE_STACK.length,i=t&&!this.isBackTracking()&&this.recoveryEnabled;if(Ai(e)){const t=e;if(i){const r=this.findReSyncTokenType();if(this.isInCurrentRuleReSyncSet(r)){if(t.resyncedTokens=this.reSyncTo(r),this.outputCst){const e=this.CST_STACK[this.CST_STACK.length-1];return e.recoveredNode=!0,e}return n(e)}if(this.outputCst){const e=this.CST_STACK[this.CST_STACK.length-1];e.recoveredNode=!0,t.partialCstResult=e}throw t}if(r)return this.moveToTerminatedState(),n(e);throw t}throw e}optionInternal(e,t){const n=this.getKeyForAutomaticLookahead(512,t);return this.optionInternalLogic(e,t,n)}optionInternalLogic(e,t,n){let r,i=this.getLaFuncFromCache(n);if("function"!=typeof e){r=e.DEF;const t=e.GATE;if(void 0!==t){const e=i;i=()=>t.call(this)&&e.call(this)}}else r=e;if(!0===i.call(this))return r.call(this)}atLeastOneInternal(e,t){const n=this.getKeyForAutomaticLookahead(Oi,e);return this.atLeastOneInternalLogic(e,t,n)}atLeastOneInternalLogic(e,t,n){let r,i=this.getLaFuncFromCache(n);if("function"!=typeof t){r=t.DEF;const e=t.GATE;if(void 0!==e){const t=i;i=()=>e.call(this)&&t.call(this)}}else r=t;if(!0!==i.call(this))throw this.raiseEarlyExitException(e,Xr.REPETITION_MANDATORY,t.ERR_MSG);{let e=this.doSingleRepetition(r);for(;!0===i.call(this)&&!0===e;)e=this.doSingleRepetition(r)}this.attemptInRepetitionRecovery(this.atLeastOneInternal,[e,t],i,Oi,e,Hr)}atLeastOneSepFirstInternal(e,t){const n=this.getKeyForAutomaticLookahead(Pi,e);this.atLeastOneSepFirstInternalLogic(e,t,n)}atLeastOneSepFirstInternalLogic(e,t,n){const r=t.DEF,i=t.SEP;if(!0!==this.getLaFuncFromCache(n).call(this))throw this.raiseEarlyExitException(e,Xr.REPETITION_MANDATORY_WITH_SEPARATOR,t.ERR_MSG);{r.call(this);const t=()=>this.tokenMatcher(this.LA(1),i);for(;!0===this.tokenMatcher(this.LA(1),i);)this.CONSUME(i),r.call(this);this.attemptInRepetitionRecovery(this.repetitionSepSecondInternal,[e,i,t,r,Wr],t,Pi,e,Wr)}}manyInternal(e,t){const n=this.getKeyForAutomaticLookahead(768,e);return this.manyInternalLogic(e,t,n)}manyInternalLogic(e,t,n){let r,i=this.getLaFuncFromCache(n);if("function"!=typeof t){r=t.DEF;const e=t.GATE;if(void 0!==e){const t=i;i=()=>e.call(this)&&t.call(this)}}else r=t;let s=!0;for(;!0===i.call(this)&&!0===s;)s=this.doSingleRepetition(r);this.attemptInRepetitionRecovery(this.manyInternal,[e,t],i,768,e,Vr,s)}manySepFirstInternal(e,t){const n=this.getKeyForAutomaticLookahead(_i,e);this.manySepFirstInternalLogic(e,t,n)}manySepFirstInternalLogic(e,t,n){const r=t.DEF,i=t.SEP;if(!0===this.getLaFuncFromCache(n).call(this)){r.call(this);const t=()=>this.tokenMatcher(this.LA(1),i);for(;!0===this.tokenMatcher(this.LA(1),i);)this.CONSUME(i),r.call(this);this.attemptInRepetitionRecovery(this.repetitionSepSecondInternal,[e,i,t,r,jr],t,_i,e,jr)}}repetitionSepSecondInternal(e,t,n,r,i){for(;n();)this.CONSUME(t),r.call(this);this.attemptInRepetitionRecovery(this.repetitionSepSecondInternal,[e,t,n,r,i],n,Pi,e,i)}doSingleRepetition(e){const t=this.getLexerPosition();return e.call(this),this.getLexerPosition()>t}orInternal(e,t){const n=this.getKeyForAutomaticLookahead(256,t),i=(0,r.aS)(e)?e:e.DEF,s=this.getLaFuncFromCache(n).call(this,i);if(void 0!==s)return i[s].ALT.call(this);this.raiseNoAltException(t,e.ERR_MSG)}ruleFinallyStateUpdate(){if(this.RULE_STACK.pop(),this.RULE_OCCURRENCE_STACK.pop(),this.cstFinallyStateUpdate(),0===this.RULE_STACK.length&&!1===this.isAtEndOfInput()){const e=this.LA(1),t=this.errorMessageProvider.buildNotAllInputParsedMessage({firstRedundant:e,ruleName:this.getCurrRuleFullName()});this.SAVE_ERROR(new Si(t,e))}}subruleInternal(e,t,n){let r;try{const i=void 0!==n?n.ARGS:void 0;return this.subruleIdx=t,r=e.apply(this,i),this.cstPostNonTerminal(r,void 0!==n&&void 0!==n.LABEL?n.LABEL:e.ruleName),r}catch(t){throw this.subruleInternalError(t,n,e.ruleName)}}subruleInternalError(e,t,n){throw Ai(e)&&void 0!==e.partialCstResult&&(this.cstPostNonTerminal(e.partialCstResult,void 0!==t&&void 0!==t.LABEL?t.LABEL:n),delete e.partialCstResult),e}consumeInternal(e,t,n){let r;try{const t=this.LA(1);!0===this.tokenMatcher(t,e)?(this.consumeToken(),r=t):this.consumeInternalError(e,t,n)}catch(n){r=this.consumeInternalRecovery(e,t,n)}return this.cstPostTerminal(void 0!==n&&void 0!==n.LABEL?n.LABEL:e.name,r),r}consumeInternalError(e,t,n){let r;const i=this.LA(0);throw r=void 0!==n&&n.ERR_MSG?n.ERR_MSG:this.errorMessageProvider.buildMismatchTokenMessage({expected:e,actual:t,previous:i,ruleName:this.getCurrRuleFullName()}),this.SAVE_ERROR(new xi(r,t,i))}consumeInternalRecovery(e,t,n){if(!this.recoveryEnabled||"MismatchedTokenException"!==n.name||this.isBackTracking())throw n;{const r=this.getFollowsForInRuleRecovery(e,t);try{return this.tryInRuleRecovery(e,r)}catch(e){throw e.name===wi?n:e}}}saveRecogState(){const e=this.errors,t=(0,a.c)(this.RULE_STACK);return{errors:e,lexerState:this.exportLexerState(),RULE_STACK:t,CST_STACK:this.CST_STACK}}reloadRecogState(e){this.errors=e.errors,this.importLexerState(e.lexerState),this.RULE_STACK=e.RULE_STACK}ruleInvocationStateUpdate(e,t,n){this.RULE_OCCURRENCE_STACK.push(n),this.RULE_STACK.push(e),this.cstInvocationStateUpdate(t)}isBackTracking(){return 0!==this.isBackTrackingStack.length}getCurrRuleFullName(){const e=this.getLastExplicitRuleShortName();return this.shortRuleNameToFull[e]}shortRuleNameToFullName(e){return this.shortRuleNameToFull[e]}isAtEndOfInput(){return this.tokenMatcher(this.LA(1),Or)}reset(){this.resetLexerState(),this.subruleIdx=0,this.isBackTrackingStack=[],this.errors=[],this.RULE_STACK=[],this.CST_STACK=[],this.RULE_OCCURRENCE_STACK=[]}},class{ACTION(e){return e.call(this)}consume(e,t,n){return this.consumeInternal(t,e,n)}subrule(e,t,n){return this.subruleInternal(t,e,n)}option(e,t){return this.optionInternal(t,e)}or(e,t){return this.orInternal(t,e)}many(e,t){return this.manyInternal(e,t)}atLeastOne(e,t){return this.atLeastOneInternal(e,t)}CONSUME(e,t){return this.consumeInternal(e,0,t)}CONSUME1(e,t){return this.consumeInternal(e,1,t)}CONSUME2(e,t){return this.consumeInternal(e,2,t)}CONSUME3(e,t){return this.consumeInternal(e,3,t)}CONSUME4(e,t){return this.consumeInternal(e,4,t)}CONSUME5(e,t){return this.consumeInternal(e,5,t)}CONSUME6(e,t){return this.consumeInternal(e,6,t)}CONSUME7(e,t){return this.consumeInternal(e,7,t)}CONSUME8(e,t){return this.consumeInternal(e,8,t)}CONSUME9(e,t){return this.consumeInternal(e,9,t)}SUBRULE(e,t){return this.subruleInternal(e,0,t)}SUBRULE1(e,t){return this.subruleInternal(e,1,t)}SUBRULE2(e,t){return this.subruleInternal(e,2,t)}SUBRULE3(e,t){return this.subruleInternal(e,3,t)}SUBRULE4(e,t){return this.subruleInternal(e,4,t)}SUBRULE5(e,t){return this.subruleInternal(e,5,t)}SUBRULE6(e,t){return this.subruleInternal(e,6,t)}SUBRULE7(e,t){return this.subruleInternal(e,7,t)}SUBRULE8(e,t){return this.subruleInternal(e,8,t)}SUBRULE9(e,t){return this.subruleInternal(e,9,t)}OPTION(e){return this.optionInternal(e,0)}OPTION1(e){return this.optionInternal(e,1)}OPTION2(e){return this.optionInternal(e,2)}OPTION3(e){return this.optionInternal(e,3)}OPTION4(e){return this.optionInternal(e,4)}OPTION5(e){return this.optionInternal(e,5)}OPTION6(e){return this.optionInternal(e,6)}OPTION7(e){return this.optionInternal(e,7)}OPTION8(e){return this.optionInternal(e,8)}OPTION9(e){return this.optionInternal(e,9)}OR(e){return this.orInternal(e,0)}OR1(e){return this.orInternal(e,1)}OR2(e){return this.orInternal(e,2)}OR3(e){return this.orInternal(e,3)}OR4(e){return this.orInternal(e,4)}OR5(e){return this.orInternal(e,5)}OR6(e){return this.orInternal(e,6)}OR7(e){return this.orInternal(e,7)}OR8(e){return this.orInternal(e,8)}OR9(e){return this.orInternal(e,9)}MANY(e){this.manyInternal(0,e)}MANY1(e){this.manyInternal(1,e)}MANY2(e){this.manyInternal(2,e)}MANY3(e){this.manyInternal(3,e)}MANY4(e){this.manyInternal(4,e)}MANY5(e){this.manyInternal(5,e)}MANY6(e){this.manyInternal(6,e)}MANY7(e){this.manyInternal(7,e)}MANY8(e){this.manyInternal(8,e)}MANY9(e){this.manyInternal(9,e)}MANY_SEP(e){this.manySepFirstInternal(0,e)}MANY_SEP1(e){this.manySepFirstInternal(1,e)}MANY_SEP2(e){this.manySepFirstInternal(2,e)}MANY_SEP3(e){this.manySepFirstInternal(3,e)}MANY_SEP4(e){this.manySepFirstInternal(4,e)}MANY_SEP5(e){this.manySepFirstInternal(5,e)}MANY_SEP6(e){this.manySepFirstInternal(6,e)}MANY_SEP7(e){this.manySepFirstInternal(7,e)}MANY_SEP8(e){this.manySepFirstInternal(8,e)}MANY_SEP9(e){this.manySepFirstInternal(9,e)}AT_LEAST_ONE(e){this.atLeastOneInternal(0,e)}AT_LEAST_ONE1(e){return this.atLeastOneInternal(1,e)}AT_LEAST_ONE2(e){this.atLeastOneInternal(2,e)}AT_LEAST_ONE3(e){this.atLeastOneInternal(3,e)}AT_LEAST_ONE4(e){this.atLeastOneInternal(4,e)}AT_LEAST_ONE5(e){this.atLeastOneInternal(5,e)}AT_LEAST_ONE6(e){this.atLeastOneInternal(6,e)}AT_LEAST_ONE7(e){this.atLeastOneInternal(7,e)}AT_LEAST_ONE8(e){this.atLeastOneInternal(8,e)}AT_LEAST_ONE9(e){this.atLeastOneInternal(9,e)}AT_LEAST_ONE_SEP(e){this.atLeastOneSepFirstInternal(0,e)}AT_LEAST_ONE_SEP1(e){this.atLeastOneSepFirstInternal(1,e)}AT_LEAST_ONE_SEP2(e){this.atLeastOneSepFirstInternal(2,e)}AT_LEAST_ONE_SEP3(e){this.atLeastOneSepFirstInternal(3,e)}AT_LEAST_ONE_SEP4(e){this.atLeastOneSepFirstInternal(4,e)}AT_LEAST_ONE_SEP5(e){this.atLeastOneSepFirstInternal(5,e)}AT_LEAST_ONE_SEP6(e){this.atLeastOneSepFirstInternal(6,e)}AT_LEAST_ONE_SEP7(e){this.atLeastOneSepFirstInternal(7,e)}AT_LEAST_ONE_SEP8(e){this.atLeastOneSepFirstInternal(8,e)}AT_LEAST_ONE_SEP9(e){this.atLeastOneSepFirstInternal(9,e)}RULE(e,t,n=ns){if(L(this.definedRulesNames,e)){const t={message:Ur.buildDuplicateRuleNameError({topLevelRule:e,grammarName:this.className}),type:rs.DUPLICATE_RULE_NAME,ruleName:e};this.definitionErrors.push(t)}this.definedRulesNames.push(e);const r=this.defineRule(e,t,n);return this[e]=r,r}OVERRIDE_RULE(e,t,n=ns){const r=function(e,t,n){const r=[];let i;return L(t,e)||(i=`Invalid rule override, rule: ->${e}<- cannot be overridden in the grammar: ->${n}<-as it is not defined in any of the super grammars `,r.push({message:i,type:rs.INVALID_RULE_OVERRIDE,ruleName:e})),r}(e,this.definedRulesNames,this.className);this.definitionErrors=this.definitionErrors.concat(r);const i=this.defineRule(e,t,n);return this[e]=i,i}BACKTRACK(e,t){return function(){this.isBackTrackingStack.push(1);const n=this.saveRecogState();try{return e.apply(this,t),!0}catch(e){if(Ai(e))return!1;throw e}finally{this.reloadRecogState(n),this.isBackTrackingStack.pop()}}}getGAstProductions(){return this.gastProductionsCache}getSerializedGastProductions(){return function(e){return(0,s.m)(e,kn)}((0,i.v)(this.gastProductionsCache))}},class{initErrorHandler(e){this._errors=[],this.errorMessageProvider=(0,s.h)(e,"errorMessageProvider")?e.errorMessageProvider:ts.errorMessageProvider}SAVE_ERROR(e){if(Ai(e))return e.context={ruleStack:this.getHumanReadableRuleStack(),ruleOccurrenceStack:(0,a.c)(this.RULE_OCCURRENCE_STACK)},this._errors.push(e),e;throw Error("Trying to save an Error which is not a RecognitionException")}get errors(){return(0,a.c)(this._errors)}set errors(e){this._errors=e}raiseEarlyExitException(e,t,n){const r=this.getCurrRuleFullName(),i=li(e,this.getGAstProductions()[r],t,this.maxLookahead)[0],s=[];for(let e=1;e<=this.maxLookahead;e++)s.push(this.LA(e));const a=this.errorMessageProvider.buildEarlyExitMessage({expectedIterationPaths:i,actual:s,previous:this.LA(0),customUserDescription:n,ruleName:r});throw this.SAVE_ERROR(new Ci(a,this.LA(1),this.LA(0)))}raiseNoAltException(e,t){const n=this.getCurrRuleFullName(),r=oi(e,this.getGAstProductions()[n],this.maxLookahead),i=[];for(let e=1;e<=this.maxLookahead;e++)i.push(this.LA(e));const s=this.LA(0),a=this.errorMessageProvider.buildNoViableAltMessage({expectedPathsPerAlt:r,actual:i,previous:s,customUserDescription:t,ruleName:this.getCurrRuleFullName()});throw this.SAVE_ERROR(new Ii(a,this.LA(1),s))}},class{initContentAssist(){}computeContentAssist(e,t){const n=this.gastProductionsCache[e];if((0,i.i)(n))throw Error(`Rule ->${e}<- does not exist in this grammar.`);return Yr([n],t,this.tokenMatcher,this.maxLookahead)}getNextPossibleTokenTypes(e){const t=x(e.ruleStack),n=this.getGAstProductions()[t];return new Br(n,e).startWalking()}},class{initGastRecorder(e){this.recordingProdStack=[],this.RECORDING_PHASE=!1}enableRecording(){this.RECORDING_PHASE=!0,this.TRACE_INIT("Enable Recording",()=>{for(let e=0;e<10;e++){const t=e>0?e:"";this[`CONSUME${t}`]=function(t,n){return this.consumeInternalRecord(t,e,n)},this[`SUBRULE${t}`]=function(t,n){return this.subruleInternalRecord(t,e,n)},this[`OPTION${t}`]=function(t){return this.optionInternalRecord(t,e)},this[`OR${t}`]=function(t){return this.orInternalRecord(t,e)},this[`MANY${t}`]=function(t){this.manyInternalRecord(e,t)},this[`MANY_SEP${t}`]=function(t){this.manySepFirstInternalRecord(e,t)},this[`AT_LEAST_ONE${t}`]=function(t){this.atLeastOneInternalRecord(e,t)},this[`AT_LEAST_ONE_SEP${t}`]=function(t){this.atLeastOneSepFirstInternalRecord(e,t)}}this.consume=function(e,t,n){return this.consumeInternalRecord(t,e,n)},this.subrule=function(e,t,n){return this.subruleInternalRecord(t,e,n)},this.option=function(e,t){return this.optionInternalRecord(t,e)},this.or=function(e,t){return this.orInternalRecord(t,e)},this.many=function(e,t){this.manyInternalRecord(e,t)},this.atLeastOne=function(e,t){this.atLeastOneInternalRecord(e,t)},this.ACTION=this.ACTION_RECORD,this.BACKTRACK=this.BACKTRACK_RECORD,this.LA=this.LA_RECORD})}disableRecording(){this.RECORDING_PHASE=!1,this.TRACE_INIT("Deleting Recording methods",()=>{const e=this;for(let t=0;t<10;t++){const n=t>0?t:"";delete e[`CONSUME${n}`],delete e[`SUBRULE${n}`],delete e[`OPTION${n}`],delete e[`OR${n}`],delete e[`MANY${n}`],delete e[`MANY_SEP${n}`],delete e[`AT_LEAST_ONE${n}`],delete e[`AT_LEAST_ONE_SEP${n}`]}delete e.consume,delete e.subrule,delete e.option,delete e.or,delete e.many,delete e.atLeastOne,delete e.ACTION,delete e.BACKTRACK,delete e.LA})}ACTION_RECORD(e){}BACKTRACK_RECORD(e,t){return()=>!0}LA_RECORD(e){return es}topLevelRuleRecord(e,t){try{const n=new mn({definition:[],name:e});return n.name=e,this.recordingProdStack.push(n),t.call(this),this.recordingProdStack.pop(),n}catch(e){if(!0!==e.KNOWN_RECORDER_ERROR)try{e.message=e.message+'\n\t This error was thrown during the "grammar recording phase" For more info see:\n\thttps://chevrotain.io/docs/guide/internals.html#grammar-recording'}catch{throw e}throw e}}optionInternalRecord(e,t){return Xi.call(this,yn,e,t)}atLeastOneInternalRecord(e,t){Xi.call(this,Tn,t,e)}atLeastOneSepFirstInternalRecord(e,t){Xi.call(this,vn,t,e,Hi)}manyInternalRecord(e,t){Xi.call(this,Rn,t,e)}manySepFirstInternalRecord(e,t){Xi.call(this,$n,t,e,Hi)}orInternalRecord(e,t){return Qi.call(this,e,t)}subruleInternalRecord(e,t,n){if(Ji(t),!e||!1===(0,s.h)(e,"ruleName")){const n=new Error(`<SUBRULE${Zi(t)}> argument is invalid expecting a Parser method reference but got: <${JSON.stringify(e)}>\n inside top level rule: <${this.recordingProdStack[0].name}>`);throw n.KNOWN_RECORDER_ERROR=!0,n}const r=(0,s.l)(this.recordingProdStack),i=e.ruleName,a=new pn({idx:t,nonTerminalName:i,label:null==n?void 0:n.LABEL,referencedRule:void 0});return r.definition.push(a),this.outputCst?qi:ji}consumeInternalRecord(e,t,n){if(Ji(t),!mr(e)){const n=new Error(`<CONSUME${Zi(t)}> argument is invalid expecting a TokenType reference but got: <${JSON.stringify(e)}>\n inside top level rule: <${this.recordingProdStack[0].name}>`);throw n.KNOWN_RECORDER_ERROR=!0,n}const r=(0,s.l)(this.recordingProdStack),i=new An({idx:t,terminalType:e,label:null==n?void 0:n.LABEL});return r.definition.push(i),Yi}},class{initPerformanceTracer(e){if((0,s.h)(e,"traceInitPerf")){const t=e.traceInitPerf,n="number"==typeof t;this.traceInitMaxIdent=n?t:1/0,this.traceInitPerf=n?t>0:t}else this.traceInitMaxIdent=0,this.traceInitPerf=ts.traceInitPerf;this.traceInitIndent=-1}TRACE_INIT(e,t){if(!0===this.traceInitPerf){this.traceInitIndent++;const n=new Array(this.traceInitIndent+1).join("\t");this.traceInitIndent<this.traceInitMaxIdent&&console.log(`${n}--\x3e <${e}>`);const{time:r,value:i}=un(t),s=r>10?console.warn:console.log;return this.traceInitIndent<this.traceInitMaxIdent&&s(`${n}<-- <${e}> time: ${r}ms`),this.traceInitIndent--,i}return t()}}]);class as extends ss{constructor(e,t=ts){const n=(0,a.c)(t);n.outputCst=!1,super(e,n)}}function os(e,t,n){return`${e.name}_${t}_${n}`}class ls{constructor(e){this.target=e}isEpsilon(){return!1}}class cs extends ls{constructor(e,t){super(e),this.tokenType=t}}class us extends ls{constructor(e){super(e)}isEpsilon(){return!0}}class ds extends ls{constructor(e,t,n){super(e),this.rule=t,this.followState=n}isEpsilon(){return!0}}function hs(e,t,n){return n instanceof An?Ts(e,t,n.terminalType,n):n instanceof pn?function(e,t,n){const r=n.referencedRule,i=e.ruleToStartState.get(r),s=$s(e,t,n,{type:1}),a=$s(e,t,n,{type:1});return Es(s,new ds(i,r,a)),{left:s,right:a}}(e,t,n):n instanceof En?function(e,t,n){const r=$s(e,t,n,{type:1});gs(e,r);const i=(0,s.m)(n.definition,n=>hs(e,t,n));return ys(e,t,r,n,...i)}(e,t,n):n instanceof yn?function(e,t,n){const r=$s(e,t,n,{type:1});gs(e,r);return function(e,t,n,r){const i=r.left;return Rs(i,r.right),e.decisionMap[os(t,"Option",n.idx)]=i,r}(e,t,n,ys(e,t,r,n,fs(e,t,n)))}(e,t,n):n instanceof Rn?function(e,t,n){const r=$s(e,t,n,{type:5});gs(e,r);return ms(e,t,n,ys(e,t,r,n,fs(e,t,n)))}(e,t,n):n instanceof $n?function(e,t,n){const r=$s(e,t,n,{type:5});gs(e,r);return ms(e,t,n,ys(e,t,r,n,fs(e,t,n)),Ts(e,t,n.separator,n))}(e,t,n):n instanceof Tn?function(e,t,n){const r=$s(e,t,n,{type:4});gs(e,r);return ps(e,t,n,ys(e,t,r,n,fs(e,t,n)))}(e,t,n):n instanceof vn?function(e,t,n){const r=$s(e,t,n,{type:4});gs(e,r);return ps(e,t,n,ys(e,t,r,n,fs(e,t,n)),Ts(e,t,n.separator,n))}(e,t,n):fs(e,t,n)}function fs(e,t,n){const r=(0,i.f)((0,s.m)(n.definition,n=>hs(e,t,n)),e=>void 0!==e);return 1===r.length?r[0]:0===r.length?void 0:function(e,t){const n=t.length;for(let r=0;r<n-1;r++){const n=t[r];let i;1===n.left.transitions.length&&(i=n.left.transitions[0]);const s=i instanceof ds,a=i,o=t[r+1].left;1===n.left.type&&1===n.right.type&&void 0!==i&&(s&&a.followState===n.right||i.target===n.right)?(s?a.followState=o:i.target=o,As(e,n.right)):Rs(n.right,o)}const r=t[0],i=t[n-1];return{left:r.left,right:i.right}}(e,r)}function ps(e,t,n,r,i){const s=r.left,a=r.right,o=$s(e,t,n,{type:11});gs(e,o);const l=$s(e,t,n,{type:12});return s.loopback=o,l.loopback=o,e.decisionMap[os(t,i?"RepetitionMandatoryWithSeparator":"RepetitionMandatory",n.idx)]=o,Rs(a,o),void 0===i?(Rs(o,s),Rs(o,l)):(Rs(o,l),Rs(o,i.left),Rs(i.right,s)),{left:s,right:l}}function ms(e,t,n,r,i){const s=r.left,a=r.right,o=$s(e,t,n,{type:10});gs(e,o);const l=$s(e,t,n,{type:12}),c=$s(e,t,n,{type:9});return o.loopback=c,l.loopback=c,Rs(o,s),Rs(o,l),Rs(a,c),void 0!==i?(Rs(c,l),Rs(c,i.left),Rs(i.right,s)):Rs(c,o),e.decisionMap[os(t,i?"RepetitionWithSeparator":"Repetition",n.idx)]=o,{left:o,right:l}}function gs(e,t){return e.decisionStates.push(t),t.decision=e.decisionStates.length-1,t.decision}function ys(e,t,n,r,...i){const s=$s(e,t,r,{type:8,start:n});n.end=s;for(const e of i)void 0!==e?(Rs(n,e.left),Rs(e.right,s)):Rs(n,s);const a={left:n,right:s};return e.decisionMap[os(t,function(e){if(e instanceof En)return"Alternation";if(e instanceof yn)return"Option";if(e instanceof Rn)return"Repetition";if(e instanceof $n)return"RepetitionWithSeparator";if(e instanceof Tn)return"RepetitionMandatory";if(e instanceof vn)return"RepetitionMandatoryWithSeparator";throw new Error("Invalid production type encountered")}(r),r.idx)]=n,a}function Ts(e,t,n,r){const i=$s(e,t,r,{type:1}),s=$s(e,t,r,{type:1});return Es(i,new cs(s,n)),{left:i,right:s}}function vs(e,t,n){const r=e.ruleToStartState.get(t);Rs(r,n.left);const i=e.ruleToStopState.get(t);return Rs(n.right,i),{left:r,right:i}}function Rs(e,t){Es(e,new us(t))}function $s(e,t,n,r){const i=Object.assign({atn:e,production:n,epsilonOnlyTransitions:!1,rule:t,transitions:[],nextTokenWithinRule:[],stateNumber:e.states.length},r);return e.states.push(i),i}function Es(e,t){0===e.transitions.length&&(e.epsilonOnlyTransitions=t.isEpsilon()),e.transitions.push(t)}function As(e,t){e.states.splice(e.states.indexOf(t),1)}const ks={};class xs{constructor(){this.map={},this.configs=[]}get size(){return this.configs.length}finalize(){this.map={}}add(e){const t=Is(e);t in this.map||(this.map[t]=this.configs.length,this.configs.push(e))}get elements(){return this.configs}get alts(){return(0,s.m)(this.configs,e=>e.alt)}get key(){let e="";for(const t in this.map)e+=t+":";return e}}function Is(e,t=!0){return`${t?`a${e.alt}`:""}s${e.state.stateNumber}:${e.stack.map(e=>e.stateNumber.toString()).join("_")}`}function Ss(e,t){const n={};return r=>{const i=r.toString();let s=n[i];return void 0!==s||(s={atnStartState:e,decision:t,states:{}},n[i]=s),s}}class Cs{constructor(){this.predicates=[]}is(e){return e>=this.predicates.length||this.predicates[e]}set(e,t){this.predicates[e]=t}toString(){let e="";const t=this.predicates.length;for(let n=0;n<t;n++)e+=!0===this.predicates[n]?"1":"0";return e}}const Ns=new Cs;class ws extends Di{constructor(e){var t;super(),this.logging=null!==(t=null==e?void 0:e.logging)&&void 0!==t?t:e=>console.log(e)}initialize(e){this.atn=function(e){const t={decisionMap:{},decisionStates:[],ruleToStartState:new Map,ruleToStopState:new Map,states:[]};!function(e,t){const n=t.length;for(let r=0;r<n;r++){const n=t[r],i=$s(e,n,void 0,{type:2}),s=$s(e,n,void 0,{type:7});i.stop=s,e.ruleToStartState.set(n,i),e.ruleToStopState.set(n,s)}}(t,e);const n=e.length;for(let r=0;r<n;r++){const n=e[r],i=fs(t,n,n);void 0!==i&&vs(t,n,i)}return t}(e.rules),this.dfas=function(e){const t=e.decisionStates.length,n=Array(t);for(let r=0;r<t;r++)n[r]=Ss(e.decisionStates[r],r);return n}(this.atn)}validateAmbiguousAlternationAlternatives(){return[]}validateEmptyOrAlternatives(){return[]}buildLookaheadForAlternation(e){const{prodOccurrence:t,rule:n,hasPredicates:r,dynamicTokensEnabled:a}=e,o=this.dfas,l=this.logging,c=os(n,"Alternation",t),u=this.atn.decisionMap[c].decision,d=(0,s.m)(Zr({maxLookahead:1,occurrence:t,prodType:"Alternation",rule:n}),e=>(0,s.m)(e,e=>e[0]));if(Ls(d,!1)&&!a){const e=(0,i.r)(d,(e,t,n)=>((0,i.d)(t,t=>{t&&(e[t.tokenTypeIdx]=n,(0,i.d)(t.categoryMatches,t=>{e[t]=n}))}),e),{});return r?function(t){var n;const r=this.LA(1),i=e[r.tokenTypeIdx];if(void 0!==t&&void 0!==i){const e=null===(n=t[i])||void 0===n?void 0:n.GATE;if(void 0!==e&&!1===e.call(this))return}return i}:function(){const t=this.LA(1);return e[t.tokenTypeIdx]}}return r?function(e){const t=new Cs,n=void 0===e?0:e.length;for(let r=0;r<n;r++){const n=null==e?void 0:e[r].GATE;t.set(r,void 0===n||n.call(this))}const r=bs.call(this,o,u,t,l);return"number"==typeof r?r:void 0}:function(){const e=bs.call(this,o,u,Ns,l);return"number"==typeof e?e:void 0}}buildLookaheadForOptional(e){const{prodOccurrence:t,rule:n,prodType:a,dynamicTokensEnabled:o}=e,l=this.dfas,c=this.logging,u=os(n,a,t),d=this.atn.decisionMap[u].decision,h=(0,s.m)(Zr({maxLookahead:1,occurrence:t,prodType:a,rule:n}),e=>(0,s.m)(e,e=>e[0]));if(Ls(h)&&h[0][0]&&!o){const e=h[0],t=(0,s.f)(e);if(1===t.length&&(0,r.av)(t[0].categoryMatches)){const e=t[0].tokenTypeIdx;return function(){return this.LA(1).tokenTypeIdx===e}}{const e=(0,i.r)(t,(e,t)=>(void 0!==t&&(e[t.tokenTypeIdx]=!0,(0,i.d)(t.categoryMatches,t=>{e[t]=!0})),e),{});return function(){const t=this.LA(1);return!0===e[t.tokenTypeIdx]}}}return function(){const e=bs.call(this,l,d,Ns,c);return"object"!=typeof e&&0===e}}}function Ls(e,t=!0){const n=new Set;for(const r of e){const e=new Set;for(const i of r){if(void 0===i){if(t)break;return!1}const r=[i.tokenTypeIdx].concat(i.categoryMatches);for(const t of r)if(n.has(t)){if(!e.has(t))return!1}else n.add(t),e.add(t)}}return!0}function bs(e,t,n,r){const i=e[t](n);let s=i.start;if(void 0===s){const e=function(e){const t=new xs,n=e.transitions.length;for(let r=0;r<n;r++)Ks({state:e.transitions[r].target,alt:r,stack:[]},t);return t}(i.atnStartState);s=Bs(i,Fs(e)),i.start=s}return Os.apply(this,[i,s,n,r])}function Os(e,t,n,r){let i=t,s=1;const a=[];let o=this.LA(s++);for(;;){let t=Ds(i,o);if(void 0===t&&(t=_s.apply(this,[e,i,o,s,n,r])),t===ks)return Ms(a,i,o);if(!0===t.isAcceptState)return t.prediction;i=t,a.push(o),o=this.LA(s++)}}function _s(e,t,n,r,i,a){const o=function(e,t,n){const r=new xs,i=[];for(const s of e.elements){if(!1===n.is(s.alt))continue;if(7===s.state.type){i.push(s);continue}const e=s.state.transitions.length;for(let n=0;n<e;n++){const e=Us(s.state.transitions[n],t);void 0!==e&&r.add({state:e,alt:s.alt,stack:s.stack})}}let s;if(0===i.length&&1===r.size&&(s=r),void 0===s){s=new xs;for(const e of r.elements)Ks(e,s)}if(i.length>0&&!function(e){for(const t of e.elements)if(7===t.state.type)return!0;return!1}(s))for(const e of i)s.add(e);return s}(t.configs,n,i);if(0===o.size)return Gs(e,t,n,ks),ks;let l=Fs(o);const c=function(e,t){let n;for(const r of e.elements)if(!0===t.is(r.alt))if(void 0===n)n=r.alt;else if(n!==r.alt)return;return n}(o,i);if(void 0!==c)l.isAcceptState=!0,l.prediction=c,l.configs.uniqueAlt=c;else if(function(e){if(function(e){for(const t of e.elements)if(7!==t.state.type)return!1;return!0}(e))return!0;const t=function(e){const t=new Map;for(const n of e){const e=Is(n,!1);let r=t.get(e);void 0===r&&(r={},t.set(e,r)),r[n.alt]=!0}return t}(e.elements);return function(e){for(const t of Array.from(e.values()))if(Object.keys(t).length>1)return!0;return!1}(t)&&!function(e){for(const t of Array.from(e.values()))if(1===Object.keys(t).length)return!0;return!1}(t)}(o)){const t=(0,s.e)(o.alts);l.isAcceptState=!0,l.prediction=t,l.configs.uniqueAlt=t,Ps.apply(this,[e,r,o.alts,a])}return l=Gs(e,t,n,l),l}function Ps(e,t,n,r){const i=[];for(let e=1;e<=t;e++)i.push(this.LA(e).tokenType);const a=e.atnStartState,o=function(e){const t=(0,s.m)(e.prefixPath,e=>Er(e)).join(", "),n=0===e.production.idx?"":e.production.idx;let r=`Ambiguous Alternatives Detected: <${e.ambiguityIndices.join(", ")}> in <${function(e){if(e instanceof pn)return"SUBRULE";if(e instanceof yn)return"OPTION";if(e instanceof En)return"OR";if(e instanceof Tn)return"AT_LEAST_ONE";if(e instanceof vn)return"AT_LEAST_ONE_SEP";if(e instanceof $n)return"MANY_SEP";if(e instanceof Rn)return"MANY";if(e instanceof An)return"CONSUME";throw Error("non exhaustive match")}(e.production)}${n}> inside <${e.topLevelRule.name}> Rule,\n<${t}> may appears as a prefix path in all these alternatives.\n`;return r+="See: https://chevrotain.io/docs/guide/resolving_grammar_errors.html#AMBIGUOUS_ALTERNATIVES\nFor Further details.",r}({topLevelRule:a.rule,ambiguityIndices:n,production:a.production,prefixPath:i});r(o)}function Ms(e,t,n){const r=function(e){return e&&e.length?(0,i.a)(e,(0,i.l)(e=>e.tokenTypeIdx)):[]}(I(t.configs.elements,e=>e.state.transitions).filter(e=>e instanceof cs).map(e=>e.tokenType));return{actualToken:n,possibleTokenTypes:r,tokenPath:e}}function Ds(e,t){return e.edges[t.tokenTypeIdx]}function Us(e,t){if(e instanceof cs&&Pr(t,e.tokenType))return e.target}function Fs(e){return{configs:e,edges:{},isAcceptState:!1,prediction:-1}}function Gs(e,t,n,r){return r=Bs(e,r),t.edges[n.tokenTypeIdx]=r,r}function Bs(e,t){if(t===ks)return t;const n=t.configs.key,r=e.states[n];return void 0!==r?r:(t.configs.finalize(),e.states[n]=t,t)}function Ks(e,t){const n=e.state;if(7===n.type){if(e.stack.length>0){const n=[...e.stack];Ks({state:n.pop(),alt:e.alt,stack:n},t)}else t.add(e);return}n.epsilonOnlyTransitions||t.add(e);const r=n.transitions.length;for(let i=0;i<r;i++){const r=Vs(e,n.transitions[i]);void 0!==r&&Ks(r,t)}}function Vs(e,t){if(t instanceof us)return{state:t.target,alt:e.alt,stack:e.stack};if(t instanceof ds){const n=[...e.stack,t.followState];return{state:t.target,alt:e.alt,stack:n}}}var js,Hs,Ws,zs,Ys,qs,Xs,Qs,Zs,Js,ea,ta,na,ra,ia,sa,aa,oa,la,ca,ua,da,ha,fa,pa,ma,ga,ya,Ta,va,Ra,$a,Ea,Aa,ka,xa,Ia,Sa,Ca,Na,wa,La,ba,Oa,_a,Pa,Ma,Da,Ua,Fa,Ga,Ba,Ka,Va,ja,Ha,Wa,za,Ya,qa,Xa,Qa,Za,Ja,eo,to,no,ro,io,so,ao,oo,lo,co,uo,ho,fo,po,mo;!function(e){e.is=function(e){return"string"==typeof e}}(js||(js={})),function(e){e.is=function(e){return"string"==typeof e}}(Hs||(Hs={})),function(e){e.MIN_VALUE=-2147483648,e.MAX_VALUE=2147483647,e.is=function(t){return"number"==typeof t&&e.MIN_VALUE<=t&&t<=e.MAX_VALUE}}(Ws||(Ws={})),function(e){e.MIN_VALUE=0,e.MAX_VALUE=2147483647,e.is=function(t){return"number"==typeof t&&e.MIN_VALUE<=t&&t<=e.MAX_VALUE}}(zs||(zs={})),function(e){e.create=function(e,t){return e===Number.MAX_VALUE&&(e=zs.MAX_VALUE),t===Number.MAX_VALUE&&(t=zs.MAX_VALUE),{line:e,character:t}},e.is=function(e){let t=e;return yo.objectLiteral(t)&&yo.uinteger(t.line)&&yo.uinteger(t.character)}}(Ys||(Ys={})),function(e){e.create=function(e,t,n,r){if(yo.uinteger(e)&&yo.uinteger(t)&&yo.uinteger(n)&&yo.uinteger(r))return{start:Ys.create(e,t),end:Ys.create(n,r)};if(Ys.is(e)&&Ys.is(t))return{start:e,end:t};throw new Error(`Range#create called with invalid arguments[${e}, ${t}, ${n}, ${r}]`)},e.is=function(e){let t=e;return yo.objectLiteral(t)&&Ys.is(t.start)&&Ys.is(t.end)}}(qs||(qs={})),function(e){e.create=function(e,t){return{uri:e,range:t}},e.is=function(e){let t=e;return yo.objectLiteral(t)&&qs.is(t.range)&&(yo.string(t.uri)||yo.undefined(t.uri))}}(Xs||(Xs={})),function(e){e.create=function(e,t,n,r){return{targetUri:e,targetRange:t,targetSelectionRange:n,originSelectionRange:r}},e.is=function(e){let t=e;return yo.objectLiteral(t)&&qs.is(t.targetRange)&&yo.string(t.targetUri)&&qs.is(t.targetSelectionRange)&&(qs.is(t.originSelectionRange)||yo.undefined(t.originSelectionRange))}}(Qs||(Qs={})),function(e){e.create=function(e,t,n,r){return{red:e,green:t,blue:n,alpha:r}},e.is=function(e){const t=e;return yo.objectLiteral(t)&&yo.numberRange(t.red,0,1)&&yo.numberRange(t.green,0,1)&&yo.numberRange(t.blue,0,1)&&yo.numberRange(t.alpha,0,1)}}(Zs||(Zs={})),function(e){e.create=function(e,t){return{range:e,color:t}},e.is=function(e){const t=e;return yo.objectLiteral(t)&&qs.is(t.range)&&Zs.is(t.color)}}(Js||(Js={})),function(e){e.create=function(e,t,n){return{label:e,textEdit:t,additionalTextEdits:n}},e.is=function(e){const t=e;return yo.objectLiteral(t)&&yo.string(t.label)&&(yo.undefined(t.textEdit)||ca.is(t))&&(yo.undefined(t.additionalTextEdits)||yo.typedArray(t.additionalTextEdits,ca.is))}}(ea||(ea={})),function(e){e.Comment="comment",e.Imports="imports",e.Region="region"}(ta||(ta={})),function(e){e.create=function(e,t,n,r,i,s){const a={startLine:e,endLine:t};return yo.defined(n)&&(a.startCharacter=n),yo.defined(r)&&(a.endCharacter=r),yo.defined(i)&&(a.kind=i),yo.defined(s)&&(a.collapsedText=s),a},e.is=function(e){const t=e;return yo.objectLiteral(t)&&yo.uinteger(t.startLine)&&yo.uinteger(t.startLine)&&(yo.undefined(t.startCharacter)||yo.uinteger(t.startCharacter))&&(yo.undefined(t.endCharacter)||yo.uinteger(t.endCharacter))&&(yo.undefined(t.kind)||yo.string(t.kind))}}(na||(na={})),function(e){e.create=function(e,t){return{location:e,message:t}},e.is=function(e){let t=e;return yo.defined(t)&&Xs.is(t.location)&&yo.string(t.message)}}(ra||(ra={})),function(e){e.Error=1,e.Warning=2,e.Information=3,e.Hint=4}(ia||(ia={})),function(e){e.Unnecessary=1,e.Deprecated=2}(sa||(sa={})),function(e){e.is=function(e){const t=e;return yo.objectLiteral(t)&&yo.string(t.href)}}(aa||(aa={})),function(e){e.create=function(e,t,n,r,i,s){let a={range:e,message:t};return yo.defined(n)&&(a.severity=n),yo.defined(r)&&(a.code=r),yo.defined(i)&&(a.source=i),yo.defined(s)&&(a.relatedInformation=s),a},e.is=function(e){var t;let n=e;return yo.defined(n)&&qs.is(n.range)&&yo.string(n.message)&&(yo.number(n.severity)||yo.undefined(n.severity))&&(yo.integer(n.code)||yo.string(n.code)||yo.undefined(n.code))&&(yo.undefined(n.codeDescription)||yo.string(null===(t=n.codeDescription)||void 0===t?void 0:t.href))&&(yo.string(n.source)||yo.undefined(n.source))&&(yo.undefined(n.relatedInformation)||yo.typedArray(n.relatedInformation,ra.is))}}(oa||(oa={})),function(e){e.create=function(e,t,...n){let r={title:e,command:t};return yo.defined(n)&&n.length>0&&(r.arguments=n),r},e.is=function(e){let t=e;return yo.defined(t)&&yo.string(t.title)&&yo.string(t.command)}}(la||(la={})),function(e){e.replace=function(e,t){return{range:e,newText:t}},e.insert=function(e,t){return{range:{start:e,end:e},newText:t}},e.del=function(e){return{range:e,newText:""}},e.is=function(e){const t=e;return yo.objectLiteral(t)&&yo.string(t.newText)&&qs.is(t.range)}}(ca||(ca={})),function(e){e.create=function(e,t,n){const r={label:e};return void 0!==t&&(r.needsConfirmation=t),void 0!==n&&(r.description=n),r},e.is=function(e){const t=e;return yo.objectLiteral(t)&&yo.string(t.label)&&(yo.boolean(t.needsConfirmation)||void 0===t.needsConfirmation)&&(yo.string(t.description)||void 0===t.description)}}(ua||(ua={})),function(e){e.is=function(e){const t=e;return yo.string(t)}}(da||(da={})),function(e){e.replace=function(e,t,n){return{range:e,newText:t,annotationId:n}},e.insert=function(e,t,n){return{range:{start:e,end:e},newText:t,annotationId:n}},e.del=function(e,t){return{range:e,newText:"",annotationId:t}},e.is=function(e){const t=e;return ca.is(t)&&(ua.is(t.annotationId)||da.is(t.annotationId))}}(ha||(ha={})),function(e){e.create=function(e,t){return{textDocument:e,edits:t}},e.is=function(e){let t=e;return yo.defined(t)&&Ra.is(t.textDocument)&&Array.isArray(t.edits)}}(fa||(fa={})),function(e){e.create=function(e,t,n){let r={kind:"create",uri:e};return void 0!==t&&(void 0!==t.overwrite||void 0!==t.ignoreIfExists)&&(r.options=t),void 0!==n&&(r.annotationId=n),r},e.is=function(e){let t=e;return t&&"create"===t.kind&&yo.string(t.uri)&&(void 0===t.options||(void 0===t.options.overwrite||yo.boolean(t.options.overwrite))&&(void 0===t.options.ignoreIfExists||yo.boolean(t.options.ignoreIfExists)))&&(void 0===t.annotationId||da.is(t.annotationId))}}(pa||(pa={})),function(e){e.create=function(e,t,n,r){let i={kind:"rename",oldUri:e,newUri:t};return void 0!==n&&(void 0!==n.overwrite||void 0!==n.ignoreIfExists)&&(i.options=n),void 0!==r&&(i.annotationId=r),i},e.is=function(e){let t=e;return t&&"rename"===t.kind&&yo.string(t.oldUri)&&yo.string(t.newUri)&&(void 0===t.options||(void 0===t.options.overwrite||yo.boolean(t.options.overwrite))&&(void 0===t.options.ignoreIfExists||yo.boolean(t.options.ignoreIfExists)))&&(void 0===t.annotationId||da.is(t.annotationId))}}(ma||(ma={})),function(e){e.create=function(e,t,n){let r={kind:"delete",uri:e};return void 0!==t&&(void 0!==t.recursive||void 0!==t.ignoreIfNotExists)&&(r.options=t),void 0!==n&&(r.annotationId=n),r},e.is=function(e){let t=e;return t&&"delete"===t.kind&&yo.string(t.uri)&&(void 0===t.options||(void 0===t.options.recursive||yo.boolean(t.options.recursive))&&(void 0===t.options.ignoreIfNotExists||yo.boolean(t.options.ignoreIfNotExists)))&&(void 0===t.annotationId||da.is(t.annotationId))}}(ga||(ga={})),function(e){e.is=function(e){let t=e;return t&&(void 0!==t.changes||void 0!==t.documentChanges)&&(void 0===t.documentChanges||t.documentChanges.every(e=>yo.string(e.kind)?pa.is(e)||ma.is(e)||ga.is(e):fa.is(e)))}}(ya||(ya={})),function(e){e.create=function(e){return{uri:e}},e.is=function(e){let t=e;return yo.defined(t)&&yo.string(t.uri)}}(Ta||(Ta={})),function(e){e.create=function(e,t){return{uri:e,version:t}},e.is=function(e){let t=e;return yo.defined(t)&&yo.string(t.uri)&&yo.integer(t.version)}}(va||(va={})),function(e){e.create=function(e,t){return{uri:e,version:t}},e.is=function(e){let t=e;return yo.defined(t)&&yo.string(t.uri)&&(null===t.version||yo.integer(t.version))}}(Ra||(Ra={})),function(e){e.create=function(e,t,n,r){return{uri:e,languageId:t,version:n,text:r}},e.is=function(e){let t=e;return yo.defined(t)&&yo.string(t.uri)&&yo.string(t.languageId)&&yo.integer(t.version)&&yo.string(t.text)}}($a||($a={})),function(e){e.PlainText="plaintext",e.Markdown="markdown",e.is=function(t){const n=t;return n===e.PlainText||n===e.Markdown}}(Ea||(Ea={})),function(e){e.is=function(e){const t=e;return yo.objectLiteral(e)&&Ea.is(t.kind)&&yo.string(t.value)}}(Aa||(Aa={})),function(e){e.Text=1,e.Method=2,e.Function=3,e.Constructor=4,e.Field=5,e.Variable=6,e.Class=7,e.Interface=8,e.Module=9,e.Property=10,e.Unit=11,e.Value=12,e.Enum=13,e.Keyword=14,e.Snippet=15,e.Color=16,e.File=17,e.Reference=18,e.Folder=19,e.EnumMember=20,e.Constant=21,e.Struct=22,e.Event=23,e.Operator=24,e.TypeParameter=25}(ka||(ka={})),function(e){e.PlainText=1,e.Snippet=2}(xa||(xa={})),function(e){e.Deprecated=1}(Ia||(Ia={})),function(e){e.create=function(e,t,n){return{newText:e,insert:t,replace:n}},e.is=function(e){const t=e;return t&&yo.string(t.newText)&&qs.is(t.insert)&&qs.is(t.replace)}}(Sa||(Sa={})),function(e){e.asIs=1,e.adjustIndentation=2}(Ca||(Ca={})),function(e){e.is=function(e){const t=e;return t&&(yo.string(t.detail)||void 0===t.detail)&&(yo.string(t.description)||void 0===t.description)}}(Na||(Na={})),function(e){e.create=function(e){return{label:e}}}(wa||(wa={})),function(e){e.create=function(e,t){return{items:e||[],isIncomplete:!!t}}}(La||(La={})),function(e){e.fromPlainText=function(e){return e.replace(/[\\`*_{}[\]()#+\-.!]/g,"\\$&")},e.is=function(e){const t=e;return yo.string(t)||yo.objectLiteral(t)&&yo.string(t.language)&&yo.string(t.value)}}(ba||(ba={})),function(e){e.is=function(e){let t=e;return!!t&&yo.objectLiteral(t)&&(Aa.is(t.contents)||ba.is(t.contents)||yo.typedArray(t.contents,ba.is))&&(void 0===e.range||qs.is(e.range))}}(Oa||(Oa={})),function(e){e.create=function(e,t){return t?{label:e,documentation:t}:{label:e}}}(_a||(_a={})),function(e){e.create=function(e,t,...n){let r={label:e};return yo.defined(t)&&(r.documentation=t),yo.defined(n)?r.parameters=n:r.parameters=[],r}}(Pa||(Pa={})),function(e){e.Text=1,e.Read=2,e.Write=3}(Ma||(Ma={})),function(e){e.create=function(e,t){let n={range:e};return yo.number(t)&&(n.kind=t),n}}(Da||(Da={})),function(e){e.File=1,e.Module=2,e.Namespace=3,e.Package=4,e.Class=5,e.Method=6,e.Property=7,e.Field=8,e.Constructor=9,e.Enum=10,e.Interface=11,e.Function=12,e.Variable=13,e.Constant=14,e.String=15,e.Number=16,e.Boolean=17,e.Array=18,e.Object=19,e.Key=20,e.Null=21,e.EnumMember=22,e.Struct=23,e.Event=24,e.Operator=25,e.TypeParameter=26}(Ua||(Ua={})),function(e){e.Deprecated=1}(Fa||(Fa={})),function(e){e.create=function(e,t,n,r,i){let s={name:e,kind:t,location:{uri:r,range:n}};return i&&(s.containerName=i),s}}(Ga||(Ga={})),function(e){e.create=function(e,t,n,r){return void 0!==r?{name:e,kind:t,location:{uri:n,range:r}}:{name:e,kind:t,location:{uri:n}}}}(Ba||(Ba={})),function(e){e.create=function(e,t,n,r,i,s){let a={name:e,detail:t,kind:n,range:r,selectionRange:i};return void 0!==s&&(a.children=s),a},e.is=function(e){let t=e;return t&&yo.string(t.name)&&yo.number(t.kind)&&qs.is(t.range)&&qs.is(t.selectionRange)&&(void 0===t.detail||yo.string(t.detail))&&(void 0===t.deprecated||yo.boolean(t.deprecated))&&(void 0===t.children||Array.isArray(t.children))&&(void 0===t.tags||Array.isArray(t.tags))}}(Ka||(Ka={})),function(e){e.Empty="",e.QuickFix="quickfix",e.Refactor="refactor",e.RefactorExtract="refactor.extract",e.RefactorInline="refactor.inline",e.RefactorRewrite="refactor.rewrite",e.Source="source",e.SourceOrganizeImports="source.organizeImports",e.SourceFixAll="source.fixAll"}(Va||(Va={})),function(e){e.Invoked=1,e.Automatic=2}(ja||(ja={})),function(e){e.create=function(e,t,n){let r={diagnostics:e};return null!=t&&(r.only=t),null!=n&&(r.triggerKind=n),r},e.is=function(e){let t=e;return yo.defined(t)&&yo.typedArray(t.diagnostics,oa.is)&&(void 0===t.only||yo.typedArray(t.only,yo.string))&&(void 0===t.triggerKind||t.triggerKind===ja.Invoked||t.triggerKind===ja.Automatic)}}(Ha||(Ha={})),function(e){e.create=function(e,t,n){let r={title:e},i=!0;return"string"==typeof t?(i=!1,r.kind=t):la.is(t)?r.command=t:r.edit=t,i&&void 0!==n&&(r.kind=n),r},e.is=function(e){let t=e;return t&&yo.string(t.title)&&(void 0===t.diagnostics||yo.typedArray(t.diagnostics,oa.is))&&(void 0===t.kind||yo.string(t.kind))&&(void 0!==t.edit||void 0!==t.command)&&(void 0===t.command||la.is(t.command))&&(void 0===t.isPreferred||yo.boolean(t.isPreferred))&&(void 0===t.edit||ya.is(t.edit))}}(Wa||(Wa={})),function(e){e.create=function(e,t){let n={range:e};return yo.defined(t)&&(n.data=t),n},e.is=function(e){let t=e;return yo.defined(t)&&qs.is(t.range)&&(yo.undefined(t.command)||la.is(t.command))}}(za||(za={})),function(e){e.create=function(e,t){return{tabSize:e,insertSpaces:t}},e.is=function(e){let t=e;return yo.defined(t)&&yo.uinteger(t.tabSize)&&yo.boolean(t.insertSpaces)}}(Ya||(Ya={})),function(e){e.create=function(e,t,n){return{range:e,target:t,data:n}},e.is=function(e){let t=e;return yo.defined(t)&&qs.is(t.range)&&(yo.undefined(t.target)||yo.string(t.target))}}(qa||(qa={})),function(e){e.create=function(e,t){return{range:e,parent:t}},e.is=function(t){let n=t;return yo.objectLiteral(n)&&qs.is(n.range)&&(void 0===n.parent||e.is(n.parent))}}(Xa||(Xa={})),function(e){e.namespace="namespace",e.type="type",e.class="class",e.enum="enum",e.interface="interface",e.struct="struct",e.typeParameter="typeParameter",e.parameter="parameter",e.variable="variable",e.property="property",e.enumMember="enumMember",e.event="event",e.function="function",e.method="method",e.macro="macro",e.keyword="keyword",e.modifier="modifier",e.comment="comment",e.string="string",e.number="number",e.regexp="regexp",e.operator="operator",e.decorator="decorator"}(Qa||(Qa={})),function(e){e.declaration="declaration",e.definition="definition",e.readonly="readonly",e.static="static",e.deprecated="deprecated",e.abstract="abstract",e.async="async",e.modification="modification",e.documentation="documentation",e.defaultLibrary="defaultLibrary"}(Za||(Za={})),function(e){e.is=function(e){const t=e;return yo.objectLiteral(t)&&(void 0===t.resultId||"string"==typeof t.resultId)&&Array.isArray(t.data)&&(0===t.data.length||"number"==typeof t.data[0])}}(Ja||(Ja={})),function(e){e.create=function(e,t){return{range:e,text:t}},e.is=function(e){const t=e;return null!=t&&qs.is(t.range)&&yo.string(t.text)}}(eo||(eo={})),function(e){e.create=function(e,t,n){return{range:e,variableName:t,caseSensitiveLookup:n}},e.is=function(e){const t=e;return null!=t&&qs.is(t.range)&&yo.boolean(t.caseSensitiveLookup)&&(yo.string(t.variableName)||void 0===t.variableName)}}(to||(to={})),function(e){e.create=function(e,t){return{range:e,expression:t}},e.is=function(e){const t=e;return null!=t&&qs.is(t.range)&&(yo.string(t.expression)||void 0===t.expression)}}(no||(no={})),function(e){e.create=function(e,t){return{frameId:e,stoppedLocation:t}},e.is=function(e){const t=e;return yo.defined(t)&&qs.is(e.stoppedLocation)}}(ro||(ro={})),function(e){e.Type=1,e.Parameter=2,e.is=function(e){return 1===e||2===e}}(io||(io={})),function(e){e.create=function(e){return{value:e}},e.is=function(e){const t=e;return yo.objectLiteral(t)&&(void 0===t.tooltip||yo.string(t.tooltip)||Aa.is(t.tooltip))&&(void 0===t.location||Xs.is(t.location))&&(void 0===t.command||la.is(t.command))}}(so||(so={})),function(e){e.create=function(e,t,n){const r={position:e,label:t};return void 0!==n&&(r.kind=n),r},e.is=function(e){const t=e;return yo.objectLiteral(t)&&Ys.is(t.position)&&(yo.string(t.label)||yo.typedArray(t.label,so.is))&&(void 0===t.kind||io.is(t.kind))&&void 0===t.textEdits||yo.typedArray(t.textEdits,ca.is)&&(void 0===t.tooltip||yo.string(t.tooltip)||Aa.is(t.tooltip))&&(void 0===t.paddingLeft||yo.boolean(t.paddingLeft))&&(void 0===t.paddingRight||yo.boolean(t.paddingRight))}}(ao||(ao={})),function(e){e.createSnippet=function(e){return{kind:"snippet",value:e}}}(oo||(oo={})),function(e){e.create=function(e,t,n,r){return{insertText:e,filterText:t,range:n,command:r}}}(lo||(lo={})),function(e){e.create=function(e){return{items:e}}}(co||(co={})),function(e){e.Invoked=0,e.Automatic=1}(uo||(uo={})),function(e){e.create=function(e,t){return{range:e,text:t}}}(ho||(ho={})),function(e){e.create=function(e,t){return{triggerKind:e,selectedCompletionInfo:t}}}(fo||(fo={})),function(e){e.is=function(e){const t=e;return yo.objectLiteral(t)&&Hs.is(t.uri)&&yo.string(t.name)}}(po||(po={})),function(e){function t(e,n){if(e.length<=1)return e;const r=e.length/2|0,i=e.slice(0,r),s=e.slice(r);t(i,n),t(s,n);let a=0,o=0,l=0;for(;a<i.length&&o<s.length;)n(i[a],s[o])<=0?e[l++]=i[a++]:e[l++]=s[o++];for(;a<i.length;)e[l++]=i[a++];for(;o<s.length;)e[l++]=s[o++];return e}e.create=function(e,t,n,r){return new go(e,t,n,r)},e.is=function(e){let t=e;return!!(yo.defined(t)&&yo.string(t.uri)&&(yo.undefined(t.languageId)||yo.string(t.languageId))&&yo.uinteger(t.lineCount)&&yo.func(t.getText)&&yo.func(t.positionAt)&&yo.func(t.offsetAt))},e.applyEdits=function(e,n){let r=e.getText(),i=t(n,(e,t)=>{let n=e.range.start.line-t.range.start.line;return 0===n?e.range.start.character-t.range.start.character:n}),s=r.length;for(let t=i.length-1;t>=0;t--){let n=i[t],a=e.offsetAt(n.range.start),o=e.offsetAt(n.range.end);if(!(o<=s))throw new Error("Overlapping edit");r=r.substring(0,a)+n.newText+r.substring(o,r.length),s=a}return r}}(mo||(mo={}));let go=class{constructor(e,t,n,r){this._uri=e,this._languageId=t,this._version=n,this._content=r,this._lineOffsets=void 0}get uri(){return this._uri}get languageId(){return this._languageId}get version(){return this._version}getText(e){if(e){let t=this.offsetAt(e.start),n=this.offsetAt(e.end);return this._content.substring(t,n)}return this._content}update(e,t){this._content=e.text,this._version=t,this._lineOffsets=void 0}getLineOffsets(){if(void 0===this._lineOffsets){let e=[],t=this._content,n=!0;for(let r=0;r<t.length;r++){n&&(e.push(r),n=!1);let i=t.charAt(r);n="\r"===i||"\n"===i,"\r"===i&&r+1<t.length&&"\n"===t.charAt(r+1)&&r++}n&&t.length>0&&e.push(t.length),this._lineOffsets=e}return this._lineOffsets}positionAt(e){e=Math.max(Math.min(e,this._content.length),0);let t=this.getLineOffsets(),n=0,r=t.length;if(0===r)return Ys.create(0,e);for(;n<r;){let i=Math.floor((n+r)/2);t[i]>e?r=i:n=i+1}let i=n-1;return Ys.create(i,e-t[i])}offsetAt(e){let t=this.getLineOffsets();if(e.line>=t.length)return this._content.length;if(e.line<0)return 0;let n=t[e.line],r=e.line+1<t.length?t[e.line+1]:this._content.length;return Math.max(Math.min(n+e.character,r),n)}get lineCount(){return this.getLineOffsets().length}};var yo;!function(e){const t=Object.prototype.toString;e.defined=function(e){return typeof e<"u"},e.undefined=function(e){return typeof e>"u"},e.boolean=function(e){return!0===e||!1===e},e.string=function(e){return"[object String]"===t.call(e)},e.number=function(e){return"[object Number]"===t.call(e)},e.numberRange=function(e,n,r){return"[object Number]"===t.call(e)&&n<=e&&e<=r},e.integer=function(e){return"[object Number]"===t.call(e)&&-2147483648<=e&&e<=2147483647},e.uinteger=function(e){return"[object Number]"===t.call(e)&&0<=e&&e<=2147483647},e.func=function(e){return"[object Function]"===t.call(e)},e.objectLiteral=function(e){return null!==e&&"object"==typeof e},e.typedArray=function(e,t){return Array.isArray(e)&&e.every(t)}}(yo||(yo={}));class To{constructor(){this.nodeStack=[]}get current(){var e;return null!==(e=this.nodeStack[this.nodeStack.length-1])&&void 0!==e?e:this.rootNode}buildRootNode(e){return this.rootNode=new Ao(e),this.rootNode.root=this.rootNode,this.nodeStack=[this.rootNode],this.rootNode}buildCompositeNode(e){const t=new $o;return t.grammarSource=e,t.root=this.rootNode,this.current.content.push(t),this.nodeStack.push(t),t}buildLeafNode(e,t){const n=new Ro(e.startOffset,e.image.length,te(e),e.tokenType,!t);return n.grammarSource=t,n.root=this.rootNode,this.current.content.push(n),n}removeNode(e){const t=e.container;if(t){const n=t.content.indexOf(e);n>=0&&t.content.splice(n,1)}}addHiddenNodes(e){const t=[];for(const n of e){const e=new Ro(n.startOffset,n.image.length,te(n),n.tokenType,!0);e.root=this.rootNode,t.push(e)}let n=this.current,r=!1;if(n.content.length>0)n.content.push(...t);else{for(;n.container;){const e=n.container.content.indexOf(n);if(e>0){n.container.content.splice(e,0,...t),r=!0;break}n=n.container}r||this.rootNode.content.unshift(...t)}}construct(e){const t=this.current;"string"==typeof e.$type&&(this.current.astNode=e),e.$cstNode=t;const n=this.nodeStack.pop();0===(null==n?void 0:n.content.length)&&this.removeNode(n)}}class vo{get parent(){return this.container}get feature(){return this.grammarSource}get hidden(){return!1}get astNode(){var e,t;const n="string"==typeof(null===(e=this._astNode)||void 0===e?void 0:e.$type)?this._astNode:null===(t=this.container)||void 0===t?void 0:t.astNode;if(!n)throw new Error("This node has no associated AST element");return n}set astNode(e){this._astNode=e}get element(){return this.astNode}get text(){return this.root.fullText.substring(this.offset,this.end)}}class Ro extends vo{get offset(){return this._offset}get length(){return this._length}get end(){return this._offset+this._length}get hidden(){return this._hidden}get tokenType(){return this._tokenType}get range(){return this._range}constructor(e,t,n,r,i=!1){super(),this._hidden=i,this._offset=e,this._tokenType=r,this._length=t,this._range=n}}class $o extends vo{constructor(){super(...arguments),this.content=new Eo(this)}get children(){return this.content}get offset(){var e,t;return null!==(t=null===(e=this.firstNonHiddenNode)||void 0===e?void 0:e.offset)&&void 0!==t?t:0}get length(){return this.end-this.offset}get end(){var e,t;return null!==(t=null===(e=this.lastNonHiddenNode)||void 0===e?void 0:e.end)&&void 0!==t?t:0}get range(){const e=this.firstNonHiddenNode,t=this.lastNonHiddenNode;if(e&&t){if(void 0===this._rangeCache){const{range:n}=e,{range:r}=t;this._rangeCache={start:n.start,end:r.end.line<n.start.line?n.start:r.end}}return this._rangeCache}return{start:Ys.create(0,0),end:Ys.create(0,0)}}get firstNonHiddenNode(){for(const e of this.content)if(!e.hidden)return e;return this.content[0]}get lastNonHiddenNode(){for(let e=this.content.length-1;e>=0;e--){const t=this.content[e];if(!t.hidden)return t}return this.content[this.content.length-1]}}class Eo extends Array{constructor(e){super(),this.parent=e,Object.setPrototypeOf(this,Eo.prototype)}push(...e){return this.addParents(e),super.push(...e)}unshift(...e){return this.addParents(e),super.unshift(...e)}splice(e,t,...n){return this.addParents(n),super.splice(e,t,...n)}addParents(e){for(const t of e)t.container=this.parent}}class Ao extends $o{get text(){return this._text.substring(this.offset,this.end)}get fullText(){return this._text}constructor(e){super(),this._text="",this._text=e??""}}const ko=Symbol("Datatype");function xo(e){return e.$type===ko}const Io=e=>e.endsWith("​")?e:e+"​";class So{constructor(e){this._unorderedGroups=new Map,this.allRules=new Map,this.lexer=e.parser.Lexer;const t=this.lexer.definition,n="production"===e.LanguageMetaData.mode;this.wrapper=new Oo(t,Object.assign(Object.assign({},e.parser.ParserConfig),{skipValidations:n,errorMessageProvider:e.parser.ParserErrorMessageProvider}))}alternatives(e,t){this.wrapper.wrapOr(e,t)}optional(e,t){this.wrapper.wrapOption(e,t)}many(e,t){this.wrapper.wrapMany(e,t)}atLeastOne(e,t){this.wrapper.wrapAtLeastOne(e,t)}getRule(e){return this.allRules.get(e)}isRecording(){return this.wrapper.IS_RECORDING}get unorderedGroups(){return this._unorderedGroups}getRuleStack(){return this.wrapper.RULE_STACK}finalize(){this.wrapper.wrapSelfAnalysis()}}class Co extends So{get current(){return this.stack[this.stack.length-1]}constructor(e){super(e),this.nodeBuilder=new To,this.stack=[],this.assignmentMap=new Map,this.linker=e.references.Linker,this.converter=e.parser.ValueConverter,this.astReflection=e.shared.AstReflection}rule(e,t){const n=this.computeRuleType(e),r=this.wrapper.DEFINE_RULE(Io(e.name),this.startImplementation(n,t).bind(this));return this.allRules.set(e.name,r),e.entry&&(this.mainRule=r),r}computeRuleType(e){if(!e.fragment)return Zt(e)?ko:en(e)??e.name}parse(e,t={}){this.nodeBuilder.buildRootNode(e);const n=this.lexerResult=this.lexer.tokenize(e);this.wrapper.input=n.tokens;const r=t.rule?this.allRules.get(t.rule):this.mainRule;if(!r)throw new Error(t.rule?`No rule found with name '${t.rule}'`:"No main rule available.");const i=r.call(this.wrapper,{});return this.nodeBuilder.addHiddenNodes(n.hidden),this.unorderedGroups.clear(),this.lexerResult=void 0,{value:i,lexerErrors:n.errors,lexerReport:n.report,parserErrors:this.wrapper.errors}}startImplementation(e,t){return n=>{const r=!this.isRecording()&&void 0!==e;if(r){const t={$type:e};this.stack.push(t),e===ko&&(t.value="")}let i;try{i=t(n)}catch{i=void 0}return void 0===i&&r&&(i=this.construct()),i}}extractHiddenTokens(e){const t=this.lexerResult.hidden;if(!t.length)return[];const n=e.startOffset;for(let e=0;e<t.length;e++)if(t[e].startOffset>n)return t.splice(0,e);return t.splice(0,t.length)}consume(e,t,n){const r=this.wrapper.wrapConsume(e,t);if(!this.isRecording()&&this.isValidToken(r)){const e=this.extractHiddenTokens(r);this.nodeBuilder.addHiddenNodes(e);const t=this.nodeBuilder.buildLeafNode(r,n),{assignment:i,isCrossRef:s}=this.getAssignment(n),a=this.current;if(i){const e=nt(n)?r.image:this.converter.convert(r.image,t);this.assign(i.operator,i.feature,e,t,s)}else if(xo(a)){let e=r.image;nt(n)||(e=this.converter.convert(e,t).toString()),a.value+=e}}}isValidToken(e){return!e.isInsertedInRecovery&&!isNaN(e.startOffset)&&"number"==typeof e.endOffset&&!isNaN(e.endOffset)}subrule(e,t,n,r,i){let s;!this.isRecording()&&!n&&(s=this.nodeBuilder.buildCompositeNode(r));const a=this.wrapper.wrapSubrule(e,t,i);!this.isRecording()&&s&&s.length>0&&this.performSubruleAssignment(a,r,s)}performSubruleAssignment(e,t,n){const{assignment:r,isCrossRef:i}=this.getAssignment(t);if(r)this.assign(r.operator,r.feature,e,n,i);else if(!r){const t=this.current;if(xo(t))t.value+=e.toString();else if("object"==typeof e&&e){const n=this.assignWithoutOverride(e,t);this.stack.pop(),this.stack.push(n)}}}action(e,t){if(!this.isRecording()){let n=this.current;if(t.feature&&t.operator){n=this.construct(),this.nodeBuilder.removeNode(n.$cstNode),this.nodeBuilder.buildCompositeNode(t).content.push(n.$cstNode);const r={$type:e};this.stack.push(r),this.assign(t.operator,t.feature,n,n.$cstNode,!1)}else n.$type=e}}construct(){if(this.isRecording())return;const e=this.current;return function(e){for(const[t,n]of Object.entries(e))t.startsWith("$")||(Array.isArray(n)?n.forEach((n,r)=>{U(n)&&(n.$container=e,n.$containerProperty=t,n.$containerIndex=r)}):U(n)&&(n.$container=e,n.$containerProperty=t))}(e),this.nodeBuilder.construct(e),this.stack.pop(),xo(e)?this.converter.convert(e.value,e.$cstNode):(function(e,t){const n=e.getTypeMetaData(t.$type),r=t;for(const e of n.properties)void 0!==e.defaultValue&&void 0===r[e.name]&&(r[e.name]=kt(e.defaultValue))}(this.astReflection,e),e)}getAssignment(e){if(!this.assignmentMap.has(e)){const t=gt(e,Ye);this.assignmentMap.set(e,{assignment:t,isCrossRef:!!t&&Qe(t.terminal)})}return this.assignmentMap.get(e)}assign(e,t,n,r,i){const s=this.current;let a;switch(a=i&&"string"==typeof n?this.linker.buildReference(s,t,r,n):n,e){case"=":s[t]=a;break;case"?=":s[t]=!0;break;case"+=":Array.isArray(s[t])||(s[t]=[]),s[t].push(a)}}assignWithoutOverride(e,t){for(const[n,r]of Object.entries(t)){const t=e[n];void 0===t?e[n]=r:Array.isArray(t)&&Array.isArray(r)&&(r.push(...t),e[n]=r)}const n=e.$cstNode;return n&&(n.astNode=void 0,e.$cstNode=void 0),e}get definitionErrors(){return this.wrapper.definitionErrors}}class No{buildMismatchTokenMessage(e){return Mr.buildMismatchTokenMessage(e)}buildNotAllInputParsedMessage(e){return Mr.buildNotAllInputParsedMessage(e)}buildNoViableAltMessage(e){return Mr.buildNoViableAltMessage(e)}buildEarlyExitMessage(e){return Mr.buildEarlyExitMessage(e)}}class wo extends No{buildMismatchTokenMessage({expected:e,actual:t}){return`Expecting ${e.LABEL?"`"+e.LABEL+"`":e.name.endsWith(":KW")?`keyword '${e.name.substring(0,e.name.length-3)}'`:`token of type '${e.name}'`} but found \`${t.image}\`.`}buildNotAllInputParsedMessage({firstRedundant:e}){return`Expecting end of file but found \`${e.image}\`.`}}class Lo extends So{constructor(){super(...arguments),this.tokens=[],this.elementStack=[],this.lastElementStack=[],this.nextTokenIndex=0,this.stackSize=0}action(){}construct(){}parse(e){this.resetState();const t=this.lexer.tokenize(e,{mode:"partial"});return this.tokens=t.tokens,this.wrapper.input=[...this.tokens],this.mainRule.call(this.wrapper,{}),this.unorderedGroups.clear(),{tokens:this.tokens,elementStack:[...this.lastElementStack],tokenIndex:this.nextTokenIndex}}rule(e,t){const n=this.wrapper.DEFINE_RULE(Io(e.name),this.startImplementation(t).bind(this));return this.allRules.set(e.name,n),e.entry&&(this.mainRule=n),n}resetState(){this.elementStack=[],this.lastElementStack=[],this.nextTokenIndex=0,this.stackSize=0}startImplementation(e){return t=>{const n=this.keepStackSize();try{e(t)}finally{this.resetStackSize(n)}}}removeUnexpectedElements(){this.elementStack.splice(this.stackSize)}keepStackSize(){const e=this.elementStack.length;return this.stackSize=e,e}resetStackSize(e){this.removeUnexpectedElements(),this.stackSize=e}consume(e,t,n){this.wrapper.wrapConsume(e,t),this.isRecording()||(this.lastElementStack=[...this.elementStack,n],this.nextTokenIndex=this.currIdx+1)}subrule(e,t,n,r,i){this.before(r),this.wrapper.wrapSubrule(e,t,i),this.after(r)}before(e){this.isRecording()||this.elementStack.push(e)}after(e){if(!this.isRecording()){const t=this.elementStack.lastIndexOf(e);t>=0&&this.elementStack.splice(t)}}get currIdx(){return this.wrapper.currIdx}}const bo={recoveryEnabled:!0,nodeLocationTracking:"full",skipValidations:!0,errorMessageProvider:new wo};class Oo extends as{constructor(e,t){const n=t&&"maxLookahead"in t;super(e,Object.assign(Object.assign(Object.assign({},bo),{lookaheadStrategy:n?new Di({maxLookahead:t.maxLookahead}):new ws({logging:t.skipValidations?()=>{}:void 0})}),t))}get IS_RECORDING(){return this.RECORDING_PHASE}DEFINE_RULE(e,t){return this.RULE(e,t)}wrapSelfAnalysis(){this.performSelfAnalysis()}wrapConsume(e,t){return this.consume(e,t)}wrapSubrule(e,t,n){return this.subrule(e,t,{ARGS:[n]})}wrapOr(e,t){this.or(e,t)}wrapOption(e,t){this.option(e,t)}wrapMany(e,t){this.many(e,t)}wrapAtLeastOne(e,t){this.atLeastOne(e,t)}}function _o(e,t,n){return function(e,t){const n=Ht(t,!1),r=X(t.rules).filter(Le).filter(e=>n.has(e));for(const t of r){const n=Object.assign(Object.assign({},e),{consume:1,optional:1,subrule:1,many:1,or:1});e.parser.rule(t,Po(n,t.definition))}}({parser:t,tokens:n,ruleNames:new Map},e),t}function Po(e,t,n=!1){let r;if(nt(t))r=function(e,t){const n=e.consume++,r=e.tokens[t.value];if(!r)throw new Error("Could not find token for keyword: "+t.value);return()=>e.parser.consume(n,r,t)}(e,t);else if(je(t))r=function(e,t){const n=tn(t);return()=>e.parser.action(n,t)}(e,t);else if(Ye(t))r=Po(e,t.terminal);else if(Qe(t))r=Uo(e,t);else if(at(t))r=function(e,t){const n=t.rule.ref;if(Le(n)){const r=e.subrule++,i=n.fragment,s=t.arguments.length>0?function(e,t){const n=t.map(e=>Mo(e.value));return t=>{const r={};for(let i=0;i<n.length;i++){const s=e.parameters[i],a=n[i];r[s.name]=a(t)}return r}}(n,t.arguments):()=>({});return a=>e.parser.subrule(r,Go(e,n),i,t,s(a))}if(Ue(n)){const r=e.consume++,i=Bo(e,n.name);return()=>e.parser.consume(r,i,t)}if(!n)throw new se(t.$cstNode,`Undefined rule: ${t.rule.$refText}`);ae()}(e,t);else if(We(t))r=function(e,t){if(1===t.elements.length)return Po(e,t.elements[0]);{const n=[];for(const r of t.elements){const t={ALT:Po(e,r,!0)},i=Do(r);i&&(t.GATE=Mo(i)),n.push(t)}const r=e.or++;return t=>e.parser.alternatives(r,n.map(e=>{const n={ALT:()=>e.ALT(t)},r=e.GATE;return r&&(n.GATE=()=>r(t)),n}))}}(e,t);else if(dt(t))r=function(e,t){if(1===t.elements.length)return Po(e,t.elements[0]);const n=[];for(const r of t.elements){const t={ALT:Po(e,r,!0)},i=Do(r);i&&(t.GATE=Mo(i)),n.push(t)}const r=e.or++,i=(e,t)=>`uGroup_${e}_${t.getRuleStack().join("-")}`,s=Fo(e,Do(t),t=>e.parser.alternatives(r,n.map((n,s)=>{const a={ALT:()=>!0},o=e.parser;a.ALT=()=>{if(n.ALT(t),!o.isRecording()){const e=i(r,o);o.unorderedGroups.get(e)||o.unorderedGroups.set(e,[]);const t=o.unorderedGroups.get(e);typeof(null==t?void 0:t[s])>"u"&&(t[s]=!0)}};const l=n.GATE;return a.GATE=l?()=>l(t):()=>{const e=o.unorderedGroups.get(i(r,o));return!(null!=e&&e[s])},a})),"*");return t=>{s(t),e.parser.isRecording()||e.parser.unorderedGroups.delete(i(r,e.parser))}}(e,t);else if(et(t))r=function(e,t){const n=t.elements.map(t=>Po(e,t));return e=>n.forEach(t=>t(e))}(e,t);else{if(!function(e){return mt.isInstance(e,Ze)}(t))throw new se(t.$cstNode,`Unexpected element type: ${t.$type}`);{const n=e.consume++;r=()=>e.parser.consume(n,Or,t)}}return Fo(e,n?void 0:Do(t),r,t.cardinality)}function Mo(e){if(function(e){return mt.isInstance(e,Te)}(e)){const t=Mo(e.left),n=Mo(e.right);return e=>t(e)||n(e)}if(function(e){return mt.isInstance(e,ye)}(e)){const t=Mo(e.left),n=Mo(e.right);return e=>t(e)&&n(e)}if(function(e){return mt.isInstance(e,Ie)}(e)){const t=Mo(e.value);return e=>!t(e)}if(function(e){return mt.isInstance(e,Ne)}(e)){const t=e.parameter.ref.name;return e=>void 0!==e&&!0===e[t]}if(function(e){return mt.isInstance(e,ge)}(e)){const t=!!e.true;return()=>t}ae()}function Do(e){if(et(e))return e.guardCondition}function Uo(e,t,n=t.terminal){if(n){if(at(n)&&Le(n.rule.ref)){const r=n.rule.ref,i=e.subrule++;return n=>e.parser.subrule(i,Go(e,r),!1,t,n)}if(at(n)&&Ue(n.rule.ref)){const r=e.consume++,i=Bo(e,n.rule.ref.name);return()=>e.parser.consume(r,i,t)}if(nt(n)){const r=e.consume++,i=Bo(e,n.value);return()=>e.parser.consume(r,i,t)}throw new Error("Could not build cross reference parser")}{if(!t.type.ref)throw new Error("Could not resolve reference to type: "+t.type.$refText);const n=Xt(t.type.ref),r=null==n?void 0:n.terminal;if(!r)throw new Error("Could not find name assignment for type: "+tn(t.type.ref));return Uo(e,t,r)}}function Fo(e,t,n,r){const i=t&&Mo(t);if(!r){if(i){const t=e.or++;return r=>e.parser.alternatives(t,[{ALT:()=>n(r),GATE:()=>i(r)},{ALT:is(),GATE:()=>!i(r)}])}return n}if("*"===r){const t=e.many++;return r=>e.parser.many(t,{DEF:()=>n(r),GATE:i?()=>i(r):void 0})}if("+"===r){const t=e.many++;if(i){const r=e.or++;return s=>e.parser.alternatives(r,[{ALT:()=>e.parser.atLeastOne(t,{DEF:()=>n(s)}),GATE:()=>i(s)},{ALT:is(),GATE:()=>!i(s)}])}return r=>e.parser.atLeastOne(t,{DEF:()=>n(r)})}if("?"===r){const t=e.optional++;return r=>e.parser.optional(t,{DEF:()=>n(r),GATE:i?()=>i(r):void 0})}ae()}function Go(e,t){const n=function(e,t){if(Le(t))return t.name;if(e.ruleNames.has(t))return e.ruleNames.get(t);{let n=t,r=n.$container,i=t.$type;for(;!Le(r);)(et(r)||We(r)||dt(r))&&(i=r.elements.indexOf(n).toString()+":"+i),n=r,r=r.$container;return i=r.name+":"+i,e.ruleNames.set(t,i),i}}(e,t),r=e.parser.getRule(n);if(!r)throw new Error(`Rule "${n}" not found."`);return r}function Bo(e,t){const n=e.tokens[t];if(!n)throw new Error(`Token "${t}" not found."`);return n}class Ko{constructor(){this.diagnostics=[]}buildTokens(e,t){const n=X(Ht(e,!1)),r=this.buildTerminalTokens(n),i=this.buildKeywordTokens(n,r,t);return r.forEach(e=>{const t=e.PATTERN;"object"==typeof t&&t&&"test"in t&&Vt(t)?i.unshift(e):i.push(e)}),i}flushLexingReport(e){return{diagnostics:this.popDiagnostics()}}popDiagnostics(){const e=[...this.diagnostics];return this.diagnostics=[],e}buildTerminalTokens(e){return e.filter(Ue).filter(e=>!e.fragment).map(e=>this.buildTerminalToken(e)).toArray()}buildTerminalToken(e){const t=nn(e),n=this.requiresCustomPattern(t)?this.regexPatternFunction(t):t,r={name:e.name,PATTERN:n};return"function"==typeof n&&(r.LINE_BREAKS=!0),e.hidden&&(r.GROUP=Vt(t)?$r.SKIPPED:"hidden"),r}requiresCustomPattern(e){return!!(e.flags.includes("u")||e.flags.includes("s")||e.source.includes("?<=")||e.source.includes("?<!"))}regexPatternFunction(e){const t=new RegExp(e,e.flags+"y");return(e,n)=>(t.lastIndex=n,t.exec(e))}buildKeywordTokens(e,t,n){return e.filter(Le).flatMap(e=>Rt(e).filter(nt)).distinct(e=>e.value).toArray().sort((e,t)=>t.value.length-e.value.length).map(e=>this.buildKeywordToken(e,t,!(null==n||!n.caseInsensitive)))}buildKeywordToken(e,t,n){const r=this.buildKeywordPattern(e,n),i={name:e.value,PATTERN:r,LONGER_ALT:this.findLongerAlt(e,t)};return"function"==typeof r&&(i.LINE_BREAKS=!0),i}buildKeywordPattern(e,t){return t?new RegExp(function(e){return Array.prototype.map.call(e,e=>/\w/.test(e)?`[${e.toLowerCase()}${e.toUpperCase()}]`:jt(e)).join("")}(e.value)):e.value}findLongerAlt(e,t){return t.reduce((t,n)=>{const r=null==n?void 0:n.PATTERN;return null!=r&&r.source&&function(e,t){const n=function(e){"string"==typeof e&&(e=new RegExp(e));const t=e,n=e.source;let r=0;return new RegExp(function e(){let i,s="";function a(e){s+=n.substr(r,e),r+=e}function o(e){s+="(?:"+n.substr(r,e)+"|$)",r+=e}for(;r<n.length;)switch(n[r]){case"\\":switch(n[r+1]){case"c":o(3);break;case"x":o(4);break;case"u":t.unicode?"{"===n[r+2]?o(n.indexOf("}",r)-r+1):o(6):o(2);break;case"p":case"P":t.unicode?o(n.indexOf("}",r)-r+1):o(2);break;case"k":o(n.indexOf(">",r)-r+1);break;default:o(2)}break;case"[":i=/\[(?:\\.|.)*?\]/g,i.lastIndex=r,i=i.exec(n)||[],o(i[0].length);break;case"|":case"^":case"$":case"*":case"+":case"?":a(1);break;case"{":i=/\{\d+,?\d*\}/g,i.lastIndex=r,i=i.exec(n),i?a(i[0].length):o(1);break;case"(":if("?"===n[r+1])switch(n[r+2]){case":":s+="(?:",r+=3,s+=e()+"|$)";break;case"=":s+="(?=",r+=3,s+=e()+")";break;case"!":i=r,r+=3,e(),s+=n.substr(i,r-i);break;case"<":switch(n[r+3]){case"=":case"!":i=r,r+=4,e(),s+=n.substr(i,r-i);break;default:a(n.indexOf(">",r)-r+1),s+=e()+"|$)"}}else a(1),s+=e()+"|$)";break;case")":return++r,s;default:o(1)}return s}(),e.flags)}(e),r=t.match(n);return!!r&&r[0].length>0}("^"+r.source+"$",e.value)&&t.push(n),t},[])}}class Vo{convert(e,t){let n=t.grammarSource;if(Qe(n)&&(n=function(e){if(e.terminal)return e.terminal;if(e.type.ref){const t=Xt(e.type.ref);return null==t?void 0:t.terminal}}(n)),at(n)){const r=n.rule.ref;if(!r)throw new Error("This cst node was not parsed by a rule.");return this.runConverter(r,e,t)}return e}runConverter(e,t,n){var r;switch(e.name.toUpperCase()){case"INT":return jo.convertInt(t);case"STRING":return jo.convertString(t);case"ID":return jo.convertID(t)}switch(null===(r=function(e){var t,n,r;return Ue(e)?null!==(n=null===(t=e.type)||void 0===t?void 0:t.name)&&void 0!==n?n:"string":null!==(r=en(e))&&void 0!==r?r:e.name}(e))||void 0===r?void 0:r.toLowerCase()){case"number":return jo.convertNumber(t);case"boolean":return jo.convertBoolean(t);case"bigint":return jo.convertBigint(t);case"date":return jo.convertDate(t);default:return t}}}var jo;!function(e){function t(e){switch(e){case"b":return"\b";case"f":return"\f";case"n":return"\n";case"r":return"\r";case"t":return"\t";case"v":return"\v";case"0":return"\0";default:return e}}e.convertString=function(e){let n="";for(let r=1;r<e.length-1;r++){const i=e.charAt(r);n+="\\"===i?t(e.charAt(++r)):i}return n},e.convertID=function(e){return"^"===e.charAt(0)?e.substring(1):e},e.convertInt=function(e){return parseInt(e)},e.convertBigint=function(e){return BigInt(e)},e.convertDate=function(e){return new Date(e)},e.convertNumber=function(e){return Number(e)},e.convertBoolean=function(e){return"true"===e.toLowerCase()}}(jo||(jo={}));var Ho,Wo={},zo={};function Yo(){if(Ho)return zo;let e;function t(){if(void 0===e)throw new Error("No runtime abstraction layer installed");return e}return Ho=1,Object.defineProperty(zo,"__esModule",{value:!0}),(t||(t={})).install=function(t){if(void 0===t)throw new Error("No runtime abstraction layer provided");e=t},zo.default=t,zo}var qo,Xo,Qo,Zo={},Jo={};function el(){return Xo||(Xo=1,function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.Emitter=e.Event=void 0;const t=Yo();!function(e){const t={dispose(){}};e.None=function(){return t}}(e.Event||(e.Event={}));class n{add(e,t=null,n){this._callbacks||(this._callbacks=[],this._contexts=[]),this._callbacks.push(e),this._contexts.push(t),Array.isArray(n)&&n.push({dispose:()=>this.remove(e,t)})}remove(e,t=null){if(!this._callbacks)return;let n=!1;for(let r=0,i=this._callbacks.length;r<i;r++)if(this._callbacks[r]===e){if(this._contexts[r]===t)return this._callbacks.splice(r,1),void this._contexts.splice(r,1);n=!0}if(n)throw new Error("When adding a listener with a context, you should remove it with the same context")}invoke(...e){if(!this._callbacks)return[];const n=[],r=this._callbacks.slice(0),i=this._contexts.slice(0);for(let s=0,a=r.length;s<a;s++)try{n.push(r[s].apply(i[s],e))}catch(e){t.default().console.error(e)}return n}isEmpty(){return!this._callbacks||0===this._callbacks.length}dispose(){this._callbacks=void 0,this._contexts=void 0}}class r{constructor(e){this._options=e}get event(){return this._event||(this._event=(e,t,i)=>{this._callbacks||(this._callbacks=new n),this._options&&this._options.onFirstListenerAdd&&this._callbacks.isEmpty()&&this._options.onFirstListenerAdd(this),this._callbacks.add(e,t);const s={dispose:()=>{this._callbacks&&(this._callbacks.remove(e,t),s.dispose=r._noop,this._options&&this._options.onLastListenerRemove&&this._callbacks.isEmpty()&&this._options.onLastListenerRemove(this))}};return Array.isArray(i)&&i.push(s),s}),this._event}fire(e){this._callbacks&&this._callbacks.invoke.call(this._callbacks,e)}dispose(){this._callbacks&&(this._callbacks.dispose(),this._callbacks=void 0)}}e.Emitter=r,r._noop=function(){}}(Jo)),Jo}var tl=(Qo||(Qo=1,function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.CancellationTokenSource=e.CancellationToken=void 0;const t=Yo(),n=function(){if(qo)return Zo;function e(e){return"string"==typeof e||e instanceof String}function t(e){return Array.isArray(e)}return qo=1,Object.defineProperty(Zo,"__esModule",{value:!0}),Zo.stringArray=Zo.array=Zo.func=Zo.error=Zo.number=Zo.string=Zo.boolean=void 0,Zo.boolean=function(e){return!0===e||!1===e},Zo.string=e,Zo.number=function(e){return"number"==typeof e||e instanceof Number},Zo.error=function(e){return e instanceof Error},Zo.func=function(e){return"function"==typeof e},Zo.array=t,Zo.stringArray=function(n){return t(n)&&n.every(t=>e(t))},Zo}(),r=el();var i,s;(s=i=e.CancellationToken||(e.CancellationToken={})).None=Object.freeze({isCancellationRequested:!1,onCancellationRequested:r.Event.None}),s.Cancelled=Object.freeze({isCancellationRequested:!0,onCancellationRequested:r.Event.None}),s.is=function(e){const t=e;return t&&(t===s.None||t===s.Cancelled||n.boolean(t.isCancellationRequested)&&!!t.onCancellationRequested)};const a=Object.freeze(function(e,n){const r=t.default().timer.setTimeout(e.bind(n),0);return{dispose(){t.default().timer.clearTimeout(r)}}});class o{constructor(){this._isCancelled=!1}cancel(){this._isCancelled||(this._isCancelled=!0,this._emitter&&(this._emitter.fire(void 0),this.dispose()))}get isCancellationRequested(){return this._isCancelled}get onCancellationRequested(){return this._isCancelled?a:(this._emitter||(this._emitter=new r.Emitter),this._emitter.event)}dispose(){this._emitter&&(this._emitter.dispose(),this._emitter=void 0)}}e.CancellationTokenSource=class{get token(){return this._token||(this._token=new o),this._token}cancel(){this._token?this._token.cancel():this._token=i.Cancelled}dispose(){this._token?this._token instanceof o&&this._token.dispose():this._token=i.None}}}(Wo)),Wo);let nl=0;const rl=Symbol("OperationCancelled");function il(e){return e===rl}async function sl(e){if(e===tl.CancellationToken.None)return;const t=performance.now();if(t-nl>=10&&(nl=t,await new Promise(e=>{typeof setImmediate>"u"?setTimeout(e,0):setImmediate(e)}),nl=performance.now()),e.isCancellationRequested)throw rl}class al{constructor(){this.promise=new Promise((e,t)=>{this.resolve=t=>(e(t),this),this.reject=e=>(t(e),this)})}}class ol{constructor(e,t,n,r){this._uri=e,this._languageId=t,this._version=n,this._content=r,this._lineOffsets=void 0}get uri(){return this._uri}get languageId(){return this._languageId}get version(){return this._version}getText(e){if(e){const t=this.offsetAt(e.start),n=this.offsetAt(e.end);return this._content.substring(t,n)}return this._content}update(e,t){for(const t of e)if(ol.isIncremental(t)){const e=fl(t.range),n=this.offsetAt(e.start),r=this.offsetAt(e.end);this._content=this._content.substring(0,n)+t.text+this._content.substring(r,this._content.length);const i=Math.max(e.start.line,0),s=Math.max(e.end.line,0);let a=this._lineOffsets;const o=dl(t.text,!1,n);if(s-i===o.length)for(let e=0,t=o.length;e<t;e++)a[e+i+1]=o[e];else o.length<1e4?a.splice(i+1,s-i,...o):this._lineOffsets=a=a.slice(0,i+1).concat(o,a.slice(s+1));const l=t.text.length-(r-n);if(0!==l)for(let e=i+1+o.length,t=a.length;e<t;e++)a[e]=a[e]+l}else{if(!ol.isFull(t))throw new Error("Unknown change event received");this._content=t.text,this._lineOffsets=void 0}this._version=t}getLineOffsets(){return void 0===this._lineOffsets&&(this._lineOffsets=dl(this._content,!0)),this._lineOffsets}positionAt(e){e=Math.max(Math.min(e,this._content.length),0);const t=this.getLineOffsets();let n=0,r=t.length;if(0===r)return{line:0,character:e};for(;n<r;){const i=Math.floor((n+r)/2);t[i]>e?r=i:n=i+1}const i=n-1;return{line:i,character:(e=this.ensureBeforeEOL(e,t[i]))-t[i]}}offsetAt(e){const t=this.getLineOffsets();if(e.line>=t.length)return this._content.length;if(e.line<0)return 0;const n=t[e.line];if(e.character<=0)return n;const r=e.line+1<t.length?t[e.line+1]:this._content.length,i=Math.min(n+e.character,r);return this.ensureBeforeEOL(i,n)}ensureBeforeEOL(e,t){for(;e>t&&hl(this._content.charCodeAt(e-1));)e--;return e}get lineCount(){return this.getLineOffsets().length}static isIncremental(e){const t=e;return null!=t&&"string"==typeof t.text&&void 0!==t.range&&(void 0===t.rangeLength||"number"==typeof t.rangeLength)}static isFull(e){const t=e;return null!=t&&"string"==typeof t.text&&void 0===t.range&&void 0===t.rangeLength}}var ll,cl;function ul(e,t){if(e.length<=1)return e;const n=e.length/2|0,r=e.slice(0,n),i=e.slice(n);ul(r,t),ul(i,t);let s=0,a=0,o=0;for(;s<r.length&&a<i.length;)t(r[s],i[a])<=0?e[o++]=r[s++]:e[o++]=i[a++];for(;s<r.length;)e[o++]=r[s++];for(;a<i.length;)e[o++]=i[a++];return e}function dl(e,t,n=0){const r=t?[n]:[];for(let t=0;t<e.length;t++){const i=e.charCodeAt(t);hl(i)&&(13===i&&t+1<e.length&&10===e.charCodeAt(t+1)&&t++,r.push(n+t+1))}return r}function hl(e){return 13===e||10===e}function fl(e){const t=e.start,n=e.end;return t.line>n.line||t.line===n.line&&t.character>n.character?{start:n,end:t}:e}function pl(e){const t=fl(e.range);return t!==e.range?{newText:e.newText,range:t}:e}!function(e){e.create=function(e,t,n,r){return new ol(e,t,n,r)},e.update=function(e,t,n){if(e instanceof ol)return e.update(t,n),e;throw new Error("TextDocument.update: document must be created by TextDocument.create")},e.applyEdits=function(e,t){const n=e.getText(),r=ul(t.map(pl),(e,t)=>{const n=e.range.start.line-t.range.start.line;return 0===n?e.range.start.character-t.range.start.character:n});let i=0;const s=[];for(const t of r){const r=e.offsetAt(t.range.start);if(r<i)throw new Error("Overlapping edit");r>i&&s.push(n.substring(i,r)),t.newText.length&&s.push(t.newText),i=e.offsetAt(t.range.end)}return s.push(n.substr(i)),s.join("")}}(ll||(ll={})),(()=>{var e={470:e=>{function t(e){if("string"!=typeof e)throw new TypeError("Path must be a string. Received "+JSON.stringify(e))}function n(e,t){for(var n,r="",i=0,s=-1,a=0,o=0;o<=e.length;++o){if(o<e.length)n=e.charCodeAt(o);else{if(47===n)break;n=47}if(47===n){if(s!==o-1&&1!==a)if(s!==o-1&&2===a){if(r.length<2||2!==i||46!==r.charCodeAt(r.length-1)||46!==r.charCodeAt(r.length-2))if(r.length>2){var l=r.lastIndexOf("/");if(l!==r.length-1){-1===l?(r="",i=0):i=(r=r.slice(0,l)).length-1-r.lastIndexOf("/"),s=o,a=0;continue}}else if(2===r.length||1===r.length){r="",i=0,s=o,a=0;continue}t&&(r.length>0?r+="/..":r="..",i=2)}else r.length>0?r+="/"+e.slice(s+1,o):r=e.slice(s+1,o),i=o-s-1;s=o,a=0}else 46===n&&-1!==a?++a:a=-1}return r}var r={resolve:function(){for(var e,r="",i=!1,s=arguments.length-1;s>=-1&&!i;s--){var a;s>=0?a=arguments[s]:(void 0===e&&(e=o.cwd()),a=e),t(a),0!==a.length&&(r=a+"/"+r,i=47===a.charCodeAt(0))}return r=n(r,!i),i?r.length>0?"/"+r:"/":r.length>0?r:"."},normalize:function(e){if(t(e),0===e.length)return".";var r=47===e.charCodeAt(0),i=47===e.charCodeAt(e.length-1);return 0!==(e=n(e,!r)).length||r||(e="."),e.length>0&&i&&(e+="/"),r?"/"+e:e},isAbsolute:function(e){return t(e),e.length>0&&47===e.charCodeAt(0)},join:function(){if(0===arguments.length)return".";for(var e,n=0;n<arguments.length;++n){var i=arguments[n];t(i),i.length>0&&(void 0===e?e=i:e+="/"+i)}return void 0===e?".":r.normalize(e)},relative:function(e,n){if(t(e),t(n),e===n||(e=r.resolve(e))===(n=r.resolve(n)))return"";for(var i=1;i<e.length&&47===e.charCodeAt(i);++i);for(var s=e.length,a=s-i,o=1;o<n.length&&47===n.charCodeAt(o);++o);for(var l=n.length-o,c=a<l?a:l,u=-1,d=0;d<=c;++d){if(d===c){if(l>c){if(47===n.charCodeAt(o+d))return n.slice(o+d+1);if(0===d)return n.slice(o+d)}else a>c&&(47===e.charCodeAt(i+d)?u=d:0===d&&(u=0));break}var h=e.charCodeAt(i+d);if(h!==n.charCodeAt(o+d))break;47===h&&(u=d)}var f="";for(d=i+u+1;d<=s;++d)d!==s&&47!==e.charCodeAt(d)||(0===f.length?f+="..":f+="/..");return f.length>0?f+n.slice(o+u):(o+=u,47===n.charCodeAt(o)&&++o,n.slice(o))},_makeLong:function(e){return e},dirname:function(e){if(t(e),0===e.length)return".";for(var n=e.charCodeAt(0),r=47===n,i=-1,s=!0,a=e.length-1;a>=1;--a)if(47===(n=e.charCodeAt(a))){if(!s){i=a;break}}else s=!1;return-1===i?r?"/":".":r&&1===i?"//":e.slice(0,i)},basename:function(e,n){if(void 0!==n&&"string"!=typeof n)throw new TypeError('"ext" argument must be a string');t(e);var r,i=0,s=-1,a=!0;if(void 0!==n&&n.length>0&&n.length<=e.length){if(n.length===e.length&&n===e)return"";var o=n.length-1,l=-1;for(r=e.length-1;r>=0;--r){var c=e.charCodeAt(r);if(47===c){if(!a){i=r+1;break}}else-1===l&&(a=!1,l=r+1),o>=0&&(c===n.charCodeAt(o)?-1==--o&&(s=r):(o=-1,s=l))}return i===s?s=l:-1===s&&(s=e.length),e.slice(i,s)}for(r=e.length-1;r>=0;--r)if(47===e.charCodeAt(r)){if(!a){i=r+1;break}}else-1===s&&(a=!1,s=r+1);return-1===s?"":e.slice(i,s)},extname:function(e){t(e);for(var n=-1,r=0,i=-1,s=!0,a=0,o=e.length-1;o>=0;--o){var l=e.charCodeAt(o);if(47!==l)-1===i&&(s=!1,i=o+1),46===l?-1===n?n=o:1!==a&&(a=1):-1!==n&&(a=-1);else if(!s){r=o+1;break}}return-1===n||-1===i||0===a||1===a&&n===i-1&&n===r+1?"":e.slice(n,i)},format:function(e){if(null===e||"object"!=typeof e)throw new TypeError('The "pathObject" argument must be of type Object. Received type '+typeof e);return n=(t=e).dir||t.root,r=t.base||(t.name||"")+(t.ext||""),n?n===t.root?n+r:n+"/"+r:r;var t,n,r},parse:function(e){t(e);var n={root:"",dir:"",base:"",ext:"",name:""};if(0===e.length)return n;var r,i=e.charCodeAt(0),s=47===i;s?(n.root="/",r=1):r=0;for(var a=-1,o=0,l=-1,c=!0,u=e.length-1,d=0;u>=r;--u)if(47!==(i=e.charCodeAt(u)))-1===l&&(c=!1,l=u+1),46===i?-1===a?a=u:1!==d&&(d=1):-1!==a&&(d=-1);else if(!c){o=u+1;break}return-1===a||-1===l||0===d||1===d&&a===l-1&&a===o+1?-1!==l&&(n.base=n.name=0===o&&s?e.slice(1,l):e.slice(o,l)):(0===o&&s?(n.name=e.slice(1,a),n.base=e.slice(1,l)):(n.name=e.slice(o,a),n.base=e.slice(o,l)),n.ext=e.slice(a,l)),o>0?n.dir=e.slice(0,o-1):s&&(n.dir="/"),n},sep:"/",delimiter:":",win32:null,posix:null};r.posix=r,e.exports=r}},t={};function n(r){var i=t[r];if(void 0!==i)return i.exports;var s=t[r]={exports:{}};return e[r](s,s.exports,n),s.exports}n.d=(e,t)=>{for(var r in t)n.o(t,r)&&!n.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},n.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),n.r=e=>{typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var r={};(()=>{let e;n.r(r),n.d(r,{URI:()=>h,Utils:()=>I}),"object"==typeof o?e="win32"===o.platform:"object"==typeof navigator&&(e=navigator.userAgent.indexOf("Windows")>=0);const t=/^\w[\w\d+.-]*$/,i=/^\//,s=/^\/\//;function a(e,n){if(!e.scheme&&n)throw new Error(`[UriError]: Scheme is missing: {scheme: "", authority: "${e.authority}", path: "${e.path}", query: "${e.query}", fragment: "${e.fragment}"}`);if(e.scheme&&!t.test(e.scheme))throw new Error("[UriError]: Scheme contains illegal characters.");if(e.path)if(e.authority){if(!i.test(e.path))throw new Error('[UriError]: If a URI contains an authority component, then the path component must either be empty or begin with a slash ("/") character')}else if(s.test(e.path))throw new Error('[UriError]: If a URI does not contain an authority component, then the path cannot begin with two slash characters ("//")')}const l="",u="/",d=/^(([^:/?#]+?):)?(\/\/([^/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?/;class h{constructor(e,t,n,r,i,s=!1){c(this,"scheme"),c(this,"authority"),c(this,"path"),c(this,"query"),c(this,"fragment"),"object"==typeof e?(this.scheme=e.scheme||l,this.authority=e.authority||l,this.path=e.path||l,this.query=e.query||l,this.fragment=e.fragment||l):(this.scheme=function(e,t){return e||t?e:"file"}(e,s),this.authority=t||l,this.path=function(e,t){switch(e){case"https":case"http":case"file":t?t[0]!==u&&(t=u+t):t=u}return t}(this.scheme,n||l),this.query=r||l,this.fragment=i||l,a(this,s))}static isUri(e){return e instanceof h||!!e&&"string"==typeof e.authority&&"string"==typeof e.fragment&&"string"==typeof e.path&&"string"==typeof e.query&&"string"==typeof e.scheme&&"string"==typeof e.fsPath&&"function"==typeof e.with&&"function"==typeof e.toString}get fsPath(){return T(this)}with(e){if(!e)return this;let{scheme:t,authority:n,path:r,query:i,fragment:s}=e;return void 0===t?t=this.scheme:null===t&&(t=l),void 0===n?n=this.authority:null===n&&(n=l),void 0===r?r=this.path:null===r&&(r=l),void 0===i?i=this.query:null===i&&(i=l),void 0===s?s=this.fragment:null===s&&(s=l),t===this.scheme&&n===this.authority&&r===this.path&&i===this.query&&s===this.fragment?this:new p(t,n,r,i,s)}static parse(e,t=!1){const n=d.exec(e);return n?new p(n[2]||l,E(n[4]||l),E(n[5]||l),E(n[7]||l),E(n[9]||l),t):new p(l,l,l,l,l)}static file(t){let n=l;if(e&&(t=t.replace(/\\/g,u)),t[0]===u&&t[1]===u){const e=t.indexOf(u,2);-1===e?(n=t.substring(2),t=u):(n=t.substring(2,e),t=t.substring(e)||u)}return new p("file",n,t,l,l)}static from(e){const t=new p(e.scheme,e.authority,e.path,e.query,e.fragment);return a(t,!0),t}toString(e=!1){return v(this,e)}toJSON(){return this}static revive(e){if(e){if(e instanceof h)return e;{const t=new p(e);return t._formatted=e.external,t._fsPath=e._sep===f?e.fsPath:null,t}}return e}}const f=e?1:void 0;class p extends h{constructor(){super(...arguments),c(this,"_formatted",null),c(this,"_fsPath",null)}get fsPath(){return this._fsPath||(this._fsPath=T(this)),this._fsPath}toString(e=!1){return e?v(this,!0):(this._formatted||(this._formatted=v(this,!1)),this._formatted)}toJSON(){const e={$mid:1};return this._fsPath&&(e.fsPath=this._fsPath,e._sep=f),this._formatted&&(e.external=this._formatted),this.path&&(e.path=this.path),this.scheme&&(e.scheme=this.scheme),this.authority&&(e.authority=this.authority),this.query&&(e.query=this.query),this.fragment&&(e.fragment=this.fragment),e}}const m={58:"%3A",47:"%2F",63:"%3F",35:"%23",91:"%5B",93:"%5D",64:"%40",33:"%21",36:"%24",38:"%26",39:"%27",40:"%28",41:"%29",42:"%2A",43:"%2B",44:"%2C",59:"%3B",61:"%3D",32:"%20"};function g(e,t,n){let r,i=-1;for(let s=0;s<e.length;s++){const a=e.charCodeAt(s);if(a>=97&&a<=122||a>=65&&a<=90||a>=48&&a<=57||45===a||46===a||95===a||126===a||t&&47===a||n&&91===a||n&&93===a||n&&58===a)-1!==i&&(r+=encodeURIComponent(e.substring(i,s)),i=-1),void 0!==r&&(r+=e.charAt(s));else{void 0===r&&(r=e.substr(0,s));const t=m[a];void 0!==t?(-1!==i&&(r+=encodeURIComponent(e.substring(i,s)),i=-1),r+=t):-1===i&&(i=s)}}return-1!==i&&(r+=encodeURIComponent(e.substring(i))),void 0!==r?r:e}function y(e){let t;for(let n=0;n<e.length;n++){const r=e.charCodeAt(n);35===r||63===r?(void 0===t&&(t=e.substr(0,n)),t+=m[r]):void 0!==t&&(t+=e[n])}return void 0!==t?t:e}function T(t,n){let r;return r=t.authority&&t.path.length>1&&"file"===t.scheme?`//${t.authority}${t.path}`:47===t.path.charCodeAt(0)&&(t.path.charCodeAt(1)>=65&&t.path.charCodeAt(1)<=90||t.path.charCodeAt(1)>=97&&t.path.charCodeAt(1)<=122)&&58===t.path.charCodeAt(2)?t.path[1].toLowerCase()+t.path.substr(2):t.path,e&&(r=r.replace(/\//g,"\\")),r}function v(e,t){const n=t?y:g;let r="",{scheme:i,authority:s,path:a,query:o,fragment:l}=e;if(i&&(r+=i,r+=":"),(s||"file"===i)&&(r+=u,r+=u),s){let e=s.indexOf("@");if(-1!==e){const t=s.substr(0,e);s=s.substr(e+1),e=t.lastIndexOf(":"),-1===e?r+=n(t,!1,!1):(r+=n(t.substr(0,e),!1,!1),r+=":",r+=n(t.substr(e+1),!1,!0)),r+="@"}s=s.toLowerCase(),e=s.lastIndexOf(":"),-1===e?r+=n(s,!1,!0):(r+=n(s.substr(0,e),!1,!0),r+=s.substr(e))}if(a){if(a.length>=3&&47===a.charCodeAt(0)&&58===a.charCodeAt(2)){const e=a.charCodeAt(1);e>=65&&e<=90&&(a=`/${String.fromCharCode(e+32)}:${a.substr(3)}`)}else if(a.length>=2&&58===a.charCodeAt(1)){const e=a.charCodeAt(0);e>=65&&e<=90&&(a=`${String.fromCharCode(e+32)}:${a.substr(2)}`)}r+=n(a,!0,!1)}return o&&(r+="?",r+=n(o,!1,!1)),l&&(r+="#",r+=t?l:g(l,!1,!1)),r}function R(e){try{return decodeURIComponent(e)}catch{return e.length>3?e.substr(0,3)+R(e.substr(3)):e}}const $=/(%[0-9A-Za-z][0-9A-Za-z])+/g;function E(e){return e.match($)?e.replace($,e=>R(e)):e}var A=n(470);const k=A.posix||A,x="/";var I,S;(S=I||(I={})).joinPath=function(e,...t){return e.with({path:k.join(e.path,...t)})},S.resolvePath=function(e,...t){let n=e.path,r=!1;n[0]!==x&&(n=x+n,r=!0);let i=k.resolve(n,...t);return r&&i[0]===x&&!e.authority&&(i=i.substring(1)),e.with({path:i})},S.dirname=function(e){if(0===e.path.length||e.path===x)return e;let t=k.dirname(e.path);return 1===t.length&&46===t.charCodeAt(0)&&(t=""),e.with({path:t})},S.basename=function(e){return k.basename(e.path)},S.extname=function(e){return k.extname(e.path)}})(),cl=r})();const{URI:ml,Utils:gl}=cl;var yl,Tl;!function(e){e.basename=gl.basename,e.dirname=gl.dirname,e.extname=gl.extname,e.joinPath=gl.joinPath,e.resolvePath=gl.resolvePath,e.equals=function(e,t){return(null==e?void 0:e.toString())===(null==t?void 0:t.toString())},e.relative=function(e,t){const n="string"==typeof e?e:e.path,r="string"==typeof t?t:t.path,i=n.split("/").filter(e=>e.length>0),s=r.split("/").filter(e=>e.length>0);let a=0;for(;a<i.length&&i[a]===s[a];a++);return"../".repeat(i.length-a)+s.slice(a).join("/")},e.normalize=function(e){return ml.parse(e.toString()).toString()}}(yl||(yl={})),function(e){e[e.Changed=0]="Changed",e[e.Parsed=1]="Parsed",e[e.IndexedContent=2]="IndexedContent",e[e.ComputedScopes=3]="ComputedScopes",e[e.Linked=4]="Linked",e[e.IndexedReferences=5]="IndexedReferences",e[e.Validated=6]="Validated"}(Tl||(Tl={}));class vl{constructor(e){this.serviceRegistry=e.ServiceRegistry,this.textDocuments=e.workspace.TextDocuments,this.fileSystemProvider=e.workspace.FileSystemProvider}async fromUri(e,t=tl.CancellationToken.None){const n=await this.fileSystemProvider.readFile(e);return this.createAsync(e,n,t)}fromTextDocument(e,t,n){return t=t??ml.parse(e.uri),tl.CancellationToken.is(n)?this.createAsync(t,e,n):this.create(t,e,n)}fromString(e,t,n){return tl.CancellationToken.is(n)?this.createAsync(t,e,n):this.create(t,e,n)}fromModel(e,t){return this.create(t,{$model:e})}create(e,t,n){if("string"==typeof t){const r=this.parse(e,t,n);return this.createLangiumDocument(r,e,void 0,t)}if("$model"in t){const n={value:t.$model,parserErrors:[],lexerErrors:[]};return this.createLangiumDocument(n,e)}{const r=this.parse(e,t.getText(),n);return this.createLangiumDocument(r,e,t)}}async createAsync(e,t,n){if("string"==typeof t){const r=await this.parseAsync(e,t,n);return this.createLangiumDocument(r,e,void 0,t)}{const r=await this.parseAsync(e,t.getText(),n);return this.createLangiumDocument(r,e,t)}}createLangiumDocument(e,t,n,r){let i;if(n)i={parseResult:e,uri:t,state:Tl.Parsed,references:[],textDocument:n};else{const n=this.createTextDocumentGetter(t,r);i={parseResult:e,uri:t,state:Tl.Parsed,references:[],get textDocument(){return n()}}}return e.value.$document=i,i}async update(e,t){var n,r;const i=null===(n=e.parseResult.value.$cstNode)||void 0===n?void 0:n.root.fullText,s=null===(r=this.textDocuments)||void 0===r?void 0:r.get(e.uri.toString()),a=s?s.getText():await this.fileSystemProvider.readFile(e.uri);if(s)Object.defineProperty(e,"textDocument",{value:s});else{const t=this.createTextDocumentGetter(e.uri,a);Object.defineProperty(e,"textDocument",{get:t})}return i!==a&&(e.parseResult=await this.parseAsync(e.uri,a,t),e.parseResult.value.$document=e),e.state=Tl.Parsed,e}parse(e,t,n){return this.serviceRegistry.getServices(e).parser.LangiumParser.parse(t,n)}parseAsync(e,t,n){return this.serviceRegistry.getServices(e).parser.AsyncParser.parse(t,n)}createTextDocumentGetter(e,t){const n=this.serviceRegistry;let r;return()=>r??(r=ll.create(e.toString(),n.getServices(e).LanguageMetaData.languageId,0,t??""))}}class Rl{constructor(e){this.documentMap=new Map,this.langiumDocumentFactory=e.workspace.LangiumDocumentFactory,this.serviceRegistry=e.ServiceRegistry}get all(){return X(this.documentMap.values())}addDocument(e){const t=e.uri.toString();if(this.documentMap.has(t))throw new Error(`A document with the URI '${t}' is already present.`);this.documentMap.set(t,e)}getDocument(e){const t=e.toString();return this.documentMap.get(t)}async getOrCreateDocument(e,t){let n=this.getDocument(e);return n||(n=await this.langiumDocumentFactory.fromUri(e,t),this.addDocument(n),n)}createDocument(e,t,n){if(n)return this.langiumDocumentFactory.fromString(t,e,n).then(e=>(this.addDocument(e),e));{const n=this.langiumDocumentFactory.fromString(t,e);return this.addDocument(n),n}}hasDocument(e){return this.documentMap.has(e.toString())}invalidateDocument(e){const t=e.toString(),n=this.documentMap.get(t);return n&&(this.serviceRegistry.getServices(e).references.Linker.unlink(n),n.state=Tl.Changed,n.precomputedScopes=void 0,n.diagnostics=void 0),n}deleteDocument(e){const t=e.toString(),n=this.documentMap.get(t);return n&&(n.state=Tl.Changed,this.documentMap.delete(t)),n}}const $l=Symbol("ref_resolving");class El{constructor(e){this.reflection=e.shared.AstReflection,this.langiumDocuments=()=>e.shared.workspace.LangiumDocuments,this.scopeProvider=e.references.ScopeProvider,this.astNodeLocator=e.workspace.AstNodeLocator}async link(e,t=tl.CancellationToken.None){for(const n of $t(e.parseResult.value))await sl(t),At(n).forEach(t=>this.doLink(t,e))}doLink(e,t){var n;const r=e.reference;if(void 0===r._ref){r._ref=$l;try{const t=this.getCandidate(e);if(G(t))r._ref=t;else if(r._nodeDescription=t,this.langiumDocuments().hasDocument(t.documentUri)){const n=this.loadAstNode(t);r._ref=n??this.createLinkingError(e,t)}else r._ref=void 0}catch(t){console.error(`An error occurred while resolving reference to '${r.$refText}':`,t);const i=null!==(n=t.message)&&void 0!==n?n:String(t);r._ref=Object.assign(Object.assign({},e),{message:`An error occurred while resolving reference to '${r.$refText}': ${i}`})}t.references.push(r)}}unlink(e){for(const t of e.references)delete t._ref,delete t._nodeDescription;e.references=[]}getCandidate(e){return this.scopeProvider.getScope(e).getElement(e.reference.$refText)??this.createLinkingError(e)}buildReference(e,t,n,r){const i=this,s={$refNode:n,$refText:r,get ref(){var n;if(U(this._ref))return this._ref;if(function(e){return"object"==typeof e&&null!==e&&"string"==typeof e.name&&"string"==typeof e.type&&"string"==typeof e.path}(this._nodeDescription)){const n=i.loadAstNode(this._nodeDescription);this._ref=n??i.createLinkingError({reference:s,container:e,property:t},this._nodeDescription)}else if(void 0===this._ref){this._ref=$l;const r=Tt(e).$document,a=i.getLinkedNode({reference:s,container:e,property:t});if(a.error&&r&&r.state<Tl.ComputedScopes)return this._ref=void 0;this._ref=null!==(n=a.node)&&void 0!==n?n:a.error,this._nodeDescription=a.descr,null==r||r.references.push(this)}else if(this._ref===$l)throw new Error(`Cyclic reference resolution detected: ${i.astNodeLocator.getAstNodePath(e)}/${t} (symbol '${r}')`);return U(this._ref)?this._ref:void 0},get $nodeDescription(){return this._nodeDescription},get error(){return G(this._ref)?this._ref:void 0}};return s}getLinkedNode(e){var t;try{const t=this.getCandidate(e);if(G(t))return{error:t};const n=this.loadAstNode(t);return n?{node:n,descr:t}:{descr:t,error:this.createLinkingError(e,t)}}catch(n){console.error(`An error occurred while resolving reference to '${e.reference.$refText}':`,n);const r=null!==(t=n.message)&&void 0!==t?t:String(n);return{error:Object.assign(Object.assign({},e),{message:`An error occurred while resolving reference to '${e.reference.$refText}': ${r}`})}}}loadAstNode(e){if(e.node)return e.node;const t=this.langiumDocuments().getDocument(e.documentUri);return t?this.astNodeLocator.getAstNode(t.parseResult.value,e.path):void 0}createLinkingError(e,t){const n=Tt(e.container).$document;n&&n.state<Tl.ComputedScopes&&console.warn(`Attempted reference resolution before document reached ComputedScopes state (${n.uri}).`);const r=this.reflection.getReferenceType(e);return Object.assign(Object.assign({},e),{message:`Could not resolve reference to ${r} named '${e.reference.$refText}'.`,targetDescription:t})}}class Al{getName(e){if(function(e){return"string"==typeof e.name}(e))return e.name}getNameNode(e){return Yt(e.$cstNode,"name")}}class kl{constructor(e){this.nameProvider=e.references.NameProvider,this.index=e.shared.workspace.IndexManager,this.nodeLocator=e.workspace.AstNodeLocator}findDeclaration(e){if(e){const t=function(e){var t;const n=e.astNode;for(;n===(null===(t=e.container)||void 0===t?void 0:t.astNode);){const t=gt(e.grammarSource,Ye);if(t)return t;e=e.container}}(e),n=e.astNode;if(t&&n){const r=n[t.feature];if(F(r))return r.ref;if(Array.isArray(r))for(const t of r)if(F(t)&&t.$refNode&&t.$refNode.offset<=e.offset&&t.$refNode.end>=e.end)return t.ref}if(n){const t=this.nameProvider.getNameNode(n);if(t&&(t===e||function(e,t){for(;e.container;)if((e=e.container)===t)return!0;return!1}(e,t)))return n}}}findDeclarationNode(e){const t=this.findDeclaration(e);if(null!=t&&t.$cstNode)return this.nameProvider.getNameNode(t)??t.$cstNode}findReferences(e,t){const n=[];if(t.includeDeclaration){const t=this.getReferenceToSelf(e);t&&n.push(t)}let r=this.index.findAllReferences(e,this.nodeLocator.getAstNodePath(e));return t.documentUri&&(r=r.filter(e=>yl.equals(e.sourceUri,t.documentUri))),n.push(...r),X(n)}getReferenceToSelf(e){const t=this.nameProvider.getNameNode(e);if(t){const n=yt(e),r=this.nodeLocator.getAstNodePath(e);return{sourceUri:n.uri,sourcePath:r,targetUri:n.uri,targetPath:r,segment:ne(t),local:!0}}}}class xl{constructor(e){if(this.map=new Map,e)for(const[t,n]of e)this.add(t,n)}get size(){return Z.sum(X(this.map.values()).map(e=>e.length))}clear(){this.map.clear()}delete(e,t){if(void 0===t)return this.map.delete(e);{const n=this.map.get(e);if(n){const r=n.indexOf(t);if(r>=0)return 1===n.length?this.map.delete(e):n.splice(r,1),!0}return!1}}get(e){var t;return null!==(t=this.map.get(e))&&void 0!==t?t:[]}has(e,t){if(void 0===t)return this.map.has(e);{const n=this.map.get(e);return!!n&&n.indexOf(t)>=0}}add(e,t){return this.map.has(e)?this.map.get(e).push(t):this.map.set(e,[t]),this}addAll(e,t){return this.map.has(e)?this.map.get(e).push(...t):this.map.set(e,Array.from(t)),this}forEach(e){this.map.forEach((t,n)=>t.forEach(t=>e(t,n,this)))}[Symbol.iterator](){return this.entries().iterator()}entries(){return X(this.map.entries()).flatMap(([e,t])=>t.map(t=>[e,t]))}keys(){return X(this.map.keys())}values(){return X(this.map.values()).flat()}entriesGroupedByKey(){return X(this.map.entries())}}class Il{get size(){return this.map.size}constructor(e){if(this.map=new Map,this.inverse=new Map,e)for(const[t,n]of e)this.set(t,n)}clear(){this.map.clear(),this.inverse.clear()}set(e,t){return this.map.set(e,t),this.inverse.set(t,e),this}get(e){return this.map.get(e)}getKey(e){return this.inverse.get(e)}delete(e){const t=this.map.get(e);return void 0!==t&&(this.map.delete(e),this.inverse.delete(t),!0)}}class Sl{constructor(e){this.nameProvider=e.references.NameProvider,this.descriptions=e.workspace.AstNodeDescriptionProvider}async computeExports(e,t=tl.CancellationToken.None){return this.computeExportsForNode(e.parseResult.value,e,void 0,t)}async computeExportsForNode(e,t,n=vt,r=tl.CancellationToken.None){const i=[];this.exportNode(e,i,t);for(const s of n(e))await sl(r),this.exportNode(s,i,t);return i}exportNode(e,t,n){const r=this.nameProvider.getName(e);r&&t.push(this.descriptions.createDescription(e,r,n))}async computeLocalScopes(e,t=tl.CancellationToken.None){const n=e.parseResult.value,r=new xl;for(const i of Rt(n))await sl(t),this.processNode(i,e,r);return r}processNode(e,t,n){const r=e.$container;if(r){const i=this.nameProvider.getName(e);i&&n.add(r,this.descriptions.createDescription(e,i,t))}}}class Cl{constructor(e,t,n){var r;this.elements=e,this.outerScope=t,this.caseInsensitive=null!==(r=null==n?void 0:n.caseInsensitive)&&void 0!==r&&r}getAllElements(){return this.outerScope?this.elements.concat(this.outerScope.getAllElements()):this.elements}getElement(e){return(this.caseInsensitive?this.elements.find(t=>t.name.toLowerCase()===e.toLowerCase()):this.elements.find(t=>t.name===e))||(this.outerScope?this.outerScope.getElement(e):void 0)}}class Nl{constructor(e,t,n){var r;this.elements=new Map,this.caseInsensitive=null!==(r=null==n?void 0:n.caseInsensitive)&&void 0!==r&&r;for(const t of e){const e=this.caseInsensitive?t.name.toLowerCase():t.name;this.elements.set(e,t)}this.outerScope=t}getElement(e){const t=this.caseInsensitive?e.toLowerCase():e;return this.elements.get(t)||(this.outerScope?this.outerScope.getElement(e):void 0)}getAllElements(){let e=X(this.elements.values());return this.outerScope&&(e=e.concat(this.outerScope.getAllElements())),e}}class wl{constructor(){this.toDispose=[],this.isDisposed=!1}onDispose(e){this.toDispose.push(e)}dispose(){this.throwIfDisposed(),this.clear(),this.isDisposed=!0,this.toDispose.forEach(e=>e.dispose())}throwIfDisposed(){if(this.isDisposed)throw new Error("This cache has already been disposed")}}class Ll extends wl{constructor(){super(...arguments),this.cache=new Map}has(e){return this.throwIfDisposed(),this.cache.has(e)}set(e,t){this.throwIfDisposed(),this.cache.set(e,t)}get(e,t){if(this.throwIfDisposed(),this.cache.has(e))return this.cache.get(e);if(t){const n=t();return this.cache.set(e,n),n}}delete(e){return this.throwIfDisposed(),this.cache.delete(e)}clear(){this.throwIfDisposed(),this.cache.clear()}}class bl extends wl{constructor(e){super(),this.cache=new Map,this.converter=e??(e=>e)}has(e,t){return this.throwIfDisposed(),this.cacheForContext(e).has(t)}set(e,t,n){this.throwIfDisposed(),this.cacheForContext(e).set(t,n)}get(e,t,n){this.throwIfDisposed();const r=this.cacheForContext(e);if(r.has(t))return r.get(t);if(n){const e=n();return r.set(t,e),e}}delete(e,t){return this.throwIfDisposed(),this.cacheForContext(e).delete(t)}clear(e){if(this.throwIfDisposed(),e){const t=this.converter(e);this.cache.delete(t)}else this.cache.clear()}cacheForContext(e){const t=this.converter(e);let n=this.cache.get(t);return n||(n=new Map,this.cache.set(t,n)),n}}class Ol extends Ll{constructor(e,t){super(),t?(this.toDispose.push(e.workspace.DocumentBuilder.onBuildPhase(t,()=>{this.clear()})),this.toDispose.push(e.workspace.DocumentBuilder.onUpdate((e,t)=>{t.length>0&&this.clear()}))):this.toDispose.push(e.workspace.DocumentBuilder.onUpdate(()=>{this.clear()}))}}class _l{constructor(e){this.reflection=e.shared.AstReflection,this.nameProvider=e.references.NameProvider,this.descriptions=e.workspace.AstNodeDescriptionProvider,this.indexManager=e.shared.workspace.IndexManager,this.globalScopeCache=new Ol(e.shared)}getScope(e){const t=[],n=this.reflection.getReferenceType(e),r=yt(e.container).precomputedScopes;if(r){let i=e.container;do{const e=r.get(i);e.length>0&&t.push(X(e).filter(e=>this.reflection.isSubtype(e.type,n))),i=i.$container}while(i)}let i=this.getGlobalScope(n,e);for(let e=t.length-1;e>=0;e--)i=this.createScope(t[e],i);return i}createScope(e,t,n){return new Cl(X(e),t,n)}createScopeForNodes(e,t,n){const r=X(e).map(e=>{const t=this.nameProvider.getName(e);if(t)return this.descriptions.createDescription(e,t)}).nonNullable();return new Cl(r,t,n)}getGlobalScope(e,t){return this.globalScopeCache.get(e,()=>new Nl(this.indexManager.allElements(e)))}}function Pl(e){return"object"==typeof e&&!!e&&("$ref"in e||"$error"in e)}class Ml{constructor(e){this.ignoreProperties=new Set(["$container","$containerProperty","$containerIndex","$document","$cstNode"]),this.langiumDocuments=e.shared.workspace.LangiumDocuments,this.astNodeLocator=e.workspace.AstNodeLocator,this.nameProvider=e.references.NameProvider,this.commentProvider=e.documentation.CommentProvider}serialize(e,t){const n=t??{},r=null==t?void 0:t.replacer,i=(e,t)=>this.replacer(e,t,n),s=r?(e,t)=>r(e,t,i):i;try{return this.currentDocument=yt(e),JSON.stringify(e,s,null==t?void 0:t.space)}finally{this.currentDocument=void 0}}deserialize(e,t){const n=t??{},r=JSON.parse(e);return this.linkNode(r,r,n),r}replacer(e,t,{refText:n,sourceText:r,textRegions:i,comments:s,uriConverter:a}){var o,l,c,u;if(!this.ignoreProperties.has(e)){if(F(t)){const e=t.ref,r=n?t.$refText:void 0;if(e){const n=yt(e);let i="";return this.currentDocument&&this.currentDocument!==n&&(i=a?a(n.uri,t):n.uri.toString()),{$ref:`${i}#${this.astNodeLocator.getAstNodePath(e)}`,$refText:r}}return{$error:null!==(l=null===(o=t.error)||void 0===o?void 0:o.message)&&void 0!==l?l:"Could not resolve reference",$refText:r}}if(U(t)){let n;if(i&&(n=this.addAstNodeRegionWithAssignmentsTo(Object.assign({},t)),(!e||t.$document)&&null!=n&&n.$textRegion&&(n.$textRegion.documentURI=null===(c=this.currentDocument)||void 0===c?void 0:c.uri.toString())),r&&!e&&(n??(n=Object.assign({},t)),n.$sourceText=null===(u=t.$cstNode)||void 0===u?void 0:u.text),s){n??(n=Object.assign({},t));const e=this.commentProvider.getComment(t);e&&(n.$comment=e.replace(/\r/g,""))}return n??t}return t}}addAstNodeRegionWithAssignmentsTo(e){const t=e=>({offset:e.offset,end:e.end,length:e.length,range:e.range});if(e.$cstNode){const n=(e.$textRegion=t(e.$cstNode)).assignments={};return Object.keys(e).filter(e=>!e.startsWith("$")).forEach(r=>{const i=function(e,t){return e&&t?qt(e,t,e.astNode,!0):[]}(e.$cstNode,r).map(t);0!==i.length&&(n[r]=i)}),e}}linkNode(e,t,n,r,i,s){for(const[r,i]of Object.entries(e))if(Array.isArray(i))for(let s=0;s<i.length;s++){const a=i[s];Pl(a)?i[s]=this.reviveReference(e,r,t,a,n):U(a)&&this.linkNode(a,t,n,e,r,s)}else Pl(i)?e[r]=this.reviveReference(e,r,t,i,n):U(i)&&this.linkNode(i,t,n,e,r);const a=e;a.$container=r,a.$containerProperty=i,a.$containerIndex=s}reviveReference(e,t,n,r,i){let s=r.$refText,a=r.$error;if(r.$ref){const e=this.getRefNode(n,r.$ref,i.uriConverter);if(U(e))return s||(s=this.nameProvider.getName(e)),{$refText:s??"",ref:e};a=e}if(a){const n={$refText:s??""};return n.error={container:e,property:t,message:a,reference:n},n}}getRefNode(e,t,n){try{const r=t.indexOf("#");if(0===r)return this.astNodeLocator.getAstNode(e,t.substring(1))||"Could not resolve path: "+t;if(r<0){const e=n?n(t):ml.parse(t),r=this.langiumDocuments.getDocument(e);return r?r.parseResult.value:"Could not find document for URI: "+t}const i=n?n(t.substring(0,r)):ml.parse(t.substring(0,r)),s=this.langiumDocuments.getDocument(i);return s?r===t.length-1?s.parseResult.value:this.astNodeLocator.getAstNode(s.parseResult.value,t.substring(r+1))||"Could not resolve URI: "+t:"Could not find document for URI: "+t}catch(e){return String(e)}}}class Dl{get map(){return this.fileExtensionMap}constructor(e){this.languageIdMap=new Map,this.fileExtensionMap=new Map,this.textDocuments=null==e?void 0:e.workspace.TextDocuments}register(e){const t=e.LanguageMetaData;for(const n of t.fileExtensions)this.fileExtensionMap.has(n)&&console.warn(`The file extension ${n} is used by multiple languages. It is now assigned to '${t.languageId}'.`),this.fileExtensionMap.set(n,e);this.languageIdMap.set(t.languageId,e),1===this.languageIdMap.size?this.singleton=e:this.singleton=void 0}getServices(e){var t,n;if(void 0!==this.singleton)return this.singleton;if(0===this.languageIdMap.size)throw new Error("The service registry is empty. Use `register` to register the services of a language.");const r=null===(n=null===(t=this.textDocuments)||void 0===t?void 0:t.get(e))||void 0===n?void 0:n.languageId;if(void 0!==r){const e=this.languageIdMap.get(r);if(e)return e}const i=yl.extname(e),s=this.fileExtensionMap.get(i);if(!s)throw r?new Error(`The service registry contains no services for the extension '${i}' for language '${r}'.`):new Error(`The service registry contains no services for the extension '${i}'.`);return s}hasServices(e){try{return this.getServices(e),!0}catch{return!1}}get all(){return Array.from(this.languageIdMap.values())}}function Ul(e){return{code:e}}var Fl,Gl;!function(e){e.all=["fast","slow","built-in"]}(Fl||(Fl={}));class Bl{constructor(e){this.entries=new xl,this.entriesBefore=[],this.entriesAfter=[],this.reflection=e.shared.AstReflection}register(e,t=this,n="fast"){if("built-in"===n)throw new Error("The 'built-in' category is reserved for lexer, parser, and linker errors.");for(const[r,i]of Object.entries(e)){const e=i;if(Array.isArray(e))for(const i of e){const e={check:this.wrapValidationException(i,t),category:n};this.addEntry(r,e)}else if("function"==typeof e){const i={check:this.wrapValidationException(e,t),category:n};this.addEntry(r,i)}else ae()}}wrapValidationException(e,t){return async(n,r,i)=>{await this.handleException(()=>e.call(t,n,r,i),"An error occurred during validation",r,n)}}async handleException(e,t,n,r){try{await e()}catch(e){if(il(e))throw e;console.error(`${t}:`,e),e instanceof Error&&e.stack&&console.error(e.stack),n("error",`${t}: ${e instanceof Error?e.message:String(e)}`,{node:r})}}addEntry(e,t){if("AstNode"!==e)for(const n of this.reflection.getAllSubTypes(e))this.entries.add(n,t);else this.entries.add("AstNode",t)}getChecks(e,t){let n=X(this.entries.get(e)).concat(this.entries.get("AstNode"));return t&&(n=n.filter(e=>t.includes(e.category))),n.map(e=>e.check)}registerBeforeDocument(e,t=this){this.entriesBefore.push(this.wrapPreparationException(e,"An error occurred during set-up of the validation",t))}registerAfterDocument(e,t=this){this.entriesAfter.push(this.wrapPreparationException(e,"An error occurred during tear-down of the validation",t))}wrapPreparationException(e,t,n){return async(r,i,s,a)=>{await this.handleException(()=>e.call(n,r,i,s,a),t,i,r)}}get checksBefore(){return this.entriesBefore}get checksAfter(){return this.entriesAfter}}class Kl{constructor(e){this.validationRegistry=e.validation.ValidationRegistry,this.metadata=e.LanguageMetaData}async validateDocument(e,t={},n=tl.CancellationToken.None){const r=e.parseResult,i=[];if(await sl(n),(!t.categories||t.categories.includes("built-in"))&&(this.processLexingErrors(r,i,t),t.stopAfterLexingErrors&&i.some(e=>{var t;return(null===(t=e.data)||void 0===t?void 0:t.code)===Gl.LexingError})||(this.processParsingErrors(r,i,t),t.stopAfterParsingErrors&&i.some(e=>{var t;return(null===(t=e.data)||void 0===t?void 0:t.code)===Gl.ParsingError}))||(this.processLinkingErrors(e,i,t),t.stopAfterLinkingErrors&&i.some(e=>{var t;return(null===(t=e.data)||void 0===t?void 0:t.code)===Gl.LinkingError}))))return i;try{i.push(...await this.validateAst(r.value,t,n))}catch(e){if(il(e))throw e;console.error("An error occurred during validation:",e)}return await sl(n),i}processLexingErrors(e,t,n){var r,i,s;const a=[...e.lexerErrors,...null!==(i=null===(r=e.lexerReport)||void 0===r?void 0:r.diagnostics)&&void 0!==i?i:[]];for(const e of a){const n=null!==(s=e.severity)&&void 0!==s?s:"error",r={severity:jl(n),range:{start:{line:e.line-1,character:e.column-1},end:{line:e.line-1,character:e.column+e.length-1}},message:e.message,data:Hl(n),source:this.getSource()};t.push(r)}}processParsingErrors(e,t,n){for(const n of e.parserErrors){let e;if(isNaN(n.token.startOffset)){if("previousToken"in n){const t=n.previousToken;if(isNaN(t.startOffset)){const t={line:0,character:0};e={start:t,end:t}}else{const n={line:t.endLine-1,character:t.endColumn};e={start:n,end:n}}}}else e=te(n.token);if(e){const r={severity:jl("error"),range:e,message:n.message,data:Ul(Gl.ParsingError),source:this.getSource()};t.push(r)}}}processLinkingErrors(e,t,n){for(const n of e.references){const e=n.error;if(e){const n={node:e.container,property:e.property,index:e.index,data:{code:Gl.LinkingError,containerType:e.container.$type,property:e.property,refText:e.reference.$refText}};t.push(this.toDiagnostic("error",e.message,n))}}}async validateAst(e,t,n=tl.CancellationToken.None){const r=[],i=(e,t,n)=>{r.push(this.toDiagnostic(e,t,n))};return await this.validateAstBefore(e,t,i,n),await this.validateAstNodes(e,t,i,n),await this.validateAstAfter(e,t,i,n),r}async validateAstBefore(e,t,n,r=tl.CancellationToken.None){var i;const s=this.validationRegistry.checksBefore;for(const a of s)await sl(r),await a(e,n,null!==(i=t.categories)&&void 0!==i?i:[],r)}async validateAstNodes(e,t,n,r=tl.CancellationToken.None){await Promise.all($t(e).map(async e=>{await sl(r);const i=this.validationRegistry.getChecks(e.$type,t.categories);for(const t of i)await t(e,n,r)}))}async validateAstAfter(e,t,n,r=tl.CancellationToken.None){var i;const s=this.validationRegistry.checksAfter;for(const a of s)await sl(r),await a(e,n,null!==(i=t.categories)&&void 0!==i?i:[],r)}toDiagnostic(e,t,n){return{message:t,range:Vl(n),severity:jl(e),code:n.code,codeDescription:n.codeDescription,tags:n.tags,relatedInformation:n.relatedInformation,data:n.data,source:this.getSource()}}getSource(){return this.metadata.languageId}}function Vl(e){if(e.range)return e.range;let t;return"string"==typeof e.property?t=Yt(e.node.$cstNode,e.property,e.index):"string"==typeof e.keyword&&(t=function(e,t,n){if(!e)return;const r=function(e,t,n){if(e.astNode!==n)return[];if(nt(e.grammarSource)&&e.grammarSource.value===t)return[e];const r=ee(e).iterator();let i;const s=[];do{if(i=r.next(),!i.done){const e=i.value;e.astNode===n?nt(e.grammarSource)&&e.grammarSource.value===t&&s.push(e):r.prune()}}while(!i.done);return s}(e,t,null==e?void 0:e.astNode);return 0!==r.length?r[n=void 0!==n?Math.max(0,Math.min(n,r.length-1)):0]:void 0}(e.node.$cstNode,e.keyword,e.index)),t??(t=e.node.$cstNode),t?t.range:{start:{line:0,character:0},end:{line:0,character:0}}}function jl(e){switch(e){case"error":return 1;case"warning":return 2;case"info":return 3;case"hint":return 4;default:throw new Error("Invalid diagnostic severity: "+e)}}function Hl(e){switch(e){case"error":return Ul(Gl.LexingError);case"warning":return Ul(Gl.LexingWarning);case"info":return Ul(Gl.LexingInfo);case"hint":return Ul(Gl.LexingHint);default:throw new Error("Invalid diagnostic severity: "+e)}}!function(e){e.LexingError="lexing-error",e.LexingWarning="lexing-warning",e.LexingInfo="lexing-info",e.LexingHint="lexing-hint",e.ParsingError="parsing-error",e.LinkingError="linking-error"}(Gl||(Gl={}));class Wl{constructor(e){this.astNodeLocator=e.workspace.AstNodeLocator,this.nameProvider=e.references.NameProvider}createDescription(e,t,n){const r=n??yt(e);t??(t=this.nameProvider.getName(e));const i=this.astNodeLocator.getAstNodePath(e);if(!t)throw new Error(`Node at path ${i} has no name.`);let s;const a=()=>{var t;return s??(s=ne(null!==(t=this.nameProvider.getNameNode(e))&&void 0!==t?t:e.$cstNode))};return{node:e,name:t,get nameSegment(){return a()},selectionSegment:ne(e.$cstNode),type:e.$type,documentUri:r.uri,path:i}}}class zl{constructor(e){this.nodeLocator=e.workspace.AstNodeLocator}async createDescriptions(e,t=tl.CancellationToken.None){const n=[],r=e.parseResult.value;for(const e of $t(r))await sl(t),At(e).filter(e=>!G(e)).forEach(e=>{const t=this.createDescription(e);t&&n.push(t)});return n}createDescription(e){const t=e.reference.$nodeDescription,n=e.reference.$refNode;if(!t||!n)return;const r=yt(e.container).uri;return{sourceUri:r,sourcePath:this.nodeLocator.getAstNodePath(e.container),targetUri:t.documentUri,targetPath:t.path,segment:ne(n),local:yl.equals(t.documentUri,r)}}}class Yl{constructor(){this.segmentSeparator="/",this.indexSeparator="@"}getAstNodePath(e){if(e.$container){const t=this.getAstNodePath(e.$container),n=this.getPathSegment(e);return t+this.segmentSeparator+n}return""}getPathSegment({$containerProperty:e,$containerIndex:t}){if(!e)throw new Error("Missing '$containerProperty' in AST node.");return void 0!==t?e+this.indexSeparator+t:e}getAstNode(e,t){return t.split(this.segmentSeparator).reduce((e,t)=>{if(!e||0===t.length)return e;const n=t.indexOf(this.indexSeparator);if(n>0){const r=t.substring(0,n),i=parseInt(t.substring(n+1)),s=e[r];return null==s?void 0:s[i]}return e[t]},e)}}var ql,Xl=el();class Ql{constructor(e){this._ready=new al,this.settings={},this.workspaceConfig=!1,this.onConfigurationSectionUpdateEmitter=new Xl.Emitter,this.serviceRegistry=e.ServiceRegistry}get ready(){return this._ready.promise}initialize(e){var t,n;this.workspaceConfig=null!==(n=null===(t=e.capabilities.workspace)||void 0===t?void 0:t.configuration)&&void 0!==n&&n}async initialized(e){if(this.workspaceConfig){if(e.register){const t=this.serviceRegistry.all;e.register({section:t.map(e=>this.toSectionName(e.LanguageMetaData.languageId))})}if(e.fetchConfiguration){const t=this.serviceRegistry.all.map(e=>({section:this.toSectionName(e.LanguageMetaData.languageId)})),n=await e.fetchConfiguration(t);t.forEach((e,t)=>{this.updateSectionConfiguration(e.section,n[t])})}}this._ready.resolve()}updateConfiguration(e){e.settings&&Object.keys(e.settings).forEach(t=>{const n=e.settings[t];this.updateSectionConfiguration(t,n),this.onConfigurationSectionUpdateEmitter.fire({section:t,configuration:n})})}updateSectionConfiguration(e,t){this.settings[e]=t}async getConfiguration(e,t){await this.ready;const n=this.toSectionName(e);if(this.settings[n])return this.settings[n][t]}toSectionName(e){return`${e}`}get onConfigurationSectionUpdate(){return this.onConfigurationSectionUpdateEmitter.event}}!function(e){e.create=function(e){return{dispose:async()=>await e()}}}(ql||(ql={}));class Zl{constructor(e){this.updateBuildOptions={validation:{categories:["built-in","fast"]}},this.updateListeners=[],this.buildPhaseListeners=new xl,this.documentPhaseListeners=new xl,this.buildState=new Map,this.documentBuildWaiters=new Map,this.currentState=Tl.Changed,this.langiumDocuments=e.workspace.LangiumDocuments,this.langiumDocumentFactory=e.workspace.LangiumDocumentFactory,this.textDocuments=e.workspace.TextDocuments,this.indexManager=e.workspace.IndexManager,this.serviceRegistry=e.ServiceRegistry}async build(e,t={},n=tl.CancellationToken.None){var r,i;for(const n of e){const e=n.uri.toString();if(n.state===Tl.Validated){if("boolean"==typeof t.validation&&t.validation)n.state=Tl.IndexedReferences,n.diagnostics=void 0,this.buildState.delete(e);else if("object"==typeof t.validation){const s=this.buildState.get(e),a=null===(r=null==s?void 0:s.result)||void 0===r?void 0:r.validationChecks;if(a){const r=(null!==(i=t.validation.categories)&&void 0!==i?i:Fl.all).filter(e=>!a.includes(e));r.length>0&&(this.buildState.set(e,{completed:!1,options:{validation:Object.assign(Object.assign({},t.validation),{categories:r})},result:s.result}),n.state=Tl.IndexedReferences)}}}else this.buildState.delete(e)}this.currentState=Tl.Changed,await this.emitUpdate(e.map(e=>e.uri),[]),await this.buildDocuments(e,t,n)}async update(e,t,n=tl.CancellationToken.None){this.currentState=Tl.Changed;for(const e of t)this.langiumDocuments.deleteDocument(e),this.buildState.delete(e.toString()),this.indexManager.remove(e);for(const t of e){if(!this.langiumDocuments.invalidateDocument(t)){const e=this.langiumDocumentFactory.fromModel({$type:"INVALID"},t);e.state=Tl.Changed,this.langiumDocuments.addDocument(e)}this.buildState.delete(t.toString())}const r=X(e).concat(t).map(e=>e.toString()).toSet();this.langiumDocuments.all.filter(e=>!r.has(e.uri.toString())&&this.shouldRelink(e,r)).forEach(e=>{this.serviceRegistry.getServices(e.uri).references.Linker.unlink(e),e.state=Math.min(e.state,Tl.ComputedScopes),e.diagnostics=void 0}),await this.emitUpdate(e,t),await sl(n);const i=this.sortDocuments(this.langiumDocuments.all.filter(e=>{var t;return e.state<Tl.Linked||!(null!==(t=this.buildState.get(e.uri.toString()))&&void 0!==t&&t.completed)}).toArray());await this.buildDocuments(i,this.updateBuildOptions,n)}async emitUpdate(e,t){await Promise.all(this.updateListeners.map(n=>n(e,t)))}sortDocuments(e){let t=0,n=e.length-1;for(;t<n;){for(;t<e.length&&this.hasTextDocument(e[t]);)t++;for(;n>=0&&!this.hasTextDocument(e[n]);)n--;t<n&&([e[t],e[n]]=[e[n],e[t]])}return e}hasTextDocument(e){var t;return!(null===(t=this.textDocuments)||void 0===t||!t.get(e.uri))}shouldRelink(e,t){return!!e.references.some(e=>void 0!==e.error)||this.indexManager.isAffected(e,t)}onUpdate(e){return this.updateListeners.push(e),ql.create(()=>{const t=this.updateListeners.indexOf(e);t>=0&&this.updateListeners.splice(t,1)})}async buildDocuments(e,t,n){this.prepareBuild(e,t),await this.runCancelable(e,Tl.Parsed,n,e=>this.langiumDocumentFactory.update(e,n)),await this.runCancelable(e,Tl.IndexedContent,n,e=>this.indexManager.updateContent(e,n)),await this.runCancelable(e,Tl.ComputedScopes,n,async e=>{const t=this.serviceRegistry.getServices(e.uri).references.ScopeComputation;e.precomputedScopes=await t.computeLocalScopes(e,n)}),await this.runCancelable(e,Tl.Linked,n,e=>this.serviceRegistry.getServices(e.uri).references.Linker.link(e,n)),await this.runCancelable(e,Tl.IndexedReferences,n,e=>this.indexManager.updateReferences(e,n));const r=e.filter(e=>this.shouldValidate(e));await this.runCancelable(r,Tl.Validated,n,e=>this.validate(e,n));for(const t of e){const e=this.buildState.get(t.uri.toString());e&&(e.completed=!0)}}prepareBuild(e,t){for(const n of e){const e=n.uri.toString(),r=this.buildState.get(e);(!r||r.completed)&&this.buildState.set(e,{completed:!1,options:t,result:null==r?void 0:r.result})}}async runCancelable(e,t,n,r){const i=e.filter(e=>e.state<t);for(const e of i)await sl(n),await r(e),e.state=t,await this.notifyDocumentPhase(e,t,n);const s=e.filter(e=>e.state===t);await this.notifyBuildPhase(s,t,n),this.currentState=t}onBuildPhase(e,t){return this.buildPhaseListeners.add(e,t),ql.create(()=>{this.buildPhaseListeners.delete(e,t)})}onDocumentPhase(e,t){return this.documentPhaseListeners.add(e,t),ql.create(()=>{this.documentPhaseListeners.delete(e,t)})}waitUntil(e,t,n){let r;if(t&&"path"in t?r=t:n=t,n??(n=tl.CancellationToken.None),r){const t=this.langiumDocuments.getDocument(r);if(t&&t.state>e)return Promise.resolve(r)}return this.currentState>=e?Promise.resolve(void 0):n.isCancellationRequested?Promise.reject(rl):new Promise((t,i)=>{const s=this.onBuildPhase(e,()=>{if(s.dispose(),a.dispose(),r){const e=this.langiumDocuments.getDocument(r);t(null==e?void 0:e.uri)}else t(void 0)}),a=n.onCancellationRequested(()=>{s.dispose(),a.dispose(),i(rl)})})}async notifyDocumentPhase(e,t,n){const r=this.documentPhaseListeners.get(t).slice();for(const t of r)try{await t(e,n)}catch(e){if(!il(e))throw e}}async notifyBuildPhase(e,t,n){if(0===e.length)return;const r=this.buildPhaseListeners.get(t).slice();for(const t of r)await sl(n),await t(e,n)}shouldValidate(e){return!!this.getBuildOptions(e).validation}async validate(e,t){var n,r;const i=this.serviceRegistry.getServices(e.uri).validation.DocumentValidator,s=this.getBuildOptions(e).validation,a="object"==typeof s?s:void 0,o=await i.validateDocument(e,a,t);e.diagnostics?e.diagnostics.push(...o):e.diagnostics=o;const l=this.buildState.get(e.uri.toString());if(l){null!==(n=l.result)&&void 0!==n||(l.result={});const e=null!==(r=null==a?void 0:a.categories)&&void 0!==r?r:Fl.all;l.result.validationChecks?l.result.validationChecks.push(...e):l.result.validationChecks=[...e]}}getBuildOptions(e){var t,n;return null!==(n=null===(t=this.buildState.get(e.uri.toString()))||void 0===t?void 0:t.options)&&void 0!==n?n:{}}}class Jl{constructor(e){this.symbolIndex=new Map,this.symbolByTypeIndex=new bl,this.referenceIndex=new Map,this.documents=e.workspace.LangiumDocuments,this.serviceRegistry=e.ServiceRegistry,this.astReflection=e.AstReflection}findAllReferences(e,t){const n=yt(e).uri,r=[];return this.referenceIndex.forEach(e=>{e.forEach(e=>{yl.equals(e.targetUri,n)&&e.targetPath===t&&r.push(e)})}),X(r)}allElements(e,t){let n=X(this.symbolIndex.keys());return t&&(n=n.filter(e=>!t||t.has(e))),n.map(t=>this.getFileDescriptions(t,e)).flat()}getFileDescriptions(e,t){var n;return t?this.symbolByTypeIndex.get(e,t,()=>{var n;return(null!==(n=this.symbolIndex.get(e))&&void 0!==n?n:[]).filter(e=>this.astReflection.isSubtype(e.type,t))}):null!==(n=this.symbolIndex.get(e))&&void 0!==n?n:[]}remove(e){const t=e.toString();this.symbolIndex.delete(t),this.symbolByTypeIndex.clear(t),this.referenceIndex.delete(t)}async updateContent(e,t=tl.CancellationToken.None){const n=await this.serviceRegistry.getServices(e.uri).references.ScopeComputation.computeExports(e,t),r=e.uri.toString();this.symbolIndex.set(r,n),this.symbolByTypeIndex.clear(r)}async updateReferences(e,t=tl.CancellationToken.None){const n=await this.serviceRegistry.getServices(e.uri).workspace.ReferenceDescriptionProvider.createDescriptions(e,t);this.referenceIndex.set(e.uri.toString(),n)}isAffected(e,t){const n=this.referenceIndex.get(e.uri.toString());return!!n&&n.some(e=>!e.local&&t.has(e.targetUri.toString()))}}class ec{constructor(e){this.initialBuildOptions={},this._ready=new al,this.serviceRegistry=e.ServiceRegistry,this.langiumDocuments=e.workspace.LangiumDocuments,this.documentBuilder=e.workspace.DocumentBuilder,this.fileSystemProvider=e.workspace.FileSystemProvider,this.mutex=e.workspace.WorkspaceLock}get ready(){return this._ready.promise}get workspaceFolders(){return this.folders}initialize(e){var t;this.folders=null!==(t=e.workspaceFolders)&&void 0!==t?t:void 0}initialized(e){return this.mutex.write(e=>{var t;return this.initializeWorkspace(null!==(t=this.folders)&&void 0!==t?t:[],e)})}async initializeWorkspace(e,t=tl.CancellationToken.None){const n=await this.performStartup(e);await sl(t),await this.documentBuilder.build(n,this.initialBuildOptions,t)}async performStartup(e){const t=this.serviceRegistry.all.flatMap(e=>e.LanguageMetaData.fileExtensions),n=[],r=e=>{n.push(e),this.langiumDocuments.hasDocument(e.uri)||this.langiumDocuments.addDocument(e)};return await this.loadAdditionalDocuments(e,r),await Promise.all(e.map(e=>[e,this.getRootFolder(e)]).map(async e=>this.traverseFolder(...e,t,r))),this._ready.resolve(),n}loadAdditionalDocuments(e,t){return Promise.resolve()}getRootFolder(e){return ml.parse(e.uri)}async traverseFolder(e,t,n,r){const i=await this.fileSystemProvider.readDirectory(t);await Promise.all(i.map(async t=>{if(this.includeEntry(e,t,n))if(t.isDirectory)await this.traverseFolder(e,t.uri,n,r);else if(t.isFile){const e=await this.langiumDocuments.getOrCreateDocument(t.uri);r(e)}}))}includeEntry(e,t,n){const r=yl.basename(t.uri);if(r.startsWith("."))return!1;if(t.isDirectory)return"node_modules"!==r&&"out"!==r;if(t.isFile){const e=yl.extname(t.uri);return n.includes(e)}return!1}}class tc{buildUnexpectedCharactersMessage(e,t,n,r,i){return Tr.buildUnexpectedCharactersMessage(e,t,n,r,i)}buildUnableToPopLexerModeMessage(e){return Tr.buildUnableToPopLexerModeMessage(e)}}const nc={mode:"full"};class rc{constructor(e){this.errorMessageProvider=e.parser.LexerErrorMessageProvider,this.tokenBuilder=e.parser.TokenBuilder;const t=this.tokenBuilder.buildTokens(e.Grammar,{caseInsensitive:e.LanguageMetaData.caseInsensitive});this.tokenTypes=this.toTokenTypeDictionary(t);const n=sc(t)?Object.values(t):t,r="production"===e.LanguageMetaData.mode;this.chevrotainLexer=new $r(n,{positionTracking:"full",skipValidations:r,errorMessageProvider:this.errorMessageProvider})}get definition(){return this.tokenTypes}tokenize(e,t=nc){var n,r,i;const s=this.chevrotainLexer.tokenize(e);return{tokens:s.tokens,errors:s.errors,hidden:null!==(n=s.groups.hidden)&&void 0!==n?n:[],report:null===(i=(r=this.tokenBuilder).flushLexingReport)||void 0===i?void 0:i.call(r,e)}}toTokenTypeDictionary(e){if(sc(e))return e;const t=ic(e)?Object.values(e.modes).flat():e,n={};return t.forEach(e=>n[e.name]=e),n}}function ic(e){return e&&"modes"in e&&"defaultMode"in e}function sc(e){return!function(e){return Array.isArray(e)&&(0===e.length||"name"in e[0])}(e)&&!ic(e)}function ac(e){let t="";return t="string"==typeof e?e:e.text,t.split(Ut)}const oc=/\s*(@([\p{L}][\p{L}\p{N}]*)?)/uy,lc=/\{(@[\p{L}][\p{L}\p{N}]*)(\s*)([^\r\n}]+)?\}/gu;function cc(e,t,n,r){const i=[];if(0===e.length){const e=Ys.create(n,r),s=Ys.create(n,r+t.length);i.push({type:"text",content:t,range:qs.create(e,s)})}else{let s=0;for(const a of e){const e=a.index,o=t.substring(s,e);o.length>0&&i.push({type:"text",content:t.substring(s,e),range:qs.create(Ys.create(n,s+r),Ys.create(n,e+r))});let l=o.length+1;const c=a[1];if(i.push({type:"inline-tag",content:c,range:qs.create(Ys.create(n,s+l+r),Ys.create(n,s+l+c.length+r))}),l+=c.length,4===a.length){l+=a[2].length;const e=a[3];i.push({type:"text",content:e,range:qs.create(Ys.create(n,s+l+r),Ys.create(n,s+l+e.length+r))})}else i.push({type:"text",content:"",range:qs.create(Ys.create(n,s+l+r),Ys.create(n,s+l+r))});s=e+a[0].length}const a=t.substring(s);a.length>0&&i.push({type:"text",content:a,range:qs.create(Ys.create(n,s+r),Ys.create(n,s+r+a.length))})}return i}const uc=/\S/,dc=/\s*$/;function hc(e,t){const n=e.substring(t).match(uc);return n?t+n.index:e.length}function fc(e){const t=e.match(dc);if(t&&"number"==typeof t.index)return t.index}function pc(e,t){const n=e.tokens[e.index];return"tag"===n.type?yc(e,!1):"text"===n.type||"inline-tag"===n.type?mc(e):(function(e,t){if(t){const n=new kc("",e.range);"inlines"in t?t.inlines.push(n):t.content.inlines.push(n)}}(n,t),void e.index++)}function mc(e){let t=e.tokens[e.index];const n=t;let r=t;const i=[];for(;t&&"break"!==t.type&&"tag"!==t.type;)i.push(gc(e)),r=t,t=e.tokens[e.index];return new Ac(i,qs.create(n.range.start,r.range.end))}function gc(e){return"inline-tag"===e.tokens[e.index].type?yc(e,!0):Tc(e)}function yc(e,t){const n=e.tokens[e.index++],r=n.content.substring(1),i=e.tokens[e.index];if("text"===(null==i?void 0:i.type)){if(t){const i=Tc(e);return new Ec(r,new Ac([i],i.range),t,qs.create(n.range.start,i.range.end))}{const i=mc(e);return new Ec(r,i,t,qs.create(n.range.start,i.range.end))}}{const e=n.range;return new Ec(r,new Ac([],e),t,e)}}function Tc(e){const t=e.tokens[e.index++];return new kc(t.content,t.range)}function vc(e){if(!e)return vc({start:"/**",end:"*/",line:"*"});const{start:t,end:n,line:r}=e;return{start:Rc(t,!0),end:Rc(n,!1),line:Rc(r,!0)}}function Rc(e,t){if("string"==typeof e||"object"==typeof e){const n="string"==typeof e?jt(e):e.source;return t?new RegExp(`^\\s*${n}`):new RegExp(`\\s*${n}\\s*$`)}return e}class $c{constructor(e,t){this.elements=e,this.range=t}getTag(e){return this.getAllTags().find(t=>t.name===e)}getTags(e){return this.getAllTags().filter(t=>t.name===e)}getAllTags(){return this.elements.filter(e=>"name"in e)}toString(){let e="";for(const t of this.elements)if(0===e.length)e=t.toString();else{const n=t.toString();e+=xc(e)+n}return e.trim()}toMarkdown(e){let t="";for(const n of this.elements)if(0===t.length)t=n.toMarkdown(e);else{const r=n.toMarkdown(e);t+=xc(t)+r}return t.trim()}}class Ec{constructor(e,t,n,r){this.name=e,this.content=t,this.inline=n,this.range=r}toString(){let e=`@${this.name}`;const t=this.content.toString();return 1===this.content.inlines.length?e=`${e} ${t}`:this.content.inlines.length>1&&(e=`${e}\n${t}`),this.inline?`{${e}}`:e}toMarkdown(e){var t,n;return null!==(n=null===(t=null==e?void 0:e.renderTag)||void 0===t?void 0:t.call(e,this))&&void 0!==n?n:this.toMarkdownDefault(e)}toMarkdownDefault(e){const t=this.content.toMarkdown(e);if(this.inline){const n=function(e,t,n){var r,i;if("linkplain"===e||"linkcode"===e||"link"===e){const s=t.indexOf(" ");let a=t;if(s>0){const e=hc(t,s);a=t.substring(e),t=t.substring(0,s)}return("linkcode"===e||"link"===e&&"code"===n.link)&&(a=`\`${a}\``),null!==(i=null===(r=n.renderLink)||void 0===r?void 0:r.call(n,t,a))&&void 0!==i?i:function(e,t){try{return ml.parse(e,!0),`[${t}](${e})`}catch{return e}}(t,a)}}(this.name,t,e??{});if("string"==typeof n)return n}let n="";"italic"===(null==e?void 0:e.tag)||void 0===(null==e?void 0:e.tag)?n="*":"bold"===(null==e?void 0:e.tag)?n="**":"bold-italic"===(null==e?void 0:e.tag)&&(n="***");let r=`${n}@${this.name}${n}`;return 1===this.content.inlines.length?r=`${r} — ${t}`:this.content.inlines.length>1&&(r=`${r}\n${t}`),this.inline?`{${r}}`:r}}class Ac{constructor(e,t){this.inlines=e,this.range=t}toString(){let e="";for(let t=0;t<this.inlines.length;t++){const n=this.inlines[t],r=this.inlines[t+1];e+=n.toString(),r&&r.range.start.line>n.range.start.line&&(e+="\n")}return e}toMarkdown(e){let t="";for(let n=0;n<this.inlines.length;n++){const r=this.inlines[n],i=this.inlines[n+1];t+=r.toMarkdown(e),i&&i.range.start.line>r.range.start.line&&(t+="\n")}return t}}class kc{constructor(e,t){this.text=e,this.range=t}toString(){return this.text}toMarkdown(){return this.text}}function xc(e){return e.endsWith("\n")?"\n":"\n\n"}class Ic{constructor(e){this.indexManager=e.shared.workspace.IndexManager,this.commentProvider=e.documentation.CommentProvider}getDocumentation(e){const t=this.commentProvider.getComment(e);if(t&&function(e){const t=vc(void 0),n=ac(e);if(0===n.length)return!1;const r=n[0],i=n[n.length-1],s=t.start,a=t.end;return!(null==s||!s.exec(r)||null==a||!a.exec(i))}(t))return function(e,t,n){let r,i;"string"==typeof e?(i=t,r=n):(i=e.range.start,r=t),i||(i=Ys.create(0,0));const s=function(e){var t,n,r;const i=[];let s=e.position.line,a=e.position.character;for(let o=0;o<e.lines.length;o++){const l=0===o,c=o===e.lines.length-1;let u=e.lines[o],d=0;if(l&&e.options.start){const n=null===(t=e.options.start)||void 0===t?void 0:t.exec(u);n&&(d=n.index+n[0].length)}else{const t=null===(n=e.options.line)||void 0===n?void 0:n.exec(u);t&&(d=t.index+t[0].length)}if(c){const t=null===(r=e.options.end)||void 0===r?void 0:r.exec(u);t&&(u=u.substring(0,t.index))}if(u=u.substring(0,fc(u)),hc(u,d)>=u.length){if(i.length>0){const e=Ys.create(s,a);i.push({type:"break",content:"",range:qs.create(e,e)})}}else{oc.lastIndex=d;const e=oc.exec(u);if(e){const t=e[0],n=e[1],r=Ys.create(s,a+d),o=Ys.create(s,a+d+t.length);i.push({type:"tag",content:n,range:qs.create(r,o)}),d+=t.length,d=hc(u,d)}if(d<u.length){const e=u.substring(d),t=Array.from(e.matchAll(lc));i.push(...cc(t,e,s,a+d))}}s++,a=0}return i.length>0&&"break"===i[i.length-1].type?i.slice(0,-1):i}({lines:ac(e),position:i,options:vc(r)});return function(e){var t,n,r,i;const s=Ys.create(e.position.line,e.position.character);if(0===e.tokens.length)return new $c([],qs.create(s,s));const a=[];for(;e.index<e.tokens.length;){const t=pc(e,a[a.length-1]);t&&a.push(t)}const o=null!==(n=null===(t=a[0])||void 0===t?void 0:t.range.start)&&void 0!==n?n:s,l=null!==(i=null===(r=a[a.length-1])||void 0===r?void 0:r.range.end)&&void 0!==i?i:s;return new $c(a,qs.create(o,l))}({index:0,tokens:s,position:i})}(t).toMarkdown({renderLink:(t,n)=>this.documentationLinkRenderer(e,t,n),renderTag:t=>this.documentationTagRenderer(e,t)})}documentationLinkRenderer(e,t,n){var r;const i=null!==(r=this.findNameInPrecomputedScopes(e,t))&&void 0!==r?r:this.findNameInGlobalScope(e,t);if(i&&i.nameSegment){const e=i.nameSegment.range.start.line+1,t=i.nameSegment.range.start.character+1;return`[${n}](${i.documentUri.with({fragment:`L${e},${t}`}).toString()})`}}documentationTagRenderer(e,t){}findNameInPrecomputedScopes(e,t){const n=yt(e).precomputedScopes;if(!n)return;let r=e;do{const e=n.get(r).find(e=>e.name===t);if(e)return e;r=r.$container}while(r)}findNameInGlobalScope(e,t){return this.indexManager.allElements().find(e=>e.name===t)}}class Sc{constructor(e){this.grammarConfig=()=>e.parser.GrammarConfig}getComment(e){var t;return function(e){return"string"==typeof e.$comment}(e)?e.$comment:null===(t=function(e,t){if(e){const n=function(e,t=!0){for(;e.container;){const n=e.container;let r=n.content.indexOf(e);for(;r>0;){r--;const e=n.content[r];if(t||!e.hidden)return e}e=n}}(e,!0);if(n&&ie(n,t))return n;if(j(e)){const n=e.content.findIndex(e=>!e.hidden);for(let r=n-1;r>=0;r--){const n=e.content[r];if(ie(n,t))return n}}}}(e.$cstNode,this.grammarConfig().multilineCommentRules))||void 0===t?void 0:t.text}}class Cc{constructor(e){this.syncParser=e.parser.LangiumParser}parse(e,t){return Promise.resolve(this.syncParser.parse(e))}}class Nc{constructor(){this.previousTokenSource=new tl.CancellationTokenSource,this.writeQueue=[],this.readQueue=[],this.done=!0}write(e){this.cancelWrite();const t=(nl=performance.now(),new tl.CancellationTokenSource);return this.previousTokenSource=t,this.enqueue(this.writeQueue,e,t.token)}read(e){return this.enqueue(this.readQueue,e)}enqueue(e,t,n=tl.CancellationToken.None){const r=new al,i={action:t,deferred:r,cancellationToken:n};return e.push(i),this.performNextOperation(),r.promise}async performNextOperation(){if(!this.done)return;const e=[];if(this.writeQueue.length>0)e.push(this.writeQueue.shift());else{if(!(this.readQueue.length>0))return;e.push(...this.readQueue.splice(0,this.readQueue.length))}this.done=!1,await Promise.all(e.map(async({action:e,deferred:t,cancellationToken:n})=>{try{const r=await Promise.resolve().then(()=>e(n));t.resolve(r)}catch(e){il(e)?t.resolve(void 0):t.reject(e)}})),this.done=!0,this.performNextOperation()}cancelWrite(){this.previousTokenSource.cancel()}}class wc{constructor(e){this.grammarElementIdMap=new Il,this.tokenTypeIdMap=new Il,this.grammar=e.Grammar,this.lexer=e.parser.Lexer,this.linker=e.references.Linker}dehydrate(e){return{lexerErrors:e.lexerErrors,lexerReport:e.lexerReport?this.dehydrateLexerReport(e.lexerReport):void 0,parserErrors:e.parserErrors.map(e=>Object.assign(Object.assign({},e),{message:e.message})),value:this.dehydrateAstNode(e.value,this.createDehyrationContext(e.value))}}dehydrateLexerReport(e){return e}createDehyrationContext(e){const t=new Map,n=new Map;for(const n of $t(e))t.set(n,{});if(e.$cstNode)for(const t of ee(e.$cstNode))n.set(t,{});return{astNodes:t,cstNodes:n}}dehydrateAstNode(e,t){const n=t.astNodes.get(e);n.$type=e.$type,n.$containerIndex=e.$containerIndex,n.$containerProperty=e.$containerProperty,void 0!==e.$cstNode&&(n.$cstNode=this.dehydrateCstNode(e.$cstNode,t));for(const[r,i]of Object.entries(e))if(!r.startsWith("$"))if(Array.isArray(i)){const e=[];n[r]=e;for(const n of i)U(n)?e.push(this.dehydrateAstNode(n,t)):F(n)?e.push(this.dehydrateReference(n,t)):e.push(n)}else U(i)?n[r]=this.dehydrateAstNode(i,t):F(i)?n[r]=this.dehydrateReference(i,t):void 0!==i&&(n[r]=i);return n}dehydrateReference(e,t){const n={};return n.$refText=e.$refText,e.$refNode&&(n.$refNode=t.cstNodes.get(e.$refNode)),n}dehydrateCstNode(e,t){const n=t.cstNodes.get(e);return j(e)?n.fullText=e.fullText:n.grammarSource=this.getGrammarElementId(e.grammarSource),n.hidden=e.hidden,n.astNode=t.astNodes.get(e.astNode),K(e)?n.content=e.content.map(e=>this.dehydrateCstNode(e,t)):V(e)&&(n.tokenType=e.tokenType.name,n.offset=e.offset,n.length=e.length,n.startLine=e.range.start.line,n.startColumn=e.range.start.character,n.endLine=e.range.end.line,n.endColumn=e.range.end.character),n}hydrate(e){const t=e.value,n=this.createHydrationContext(t);return"$cstNode"in t&&this.hydrateCstNode(t.$cstNode,n),{lexerErrors:e.lexerErrors,lexerReport:e.lexerReport,parserErrors:e.parserErrors,value:this.hydrateAstNode(t,n)}}createHydrationContext(e){const t=new Map,n=new Map;for(const n of $t(e))t.set(n,{});let r;if(e.$cstNode)for(const t of ee(e.$cstNode)){let e;"fullText"in t?(e=new Ao(t.fullText),r=e):"content"in t?e=new $o:"tokenType"in t&&(e=this.hydrateCstLeafNode(t)),e&&(n.set(t,e),e.root=r)}return{astNodes:t,cstNodes:n}}hydrateAstNode(e,t){const n=t.astNodes.get(e);n.$type=e.$type,n.$containerIndex=e.$containerIndex,n.$containerProperty=e.$containerProperty,e.$cstNode&&(n.$cstNode=t.cstNodes.get(e.$cstNode));for(const[r,i]of Object.entries(e))if(!r.startsWith("$"))if(Array.isArray(i)){const e=[];n[r]=e;for(const s of i)U(s)?e.push(this.setParent(this.hydrateAstNode(s,t),n)):F(s)?e.push(this.hydrateReference(s,n,r,t)):e.push(s)}else U(i)?n[r]=this.setParent(this.hydrateAstNode(i,t),n):F(i)?n[r]=this.hydrateReference(i,n,r,t):void 0!==i&&(n[r]=i);return n}setParent(e,t){return e.$container=t,e}hydrateReference(e,t,n,r){return this.linker.buildReference(t,n,r.cstNodes.get(e.$refNode),e.$refText)}hydrateCstNode(e,t,n=0){const r=t.cstNodes.get(e);if("number"==typeof e.grammarSource&&(r.grammarSource=this.getGrammarElement(e.grammarSource)),r.astNode=t.astNodes.get(e.astNode),K(r))for(const i of e.content){const e=this.hydrateCstNode(i,t,n++);r.content.push(e)}return r}hydrateCstLeafNode(e){const t=this.getTokenType(e.tokenType),n=e.offset,r=e.length,i=e.startLine,s=e.startColumn,a=e.endLine,o=e.endColumn,l=e.hidden;return new Ro(n,r,{start:{line:i,character:s},end:{line:a,character:o}},t,l)}getTokenType(e){return this.lexer.definition[e]}getGrammarElementId(e){if(e)return 0===this.grammarElementIdMap.size&&this.createGrammarElementIdMap(),this.grammarElementIdMap.get(e)}getGrammarElement(e){return 0===this.grammarElementIdMap.size&&this.createGrammarElementIdMap(),this.grammarElementIdMap.getKey(e)}createGrammarElementIdMap(){let e=0;for(const t of $t(this.grammar))fe(t)&&this.grammarElementIdMap.set(t,e++)}}function Lc(e){return{documentation:{CommentProvider:e=>new Sc(e),DocumentationProvider:e=>new Ic(e)},parser:{AsyncParser:e=>new Cc(e),GrammarConfig:e=>function(e){const t=[],n=e.Grammar;for(const e of n.rules)Ue(e)&&zt(e)&&Bt(nn(e))&&t.push(e.name);return{multilineCommentRules:t,nameRegexp:re}}(e),LangiumParser:e=>function(e){const t=function(e){const t=e.Grammar,n=e.parser.Lexer;return _o(t,new Co(e),n.definition)}(e);return t.finalize(),t}(e),CompletionParser:e=>function(e){const t=e.Grammar,n=e.parser.Lexer,r=new Lo(e);return _o(t,r,n.definition),r.finalize(),r}(e),ValueConverter:()=>new Vo,TokenBuilder:()=>new Ko,Lexer:e=>new rc(e),ParserErrorMessageProvider:()=>new wo,LexerErrorMessageProvider:()=>new tc},workspace:{AstNodeLocator:()=>new Yl,AstNodeDescriptionProvider:e=>new Wl(e),ReferenceDescriptionProvider:e=>new zl(e)},references:{Linker:e=>new El(e),NameProvider:()=>new Al,ScopeProvider:e=>new _l(e),ScopeComputation:e=>new Sl(e),References:e=>new kl(e)},serializer:{Hydrator:e=>new wc(e),JsonSerializer:e=>new Ml(e)},validation:{DocumentValidator:e=>new Kl(e),ValidationRegistry:e=>new Bl(e)},shared:()=>e.shared}}function bc(e){return{ServiceRegistry:e=>new Dl(e),workspace:{LangiumDocuments:e=>new Rl(e),LangiumDocumentFactory:e=>new vl(e),DocumentBuilder:e=>new Zl(e),IndexManager:e=>new Jl(e),WorkspaceManager:e=>new ec(e),FileSystemProvider:t=>e.fileSystemProvider(t),WorkspaceLock:()=>new Nc,ConfigurationProvider:e=>new Ql(e)}}}var Oc;function _c(e,t,n,r,i,s,a,o,l){return Mc([e,t,n,r,i,s,a,o,l].reduce(Fc,{}))}!function(e){e.merge=(e,t)=>Fc(Fc({},e),t)}(Oc||(Oc={}));const Pc=Symbol("isProxy");function Mc(e,t){const n=new Proxy({},{deleteProperty:()=>!1,set:()=>{throw new Error("Cannot set property on injected service container")},get:(r,i)=>i===Pc||Uc(r,i,e,t||n),getOwnPropertyDescriptor:(r,i)=>(Uc(r,i,e,t||n),Object.getOwnPropertyDescriptor(r,i)),has:(t,n)=>n in e,ownKeys:()=>[...Object.getOwnPropertyNames(e)]});return n}const Dc=Symbol();function Uc(e,t,n,r){if(t in e){if(e[t]instanceof Error)throw new Error("Construction failure. Please make sure that your dependencies are constructable.",{cause:e[t]});if(e[t]===Dc)throw new Error('Cycle detected. Please make "'+String(t)+'" lazy. Visit https://langium.org/docs/reference/configuration-services/#resolving-cyclic-dependencies');return e[t]}if(t in n){const i=n[t];e[t]=Dc;try{e[t]="function"==typeof i?i(r):Mc(i,r)}catch(n){throw e[t]=n instanceof Error?n:void 0,n}return e[t]}}function Fc(e,t){if(t)for(const[n,r]of Object.entries(t))if(void 0!==r){const t=e[n];e[n]=null!==t&&null!==r&&"object"==typeof t&&"object"==typeof r?Fc(t,r):r}return e}class Gc{readFile(){throw new Error("No file system is available.")}async readDirectory(){return[]}}const Bc={fileSystemProvider:()=>new Gc},Kc={Grammar:()=>{},LanguageMetaData:()=>({caseInsensitive:!1,fileExtensions:[".langium"],languageId:"langium"})},Vc={AstReflection:()=>new pt};function jc(e){var t;const n=function(){const e=_c(bc(Bc),Vc),t=_c(Lc({shared:e}),Kc);return e.ServiceRegistry.register(t),t}(),r=n.serializer.JsonSerializer.deserialize(e);return n.shared.workspace.LangiumDocumentFactory.fromModel(r,ml.parse(`memory://${null!==(t=r.name)&&void 0!==t?t:"grammar"}.langium`)),r}var Hc=Object.defineProperty,Wc=(e,t)=>Hc(e,"name",{value:t,configurable:!0}),zc="Statement",Yc="Architecture";Wc(function(e){return _u.isInstance(e,Yc)},"isArchitecture");var qc="Axis",Xc="Branch";Wc(function(e){return _u.isInstance(e,Xc)},"isBranch");var Qc="Checkout",Zc="CherryPicking",Jc="ClassDefStatement",eu="Commit";Wc(function(e){return _u.isInstance(e,eu)},"isCommit");var tu="Curve",nu="Edge",ru="Entry",iu="GitGraph";Wc(function(e){return _u.isInstance(e,iu)},"isGitGraph");var su="Group",au="Info";Wc(function(e){return _u.isInstance(e,au)},"isInfo");var ou="Item",lu="Junction",cu="Merge";Wc(function(e){return _u.isInstance(e,cu)},"isMerge");var uu="Option",du="Packet";Wc(function(e){return _u.isInstance(e,du)},"isPacket");var hu="PacketBlock";Wc(function(e){return _u.isInstance(e,hu)},"isPacketBlock");var fu="Pie";Wc(function(e){return _u.isInstance(e,fu)},"isPie");var pu="PieSection";Wc(function(e){return _u.isInstance(e,pu)},"isPieSection");var mu="Radar",gu="Service",yu="Treemap";Wc(function(e){return _u.isInstance(e,yu)},"isTreemap");var Tu,vu,Ru,$u,Eu,Au,ku,xu,Iu,Su,Cu,Nu="TreemapRow",wu="Direction",Lu="Leaf",bu="Section",Ou=(Tu=class extends B{getAllTypes(){return[Yc,qc,Xc,Qc,Zc,Jc,eu,tu,wu,nu,ru,iu,su,au,ou,lu,Lu,cu,uu,du,hu,fu,pu,mu,bu,gu,zc,yu,Nu]}computeIsSubtype(e,t){switch(e){case Xc:case Qc:case Zc:case eu:case cu:return this.isSubtype(zc,t);case wu:return this.isSubtype(iu,t);case Lu:case bu:return this.isSubtype(ou,t);default:return!1}}getReferenceType(e){const t=`${e.container.$type}:${e.property}`;if("Entry:axis"===t)return qc;throw new Error(`${t} is not a valid reference id.`)}getTypeMetaData(e){switch(e){case Yc:return{name:Yc,properties:[{name:"accDescr"},{name:"accTitle"},{name:"edges",defaultValue:[]},{name:"groups",defaultValue:[]},{name:"junctions",defaultValue:[]},{name:"services",defaultValue:[]},{name:"title"}]};case qc:return{name:qc,properties:[{name:"label"},{name:"name"}]};case Xc:return{name:Xc,properties:[{name:"name"},{name:"order"}]};case Qc:return{name:Qc,properties:[{name:"branch"}]};case Zc:return{name:Zc,properties:[{name:"id"},{name:"parent"},{name:"tags",defaultValue:[]}]};case Jc:return{name:Jc,properties:[{name:"className"},{name:"styleText"}]};case eu:return{name:eu,properties:[{name:"id"},{name:"message"},{name:"tags",defaultValue:[]},{name:"type"}]};case tu:return{name:tu,properties:[{name:"entries",defaultValue:[]},{name:"label"},{name:"name"}]};case nu:return{name:nu,properties:[{name:"lhsDir"},{name:"lhsGroup",defaultValue:!1},{name:"lhsId"},{name:"lhsInto",defaultValue:!1},{name:"rhsDir"},{name:"rhsGroup",defaultValue:!1},{name:"rhsId"},{name:"rhsInto",defaultValue:!1},{name:"title"}]};case ru:return{name:ru,properties:[{name:"axis"},{name:"value"}]};case iu:return{name:iu,properties:[{name:"accDescr"},{name:"accTitle"},{name:"statements",defaultValue:[]},{name:"title"}]};case su:return{name:su,properties:[{name:"icon"},{name:"id"},{name:"in"},{name:"title"}]};case au:return{name:au,properties:[{name:"accDescr"},{name:"accTitle"},{name:"title"}]};case ou:return{name:ou,properties:[{name:"classSelector"},{name:"name"}]};case lu:return{name:lu,properties:[{name:"id"},{name:"in"}]};case cu:return{name:cu,properties:[{name:"branch"},{name:"id"},{name:"tags",defaultValue:[]},{name:"type"}]};case uu:return{name:uu,properties:[{name:"name"},{name:"value",defaultValue:!1}]};case du:return{name:du,properties:[{name:"accDescr"},{name:"accTitle"},{name:"blocks",defaultValue:[]},{name:"title"}]};case hu:return{name:hu,properties:[{name:"bits"},{name:"end"},{name:"label"},{name:"start"}]};case fu:return{name:fu,properties:[{name:"accDescr"},{name:"accTitle"},{name:"sections",defaultValue:[]},{name:"showData",defaultValue:!1},{name:"title"}]};case pu:return{name:pu,properties:[{name:"label"},{name:"value"}]};case mu:return{name:mu,properties:[{name:"accDescr"},{name:"accTitle"},{name:"axes",defaultValue:[]},{name:"curves",defaultValue:[]},{name:"options",defaultValue:[]},{name:"title"}]};case gu:return{name:gu,properties:[{name:"icon"},{name:"iconText"},{name:"id"},{name:"in"},{name:"title"}]};case yu:return{name:yu,properties:[{name:"accDescr"},{name:"accTitle"},{name:"title"},{name:"TreemapRows",defaultValue:[]}]};case Nu:return{name:Nu,properties:[{name:"indent"},{name:"item"}]};case wu:return{name:wu,properties:[{name:"accDescr"},{name:"accTitle"},{name:"dir"},{name:"statements",defaultValue:[]},{name:"title"}]};case Lu:return{name:Lu,properties:[{name:"classSelector"},{name:"name"},{name:"value"}]};case bu:return{name:bu,properties:[{name:"classSelector"},{name:"name"}]};default:return{name:e,properties:[]}}}},Wc(Tu,"MermaidAstReflection"),Tu),_u=new Ou,Pu=Wc(()=>vu??(vu=jc('{"$type":"Grammar","isDeclared":true,"name":"Info","imports":[],"rules":[{"$type":"ParserRule","entry":true,"name":"Info","definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@12"},"arguments":[],"cardinality":"*"},{"$type":"Keyword","value":"info"},{"$type":"RuleCall","rule":{"$ref":"#/rules@12"},"arguments":[],"cardinality":"*"},{"$type":"Group","elements":[{"$type":"Keyword","value":"showInfo"},{"$type":"RuleCall","rule":{"$ref":"#/rules@12"},"arguments":[],"cardinality":"*"}],"cardinality":"?"},{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[],"cardinality":"?"}]},"definesHiddenTokens":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","fragment":true,"name":"EOL","dataType":"string","definition":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@12"},"arguments":[],"cardinality":"+"},{"$type":"EndOfFile"}]},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","fragment":true,"name":"TitleAndAccessibilities","definition":{"$type":"Group","elements":[{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"accDescr","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@4"},"arguments":[]}},{"$type":"Assignment","feature":"accTitle","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@5"},"arguments":[]}},{"$type":"Assignment","feature":"title","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[]}}]},{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[]}],"cardinality":"+"},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"TerminalRule","name":"BOOLEAN","type":{"$type":"ReturnType","name":"boolean"},"definition":{"$type":"TerminalAlternatives","elements":[{"$type":"CharacterRange","left":{"$type":"Keyword","value":"true"}},{"$type":"CharacterRange","left":{"$type":"Keyword","value":"false"}}]},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_DESCR","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accDescr(?:[\\\\t ]*:([^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)|\\\\s*{([^}]*)})/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accTitle[\\\\t ]*:(?:[^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*title(?:[\\\\t ][^\\\\n\\\\r]*?(?=%%)|[\\\\t ][^\\\\n\\\\r]*|)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"FLOAT","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"RegexToken","regex":"/[0-9]+\\\\.[0-9]+(?!\\\\.)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"INT","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"RegexToken","regex":"/0|[1-9][0-9]*(?!\\\\.)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"NUMBER","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"TerminalAlternatives","elements":[{"$type":"TerminalRuleCall","rule":{"$ref":"#/rules@7"}},{"$type":"TerminalRuleCall","rule":{"$ref":"#/rules@8"}}]},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"STRING","type":{"$type":"ReturnType","name":"string"},"definition":{"$type":"RegexToken","regex":"/\\"([^\\"\\\\\\\\]|\\\\\\\\.)*\\"|\'([^\'\\\\\\\\]|\\\\\\\\.)*\'/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ID","type":{"$type":"ReturnType","name":"string"},"definition":{"$type":"RegexToken","regex":"/[\\\\w]([-\\\\w]*\\\\w)?/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"NEWLINE","definition":{"$type":"RegexToken","regex":"/\\\\r?\\\\n/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","hidden":true,"name":"WHITESPACE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]+/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"YAML","definition":{"$type":"RegexToken","regex":"/---[\\\\t ]*\\\\r?\\\\n(?:[\\\\S\\\\s]*?\\\\r?\\\\n)?---(?:\\\\r?\\\\n|(?!\\\\S))/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"DIRECTIVE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%{[\\\\S\\\\s]*?}%%(?:\\\\r?\\\\n|(?!\\\\S))/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"SINGLE_LINE_COMMENT","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%[^\\\\n\\\\r]*/"},"fragment":false}],"definesHiddenTokens":false,"hiddenTokens":[],"interfaces":[],"types":[],"usedGrammars":[]}')),"InfoGrammar"),Mu=Wc(()=>Ru??(Ru=jc('{"$type":"Grammar","isDeclared":true,"name":"Packet","imports":[],"rules":[{"$type":"ParserRule","entry":true,"name":"Packet","definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@13"},"arguments":[],"cardinality":"*"},{"$type":"Alternatives","elements":[{"$type":"Keyword","value":"packet"},{"$type":"Keyword","value":"packet-beta"}]},{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@3"},"arguments":[]},{"$type":"Assignment","feature":"blocks","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[]}},{"$type":"RuleCall","rule":{"$ref":"#/rules@13"},"arguments":[]}],"cardinality":"*"}]},"definesHiddenTokens":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"PacketBlock","definition":{"$type":"Group","elements":[{"$type":"Alternatives","elements":[{"$type":"Group","elements":[{"$type":"Assignment","feature":"start","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@9"},"arguments":[]}},{"$type":"Group","elements":[{"$type":"Keyword","value":"-"},{"$type":"Assignment","feature":"end","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@9"},"arguments":[]}}],"cardinality":"?"}]},{"$type":"Group","elements":[{"$type":"Keyword","value":"+"},{"$type":"Assignment","feature":"bits","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@9"},"arguments":[]}}]}]},{"$type":"Keyword","value":":"},{"$type":"Assignment","feature":"label","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@11"},"arguments":[]}},{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","fragment":true,"name":"EOL","dataType":"string","definition":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@13"},"arguments":[],"cardinality":"+"},{"$type":"EndOfFile"}]},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","fragment":true,"name":"TitleAndAccessibilities","definition":{"$type":"Group","elements":[{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"accDescr","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@5"},"arguments":[]}},{"$type":"Assignment","feature":"accTitle","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[]}},{"$type":"Assignment","feature":"title","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@7"},"arguments":[]}}]},{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[]}],"cardinality":"+"},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"TerminalRule","name":"BOOLEAN","type":{"$type":"ReturnType","name":"boolean"},"definition":{"$type":"TerminalAlternatives","elements":[{"$type":"CharacterRange","left":{"$type":"Keyword","value":"true"}},{"$type":"CharacterRange","left":{"$type":"Keyword","value":"false"}}]},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_DESCR","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accDescr(?:[\\\\t ]*:([^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)|\\\\s*{([^}]*)})/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accTitle[\\\\t ]*:(?:[^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*title(?:[\\\\t ][^\\\\n\\\\r]*?(?=%%)|[\\\\t ][^\\\\n\\\\r]*|)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"FLOAT","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"RegexToken","regex":"/[0-9]+\\\\.[0-9]+(?!\\\\.)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"INT","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"RegexToken","regex":"/0|[1-9][0-9]*(?!\\\\.)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"NUMBER","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"TerminalAlternatives","elements":[{"$type":"TerminalRuleCall","rule":{"$ref":"#/rules@8"}},{"$type":"TerminalRuleCall","rule":{"$ref":"#/rules@9"}}]},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"STRING","type":{"$type":"ReturnType","name":"string"},"definition":{"$type":"RegexToken","regex":"/\\"([^\\"\\\\\\\\]|\\\\\\\\.)*\\"|\'([^\'\\\\\\\\]|\\\\\\\\.)*\'/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ID","type":{"$type":"ReturnType","name":"string"},"definition":{"$type":"RegexToken","regex":"/[\\\\w]([-\\\\w]*\\\\w)?/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"NEWLINE","definition":{"$type":"RegexToken","regex":"/\\\\r?\\\\n/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","hidden":true,"name":"WHITESPACE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]+/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"YAML","definition":{"$type":"RegexToken","regex":"/---[\\\\t ]*\\\\r?\\\\n(?:[\\\\S\\\\s]*?\\\\r?\\\\n)?---(?:\\\\r?\\\\n|(?!\\\\S))/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"DIRECTIVE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%{[\\\\S\\\\s]*?}%%(?:\\\\r?\\\\n|(?!\\\\S))/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"SINGLE_LINE_COMMENT","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%[^\\\\n\\\\r]*/"},"fragment":false}],"definesHiddenTokens":false,"hiddenTokens":[],"interfaces":[],"types":[],"usedGrammars":[]}')),"PacketGrammar"),Du=Wc(()=>$u??($u=jc('{"$type":"Grammar","isDeclared":true,"name":"Pie","imports":[],"rules":[{"$type":"ParserRule","entry":true,"name":"Pie","definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@16"},"arguments":[],"cardinality":"*"},{"$type":"Keyword","value":"pie"},{"$type":"Assignment","feature":"showData","operator":"?=","terminal":{"$type":"Keyword","value":"showData"},"cardinality":"?"},{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[]},{"$type":"Assignment","feature":"sections","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[]}},{"$type":"RuleCall","rule":{"$ref":"#/rules@16"},"arguments":[]}],"cardinality":"*"}]},"definesHiddenTokens":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"PieSection","definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"label","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@14"},"arguments":[]}},{"$type":"Keyword","value":":"},{"$type":"Assignment","feature":"value","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@4"},"arguments":[]}},{"$type":"RuleCall","rule":{"$ref":"#/rules@5"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"TerminalRule","name":"FLOAT_PIE","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"RegexToken","regex":"/-?[0-9]+\\\\.[0-9]+(?!\\\\.)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"INT_PIE","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"RegexToken","regex":"/-?(0|[1-9][0-9]*)(?!\\\\.)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"NUMBER_PIE","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"TerminalAlternatives","elements":[{"$type":"TerminalRuleCall","rule":{"$ref":"#/rules@2"}},{"$type":"TerminalRuleCall","rule":{"$ref":"#/rules@3"}}]},"fragment":false,"hidden":false},{"$type":"ParserRule","fragment":true,"name":"EOL","dataType":"string","definition":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@16"},"arguments":[],"cardinality":"+"},{"$type":"EndOfFile"}]},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","fragment":true,"name":"TitleAndAccessibilities","definition":{"$type":"Group","elements":[{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"accDescr","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@8"},"arguments":[]}},{"$type":"Assignment","feature":"accTitle","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@9"},"arguments":[]}},{"$type":"Assignment","feature":"title","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@10"},"arguments":[]}}]},{"$type":"RuleCall","rule":{"$ref":"#/rules@5"},"arguments":[]}],"cardinality":"+"},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"TerminalRule","name":"BOOLEAN","type":{"$type":"ReturnType","name":"boolean"},"definition":{"$type":"TerminalAlternatives","elements":[{"$type":"CharacterRange","left":{"$type":"Keyword","value":"true"}},{"$type":"CharacterRange","left":{"$type":"Keyword","value":"false"}}]},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_DESCR","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accDescr(?:[\\\\t ]*:([^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)|\\\\s*{([^}]*)})/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accTitle[\\\\t ]*:(?:[^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*title(?:[\\\\t ][^\\\\n\\\\r]*?(?=%%)|[\\\\t ][^\\\\n\\\\r]*|)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"FLOAT","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"RegexToken","regex":"/[0-9]+\\\\.[0-9]+(?!\\\\.)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"INT","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"RegexToken","regex":"/0|[1-9][0-9]*(?!\\\\.)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"NUMBER","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"TerminalAlternatives","elements":[{"$type":"TerminalRuleCall","rule":{"$ref":"#/rules@11"}},{"$type":"TerminalRuleCall","rule":{"$ref":"#/rules@12"}}]},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"STRING","type":{"$type":"ReturnType","name":"string"},"definition":{"$type":"RegexToken","regex":"/\\"([^\\"\\\\\\\\]|\\\\\\\\.)*\\"|\'([^\'\\\\\\\\]|\\\\\\\\.)*\'/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ID","type":{"$type":"ReturnType","name":"string"},"definition":{"$type":"RegexToken","regex":"/[\\\\w]([-\\\\w]*\\\\w)?/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"NEWLINE","definition":{"$type":"RegexToken","regex":"/\\\\r?\\\\n/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","hidden":true,"name":"WHITESPACE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]+/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"YAML","definition":{"$type":"RegexToken","regex":"/---[\\\\t ]*\\\\r?\\\\n(?:[\\\\S\\\\s]*?\\\\r?\\\\n)?---(?:\\\\r?\\\\n|(?!\\\\S))/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"DIRECTIVE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%{[\\\\S\\\\s]*?}%%(?:\\\\r?\\\\n|(?!\\\\S))/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"SINGLE_LINE_COMMENT","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%[^\\\\n\\\\r]*/"},"fragment":false}],"definesHiddenTokens":false,"hiddenTokens":[],"interfaces":[],"types":[],"usedGrammars":[]}')),"PieGrammar"),Uu=Wc(()=>Eu??(Eu=jc('{"$type":"Grammar","isDeclared":true,"name":"Architecture","imports":[],"rules":[{"$type":"ParserRule","entry":true,"name":"Architecture","definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@23"},"arguments":[],"cardinality":"*"},{"$type":"Keyword","value":"architecture-beta"},{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@23"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@13"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[]}],"cardinality":"*"}]},"definesHiddenTokens":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","fragment":true,"name":"Statement","definition":{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"groups","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@5"},"arguments":[]}},{"$type":"Assignment","feature":"services","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[]}},{"$type":"Assignment","feature":"junctions","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@7"},"arguments":[]}},{"$type":"Assignment","feature":"edges","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@8"},"arguments":[]}}]},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","fragment":true,"name":"LeftPort","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":":"},{"$type":"Assignment","feature":"lhsDir","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@9"},"arguments":[]}}]},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","fragment":true,"name":"RightPort","definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"rhsDir","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@9"},"arguments":[]}},{"$type":"Keyword","value":":"}]},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","fragment":true,"name":"Arrow","definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[]},{"$type":"Assignment","feature":"lhsInto","operator":"?=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@11"},"arguments":[]},"cardinality":"?"},{"$type":"Alternatives","elements":[{"$type":"Keyword","value":"--"},{"$type":"Group","elements":[{"$type":"Keyword","value":"-"},{"$type":"Assignment","feature":"title","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@29"},"arguments":[]}},{"$type":"Keyword","value":"-"}]}]},{"$type":"Assignment","feature":"rhsInto","operator":"?=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@11"},"arguments":[]},"cardinality":"?"},{"$type":"RuleCall","rule":{"$ref":"#/rules@3"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Group","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"group"},{"$type":"Assignment","feature":"id","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@22"},"arguments":[]}},{"$type":"Assignment","feature":"icon","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@28"},"arguments":[]},"cardinality":"?"},{"$type":"Assignment","feature":"title","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@29"},"arguments":[]},"cardinality":"?"},{"$type":"Group","elements":[{"$type":"Keyword","value":"in"},{"$type":"Assignment","feature":"in","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@22"},"arguments":[]}}],"cardinality":"?"},{"$type":"RuleCall","rule":{"$ref":"#/rules@12"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Service","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"service"},{"$type":"Assignment","feature":"id","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@22"},"arguments":[]}},{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"iconText","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@21"},"arguments":[]}},{"$type":"Assignment","feature":"icon","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@28"},"arguments":[]}}],"cardinality":"?"},{"$type":"Assignment","feature":"title","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@29"},"arguments":[]},"cardinality":"?"},{"$type":"Group","elements":[{"$type":"Keyword","value":"in"},{"$type":"Assignment","feature":"in","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@22"},"arguments":[]}}],"cardinality":"?"},{"$type":"RuleCall","rule":{"$ref":"#/rules@12"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Junction","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"junction"},{"$type":"Assignment","feature":"id","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@22"},"arguments":[]}},{"$type":"Group","elements":[{"$type":"Keyword","value":"in"},{"$type":"Assignment","feature":"in","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@22"},"arguments":[]}}],"cardinality":"?"},{"$type":"RuleCall","rule":{"$ref":"#/rules@12"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Edge","definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"lhsId","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@22"},"arguments":[]}},{"$type":"Assignment","feature":"lhsGroup","operator":"?=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@10"},"arguments":[]},"cardinality":"?"},{"$type":"RuleCall","rule":{"$ref":"#/rules@4"},"arguments":[]},{"$type":"Assignment","feature":"rhsId","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@22"},"arguments":[]}},{"$type":"Assignment","feature":"rhsGroup","operator":"?=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@10"},"arguments":[]},"cardinality":"?"},{"$type":"RuleCall","rule":{"$ref":"#/rules@12"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"TerminalRule","name":"ARROW_DIRECTION","definition":{"$type":"TerminalAlternatives","elements":[{"$type":"TerminalAlternatives","elements":[{"$type":"TerminalAlternatives","elements":[{"$type":"CharacterRange","left":{"$type":"Keyword","value":"L"}},{"$type":"CharacterRange","left":{"$type":"Keyword","value":"R"}}]},{"$type":"CharacterRange","left":{"$type":"Keyword","value":"T"}}]},{"$type":"CharacterRange","left":{"$type":"Keyword","value":"B"}}]},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ARROW_GROUP","definition":{"$type":"RegexToken","regex":"/\\\\{group\\\\}/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ARROW_INTO","definition":{"$type":"RegexToken","regex":"/<|>/"},"fragment":false,"hidden":false},{"$type":"ParserRule","fragment":true,"name":"EOL","dataType":"string","definition":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@23"},"arguments":[],"cardinality":"+"},{"$type":"EndOfFile"}]},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","fragment":true,"name":"TitleAndAccessibilities","definition":{"$type":"Group","elements":[{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"accDescr","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@15"},"arguments":[]}},{"$type":"Assignment","feature":"accTitle","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@16"},"arguments":[]}},{"$type":"Assignment","feature":"title","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}}]},{"$type":"RuleCall","rule":{"$ref":"#/rules@12"},"arguments":[]}],"cardinality":"+"},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"TerminalRule","name":"BOOLEAN","type":{"$type":"ReturnType","name":"boolean"},"definition":{"$type":"TerminalAlternatives","elements":[{"$type":"CharacterRange","left":{"$type":"Keyword","value":"true"}},{"$type":"CharacterRange","left":{"$type":"Keyword","value":"false"}}]},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_DESCR","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accDescr(?:[\\\\t ]*:([^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)|\\\\s*{([^}]*)})/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accTitle[\\\\t ]*:(?:[^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*title(?:[\\\\t ][^\\\\n\\\\r]*?(?=%%)|[\\\\t ][^\\\\n\\\\r]*|)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"FLOAT","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"RegexToken","regex":"/[0-9]+\\\\.[0-9]+(?!\\\\.)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"INT","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"RegexToken","regex":"/0|[1-9][0-9]*(?!\\\\.)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"NUMBER","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"TerminalAlternatives","elements":[{"$type":"TerminalRuleCall","rule":{"$ref":"#/rules@18"}},{"$type":"TerminalRuleCall","rule":{"$ref":"#/rules@19"}}]},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"STRING","type":{"$type":"ReturnType","name":"string"},"definition":{"$type":"RegexToken","regex":"/\\"([^\\"\\\\\\\\]|\\\\\\\\.)*\\"|\'([^\'\\\\\\\\]|\\\\\\\\.)*\'/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ID","type":{"$type":"ReturnType","name":"string"},"definition":{"$type":"RegexToken","regex":"/[\\\\w]([-\\\\w]*\\\\w)?/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"NEWLINE","definition":{"$type":"RegexToken","regex":"/\\\\r?\\\\n/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","hidden":true,"name":"WHITESPACE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]+/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"YAML","definition":{"$type":"RegexToken","regex":"/---[\\\\t ]*\\\\r?\\\\n(?:[\\\\S\\\\s]*?\\\\r?\\\\n)?---(?:\\\\r?\\\\n|(?!\\\\S))/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"DIRECTIVE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%{[\\\\S\\\\s]*?}%%(?:\\\\r?\\\\n|(?!\\\\S))/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"SINGLE_LINE_COMMENT","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%[^\\\\n\\\\r]*/"},"fragment":false},{"$type":"TerminalRule","name":"ARCH_ICON","definition":{"$type":"RegexToken","regex":"/\\\\([\\\\w-:]+\\\\)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ARCH_TITLE","definition":{"$type":"RegexToken","regex":"/\\\\[[\\\\w ]+\\\\]/"},"fragment":false,"hidden":false}],"definesHiddenTokens":false,"hiddenTokens":[],"interfaces":[],"types":[],"usedGrammars":[]}')),"ArchitectureGrammar"),Fu=Wc(()=>Au??(Au=jc('{"$type":"Grammar","isDeclared":true,"name":"GitGraph","imports":[],"rules":[{"$type":"ParserRule","entry":true,"name":"GitGraph","definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@19"},"arguments":[],"cardinality":"*"},{"$type":"Alternatives","elements":[{"$type":"Keyword","value":"gitGraph"},{"$type":"Group","elements":[{"$type":"Keyword","value":"gitGraph"},{"$type":"Keyword","value":":"}]},{"$type":"Keyword","value":"gitGraph:"},{"$type":"Group","elements":[{"$type":"Keyword","value":"gitGraph"},{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[]},{"$type":"Keyword","value":":"}]}]},{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@19"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@9"},"arguments":[]},{"$type":"Assignment","feature":"statements","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[]}}],"cardinality":"*"}]},"definesHiddenTokens":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Statement","definition":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@3"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@4"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@5"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@7"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Direction","definition":{"$type":"Assignment","feature":"dir","operator":"=","terminal":{"$type":"Alternatives","elements":[{"$type":"Keyword","value":"LR"},{"$type":"Keyword","value":"TB"},{"$type":"Keyword","value":"BT"}]}},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Commit","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"commit"},{"$type":"Alternatives","elements":[{"$type":"Group","elements":[{"$type":"Keyword","value":"id:"},{"$type":"Assignment","feature":"id","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}}]},{"$type":"Group","elements":[{"$type":"Keyword","value":"msg:","cardinality":"?"},{"$type":"Assignment","feature":"message","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}}]},{"$type":"Group","elements":[{"$type":"Keyword","value":"tag:"},{"$type":"Assignment","feature":"tags","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}}]},{"$type":"Group","elements":[{"$type":"Keyword","value":"type:"},{"$type":"Assignment","feature":"type","operator":"=","terminal":{"$type":"Alternatives","elements":[{"$type":"Keyword","value":"NORMAL"},{"$type":"Keyword","value":"REVERSE"},{"$type":"Keyword","value":"HIGHLIGHT"}]}}]}],"cardinality":"*"},{"$type":"RuleCall","rule":{"$ref":"#/rules@8"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Branch","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"branch"},{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@24"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}]}},{"$type":"Group","elements":[{"$type":"Keyword","value":"order:"},{"$type":"Assignment","feature":"order","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@15"},"arguments":[]}}],"cardinality":"?"},{"$type":"RuleCall","rule":{"$ref":"#/rules@8"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Merge","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"merge"},{"$type":"Assignment","feature":"branch","operator":"=","terminal":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@24"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}]}},{"$type":"Alternatives","elements":[{"$type":"Group","elements":[{"$type":"Keyword","value":"id:"},{"$type":"Assignment","feature":"id","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}}]},{"$type":"Group","elements":[{"$type":"Keyword","value":"tag:"},{"$type":"Assignment","feature":"tags","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}}]},{"$type":"Group","elements":[{"$type":"Keyword","value":"type:"},{"$type":"Assignment","feature":"type","operator":"=","terminal":{"$type":"Alternatives","elements":[{"$type":"Keyword","value":"NORMAL"},{"$type":"Keyword","value":"REVERSE"},{"$type":"Keyword","value":"HIGHLIGHT"}]}}]}],"cardinality":"*"},{"$type":"RuleCall","rule":{"$ref":"#/rules@8"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Checkout","definition":{"$type":"Group","elements":[{"$type":"Alternatives","elements":[{"$type":"Keyword","value":"checkout"},{"$type":"Keyword","value":"switch"}]},{"$type":"Assignment","feature":"branch","operator":"=","terminal":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@24"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}]}},{"$type":"RuleCall","rule":{"$ref":"#/rules@8"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"CherryPicking","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"cherry-pick"},{"$type":"Alternatives","elements":[{"$type":"Group","elements":[{"$type":"Keyword","value":"id:"},{"$type":"Assignment","feature":"id","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}}]},{"$type":"Group","elements":[{"$type":"Keyword","value":"tag:"},{"$type":"Assignment","feature":"tags","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}}]},{"$type":"Group","elements":[{"$type":"Keyword","value":"parent:"},{"$type":"Assignment","feature":"parent","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}}]}],"cardinality":"*"},{"$type":"RuleCall","rule":{"$ref":"#/rules@8"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","fragment":true,"name":"EOL","dataType":"string","definition":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@19"},"arguments":[],"cardinality":"+"},{"$type":"EndOfFile"}]},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","fragment":true,"name":"TitleAndAccessibilities","definition":{"$type":"Group","elements":[{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"accDescr","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@11"},"arguments":[]}},{"$type":"Assignment","feature":"accTitle","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@12"},"arguments":[]}},{"$type":"Assignment","feature":"title","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@13"},"arguments":[]}}]},{"$type":"RuleCall","rule":{"$ref":"#/rules@8"},"arguments":[]}],"cardinality":"+"},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"TerminalRule","name":"BOOLEAN","type":{"$type":"ReturnType","name":"boolean"},"definition":{"$type":"TerminalAlternatives","elements":[{"$type":"CharacterRange","left":{"$type":"Keyword","value":"true"}},{"$type":"CharacterRange","left":{"$type":"Keyword","value":"false"}}]},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_DESCR","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accDescr(?:[\\\\t ]*:([^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)|\\\\s*{([^}]*)})/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accTitle[\\\\t ]*:(?:[^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*title(?:[\\\\t ][^\\\\n\\\\r]*?(?=%%)|[\\\\t ][^\\\\n\\\\r]*|)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"FLOAT","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"RegexToken","regex":"/[0-9]+\\\\.[0-9]+(?!\\\\.)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"INT","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"RegexToken","regex":"/0|[1-9][0-9]*(?!\\\\.)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"NUMBER","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"TerminalAlternatives","elements":[{"$type":"TerminalRuleCall","rule":{"$ref":"#/rules@14"}},{"$type":"TerminalRuleCall","rule":{"$ref":"#/rules@15"}}]},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"STRING","type":{"$type":"ReturnType","name":"string"},"definition":{"$type":"RegexToken","regex":"/\\"([^\\"\\\\\\\\]|\\\\\\\\.)*\\"|\'([^\'\\\\\\\\]|\\\\\\\\.)*\'/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ID","type":{"$type":"ReturnType","name":"string"},"definition":{"$type":"RegexToken","regex":"/[\\\\w]([-\\\\w]*\\\\w)?/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"NEWLINE","definition":{"$type":"RegexToken","regex":"/\\\\r?\\\\n/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","hidden":true,"name":"WHITESPACE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]+/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"YAML","definition":{"$type":"RegexToken","regex":"/---[\\\\t ]*\\\\r?\\\\n(?:[\\\\S\\\\s]*?\\\\r?\\\\n)?---(?:\\\\r?\\\\n|(?!\\\\S))/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"DIRECTIVE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%{[\\\\S\\\\s]*?}%%(?:\\\\r?\\\\n|(?!\\\\S))/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"SINGLE_LINE_COMMENT","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%[^\\\\n\\\\r]*/"},"fragment":false},{"$type":"TerminalRule","name":"REFERENCE","type":{"$type":"ReturnType","name":"string"},"definition":{"$type":"RegexToken","regex":"/\\\\w([-\\\\./\\\\w]*[-\\\\w])?/"},"fragment":false,"hidden":false}],"definesHiddenTokens":false,"hiddenTokens":[],"interfaces":[],"types":[],"usedGrammars":[]}')),"GitGraphGrammar"),Gu=Wc(()=>ku??(ku=jc('{"$type":"Grammar","isDeclared":true,"name":"Radar","imports":[],"rules":[{"$type":"ParserRule","entry":true,"name":"Radar","definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[],"cardinality":"*"},{"$type":"Alternatives","elements":[{"$type":"Keyword","value":"radar-beta"},{"$type":"Keyword","value":"radar-beta:"},{"$type":"Group","elements":[{"$type":"Keyword","value":"radar-beta"},{"$type":"Keyword","value":":"}]}]},{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[],"cardinality":"*"},{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@10"},"arguments":[]},{"$type":"Group","elements":[{"$type":"Keyword","value":"axis"},{"$type":"Assignment","feature":"axes","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[]}},{"$type":"Group","elements":[{"$type":"Keyword","value":","},{"$type":"Assignment","feature":"axes","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[]}}],"cardinality":"*"}]},{"$type":"Group","elements":[{"$type":"Keyword","value":"curve"},{"$type":"Assignment","feature":"curves","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@3"},"arguments":[]}},{"$type":"Group","elements":[{"$type":"Keyword","value":","},{"$type":"Assignment","feature":"curves","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@3"},"arguments":[]}}],"cardinality":"*"}]},{"$type":"Group","elements":[{"$type":"Assignment","feature":"options","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@7"},"arguments":[]}},{"$type":"Group","elements":[{"$type":"Keyword","value":","},{"$type":"Assignment","feature":"options","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@7"},"arguments":[]}}],"cardinality":"*"}]},{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[]}],"cardinality":"*"}]},"definesHiddenTokens":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","fragment":true,"name":"Label","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"["},{"$type":"Assignment","feature":"label","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@18"},"arguments":[]}},{"$type":"Keyword","value":"]"}]},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Axis","definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@19"},"arguments":[]}},{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[],"cardinality":"?"}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Curve","definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@19"},"arguments":[]}},{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[],"cardinality":"?"},{"$type":"Keyword","value":"{"},{"$type":"RuleCall","rule":{"$ref":"#/rules@4"},"arguments":[]},{"$type":"Keyword","value":"}"}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","fragment":true,"name":"Entries","definition":{"$type":"Alternatives","elements":[{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[],"cardinality":"*"},{"$type":"Assignment","feature":"entries","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[]}},{"$type":"Group","elements":[{"$type":"Keyword","value":","},{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[],"cardinality":"*"},{"$type":"Assignment","feature":"entries","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[]}}],"cardinality":"*"},{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[],"cardinality":"*"}]},{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[],"cardinality":"*"},{"$type":"Assignment","feature":"entries","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@5"},"arguments":[]}},{"$type":"Group","elements":[{"$type":"Keyword","value":","},{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[],"cardinality":"*"},{"$type":"Assignment","feature":"entries","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@5"},"arguments":[]}}],"cardinality":"*"},{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[],"cardinality":"*"}]}]},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"DetailedEntry","returnType":{"$ref":"#/interfaces@0"},"definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"axis","operator":"=","terminal":{"$type":"CrossReference","type":{"$ref":"#/rules@2"},"terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@19"},"arguments":[]},"deprecatedSyntax":false}},{"$type":"Keyword","value":":","cardinality":"?"},{"$type":"Assignment","feature":"value","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"NumberEntry","returnType":{"$ref":"#/interfaces@0"},"definition":{"$type":"Assignment","feature":"value","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Option","definition":{"$type":"Alternatives","elements":[{"$type":"Group","elements":[{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"Keyword","value":"showLegend"}},{"$type":"Assignment","feature":"value","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@11"},"arguments":[]}}]},{"$type":"Group","elements":[{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"Keyword","value":"ticks"}},{"$type":"Assignment","feature":"value","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}}]},{"$type":"Group","elements":[{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"Keyword","value":"max"}},{"$type":"Assignment","feature":"value","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}}]},{"$type":"Group","elements":[{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"Keyword","value":"min"}},{"$type":"Assignment","feature":"value","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}}]},{"$type":"Group","elements":[{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"Keyword","value":"graticule"}},{"$type":"Assignment","feature":"value","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@8"},"arguments":[]}}]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"TerminalRule","name":"GRATICULE","type":{"$type":"ReturnType","name":"string"},"definition":{"$type":"TerminalAlternatives","elements":[{"$type":"CharacterRange","left":{"$type":"Keyword","value":"circle"}},{"$type":"CharacterRange","left":{"$type":"Keyword","value":"polygon"}}]},"fragment":false,"hidden":false},{"$type":"ParserRule","fragment":true,"name":"EOL","dataType":"string","definition":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[],"cardinality":"+"},{"$type":"EndOfFile"}]},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","fragment":true,"name":"TitleAndAccessibilities","definition":{"$type":"Group","elements":[{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"accDescr","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@12"},"arguments":[]}},{"$type":"Assignment","feature":"accTitle","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@13"},"arguments":[]}},{"$type":"Assignment","feature":"title","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@14"},"arguments":[]}}]},{"$type":"RuleCall","rule":{"$ref":"#/rules@9"},"arguments":[]}],"cardinality":"+"},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"TerminalRule","name":"BOOLEAN","type":{"$type":"ReturnType","name":"boolean"},"definition":{"$type":"TerminalAlternatives","elements":[{"$type":"CharacterRange","left":{"$type":"Keyword","value":"true"}},{"$type":"CharacterRange","left":{"$type":"Keyword","value":"false"}}]},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_DESCR","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accDescr(?:[\\\\t ]*:([^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)|\\\\s*{([^}]*)})/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accTitle[\\\\t ]*:(?:[^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*title(?:[\\\\t ][^\\\\n\\\\r]*?(?=%%)|[\\\\t ][^\\\\n\\\\r]*|)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"FLOAT","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"RegexToken","regex":"/[0-9]+\\\\.[0-9]+(?!\\\\.)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"INT","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"RegexToken","regex":"/0|[1-9][0-9]*(?!\\\\.)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"NUMBER","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"TerminalAlternatives","elements":[{"$type":"TerminalRuleCall","rule":{"$ref":"#/rules@15"}},{"$type":"TerminalRuleCall","rule":{"$ref":"#/rules@16"}}]},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"STRING","type":{"$type":"ReturnType","name":"string"},"definition":{"$type":"RegexToken","regex":"/\\"([^\\"\\\\\\\\]|\\\\\\\\.)*\\"|\'([^\'\\\\\\\\]|\\\\\\\\.)*\'/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ID","type":{"$type":"ReturnType","name":"string"},"definition":{"$type":"RegexToken","regex":"/[\\\\w]([-\\\\w]*\\\\w)?/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"NEWLINE","definition":{"$type":"RegexToken","regex":"/\\\\r?\\\\n/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","hidden":true,"name":"WHITESPACE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]+/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"YAML","definition":{"$type":"RegexToken","regex":"/---[\\\\t ]*\\\\r?\\\\n(?:[\\\\S\\\\s]*?\\\\r?\\\\n)?---(?:\\\\r?\\\\n|(?!\\\\S))/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"DIRECTIVE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%{[\\\\S\\\\s]*?}%%(?:\\\\r?\\\\n|(?!\\\\S))/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"SINGLE_LINE_COMMENT","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%[^\\\\n\\\\r]*/"},"fragment":false}],"interfaces":[{"$type":"Interface","name":"Entry","attributes":[{"$type":"TypeAttribute","name":"axis","isOptional":true,"type":{"$type":"ReferenceType","referenceType":{"$type":"SimpleType","typeRef":{"$ref":"#/rules@2"}}}},{"$type":"TypeAttribute","name":"value","type":{"$type":"SimpleType","primitiveType":"number"},"isOptional":false}],"superTypes":[]}],"definesHiddenTokens":false,"hiddenTokens":[],"types":[],"usedGrammars":[]}')),"RadarGrammar"),Bu=Wc(()=>xu??(xu=jc('{"$type":"Grammar","isDeclared":true,"name":"Treemap","rules":[{"$type":"ParserRule","fragment":true,"name":"TitleAndAccessibilities","definition":{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"accDescr","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[]}},{"$type":"Assignment","feature":"accTitle","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@3"},"arguments":[]}},{"$type":"Assignment","feature":"title","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@4"},"arguments":[]}}],"cardinality":"+"},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"TerminalRule","name":"BOOLEAN","type":{"$type":"ReturnType","name":"boolean"},"definition":{"$type":"TerminalAlternatives","elements":[{"$type":"CharacterRange","left":{"$type":"Keyword","value":"true"}},{"$type":"CharacterRange","left":{"$type":"Keyword","value":"false"}}]},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_DESCR","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accDescr(?:[\\\\t ]*:([^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)|\\\\s*{([^}]*)})/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accTitle[\\\\t ]*:(?:[^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*title(?:[\\\\t ][^\\\\n\\\\r]*?(?=%%)|[\\\\t ][^\\\\n\\\\r]*|)/"},"fragment":false,"hidden":false},{"$type":"ParserRule","entry":true,"name":"Treemap","returnType":{"$ref":"#/interfaces@4"},"definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[]},{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@0"},"arguments":[]},{"$type":"Assignment","feature":"TreemapRows","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@14"},"arguments":[]}}],"cardinality":"*"}]},"definesHiddenTokens":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"TerminalRule","name":"TREEMAP_KEYWORD","definition":{"$type":"TerminalAlternatives","elements":[{"$type":"CharacterRange","left":{"$type":"Keyword","value":"treemap-beta"}},{"$type":"CharacterRange","left":{"$type":"Keyword","value":"treemap"}}]},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"CLASS_DEF","definition":{"$type":"RegexToken","regex":"/classDef\\\\s+([a-zA-Z_][a-zA-Z0-9_]+)(?:\\\\s+([^;\\\\r\\\\n]*))?(?:;)?/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"STYLE_SEPARATOR","definition":{"$type":"CharacterRange","left":{"$type":"Keyword","value":":::"}},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"SEPARATOR","definition":{"$type":"CharacterRange","left":{"$type":"Keyword","value":":"}},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"COMMA","definition":{"$type":"CharacterRange","left":{"$type":"Keyword","value":","}},"fragment":false,"hidden":false},{"$type":"TerminalRule","hidden":true,"name":"WS","definition":{"$type":"RegexToken","regex":"/[ \\\\t]+/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"ML_COMMENT","definition":{"$type":"RegexToken","regex":"/\\\\%\\\\%[^\\\\n]*/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"NL","definition":{"$type":"RegexToken","regex":"/\\\\r?\\\\n/"},"fragment":false},{"$type":"ParserRule","name":"TreemapRow","definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"indent","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@19"},"arguments":[]},"cardinality":"?"},{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"item","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@16"},"arguments":[]}},{"$type":"RuleCall","rule":{"$ref":"#/rules@15"},"arguments":[]}]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"ClassDef","dataType":"string","definition":{"$type":"RuleCall","rule":{"$ref":"#/rules@7"},"arguments":[]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Item","returnType":{"$ref":"#/interfaces@0"},"definition":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@18"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Section","returnType":{"$ref":"#/interfaces@1"},"definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@23"},"arguments":[]}},{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@8"},"arguments":[]},{"$type":"Assignment","feature":"classSelector","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[]}}],"cardinality":"?"}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Leaf","returnType":{"$ref":"#/interfaces@2"},"definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@23"},"arguments":[]}},{"$type":"RuleCall","rule":{"$ref":"#/rules@19"},"arguments":[],"cardinality":"?"},{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@9"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@10"},"arguments":[]}]},{"$type":"RuleCall","rule":{"$ref":"#/rules@19"},"arguments":[],"cardinality":"?"},{"$type":"Assignment","feature":"value","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@22"},"arguments":[]}},{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@8"},"arguments":[]},{"$type":"Assignment","feature":"classSelector","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[]}}],"cardinality":"?"}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"TerminalRule","name":"INDENTATION","definition":{"$type":"RegexToken","regex":"/[ \\\\t]{1,}/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ID2","definition":{"$type":"RegexToken","regex":"/[a-zA-Z_][a-zA-Z0-9_]*/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"NUMBER2","definition":{"$type":"RegexToken","regex":"/[0-9_\\\\.\\\\,]+/"},"fragment":false,"hidden":false},{"$type":"ParserRule","name":"MyNumber","dataType":"number","definition":{"$type":"RuleCall","rule":{"$ref":"#/rules@21"},"arguments":[]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"TerminalRule","name":"STRING2","definition":{"$type":"RegexToken","regex":"/\\"[^\\"]*\\"|\'[^\']*\'/"},"fragment":false,"hidden":false}],"interfaces":[{"$type":"Interface","name":"Item","attributes":[{"$type":"TypeAttribute","name":"name","type":{"$type":"SimpleType","primitiveType":"string"},"isOptional":false},{"$type":"TypeAttribute","name":"classSelector","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}}],"superTypes":[]},{"$type":"Interface","name":"Section","superTypes":[{"$ref":"#/interfaces@0"}],"attributes":[]},{"$type":"Interface","name":"Leaf","superTypes":[{"$ref":"#/interfaces@0"}],"attributes":[{"$type":"TypeAttribute","name":"value","type":{"$type":"SimpleType","primitiveType":"number"},"isOptional":false}]},{"$type":"Interface","name":"ClassDefStatement","attributes":[{"$type":"TypeAttribute","name":"className","type":{"$type":"SimpleType","primitiveType":"string"},"isOptional":false},{"$type":"TypeAttribute","name":"styleText","type":{"$type":"SimpleType","primitiveType":"string"},"isOptional":false}],"superTypes":[]},{"$type":"Interface","name":"Treemap","attributes":[{"$type":"TypeAttribute","name":"TreemapRows","type":{"$type":"ArrayType","elementType":{"$type":"SimpleType","typeRef":{"$ref":"#/rules@14"}}},"isOptional":false},{"$type":"TypeAttribute","name":"title","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}},{"$type":"TypeAttribute","name":"accTitle","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}},{"$type":"TypeAttribute","name":"accDescr","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}}],"superTypes":[]}],"definesHiddenTokens":false,"hiddenTokens":[],"imports":[],"types":[],"usedGrammars":[],"$comment":"/**\\n * Treemap grammar for Langium\\n * Converted from mindmap grammar\\n *\\n * The ML_COMMENT and NL hidden terminals handle whitespace, comments, and newlines\\n * before the treemap keyword, allowing for empty lines and comments before the\\n * treemap declaration.\\n */"}')),"TreemapGrammar"),Ku={languageId:"info",fileExtensions:[".mmd",".mermaid"],caseInsensitive:!1,mode:"production"},Vu={languageId:"packet",fileExtensions:[".mmd",".mermaid"],caseInsensitive:!1,mode:"production"},ju={languageId:"pie",fileExtensions:[".mmd",".mermaid"],caseInsensitive:!1,mode:"production"},Hu={languageId:"architecture",fileExtensions:[".mmd",".mermaid"],caseInsensitive:!1,mode:"production"},Wu={languageId:"gitGraph",fileExtensions:[".mmd",".mermaid"],caseInsensitive:!1,mode:"production"},zu={languageId:"radar",fileExtensions:[".mmd",".mermaid"],caseInsensitive:!1,mode:"production"},Yu={languageId:"treemap",fileExtensions:[".mmd",".mermaid"],caseInsensitive:!1,mode:"production"},qu={AstReflection:Wc(()=>new Ou,"AstReflection")},Xu={Grammar:Wc(()=>Pu(),"Grammar"),LanguageMetaData:Wc(()=>Ku,"LanguageMetaData"),parser:{}},Qu={Grammar:Wc(()=>Mu(),"Grammar"),LanguageMetaData:Wc(()=>Vu,"LanguageMetaData"),parser:{}},Zu={Grammar:Wc(()=>Du(),"Grammar"),LanguageMetaData:Wc(()=>ju,"LanguageMetaData"),parser:{}},Ju={Grammar:Wc(()=>Uu(),"Grammar"),LanguageMetaData:Wc(()=>Hu,"LanguageMetaData"),parser:{}},ed={Grammar:Wc(()=>Fu(),"Grammar"),LanguageMetaData:Wc(()=>Wu,"LanguageMetaData"),parser:{}},td={Grammar:Wc(()=>Gu(),"Grammar"),LanguageMetaData:Wc(()=>zu,"LanguageMetaData"),parser:{}},nd={Grammar:Wc(()=>Bu(),"Grammar"),LanguageMetaData:Wc(()=>Yu,"LanguageMetaData"),parser:{}},rd={ACC_DESCR:/accDescr(?:[\t ]*:([^\n\r]*)|\s*{([^}]*)})/,ACC_TITLE:/accTitle[\t ]*:([^\n\r]*)/,TITLE:/title([\t ][^\n\r]*|)/},id=(Iu=class extends Vo{runConverter(e,t,n){let r=this.runCommonConverter(e,t,n);return void 0===r&&(r=this.runCustomConverter(e,t,n)),void 0===r?super.runConverter(e,t,n):r}runCommonConverter(e,t,n){const r=rd[e.name];if(void 0===r)return;const i=r.exec(t);if(null!==i){if(void 0!==i[1])return i[1].trim().replace(/[\t ]{2,}/gm," ");if(void 0!==i[2])return i[2].replace(/^\s*/gm,"").replace(/\s+$/gm,"").replace(/[\t ]{2,}/gm," ").replace(/[\n\r]{2,}/gm,"\n")}}},Wc(Iu,"AbstractMermaidValueConverter"),Iu),sd=(Wc(Su=class extends id{runCustomConverter(e,t,n){}},"CommonValueConverter"),Su),ad=(Cu=class extends Ko{constructor(e){super(),this.keywords=new Set(e)}buildKeywordTokens(e,t,n){const r=super.buildKeywordTokens(e,t,n);return r.forEach(e=>{this.keywords.has(e.name)&&void 0!==e.PATTERN&&(e.PATTERN=new RegExp(e.PATTERN.toString()+"(?:(?=%%)|(?!\\S))"))}),r}},Wc(Cu,"AbstractMermaidTokenBuilder"),Cu);Wc(class extends ad{},"CommonTokenBuilder");var od,ld=(Wc(od=class extends ad{constructor(){super(["gitGraph"])}},"GitGraphTokenBuilder"),od),cd={parser:{TokenBuilder:Wc(()=>new ld,"TokenBuilder"),ValueConverter:Wc(()=>new sd,"ValueConverter")}};function ud(e=Bc){const t=_c(bc(e),qu),n=_c(Lc({shared:t}),ed,cd);return t.ServiceRegistry.register(n),{shared:t,GitGraph:n}}Wc(ud,"createGitGraphServices");var dd,hd=(Wc(dd=class extends ad{constructor(){super(["info","showInfo"])}},"InfoTokenBuilder"),dd),fd={parser:{TokenBuilder:Wc(()=>new hd,"TokenBuilder"),ValueConverter:Wc(()=>new sd,"ValueConverter")}};function pd(e=Bc){const t=_c(bc(e),qu),n=_c(Lc({shared:t}),Xu,fd);return t.ServiceRegistry.register(n),{shared:t,Info:n}}Wc(pd,"createInfoServices");var md,gd=(Wc(md=class extends ad{constructor(){super(["packet"])}},"PacketTokenBuilder"),md),yd={parser:{TokenBuilder:Wc(()=>new gd,"TokenBuilder"),ValueConverter:Wc(()=>new sd,"ValueConverter")}};function Td(e=Bc){const t=_c(bc(e),qu),n=_c(Lc({shared:t}),Qu,yd);return t.ServiceRegistry.register(n),{shared:t,Packet:n}}Wc(Td,"createPacketServices");var vd,Rd,$d=(Wc(vd=class extends ad{constructor(){super(["pie","showData"])}},"PieTokenBuilder"),vd),Ed=(Rd=class extends id{runCustomConverter(e,t,n){if("PIE_SECTION_LABEL"===e.name)return t.replace(/"/g,"").trim()}},Wc(Rd,"PieValueConverter"),Rd),Ad={parser:{TokenBuilder:Wc(()=>new $d,"TokenBuilder"),ValueConverter:Wc(()=>new Ed,"ValueConverter")}};function kd(e=Bc){const t=_c(bc(e),qu),n=_c(Lc({shared:t}),Zu,Ad);return t.ServiceRegistry.register(n),{shared:t,Pie:n}}Wc(kd,"createPieServices");var xd,Id,Sd=(Wc(xd=class extends ad{constructor(){super(["architecture"])}},"ArchitectureTokenBuilder"),xd),Cd=(Id=class extends id{runCustomConverter(e,t,n){return"ARCH_ICON"===e.name?t.replace(/[()]/g,"").trim():"ARCH_TEXT_ICON"===e.name?t.replace(/["()]/g,""):"ARCH_TITLE"===e.name?t.replace(/[[\]]/g,"").trim():void 0}},Wc(Id,"ArchitectureValueConverter"),Id),Nd={parser:{TokenBuilder:Wc(()=>new Sd,"TokenBuilder"),ValueConverter:Wc(()=>new Cd,"ValueConverter")}};function wd(e=Bc){const t=_c(bc(e),qu),n=_c(Lc({shared:t}),Ju,Nd);return t.ServiceRegistry.register(n),{shared:t,Architecture:n}}Wc(wd,"createArchitectureServices");var Ld,bd=(Wc(Ld=class extends ad{constructor(){super(["radar-beta"])}},"RadarTokenBuilder"),Ld),Od={parser:{TokenBuilder:Wc(()=>new bd,"TokenBuilder"),ValueConverter:Wc(()=>new sd,"ValueConverter")}};function _d(e=Bc){const t=_c(bc(e),qu),n=_c(Lc({shared:t}),td,Od);return t.ServiceRegistry.register(n),{shared:t,Radar:n}}Wc(_d,"createRadarServices");var Pd,Md,Dd=(Wc(Pd=class extends ad{constructor(){super(["treemap"])}},"TreemapTokenBuilder"),Pd),Ud=/classDef\s+([A-Z_a-z]\w+)(?:\s+([^\n\r;]*))?;?/,Fd=(Md=class extends id{runCustomConverter(e,t,n){if("NUMBER2"===e.name)return parseFloat(t.replace(/,/g,""));if("SEPARATOR"===e.name)return t.substring(1,t.length-1);if("STRING2"===e.name)return t.substring(1,t.length-1);if("INDENTATION"===e.name)return t.length;if("ClassDef"===e.name){if("string"!=typeof t)return t;const e=Ud.exec(t);if(e)return{$type:"ClassDefStatement",className:e[1],styleText:e[2]||void 0}}}},Wc(Md,"TreemapValueConverter"),Md);function Gd(e){const t=e.validation.TreemapValidator,n=e.validation.ValidationRegistry;if(n){const e={Treemap:t.checkSingleRoot.bind(t)};n.register(e,t)}}Wc(Gd,"registerValidationChecks");var Bd,Kd=(Bd=class{checkSingleRoot(e,t){let n;for(const r of e.TreemapRows)r.item&&(void 0===n&&void 0===r.indent?n=0:(void 0===r.indent||void 0!==n&&n>=parseInt(r.indent,10))&&t("error","Multiple root nodes are not allowed in a treemap.",{node:r,property:"item"}))}},Wc(Bd,"TreemapValidator"),Bd),Vd={parser:{TokenBuilder:Wc(()=>new Dd,"TokenBuilder"),ValueConverter:Wc(()=>new Fd,"ValueConverter")},validation:{TreemapValidator:Wc(()=>new Kd,"TreemapValidator")}};function jd(e=Bc){const t=_c(bc(e),qu),n=_c(Lc({shared:t}),nd,Vd);return t.ServiceRegistry.register(n),Gd(n),{shared:t,Treemap:n}}Wc(jd,"createTreemapServices");var Hd={},Wd={info:Wc(async()=>{const{createInfoServices:e}=await n.e(2726).then(n.bind(n,22726)),t=e().Info.parser.LangiumParser;Hd.info=t},"info"),packet:Wc(async()=>{const{createPacketServices:e}=await n.e(2951).then(n.bind(n,32951)),t=e().Packet.parser.LangiumParser;Hd.packet=t},"packet"),pie:Wc(async()=>{const{createPieServices:e}=await n.e(4664).then(n.bind(n,44664)),t=e().Pie.parser.LangiumParser;Hd.pie=t},"pie"),architecture:Wc(async()=>{const{createArchitectureServices:e}=await n.e(5112).then(n.bind(n,85112)),t=e().Architecture.parser.LangiumParser;Hd.architecture=t},"architecture"),gitGraph:Wc(async()=>{const{createGitGraphServices:e}=await n.e(1741).then(n.bind(n,21741)),t=e().GitGraph.parser.LangiumParser;Hd.gitGraph=t},"gitGraph"),radar:Wc(async()=>{const{createRadarServices:e}=await n.e(2443).then(n.bind(n,32443)),t=e().Radar.parser.LangiumParser;Hd.radar=t},"radar"),treemap:Wc(async()=>{const{createTreemapServices:e}=await n.e(1424).then(n.bind(n,41424)),t=e().Treemap.parser.LangiumParser;Hd.treemap=t},"treemap")};async function zd(e,t){const n=Wd[e];if(!n)throw new Error(`Unknown diagram type: ${e}`);Hd[e]||await n();const r=Hd[e].parse(t);if(r.lexerErrors.length>0||r.parserErrors.length>0)throw new qd(r);return r.value}Wc(zd,"parse");var Yd,qd=(Yd=class extends Error{constructor(e){super(`Parsing failed: ${e.lexerErrors.map(e=>e.message).join("\n")} ${e.parserErrors.map(e=>e.message).join("\n")}`),this.result=e}},Wc(Yd,"MermaidParseError"),Yd)}}]);