@brainfish-ai/editor 0.0.1-alpha.2
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.
- package/README.md +3 -0
- package/dist/BrainfishEditor.d.ts +3 -0
- package/dist/apl-CXdQSnD-.js +2 -0
- package/dist/apl-CXdQSnD-.js.map +1 -0
- package/dist/apl-zQnQXYyi.cjs +2 -0
- package/dist/apl-zQnQXYyi.cjs.map +1 -0
- package/dist/asciiarmor-BjFlPGAR.cjs +2 -0
- package/dist/asciiarmor-BjFlPGAR.cjs.map +1 -0
- package/dist/asciiarmor-D5V0T9Cu.js +2 -0
- package/dist/asciiarmor-D5V0T9Cu.js.map +1 -0
- package/dist/asn1-DWPaVWf6.js +2 -0
- package/dist/asn1-DWPaVWf6.js.map +1 -0
- package/dist/asn1-Dn9-fgGr.cjs +2 -0
- package/dist/asn1-Dn9-fgGr.cjs.map +1 -0
- package/dist/asterisk-B46aRdXb.js +2 -0
- package/dist/asterisk-B46aRdXb.js.map +1 -0
- package/dist/asterisk-DIP73UbG.cjs +2 -0
- package/dist/asterisk-DIP73UbG.cjs.map +1 -0
- package/dist/brainfuck-CtZaYBKt.js +2 -0
- package/dist/brainfuck-CtZaYBKt.js.map +1 -0
- package/dist/brainfuck-DNcy2VoQ.cjs +2 -0
- package/dist/brainfuck-DNcy2VoQ.cjs.map +1 -0
- package/dist/clike-CSjUq15U.cjs +2 -0
- package/dist/clike-CSjUq15U.cjs.map +1 -0
- package/dist/clike-D9ynMLA9.js +2 -0
- package/dist/clike-D9ynMLA9.js.map +1 -0
- package/dist/clojure-C7e7OTgK.cjs +2 -0
- package/dist/clojure-C7e7OTgK.cjs.map +1 -0
- package/dist/clojure-DiuoqK-z.js +2 -0
- package/dist/clojure-DiuoqK-z.js.map +1 -0
- package/dist/cmake-DK3UdjBB.cjs +2 -0
- package/dist/cmake-DK3UdjBB.cjs.map +1 -0
- package/dist/cmake-DXn5xaP-.js +2 -0
- package/dist/cmake-DXn5xaP-.js.map +1 -0
- package/dist/cobol-D7gesrhf.cjs +2 -0
- package/dist/cobol-D7gesrhf.cjs.map +1 -0
- package/dist/cobol-stawOqaz.js +2 -0
- package/dist/cobol-stawOqaz.js.map +1 -0
- package/dist/coffeescript-BTDxI-eT.js +2 -0
- package/dist/coffeescript-BTDxI-eT.js.map +1 -0
- package/dist/coffeescript-CMaRvZDo.cjs +2 -0
- package/dist/coffeescript-CMaRvZDo.cjs.map +1 -0
- package/dist/commonlisp-BsK54Tey.cjs +2 -0
- package/dist/commonlisp-BsK54Tey.cjs.map +1 -0
- package/dist/commonlisp-vq6DHwts.js +2 -0
- package/dist/commonlisp-vq6DHwts.js.map +1 -0
- package/dist/crystal-BueyCNDj.cjs +2 -0
- package/dist/crystal-BueyCNDj.cjs.map +1 -0
- package/dist/crystal-CRzZ78HM.js +2 -0
- package/dist/crystal-CRzZ78HM.js.map +1 -0
- package/dist/css-C4GSMmGA.js +2 -0
- package/dist/css-C4GSMmGA.js.map +1 -0
- package/dist/css-DQQ8GO25.cjs +2 -0
- package/dist/css-DQQ8GO25.cjs.map +1 -0
- package/dist/cypher-CX8oWNVh.cjs +2 -0
- package/dist/cypher-CX8oWNVh.cjs.map +1 -0
- package/dist/cypher-gJDei3ni.js +2 -0
- package/dist/cypher-gJDei3ni.js.map +1 -0
- package/dist/d-BShv7fp-.js +2 -0
- package/dist/d-BShv7fp-.js.map +1 -0
- package/dist/d-Cer4WZq7.cjs +2 -0
- package/dist/d-Cer4WZq7.cjs.map +1 -0
- package/dist/diff-DanWUMqA.cjs +2 -0
- package/dist/diff-DanWUMqA.cjs.map +1 -0
- package/dist/diff-UJJ5BM9S.js +2 -0
- package/dist/diff-UJJ5BM9S.js.map +1 -0
- package/dist/dockerfile-D72m9Krh.cjs +2 -0
- package/dist/dockerfile-D72m9Krh.cjs.map +1 -0
- package/dist/dockerfile-DVQ9Q8O9.js +2 -0
- package/dist/dockerfile-DVQ9Q8O9.js.map +1 -0
- package/dist/dtd-DI9Herc-.js +2 -0
- package/dist/dtd-DI9Herc-.js.map +1 -0
- package/dist/dtd-N9E8mrwW.cjs +2 -0
- package/dist/dtd-N9E8mrwW.cjs.map +1 -0
- package/dist/dylan-BmN4EGo8.cjs +2 -0
- package/dist/dylan-BmN4EGo8.cjs.map +1 -0
- package/dist/dylan-DkEP81N9.js +2 -0
- package/dist/dylan-DkEP81N9.js.map +1 -0
- package/dist/ebnf-B-Df8AvO.js +2 -0
- package/dist/ebnf-B-Df8AvO.js.map +1 -0
- package/dist/ebnf-CHmKiAoS.cjs +2 -0
- package/dist/ebnf-CHmKiAoS.cjs.map +1 -0
- package/dist/ecl-DPFc0Uaf.js +2 -0
- package/dist/ecl-DPFc0Uaf.js.map +1 -0
- package/dist/ecl-DjtL7UT3.cjs +2 -0
- package/dist/ecl-DjtL7UT3.cjs.map +1 -0
- package/dist/editor.css +1892 -0
- package/dist/eiffel-DR5c0IrL.js +2 -0
- package/dist/eiffel-DR5c0IrL.js.map +1 -0
- package/dist/eiffel-u8sFjvpJ.cjs +2 -0
- package/dist/eiffel-u8sFjvpJ.cjs.map +1 -0
- package/dist/elm-DJqCmzHQ.cjs +2 -0
- package/dist/elm-DJqCmzHQ.cjs.map +1 -0
- package/dist/elm-DompmV0j.js +2 -0
- package/dist/elm-DompmV0j.js.map +1 -0
- package/dist/erlang-BuqgqA5h.js +2 -0
- package/dist/erlang-BuqgqA5h.js.map +1 -0
- package/dist/erlang-aNM9Wno5.cjs +2 -0
- package/dist/erlang-aNM9Wno5.cjs.map +1 -0
- package/dist/factor-Bk9_H-XT.js +2 -0
- package/dist/factor-Bk9_H-XT.js.map +1 -0
- package/dist/factor-DAjbIl49.cjs +2 -0
- package/dist/factor-DAjbIl49.cjs.map +1 -0
- package/dist/fcl-CVaBTCzQ.js +2 -0
- package/dist/fcl-CVaBTCzQ.js.map +1 -0
- package/dist/fcl-CplLEkwW.cjs +2 -0
- package/dist/fcl-CplLEkwW.cjs.map +1 -0
- package/dist/forth-CqDKyQE2.cjs +2 -0
- package/dist/forth-CqDKyQE2.cjs.map +1 -0
- package/dist/forth-POgR1ypr.js +2 -0
- package/dist/forth-POgR1ypr.js.map +1 -0
- package/dist/fortran-DL7KluxX.js +2 -0
- package/dist/fortran-DL7KluxX.js.map +1 -0
- package/dist/fortran-N3iQ92Ni.cjs +2 -0
- package/dist/fortran-N3iQ92Ni.cjs.map +1 -0
- package/dist/gas-8mz5Q3qN.js +2 -0
- package/dist/gas-8mz5Q3qN.js.map +1 -0
- package/dist/gas-BZkkcdED.cjs +2 -0
- package/dist/gas-BZkkcdED.cjs.map +1 -0
- package/dist/gherkin-B6X1vGSW.js +2 -0
- package/dist/gherkin-B6X1vGSW.js.map +1 -0
- package/dist/gherkin-CxCA0y5R.cjs +2 -0
- package/dist/gherkin-CxCA0y5R.cjs.map +1 -0
- package/dist/groovy-BQvSfgjf.cjs +2 -0
- package/dist/groovy-BQvSfgjf.cjs.map +1 -0
- package/dist/groovy-DnIzCrpZ.js +2 -0
- package/dist/groovy-DnIzCrpZ.js.map +1 -0
- package/dist/haskell-CLQs6EAM.js +2 -0
- package/dist/haskell-CLQs6EAM.js.map +1 -0
- package/dist/haskell-D7NTJ5RY.cjs +2 -0
- package/dist/haskell-D7NTJ5RY.cjs.map +1 -0
- package/dist/haxe-Cd8JQ-kk.cjs +2 -0
- package/dist/haxe-Cd8JQ-kk.cjs.map +1 -0
- package/dist/haxe-D25e-2l-.js +2 -0
- package/dist/haxe-D25e-2l-.js.map +1 -0
- package/dist/http-BKJkqRj4.js +2 -0
- package/dist/http-BKJkqRj4.js.map +1 -0
- package/dist/http-t7fOg_NY.cjs +2 -0
- package/dist/http-t7fOg_NY.cjs.map +1 -0
- package/dist/idl-CMWyLfiW.cjs +2 -0
- package/dist/idl-CMWyLfiW.cjs.map +1 -0
- package/dist/idl-pcmmZuaN.js +2 -0
- package/dist/idl-pcmmZuaN.js.map +1 -0
- package/dist/index-ACxdSjMI.js +2 -0
- package/dist/index-ACxdSjMI.js.map +1 -0
- package/dist/index-B8g-Emd_.cjs +2 -0
- package/dist/index-B8g-Emd_.cjs.map +1 -0
- package/dist/index-B8qgDwc2.cjs +2 -0
- package/dist/index-B8qgDwc2.cjs.map +1 -0
- package/dist/index-BA_fGRsg.cjs +2 -0
- package/dist/index-BA_fGRsg.cjs.map +1 -0
- package/dist/index-BB6ubjey.js +2 -0
- package/dist/index-BB6ubjey.js.map +1 -0
- package/dist/index-BP_HzP4g.cjs +2 -0
- package/dist/index-BP_HzP4g.cjs.map +1 -0
- package/dist/index-BVBmfxRp.js +2 -0
- package/dist/index-BVBmfxRp.js.map +1 -0
- package/dist/index-BWxF9mHQ.js +2 -0
- package/dist/index-BWxF9mHQ.js.map +1 -0
- package/dist/index-B_5Ht033.js +2 -0
- package/dist/index-B_5Ht033.js.map +1 -0
- package/dist/index-BeFrSIhU.js +2 -0
- package/dist/index-BeFrSIhU.js.map +1 -0
- package/dist/index-BfJWuhtD.js +2 -0
- package/dist/index-BfJWuhtD.js.map +1 -0
- package/dist/index-BjVxfywp.cjs +2 -0
- package/dist/index-BjVxfywp.cjs.map +1 -0
- package/dist/index-BrJMv-jH.js +2 -0
- package/dist/index-BrJMv-jH.js.map +1 -0
- package/dist/index-C2hO0yQX.cjs +2 -0
- package/dist/index-C2hO0yQX.cjs.map +1 -0
- package/dist/index-CCnrTHCt.js +2 -0
- package/dist/index-CCnrTHCt.js.map +1 -0
- package/dist/index-CJJ4VsSg.js +2 -0
- package/dist/index-CJJ4VsSg.js.map +1 -0
- package/dist/index-CJfX-kOc.cjs +2 -0
- package/dist/index-CJfX-kOc.cjs.map +1 -0
- package/dist/index-CLd2kktb.js +2 -0
- package/dist/index-CLd2kktb.js.map +1 -0
- package/dist/index-CLgcgbOT.cjs +2 -0
- package/dist/index-CLgcgbOT.cjs.map +1 -0
- package/dist/index-CaI_tf2M.js +2 -0
- package/dist/index-CaI_tf2M.js.map +1 -0
- package/dist/index-Cag-iwMt.js +2 -0
- package/dist/index-Cag-iwMt.js.map +1 -0
- package/dist/index-CdQh0Fyo.cjs +2 -0
- package/dist/index-CdQh0Fyo.cjs.map +1 -0
- package/dist/index-Cdt7DehW.cjs +30 -0
- package/dist/index-Cdt7DehW.cjs.map +1 -0
- package/dist/index-ChoC78fj.cjs +2 -0
- package/dist/index-ChoC78fj.cjs.map +1 -0
- package/dist/index-CnaX07f3.cjs +2 -0
- package/dist/index-CnaX07f3.cjs.map +1 -0
- package/dist/index-CrA_KK1J.cjs +2 -0
- package/dist/index-CrA_KK1J.cjs.map +1 -0
- package/dist/index-D1-a3lpN.cjs +2 -0
- package/dist/index-D1-a3lpN.cjs.map +1 -0
- package/dist/index-D5CLEDVN.js +2 -0
- package/dist/index-D5CLEDVN.js.map +1 -0
- package/dist/index-D7bPdN0E.js +30 -0
- package/dist/index-D7bPdN0E.js.map +1 -0
- package/dist/index-DD3pDFDN.cjs +2 -0
- package/dist/index-DD3pDFDN.cjs.map +1 -0
- package/dist/index-DJuPAZHh.cjs +2 -0
- package/dist/index-DJuPAZHh.cjs.map +1 -0
- package/dist/index-DKdNdnL4.js +2 -0
- package/dist/index-DKdNdnL4.js.map +1 -0
- package/dist/index-DgjCLKdD.cjs +2 -0
- package/dist/index-DgjCLKdD.cjs.map +1 -0
- package/dist/index-DhqL6bag.cjs +2 -0
- package/dist/index-DhqL6bag.cjs.map +1 -0
- package/dist/index-Dqz1jwXo.js +2 -0
- package/dist/index-Dqz1jwXo.js.map +1 -0
- package/dist/index-DvuuGDob.cjs +2 -0
- package/dist/index-DvuuGDob.cjs.map +1 -0
- package/dist/index-HXoeN679.js +2 -0
- package/dist/index-HXoeN679.js.map +1 -0
- package/dist/index-MEXcFr58.cjs +2 -0
- package/dist/index-MEXcFr58.cjs.map +1 -0
- package/dist/index-QYTegilJ.js +2 -0
- package/dist/index-QYTegilJ.js.map +1 -0
- package/dist/index-WCX-tAQC.js +2 -0
- package/dist/index-WCX-tAQC.js.map +1 -0
- package/dist/index-Y2ncXqt9.cjs +2 -0
- package/dist/index-Y2ncXqt9.cjs.map +1 -0
- package/dist/index-a2kYnnvX.cjs +2 -0
- package/dist/index-a2kYnnvX.cjs.map +1 -0
- package/dist/index-fzHicfTR.js +2 -0
- package/dist/index-fzHicfTR.js.map +1 -0
- package/dist/index-g6UtrOym.js +2 -0
- package/dist/index-g6UtrOym.js.map +1 -0
- package/dist/index-gIqivS4c.cjs +2 -0
- package/dist/index-gIqivS4c.cjs.map +1 -0
- package/dist/index-r8ALDJTU.js +2 -0
- package/dist/index-r8ALDJTU.js.map +1 -0
- package/dist/index.cjs.js +2 -0
- package/dist/index.cjs.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -0
- package/dist/javascript-BVaBnk3P.js +2 -0
- package/dist/javascript-BVaBnk3P.js.map +1 -0
- package/dist/javascript-D6Y0eXWo.cjs +2 -0
- package/dist/javascript-D6Y0eXWo.cjs.map +1 -0
- package/dist/julia-BFjC6Od-.cjs +2 -0
- package/dist/julia-BFjC6Od-.cjs.map +1 -0
- package/dist/julia-DjdwvFuI.js +2 -0
- package/dist/julia-DjdwvFuI.js.map +1 -0
- package/dist/livescript-BEKRTOP4.cjs +2 -0
- package/dist/livescript-BEKRTOP4.cjs.map +1 -0
- package/dist/livescript-HO6ttBFx.js +2 -0
- package/dist/livescript-HO6ttBFx.js.map +1 -0
- package/dist/lua-8DXOpKDz.js +2 -0
- package/dist/lua-8DXOpKDz.js.map +1 -0
- package/dist/lua-B3w2r80v.cjs +2 -0
- package/dist/lua-B3w2r80v.cjs.map +1 -0
- package/dist/mathematica-BeWz3n7v.cjs +2 -0
- package/dist/mathematica-BeWz3n7v.cjs.map +1 -0
- package/dist/mathematica-IIbmv7SK.js +2 -0
- package/dist/mathematica-IIbmv7SK.js.map +1 -0
- package/dist/mbox-B-KNExnr.cjs +2 -0
- package/dist/mbox-B-KNExnr.cjs.map +1 -0
- package/dist/mbox-z_N2Mo3d.js +2 -0
- package/dist/mbox-z_N2Mo3d.js.map +1 -0
- package/dist/mirc-DKj7vbBK.cjs +2 -0
- package/dist/mirc-DKj7vbBK.cjs.map +1 -0
- package/dist/mirc-DkvFAiy5.js +2 -0
- package/dist/mirc-DkvFAiy5.js.map +1 -0
- package/dist/mllike-3c2dg9RT.js +2 -0
- package/dist/mllike-3c2dg9RT.js.map +1 -0
- package/dist/mllike-DNBMjfDT.cjs +2 -0
- package/dist/mllike-DNBMjfDT.cjs.map +1 -0
- package/dist/modelica-D0zQ5M5B.cjs +2 -0
- package/dist/modelica-D0zQ5M5B.cjs.map +1 -0
- package/dist/modelica-DSrSSXCg.js +2 -0
- package/dist/modelica-DSrSSXCg.js.map +1 -0
- package/dist/mscgen-B2igx18G.js +2 -0
- package/dist/mscgen-B2igx18G.js.map +1 -0
- package/dist/mscgen-DXB_4N_e.cjs +2 -0
- package/dist/mscgen-DXB_4N_e.cjs.map +1 -0
- package/dist/mumps-DQ_3S9Ud.cjs +2 -0
- package/dist/mumps-DQ_3S9Ud.cjs.map +1 -0
- package/dist/mumps-zvxmGV4l.js +2 -0
- package/dist/mumps-zvxmGV4l.js.map +1 -0
- package/dist/nginx-B4hAVlXN.js +2 -0
- package/dist/nginx-B4hAVlXN.js.map +1 -0
- package/dist/nginx-BxNxyOuV.cjs +2 -0
- package/dist/nginx-BxNxyOuV.cjs.map +1 -0
- package/dist/nsis-Cx8FAvMN.js +2 -0
- package/dist/nsis-Cx8FAvMN.js.map +1 -0
- package/dist/nsis-DPoxhFCA.cjs +2 -0
- package/dist/nsis-DPoxhFCA.cjs.map +1 -0
- package/dist/ntriples-BSwWqoLa.js +2 -0
- package/dist/ntriples-BSwWqoLa.js.map +1 -0
- package/dist/ntriples-D7LF77EX.cjs +2 -0
- package/dist/ntriples-D7LF77EX.cjs.map +1 -0
- package/dist/octave-C3xiZjFR.cjs +2 -0
- package/dist/octave-C3xiZjFR.cjs.map +1 -0
- package/dist/octave-C4hdQ5Hf.js +2 -0
- package/dist/octave-C4hdQ5Hf.js.map +1 -0
- package/dist/oz-hv8iHpBf.cjs +2 -0
- package/dist/oz-hv8iHpBf.cjs.map +1 -0
- package/dist/oz-qQq7irPq.js +2 -0
- package/dist/oz-qQq7irPq.js.map +1 -0
- package/dist/pascal-CafrKXZF.js +2 -0
- package/dist/pascal-CafrKXZF.js.map +1 -0
- package/dist/pascal-Dik6Bdx0.cjs +2 -0
- package/dist/pascal-Dik6Bdx0.cjs.map +1 -0
- package/dist/perl-Dc23MFYf.cjs +2 -0
- package/dist/perl-Dc23MFYf.cjs.map +1 -0
- package/dist/perl-tdMlh9QA.js +2 -0
- package/dist/perl-tdMlh9QA.js.map +1 -0
- package/dist/pig-CwGJVRC4.js +2 -0
- package/dist/pig-CwGJVRC4.js.map +1 -0
- package/dist/pig-DnhgnaAt.cjs +2 -0
- package/dist/pig-DnhgnaAt.cjs.map +1 -0
- package/dist/powershell-D1ly3AHC.js +2 -0
- package/dist/powershell-D1ly3AHC.js.map +1 -0
- package/dist/powershell-DIx6LGo6.cjs +2 -0
- package/dist/powershell-DIx6LGo6.cjs.map +1 -0
- package/dist/properties-C6mOHf2m.cjs +2 -0
- package/dist/properties-C6mOHf2m.cjs.map +1 -0
- package/dist/properties-_nPj978X.js +2 -0
- package/dist/properties-_nPj978X.js.map +1 -0
- package/dist/protobuf-B4y9do6W.js +2 -0
- package/dist/protobuf-B4y9do6W.js.map +1 -0
- package/dist/protobuf-zKe6cAIt.cjs +2 -0
- package/dist/protobuf-zKe6cAIt.cjs.map +1 -0
- package/dist/pug-Dlfivyh-.js +2 -0
- package/dist/pug-Dlfivyh-.js.map +1 -0
- package/dist/pug-fO_wg3KT.cjs +2 -0
- package/dist/pug-fO_wg3KT.cjs.map +1 -0
- package/dist/puppet-BVD6XdcM.cjs +2 -0
- package/dist/puppet-BVD6XdcM.cjs.map +1 -0
- package/dist/puppet-Bc-yJKzi.js +2 -0
- package/dist/puppet-Bc-yJKzi.js.map +1 -0
- package/dist/python-4hVbH2VM.cjs +2 -0
- package/dist/python-4hVbH2VM.cjs.map +1 -0
- package/dist/python-On6Xi21R.js +2 -0
- package/dist/python-On6Xi21R.js.map +1 -0
- package/dist/q-mUfi2b_o.js +2 -0
- package/dist/q-mUfi2b_o.js.map +1 -0
- package/dist/q-xj0roXkX.cjs +2 -0
- package/dist/q-xj0roXkX.cjs.map +1 -0
- package/dist/r-BA4EbLKE.js +2 -0
- package/dist/r-BA4EbLKE.js.map +1 -0
- package/dist/r-D3PcvI1z.cjs +2 -0
- package/dist/r-D3PcvI1z.cjs.map +1 -0
- package/dist/rpm-DI_rRufH.js +2 -0
- package/dist/rpm-DI_rRufH.js.map +1 -0
- package/dist/rpm-en7QUikA.cjs +2 -0
- package/dist/rpm-en7QUikA.cjs.map +1 -0
- package/dist/ruby-B5mrZV-E.cjs +2 -0
- package/dist/ruby-B5mrZV-E.cjs.map +1 -0
- package/dist/ruby-CR-u2WLS.js +2 -0
- package/dist/ruby-CR-u2WLS.js.map +1 -0
- package/dist/sas-Bqaci40L.js +2 -0
- package/dist/sas-Bqaci40L.js.map +1 -0
- package/dist/sas-DihmCBR4.cjs +2 -0
- package/dist/sas-DihmCBR4.cjs.map +1 -0
- package/dist/scheme-D4lhRHzG.cjs +2 -0
- package/dist/scheme-D4lhRHzG.cjs.map +1 -0
- package/dist/scheme-qjP0V5Ag.js +2 -0
- package/dist/scheme-qjP0V5Ag.js.map +1 -0
- package/dist/shell-5Optxxtq.cjs +2 -0
- package/dist/shell-5Optxxtq.cjs.map +1 -0
- package/dist/shell-BLav31RL.js +2 -0
- package/dist/shell-BLav31RL.js.map +1 -0
- package/dist/sieve-r025o_jW.js +2 -0
- package/dist/sieve-r025o_jW.js.map +1 -0
- package/dist/sieve-woNLjsDA.cjs +2 -0
- package/dist/sieve-woNLjsDA.cjs.map +1 -0
- package/dist/simple-mode-5nlGhSi7.cjs +2 -0
- package/dist/simple-mode-5nlGhSi7.cjs.map +1 -0
- package/dist/simple-mode-CjHKX61j.js +2 -0
- package/dist/simple-mode-CjHKX61j.js.map +1 -0
- package/dist/smalltalk-C7J3IyEP.js +2 -0
- package/dist/smalltalk-C7J3IyEP.js.map +1 -0
- package/dist/smalltalk-WUDknFHI.cjs +2 -0
- package/dist/smalltalk-WUDknFHI.cjs.map +1 -0
- package/dist/solr-78MBEUkU.js +2 -0
- package/dist/solr-78MBEUkU.js.map +1 -0
- package/dist/solr-Dv5yQw8C.cjs +2 -0
- package/dist/solr-Dv5yQw8C.cjs.map +1 -0
- package/dist/sparql-BRLJFz69.js +2 -0
- package/dist/sparql-BRLJFz69.js.map +1 -0
- package/dist/sparql-Ne__rGfz.cjs +2 -0
- package/dist/sparql-Ne__rGfz.cjs.map +1 -0
- package/dist/spreadsheet-CGlWr0eM.js +2 -0
- package/dist/spreadsheet-CGlWr0eM.js.map +1 -0
- package/dist/spreadsheet-sA8wKbVn.cjs +2 -0
- package/dist/spreadsheet-sA8wKbVn.cjs.map +1 -0
- package/dist/sql-ByLYq2fX.js +2 -0
- package/dist/sql-ByLYq2fX.js.map +1 -0
- package/dist/sql-YL702_qL.cjs +2 -0
- package/dist/sql-YL702_qL.cjs.map +1 -0
- package/dist/stex-0KIfGD5U.cjs +2 -0
- package/dist/stex-0KIfGD5U.cjs.map +1 -0
- package/dist/stex-BuioYw3P.js +2 -0
- package/dist/stex-BuioYw3P.js.map +1 -0
- package/dist/stylus-Bdo_Aemu.js +2 -0
- package/dist/stylus-Bdo_Aemu.js.map +1 -0
- package/dist/stylus-CaoJxDo0.cjs +2 -0
- package/dist/stylus-CaoJxDo0.cjs.map +1 -0
- package/dist/swift-B_XXVlXX.js +2 -0
- package/dist/swift-B_XXVlXX.js.map +1 -0
- package/dist/swift-D7nDGOwE.cjs +2 -0
- package/dist/swift-D7nDGOwE.cjs.map +1 -0
- package/dist/tcl-B2fODqDH.js +2 -0
- package/dist/tcl-B2fODqDH.js.map +1 -0
- package/dist/tcl-CKXdgq-y.cjs +2 -0
- package/dist/tcl-CKXdgq-y.cjs.map +1 -0
- package/dist/textile-BuVhTOzU.js +2 -0
- package/dist/textile-BuVhTOzU.js.map +1 -0
- package/dist/textile-CCW3yDUP.cjs +2 -0
- package/dist/textile-CCW3yDUP.cjs.map +1 -0
- package/dist/tiddlywiki-BgR6AEZu.js +2 -0
- package/dist/tiddlywiki-BgR6AEZu.js.map +1 -0
- package/dist/tiddlywiki-C-W_icqq.cjs +2 -0
- package/dist/tiddlywiki-C-W_icqq.cjs.map +1 -0
- package/dist/tiki-CI-ztowC.js +2 -0
- package/dist/tiki-CI-ztowC.js.map +1 -0
- package/dist/tiki-DrQIeHRf.cjs +2 -0
- package/dist/tiki-DrQIeHRf.cjs.map +1 -0
- package/dist/toml-BVJm5Fzd.js +2 -0
- package/dist/toml-BVJm5Fzd.js.map +1 -0
- package/dist/toml-CY1HDY9K.cjs +2 -0
- package/dist/toml-CY1HDY9K.cjs.map +1 -0
- package/dist/troff-Ce85hlLp.js +2 -0
- package/dist/troff-Ce85hlLp.js.map +1 -0
- package/dist/troff-Yww0HU2c.cjs +2 -0
- package/dist/troff-Yww0HU2c.cjs.map +1 -0
- package/dist/ttcn-BxnYHtq8.js +2 -0
- package/dist/ttcn-BxnYHtq8.js.map +1 -0
- package/dist/ttcn-D-KkrC_Y.cjs +2 -0
- package/dist/ttcn-D-KkrC_Y.cjs.map +1 -0
- package/dist/ttcn-cfg-CKJxb-l2.js +2 -0
- package/dist/ttcn-cfg-CKJxb-l2.js.map +1 -0
- package/dist/ttcn-cfg-DEW0CUak.cjs +2 -0
- package/dist/ttcn-cfg-DEW0CUak.cjs.map +1 -0
- package/dist/turtle-BkSuIpt-.js +2 -0
- package/dist/turtle-BkSuIpt-.js.map +1 -0
- package/dist/turtle-CNPaIIfW.cjs +2 -0
- package/dist/turtle-CNPaIIfW.cjs.map +1 -0
- package/dist/types.d.ts +14 -0
- package/dist/vb-BHgjm0DN.js +2 -0
- package/dist/vb-BHgjm0DN.js.map +1 -0
- package/dist/vb-CW7t9lKI.cjs +2 -0
- package/dist/vb-CW7t9lKI.cjs.map +1 -0
- package/dist/vbscript-D2Gs3oEd.cjs +2 -0
- package/dist/vbscript-D2Gs3oEd.cjs.map +1 -0
- package/dist/vbscript-VzWlGt02.js +2 -0
- package/dist/vbscript-VzWlGt02.js.map +1 -0
- package/dist/velocity-BdD_26Jv.js +2 -0
- package/dist/velocity-BdD_26Jv.js.map +1 -0
- package/dist/velocity-BpfD1zFY.cjs +2 -0
- package/dist/velocity-BpfD1zFY.cjs.map +1 -0
- package/dist/verilog-C8nH2N0M.js +2 -0
- package/dist/verilog-C8nH2N0M.js.map +1 -0
- package/dist/verilog-CcB4aIua.cjs +2 -0
- package/dist/verilog-CcB4aIua.cjs.map +1 -0
- package/dist/vhdl-9LHG0O1e.cjs +2 -0
- package/dist/vhdl-9LHG0O1e.cjs.map +1 -0
- package/dist/vhdl-CWWH2SUo.js +2 -0
- package/dist/vhdl-CWWH2SUo.js.map +1 -0
- package/dist/webidl-CGwyPRYs.js +2 -0
- package/dist/webidl-CGwyPRYs.js.map +1 -0
- package/dist/webidl-YkXkSuHd.cjs +2 -0
- package/dist/webidl-YkXkSuHd.cjs.map +1 -0
- package/dist/xquery-CVDBqZPY.js +2 -0
- package/dist/xquery-CVDBqZPY.js.map +1 -0
- package/dist/xquery-DwwVyz90.cjs +2 -0
- package/dist/xquery-DwwVyz90.cjs.map +1 -0
- package/dist/yacas-I8QjZlxf.js +2 -0
- package/dist/yacas-I8QjZlxf.js.map +1 -0
- package/dist/yacas-cn_NTwBk.cjs +2 -0
- package/dist/yacas-cn_NTwBk.cjs.map +1 -0
- package/dist/z80-B9lBbT6u.cjs +2 -0
- package/dist/z80-B9lBbT6u.cjs.map +1 -0
- package/dist/z80-DMVFMNEx.js +2 -0
- package/dist/z80-DMVFMNEx.js.map +1 -0
- package/package.json +69 -0
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const O=require("./index-DJuPAZHh.cjs"),Q=require("./index-Cdt7DehW.cjs"),e=new O.ExternalTokenizer((O,Q)=>{for(let e=0,t=O.next;(Q.context&&(t<0||10==t||13==t||47==t&&47==O.peek(e+1))||41==t||125==t)&&O.acceptToken(177),32==t||9==t;)t=O.peek(++e)},{contextual:!0});let t=new Set([95,184,20,12,17,144,145,142,148,13,53,25]);const a=new O.ContextTracker({start:!1,shift:(O,Q)=>179==Q?O:t.has(Q)}),i=Q.styleTags({"func interface struct chan map const type var":Q.tags.definitionKeyword,"import package":Q.tags.moduleKeyword,"switch for go select return break continue goto fallthrough case if else defer":Q.tags.controlKeyword,range:Q.tags.keyword,Bool:Q.tags.bool,String:Q.tags.string,Rune:Q.tags.character,Number:Q.tags.number,Nil:Q.tags.null,VariableName:Q.tags.variableName,DefName:Q.tags.definition(Q.tags.variableName),TypeName:Q.tags.typeName,LabelName:Q.tags.labelName,FieldName:Q.tags.propertyName,"FunctionDecl/DefName":Q.tags.function(Q.tags.definition(Q.tags.variableName)),"TypeSpec/DefName":Q.tags.definition(Q.tags.typeName),"CallExpr/VariableName":Q.tags.function(Q.tags.variableName),LineComment:Q.tags.lineComment,BlockComment:Q.tags.blockComment,LogicOp:Q.tags.logicOperator,ArithOp:Q.tags.arithmeticOperator,BitOp:Q.tags.bitwiseOperator,"DerefOp .":Q.tags.derefOperator,"UpdateOp IncDecOp":Q.tags.updateOperator,CompareOp:Q.tags.compareOperator,"= :=":Q.tags.definitionOperator,"<-":Q.tags.operator,'~ "*"':Q.tags.modifier,"; ,":Q.tags.separator,"... :":Q.tags.punctuation,"( )":Q.tags.paren,"[ ]":Q.tags.squareBracket,"{ }":Q.tags.brace}),n={__proto__:null,package:10,import:18,true:380,false:380,nil:383,struct:48,func:68,interface:78,chan:94,map:118,make:157,new:159,const:204,type:212,var:224,if:236,else:238,switch:242,case:248,default:250,for:260,range:266,go:270,select:274,return:284,break:288,continue:290,goto:292,fallthrough:296,defer:300},X=O.LRParser.deserialize({version:14,states:"!=xO#{QQOOP$SOQOOO&UQTO'#CbO&]QRO'#FlO]QQOOOOQP'#Cn'#CnOOQP'#Co'#CoO&eQQO'#C|O(kQQO'#C{O)]QRO'#GiO+tQQO'#D_OOQP'#Ge'#GeO+{QQO'#GeO.aQTO'#GaO.hQQO'#D`OOQP'#Gm'#GmO.mQRO'#GdO/hQQO'#DgOOQP'#Gd'#GdO/uQQO'#DrO2bQQO'#DsO4QQTO'#GqO,^QTO'#GaO4XQQO'#DxO4^QQO'#D{OOQO'#EQ'#EQOOQO'#ER'#EROOQO'#ES'#ESOOQO'#ET'#ETO4cQQO'#EPO5}QQO'#EPOOQP'#Ga'#GaO6UQQO'#E`O6^QQO'#EcOOQP'#G`'#G`O6cQQO'#EsOOQP'#G_'#G_O&]QRO'#FnOOQO'#Fn'#FnO9QQQO'#G^QOQQOOO&]QROOO9XQQO'#C`O9^QSO'#CdO9lQQO'#C}O9tQQO'#DSO9yQQO'#D[O:kQQO'#CsO:pQQO'#DhO:uQQO'#EeO:}QQO'#EiO;VQQO'#EoO;_QQO'#EuO<uQQO'#ExO<|QQO'#FRO4cQQO'#FWO=WQQO'#FYO=]QRO'#F_O=jQRO'#FaO=uQQO'#FaOOQP'#Fe'#FeO4cQQO'#FgP=zOWO'#C^POOO)CAz)CAzOOQO'#G]'#G]OOQO,5<W,5<WOOQO-E9j-E9jO?TQTO'#CqOOQO'#C|'#C|OOQP,59g,59gO?tQQO'#D_O@fQSO'#FuO@kQQO'#C}O@pQQO'#D[O9XQQO'#FqO@uQRO,5=TOAyQQO,59yOCVQSO,5:[O@kQQO'#C}OCaQQO'#DjOOQP,59^,59^OOQO,5<a,5<aO?tQQO'#DeOOQO,5:e,5:eOOQO-E9s-E9sOOQP,59z,59zOOQP,59|,59|OCqQSO,5:QO(kQQO,5:ROC{QQO,5:RO&]QRO'#FxOOQO'#Fx'#FxOFjQQO'#GpOFwQQO,5:^OF|QQO,5:_OHdQQO,5:`OHlQQO,5:aOHvQRO'#FyOIaQRO,5=]OIuQQO'#DzOOQP,5:d,5:dOOQO'#EV'#EVOOQO'#EW'#EWOOQO'#EX'#EXOOQO'#EZ'#EZOOQO'#E['#E[O4cQQO,5:pO4cQQO,5:pO4cQQO,5:pO4cQQO,5:pO4cQQO,5:pO4cQQO,5:wOOQP,5:x,5:xO?tQQO'#EOOOQP,5:g,5:gOOQP,5:k,5:kO9yQQO,59vO4cQQO,5:zO4cQQO,5:}OI|QRO,5;_OOQO,5<Y,5<YOOQO-E9l-E9lO]QQOOOOQP'#Cb'#CbOOQP,58z,58zOOQP'#Cf'#CfOJWQQO'#CfOJ]QSO'#CkOOQP,59O,59OOJkQQO'#DPOLZQQO,5<UOLbQQO,59iOLsQQO,5<TOMpQQO'#DUOOQP,59n,59nOOQP,59v,59vONfQQO,59vONmQQO'#CwOOQP,59_,59_O?tQQO,5:SONxQRO'#EgO! VQQO'#EhOOQP,5;P,5;PO! |QQO'#EkO!!WQQO'#EnOOQP,5;T,5;TO!!`QRO'#EqO!!mQQO'#ErOOQP,5;Z,5;ZO!!uQTO'#CbO!!|QTO,5;aO&]QRO,5;aO!#WQQO,5;jO!$yQTO,5;dO!%WQQO'#EzOOQP,5;d,5;dO&]QRO,5;dO!%cQSO,5;mO!%mQQO'#E`O!%uQQO'#EcO!%zQQO'#FTO!&UQQO'#FTOOQP,5;m,5;mO!&ZQQO,5;mO!&`QTO,5;rO!&mQQO'#F[OOQP,5;t,5;tO!&xQTO'#GqOOQP,5;y,5;yOOQP'#Et'#EtOOQP,5;{,5;{O!']QTO,5<RPOOO'#Fk'#FkP!'jOWO,58xPOOO,58x,58xO!'uQQO,59yO!'zQQO'#GgOOQP,59i,59iO(kQQO,59vOOQP,5<],5<]OOQP-E9o-E9oOOQP1G/e1G/eOOQP1G/v1G/vO!([QSO'#DlO!(lQQO'#DlO!(wQQO'#DkOOQO'#Go'#GoO!(|QQO'#GoO!)UQQO,5:UO!)ZQQO'#GnO!)fQQO,5:PPOQO'#Cq'#CqO(kQQO1G/lOOQP1G/m1G/mO(kQQO1G/mOOQO,5<d,5<dOOQO-E9v-E9vOOQP1G/x1G/xO!)kQSO1G/yOOQP'#Cy'#CyOOQP1G/z1G/zO?tQQO1G/}O!)xQSO1G/{O!*YQQO1G/|O!*gQTO,5<eOOQP-E9w-E9wOOQP,5:f,5:fO!+QQQO,5:fOOQP1G0[1G0[O!,vQTO1G0[O!.wQTO1G0[O!/OQTO1G0[O!0pQTO1G0[O!1QQTO1G0cO!1bQQO,5:jOOQP1G/b1G/bOOQP1G0f1G0fOOQP1G0i1G0iOOQP1G0y1G0yOOQP,59Q,59QO&]QRO'#FmO!1mQSO,59VOOQP,59V,59VOOQO'#DQ'#DQO?tQQO'#DQO!1{QQO'#DQOOQO'#Gh'#GhO!2SQQO'#GhO!2[QQO,59kO!2aQSO'#CqOJkQQO'#DPOOQP,5=R,5=RO@kQQO1G1pOOQP1G/w1G/wO.hQQO'#ElO!2rQRO1G1oO@kQQO1G1oO@kQQO'#DVO?tQQO'#DWOOQP'#Gk'#GkO!2}QRO'#GjOOQP'#Gj'#GjO&]QRO'#FsO!3`QQO,59pOOQP,59p,59pO!3gQRO'#CxO!3uQQO'#CxO!3|QRO'#CxO.hQQO'#CxO&]QRO'#FoO!4XQQO,59cOOQP,59c,59cO!4dQQO1G/nO4cQQO,5;RO!4iQQO,5;RO&]QRO'#FzO!4nQQO,5;SOOQP,5;S,5;SO!6aQQO'#DgO?tQQO,5;VOOQP,5;V,5;VO&]QRO'#F}O!6hQQO,5;YOOQP,5;Y,5;YO!6pQRO,5;]O4cQQO,5;]O&]QRO'#GOO!6{QQO,5;^OOQP,5;^,5;^O!7TQRO1G0{O!7`QQO1G0{O4cQQO1G1UO!8vQQO1G1UOOQP1G1O1G1OO!9OQQO'#GPO!9YQQO,5;fOOQP,5;f,5;fO4cQQO'#E{O!9eQQO'#E{O<uQQO1G1OOOQP1G1X1G1XO!9jQQO,5:zO!9jQQO,5:}O!9tQSO,5;oO!:OQQO,5;oO!:VQQO,5;oO!9OQQO'#GRO!:aQQO,5;vOOQP,5;v,5;vO!<PQQO'#F]O!<WQQO'#F]POOO-E9i-E9iPOOO1G.d1G.dO!<]QQO,5:VO!<gQQO,5=ZO!<tQQO,5=ZOOQP1G/p1G/pO!<|QQO,5=YO!=WQQO,5=YOOQP1G/k1G/kOOQP7+%W7+%WOOQP7+%X7+%XOOQP7+%e7+%eO!=cQQO7+%eO!=hQQO7+%iOOQP7+%g7+%gO!=mQQO7+%gO!=rQQO7+%hO!>PQSO7+%hOOQP7+%h7+%hO4cQQO7+%hOOQP1G0Q1G0QO!>^QQO1G0QOOQP1G0U1G0UO!>fQQO1G0UOF|QQO1G0UOOQO,5<X,5<XOOQO-E9k-E9kOOQP1G.q1G.qOOQO,59l,59lO?tQQO,59lO!?cQQO,5=SO!?jQQO,5=SOOQP1G/V1G/VO!?rQQO,59yO!?}QRO7+'[O!@YQQO'#EmO!@dQQO'#HOO!@lQQO,5;WOOQP7+'Z7+'ZO!@qQRO7+'ZOOQP,59q,59qOOQP,59r,59rOOQO'#DZ'#DZO!@]QQO'#FtO!@|QRO,59tOOQO,5<_,5<_OOQO-E9q-E9qOOQP1G/[1G/[OOQP,59d,59dOHgQQO'#FpO!3uQQO,59dO!A_QRO,59dO!AjQRO,59dOOQO,5<Z,5<ZOOQO-E9m-E9mOOQP1G.}1G.}O(kQQO7+%YOOQP1G0m1G0mO4cQQO1G0mOOQO,5<f,5<fOOQO-E9x-E9xOOQP1G0n1G0nO!AxQQO'#GdOOQP1G0q1G0qOOQO,5<i,5<iOOQO-E9{-E9{OOQP1G0t1G0tO4cQQO1G0wOOQP1G0w1G0wOOQO,5<j,5<jOOQO-E9|-E9|OOQP1G0x1G0xO!B]QQO7+&gO!BeQSO7+&gO!CsQSO7+&pO!CzQQO7+&pOOQO,5<k,5<kOOQO-E9}-E9}OOQP1G1Q1G1QO!DRQQO,5;gOOQO,5;g,5;gO!DWQSO7+&jOOQP7+&j7+&jO!DbQQO7+&pO!7`QQO1G1[O!DgQQO1G1ZOOQO1G1Z1G1ZO!DnQSO1G1ZOOQO,5<m,5<mOOQO-E:P-E:POOQP1G1b1G1bO!DxQSO'#GqO!E]QQO'#F^O!EbQQO'#F^O!EgQQO,5;wOOQO,5;w,5;wO!ElQSO1G/qOOQO1G/q1G/qO!EyQSO'#DoO!FZQQO'#DoO!FfQQO'#DnOOQO,5<c,5<cO!FkQQO1G2uOOQO-E9u-E9uOOQO,5<b,5<bO!FxQQO1G2tOOQO-E9t-E9tOOQP<<IP<<IPOOQP<<IT<<ITOOQP<<IR<<IRO!GSQSO<<ISOOQP<<IS<<ISO4cQQO<<ISO!GaQSO<<ISOOQP7+%l7+%lO!GkQQO7+%lOOQP7+%p7+%pO!GpQQO7+%pO!GuQQO7+%pOOQO1G/W1G/WOOQO,5<^,5<^O!G}QQO1G2nOOQO-E9p-E9pOOQP<<Jv<<JvO.hQQO'#F{O!@YQQO,5;XOOQO,5;X,5;XO!HUQQO,5=jO!H^QQO,5=jOOQO1G0r1G0rOOQP<<Ju<<JuOOQP,5<`,5<`OOQP-E9r-E9rOOQO,5<[,5<[OOQO-E9n-E9nO!HfQRO1G/OOOQP1G/O1G/OOOQP<<Ht<<HtOOQP7+&X7+&XO!HqQQO'#DeOOQP7+&c7+&cOOQP<<JR<<JRO!HxQRO<<JRO!ITQQO<<J[O!I]QQO<<J[OOQO1G1R1G1ROOQP<<JU<<JUO4cQQO<<J[O!IbQSO7+&vOOQO7+&u7+&uO!IlQQO7+&uO4cQQO,5;xOOQO1G1c1G1cO!<]QQO,5:YP!<]QQO'#FwP?tQQO'#FvOOQPAN>nAN>nO4cQQOAN>nO!IsQSOAN>nOOQP<<IW<<IWOOQP<<I[<<I[O!I}QQO<<I[P!>nQQO'#FrOOQO,5<g,5<gOOQO-E9y-E9yOOQO1G0s1G0sOOQO,5<h,5<hO!JVQQO1G3UOOQO-E9z-E9zOOQP7+$j7+$jO!J_QQO'#GnO!B]QQOAN?mO!JjQQOAN?vO!JqQQOAN?vO!KzQSOAN?vOOQO<<Ja<<JaO!LRQSO1G1dO!L]QSO1G/tOOQO1G/t1G/tO!LjQSOG24YOOQPG24YG24YOOQPAN>vAN>vO!LtQQOAN>vP.hQQO'#F|OOQPG25XG25XO!LyQQOG25bO!MOQQO'#FPOOQPG25bG25bO!MZQQOG25bOOQPLD)tLD)tOOQPG24bG24bO!JqQQOLD*|O!9OQQO'#GQO!McQQO,5;kOOQP,5;k,5;kO?tQQO'#FQO!MnQQO'#FQO!MsQQOLD*|OOQP!$'Nh!$'NhOOQO,5<l,5<lOOQO-E:O-E:OOOQP1G1V1G1VO!MzQQO,5;lOOQO,5;l,5;lO!NPQQO!$'NhOOQO1G1W1G1WO!JqQQO!)9DSOOQP!.K9n!.K9nO# {QTO'#CqO#!`QTO'#CqO##}QSO'#CqO#$XQSO'#CqO#&]QSO'#CqO#&gQQO'#FyO#&tQQO'#FyO#'OQQO,5=]O#'ZQQO,5=]O#'cQQO,5:pO!7`QQO,5:pOF|QQO,5:pO#'cQQO,5:pO!7`QQO,5:pOF|QQO,5:pO#'cQQO,5:pO!7`QQO,5:pOF|QQO,5:pO#'cQQO,5:pO!7`QQO,5:pOF|QQO,5:pO#'cQQO,5:pO!7`QQO,5:pOF|QQO,5:pO!7`QQO,5:wO!7`QQO,5:zO!7`QQO,5:}O#(yQSO'#CbO#)}QSO'#CbO#*bQSO'#GqO#*rQSO'#GqO#+PQRO'#GgO#+yQSO,5<eO#,ZQSO,5<eO#,hQSO1G0[O#-rQTO1G0[O#-yQSO1G0[O#.TQSO1G0[O#0{QTO1G0[O#1SQSO1G0[O#2eQSO1G0[O#2lQTO1G0[O#2sQSO1G0[O#4XQSO1G0[O#4`QTO1G0[O#4jQSO1G0[O#4wQSO1G0cO#5dQTO'#CqO#5kQTO'#CqO#6bQSO'#GqO#'cQQO'#EPO!7`QQO'#EPOF|QQO'#EPO#8]QQO'#EPO#8gQQO'#EPO#8qQQO'#EPO#8{QQO'#E`O#9TQQO'#EcO@kQQO'#C}O?tQQO,5:RO#9YQQO,59vO#:iQQO,59vO?tQQO,59vO?tQQO1G/lO?tQQO1G/mO?tQQO7+%YO?tQQO'#C{O#:pQQO'#DgO#9YQQO'#D[O#:wQQO'#D[O#:|QSO,5:QO#;WQQO,5:RO#;]QQO1G/nO?tQQO,5:SO#;bQQO'#Dh",stateData:"#;m~O$yOSPOS$zPQ~OVvOX{O[oO^YOaoOdoOh!POjcOr|Ow}O!P!OO!QnO!WaO!]!QO!phO!qhO#Y!RO#^!SO#d!TO#j!UO#m!VO#v!WO#{!XO#}!YO$S!ZO$U![O$V![O$W!]O$Y!^O$[!_O%OQO%UTO%VUO%YVO%fiO%giO%hjO%ikO%jlO$v%QP~OTzO~P]O$z!`O~OVeXZeX^eX^!TXj!TXnUXneX!QeX!WeX!W!TX!|eX#ReX#TeX#UeX#WUX$weX%YeX%`eX%feX%geX%ieX%jeX%keX%leX%meX%neX%oeX%peX%qeX~O!a#hX~P$XOV!bO$w!bO~O[!wX^pX^!wXa!wXd!wXhpXh!wXrpXr!wXwpXw!wX!PpX!P!wX!QpX!Q!wX!WpX!W!wX!]pX!]!wX!p!wX!q!wX%OpX%O!wX%U!wX%V!wX%YpX%Y!wX%f!wX%g!wX%h!wX%i!wX%j!wX~O^!hOh!POr!jOw}O!P!OO!Q!kO!WaO!]!QO%O!eO%Y!fO~On!lO#W%]XV%]X^%]Xh%]Xr%]Xw%]X!P%]X!Q%]X!W%]X!]%]X#T%]X$w%]X%O%]X%Y%]Xu%]X~O[oO^YOaoOdoOh!POr!pOw}O!P!OO!WaO!]!QO!phO!qhO%O+wO%UTO%VUO%YVO%fiO%giO%hjO%ikO%jlO~O!Q-OO~P*aOj!qO^%XX]%XXn%XX!V%XX~O!W!tOV%TXZ%TX^%TXn%TX!Q%TX!W%TX!|%TX#R%TX#T%TX#U%TX$w%TX%Y%TX%`%TX%f%TX%g%TX%i%TX%j%TX%k%TX%l%TX%m%TX%n%TX%o%TX%p%TX%q%TX]%TX!V%TXj%TXi%TX!a%TXu%TX~OZ!sO~P,^O%O!eO~O!W!tO^%WXj%WX]%WXn%WX!V%WXu%WXV%WX$w%WX%`%WX#T%WX[%WX!a%WX~Ou!{O!QnO!V!zO~P*aOV!}O[oO^YOaoOdoOh!POjcOr!pOw}O!P!OO!QnO!WaO!]!QO!phO!qhO#Y!RO#^!SO#d!TO#j!UO#m!VO#v!WO#{!XO#}!YO$S!ZO$U![O$V![O$W!]O$Y!^O$[!_O%OQO%UTO%VUO%YVO%fiO%giO%hjO%ikO%jlOi%dP~O^#QO~OZ#RO^#VOn#TO!Q#cO!W#SO#R#dO%Y#XO%`#ZO%fiO%giO%i#ZO%j#YO%k#XO%l#XO%m#YO%n#YO%o#YO%p#[O%q#]OV`X#T%eX#U%eX$w`X~O!|#`O~P2gO^#VO~O^#eO~O!QnO~P*aO[oO^YOaoOdoOh!POr!pOw}O!QnO!WaO!]!QO!phO!qhO%O+wO%UTO%VUO%YVO%fiO%giO%hjO%ikO%jlO~O!P#hO~P4jO#T#iO#U#iO~O#W#jO~O!a#kO~OVvO[oO^YOaoOdoOh!POjcOr|Ow}O!P!OO!QnO!WaO!]!QO!phO!qhO#Y!RO#^!SO#d!TO#j!UO#m!VO#v!WO#{!XO#}!YO$S!ZO$U![O$V![O$W!]O$Y!^O$[!_O%OQO%UTO%VUO%YVO%fiO%giO%hjO%ikO%jlO~O$v%QX~P6hO%O#oO~OZ#rO[#qO^#sO%O#oO~O^#uO%O#oO~Oj#yO~O^!hOh!POr!jOw}O!P!OO!Q#|O!WaO!]!QO%O!eO%Y!fO~Oj#}O~O!W$PO~O^$RO%O#oO~O^$UO%O#oO~O^$XO%O#oO~O[oO^YOaoOdoOh!POr!pOw}O!P!OO!Q-PO!WaO!]!QO!phO!qhO%O$ZO%UTO%VUO%YVO%fiO%giO%hjO%ikO%jlO~Oj$`O~P;_OV$fOjcO~P;_Oj$kO~O!QnOV$RX$w$RX~P*aO%O$oOV$TX$w$TX~O%O$oO~O${$rO$|$rO$}$tO~OZeX^!TX!W!TXj!TXn!TXh!TXr!TXw!TX{!TX!P!TX!Q!TX!]!TX%O!TX%Y!TX~O]!TX!V!TXu!TX#T!TXV!TX$w!TX%`!TX[!TX!a!TX~P>VO^!hOh!POr-TOw}O!P-_O!Q-`O!W-^O!]-eO%O!eO%Y!fO~OZ!sO~O^#uO~O!P$xO~On!lO#W%]aV%]a^%]ah%]ar%]aw%]a!P%]a!Q%]a!W%]a!]%]a#T%]a$w%]a%O%]a%Y%]au%]a~O]${O^#QO~OZ#RO^#VO!W#SO%Y#XO%`#ZO%fiO%giO%i#ZO%j#YO%k#XO%l#XO%m#YO%n#YO%o#YO%p#[O%q#]O~O]$|O!|,WO~PBROj!qOn%QO!QnOi%cP~P*aO!V%WO!|#`O~PBRO!V%YO~OV!}O[oO^YOaoOdoOh!POjcOr!pOw}O!P!OO!QnO!WaO!]!QO!phO!qhO#Y!RO#^!SO#d!TO#j!UO#m!VO#v!WO#{!XO#}!YO$S!ZO$U![O$V![O$W!]O$Y!^O$[!_O%OQO%UTO%VUO%YVO%fiO%giO%hjO%ikO%jlO~Oi%dX#p%dX#q%dX~PDQOi%]O~O[oO^YOaoOdoOh!POr!pOw}O!P!OO!Q-QO!WaO!]!QO!phO!qhO%O+{O%UTO%VUO%YVO%fiO%giO%hjO%ikO%jlO~O^%aO%O%_O~O!QnO!a%cO~P*aO!QnOn$mX#T$mX#U$mXV$mX$w$mX!a$mX~P*aOn#TO#T%ea#U%eaV%ea$w%ea!a%ea~O]%fO~PF|OV#ga$w#ga~PDTO[%sO~OZ#rO[#qO]%vO%O#oO~O^!hOh!POn%zOr-TOu%xOw}O!P-_O!Q-`O!W-^O!]-eO%O,dO%Y!fO]%[P~O^&OOh!POr!jOw}O!P!OO!Q!kO!WaO!]!QO%Y!fO^%ZXj%ZX~O%O%}O~PKfOjcO^qa]qanqa!Vqa~O^#uO!W&SO~O^!hOh!POr-TOw}O{&WO!P-_O!Q-`O!W-^O!]-eO%O,xO%Y!fO~Oi&^O~PL{O^!hOh!POr!jOw}O!Q!kO!WaO!]!QO%O!eO%Y!fO~O!P#hO~PMwOi&eO%O,yO%Y!fO~O#T&gOV#ZX$w#ZX~P?tO]&kO%O#oO~O^!hOh!POr-TOw}O!P-_O!Q-`O!]-eO%O!eO%Y!fO~O!W&lO#T&mO~P! _O]&qO%O#oO~O#T&sOV#eX$w#eX~P?tO]&vO%O#oO~OjeX~P$XOjcO!|,XO~P2gOn!lO#W&yO#W%]X~O^#VOn#TO!Q#cO!W#SO!|,XO#R#dO%Y#XO%`#ZO%fiO%giO%i#ZO%j#YO%k#XO%l#XO%m#YO%n#YO%o#YO%p#[O%q#]OV`X#T%eX#U%eX~OZ&zOj$`O$w`X~P!#cOi'OO#p'PO#q'QO~OZ#ROjcO~P!#cO#T'TO#U#iO~O#W'UO~OV'WO!QnO~P*aOV'XO~OjcO~O!|#`OV#za$w#za~PBROi'[O#p']O#q'^O~On#TO!|#`OV%eX$w%eX!a%eX~PBRO!|#`OV$Za$w$Za~PBRO${$rO$|$rO$}'`O~O]${O~O%O!eO]%ZXn%ZX!V%ZX~PKfO!|#`Oi!_Xn!_X!a!`X~PBROi!_Xn!_X!a!`X~O!a'aO~On'bOi%cX~Oi'dO~On'eO!V%bX!a%bX~O!V'gO~O]'jOn'kO!|,YO~PBROn'nO!V'mO!a'oO!|#`O~PBRO!QnO!V'qO!a'rO~P*aO!|#`On$ma#T$ma#U$maV$ma$w$ma!a$ma~PBRO]'sOu'tO~O%Y#XO%j#YO%k#XO%l#XO%m#YO%n#YO%o#YOV!xiZ!xi^!xin!xi!Q!xi!W!xi!|!xi#R!xi#T!xi#U!xi$w!xi%`!xi%f!xi%g!xi%i!xi%p!xi%q!xi~O!V!xii!xi!a!xi~P!+YO%Y#XO%`#ZO%fiO%giO%i#ZO%j#YO%k#XO%l#XO%m#YO%n#YO%o#YOV!xiZ!xi^!xin!xi!Q!xi!W!xi#R!xi#T!xi#U!xi$w!xi%p!xi%q!xi!V!xii!xi!a!xi~O!|!xi~P!-TO!|#`O~P!-TO%Y#XO%`#ZO%fiO%giO%i#ZO%j#YO%k#XO%l#XO%m#YO%n#YO%o#YO%p#[OV!xiZ!xi^!xin!xi!Q!xi!W!xi#R!xi#T!xi#U!xi$w!xi%q!xi~O!|#`O!V!xii!xi!a!xi~P!/VO!|#`OV#Pi$w#Pi!a#Pi~PBRO]'uOn'wOu'vO~OZ#rO[#qO]'zO%O#oO~Ou'|O~P?tOn'}O]%[X~O](PO~OZeX^mX^!TXj!TX!W!TX~OjcOV$]i$w$]i~O%`(ZOV%^X$w%^Xn%^X!V%^X~Oi(`O~PL{O[(aO!W!tOVlX$wlX~On(bO~P?tO[(aOVlX$wlX~Oi(hO%O,yO%Y!fO~O!V(iO~O#T(kO~O](nO%O#oO~O[oO^YOaoOdoOh!POr!pOu-bOw}O!P!OO!QnO!V-UO!WaO!]!QO!phO!qhO%UTO%VUO%YVO%fiO%giO%hjO%ikO%jlO~O%O+zO~P!4vO](sO%O#oO~O#T(tOV#ea$w#ea~O](xO%O#oO~O#k(yOV#ii$w#ii~O[oO^YOaoOdoOh!POr!pOw}O!P!OO!Q-PO!WaO!]!QO!phO!qhO%O+xO%UTO%VUO%YVO%fiO%giO%hjO%ikO%jlO~O^(|O%O%_O~O#p%dP#q%dP~P/uOi)PO#p'PO#q'QO~O!a)RO~O!QnO#y)VO~P*aOV)WO!|#`O~PBROj#wa~P;_OV)WO!QnO~P*aOi)]O#p']O#q'^O~O[oO^YOaoOdoOh!POr!pOw}O!P!OO!QnO!WaO!]!QO!phO!qhO%UTO%VUO%YVO%fiO%giO%hjO%ikO%jlO~O%O,eO~P!:lO!a)bO~Oj!qO!QnO~P*aOj!qO!QnOi%ca~P*aOn)iOi%ca~O!V%ba!a%ba~P?tOn)lO!V%ba!a%ba~O])nO~O])oO~O!V)pO~O!QnO!V)rO!a)sO~P*aO!V)rO!a)sO!|#`O~PBRO])uOn)vO~O])wOn)xO~O^!hOh!POr-TOu%xOw}O!P-_O!Q-`O!W-^O!]-eO%O,dO%Y!fO~O]%[a~P!>nOn)|O]%[a~O]${O]tXntX~OjcOV$^q$w$^q~On*PO{&WO~P?tOn*SO!V%rX~O!V*UO~OjcOV$]q$w$]q~O%`(ZOV|a$w|an|a!V|a~O[*]OVla$wla~O[*]O!W!tOVla$wla~On*PO{&WO!W*`O^%WXj%WX~P! _OjcO#j!UO~OjcO!|,XO~PBROZ*dO^#VO!W#SO%Y#XO%`#ZO%fiO%giO%i#ZO%j#YO%k#XO%l#XO%m#YO%n#YO%o#YO%p#[O%q#]O~O!|#`O~P!BoO#^*eO~P?tO!a*fO~Oj$`O!|,XO~P!BoO#W*hO~Oj#wi~P;_OV*kO!|#`O~PBROn#TO!Q#cO!|#`O!a$QX#T%eX~PBRO#T*lO~O#W*lO~O!a*mO~O!|#`Oi!_in!_i~PBRO!|#`Oi!bXn!bX!a!cX~PBROi!bXn!bX!a!cX~O!a*nO~Oj!qO!QnOi%ci~P*aO!V%bi!a%bi~P?tO!V*qO!a*rO!|#`O~PBRO!V*qO!|#`O~PBRO]*tO~O]*uO~O]*uOu*vO~O]%[i~P!>nO%O!eO!V%ra~On*|O!V%ra~O[+OOVli$wli~O%O+yO~P!4vO#k+QOV#iy$w#iy~O^+RO%O%_O~O]+SO~O!|,XOj#xq~PBROj#wq~P;_O!V+ZO!|#`O~PBRO]+[On+]O~O%O!eO!V%ri~O^#QOn'eO!V%bX~O#^+`O~P?tOj+aO~O^#VO!W#SO!|#`O%Y#XO%`#ZO%fiO%giO%i#ZO%j#YO%k#XO%l#XO%m#YO%n#YO%o#YO%p#[O%q#]O~OZ+cO~P!JvO!|#`O!a$Qi~PBRO!|#`Oi!bin!bi~PBRO!V+dO!|#`O~PBRO]+eO~O]+fO~Oi+iO#p+jO#q+kO~O^+lO%O%_O~Oi+pO#p+jO#q+kO~O!a+rO~O#^+sO~P?tO!a+tO~O]+uO~OZeX^eX^!TXj!TX!WeX!W!TX!|eX%YeX%`eX%feX%geX%ieX%jeX%keX%leX%meX%neX%oeX%peX%qeXVeXneX!QeX#ReX#TeX#UeX$weX~O]eX]!TX!VeXieX!aeX~P!NUOjeX~P!NUOZeX^eX^!TXj!TX!WeX!W!TX!|eX%YeX%`eX%feX%geX%ieX%jeX%keX%leX%meX%neX%oeX%peX%qeXn!TX!VeX~O]eX!V!TX~P#!gOh!TXr!TXw!TX{!TX!P!TX!Q!TX!]!TX%O!TX%Y!TX~P#!gOZeX^eX^!TXj!TXneX!WeX!W!TX!|eX%YeX%`eX%feX%geX%ieX%jeX%keX%leX%meX%neX%oeX%peX%qeX~O]eXueX~P#$xO]$mXn$mXu$mX~PF|Oj$mXn$mX~P!7`On+|O]%eau%ea~On+}Oj%ea~O[oO^YOaoOdoOh!POr!pOw}O!P!OO!Q-OO!WaO!]!QO!phO!qhO%O+yO%UTO%VUO%YVO%fiO%giO%hjO%ikO%jlO~OZeX]!TX^UXhUXnUXn!TXrUXuUXwUX!PUX!QUX!WUX!W!TX!]UX%OUX%YUX~OnUX!QeX!aeX#TeX#WUX~P#$xOn+|O!|,YO]%eXu%eX~PBROn+}O!|,XOj%eX~PBRO^&OOV%ZXj%ZX$w%ZX]%ZXn%ZX!V%ZXu%ZX%`%ZX#T%ZX[%ZX!a%ZX~P?wO!|,YO]$man$mau$ma~PBRO!|,XOj$man$ma~PBRO%Y#XO%j#YO%k#XO%l#XO%m#YO%n#YO%o#YOZ!xi]!xi^!xi!W!xi!|!xi%`!xi%f!xi%g!xi%i!xi%p!xi%q!xi~Oj!xi~P!+YOn!xiu!xi~P#,hO%Y#XO%`#ZO%fiO%giO%i#ZO%j#YO%k#XO%l#XO%m#YO%n#YO%o#YOZ!xi]!xi^!xi!W!xi!|!xi%p!xi%q!xi~O%Y#XO%`#ZO%fiO%giO%i#ZO%j#YO%k#XO%l#XO%m#YO%n#YO%o#YOV!xiZ!xi^!xij!xin!xi!Q!xi!W!xi#R!xi#T!xi#U!xi$w!xi%p!xi%q!xi~O!|!xi~P#/_On!xiu!xi~P#.TO%Y#XO%`#ZO%fiO%giO%i#ZO%j#YO%k#XO%l#XO%m#YO%n#YO%o#YOZ!xi]!xi^!xi!W!xi%p!xi%q!xi~O!|,WO~P#1^O!|,XO~P#/_O!|,YOn!xiu!xi~P#1^O%Y#XO%`#ZO%fiO%giO%i#ZO%j#YO%k#XO%l#XO%m#YO%n#YO%o#YO%p#[OZ!xi]!xi^!xi!W!xi%q!xi~O!|,WO~P#3QO!|,XOj!xi~P!/VO!|,YOn!xiu!xi~P#3QO!|,XOj#Pi~PBROV!TXZeX^mX!W!TX$w!TX~O%`!TX~P#5RO[!TXhmXnmXrmXwmX!PmX!QmX!WmX!]mX%OmX%YmX~P#5ROn#TO!Q,aO!|,XO#R#dOj`X#T%eX#U%eX~PBRO[oO^YOaoOdoOh!POr!pOw}O!P#hO!WaO!]!QO!phO!qhO%UTO%VUO%YVO%fiO%giO%hjO%ikO%jlO~O!Q-OO%O+yO~P#6{O!Q-PO%O+xO~P#6{O!Q-QO%O+{O~P#6{O#T,bO#U,bO~O#W,cO~O^!hOh!POr-TOw}O!P-_O!Q-WO!W-^O!]-eO%O!eO%Y!fO~O^!hOh!POr-TOw}O!Q-`O!W-^O!]-eO%O!eO%Y!fO~O!P-VO~P#9zO%O+wO~P!4vO!P-XO~O!V-YO!|#`O~PBRO!V-ZO~O!V-[O~O!W-dO~OP%ka%Oa~",goto:"!FW%sPP%tP%wP%zP'SP'XPPPP'`'cP'u'uP)w'u-_PPP0j0m0qP1V4b1VP7s8WP1VP8a8d8hP8p8w1VPP1V8{<`?vPPCY-_-_-_PCdCuCxPC{DQ'u'uDV'uES'u'u'u'uGUIW'uPPJR'uJUMjMjMj'u! r! r!#SP!$`!%d!&d'cP'cPP'cP!&yP!'V!'^!&yP!'a!'h!'n!'w!&yP!'z!(R!&y!(U!(fPP!&yP!(x!)UPP!&y!)Y!)c!&yP!)g!)gP!&yP!&yP!)j!)m!&v!&yP!&yPPP!&yP!&yP!)q!)q!)w!)}!*U!*[!*d!*j!*p!*w!*}!+T!+Z!.q!.x!/O!/X!/m!/s!/z!0Q!0W!0^!0d!0jPPPPPPPPP!0p!1f!1k!1{!2kPP!7P!:^P!>u!?Z!?_!@Z!@fP!@p!D_!Df!Di!DuPPPPPPPPPPPP!FSR!aPRyO!WXOScw!R!T!U!W#O#k#n#u$R$X&O&j&u&|'W'Y']'})W)|*k*w+gQ#pzU#r{#s%uQ#x|U$T!S$U&pQ$^!VQ$y!lR)U'RVROS#nQ#t{T%t#s%uR#t{qrOScw!U!V!W#O#k#n&|'W'Y)W*k+g%PoOSYacmnw!U!V!W!X!Z!_!q#O#Q#S#T#V#^#_#`#a#b#c#i#j#k#n$f%c&g&l&s&x&y&|'P'R'T'U'W'X'Y']'a'b'o'r'w(k(t)V)W)i)s*`*h*k*l*n*o*r+g+|+},Q,R,S,T,U,V,W,X,Y,Z,[,],^,_,`,a,b,c,{,|,}-O-P-Q-^%O]OSYacmnw!U!V!W!X!Z!_!q#O#Q#S#T#V#^#_#`#a#b#c#i#j#k#n$f%c&g&l&s&x&y&|'P'R'T'U'W'X'Y']'a'b'o'r'w(k(t)V)W)i)s*`*h*k*l*n*o*r+g+|+},Q,R,S,T,U,V,W,X,Y,Z,[,],^,_,`,a,b,c,{,|,}-O-P-Q-^#u!iW^!O!h!t!z#e#h#u#v#y#|#}$P$Q$T$W$v$x%W%Y%a%x%y&O&S&W&]&`&b&d&m'e'|'}(S([(c(i(o(|)l)|*P*Q*S*p*w*|+R+^+j+l,h-U-V-W-X-Y-Z-[-]-_-d'cbOSWYacmnw!O!U!V!W!X!Z!_!h!q!t!z#O#Q#S#T#V#^#_#`#a#b#c#e#h#i#j#k#n#u#v#y#|$P$Q$T$W$f$v$x%W%Y%a%c%x%y&O&W&]&`&g&l&m&s&x&y&|'P'R'T'U'W'X'Y']'a'b'e'o'r'w'|'}(S([(c(i(k(o(t(|)V)W)i)l)s)|*Q*`*h*k*l*n*o*p*r*w+R+g+j+l+|+},Q,R,S,T,U,V,W,X,Y,Z,[,],^,_,`,a,b,c,h,{,|,}-O-P-Q-U-V-W-X-Y-Z-[-]-^-_-dR$O!PT&c#}&dW%`#R&z*d+cQ&Q#vS&V#y&]S&`#}&dR*Y(b'cZOSWYacmnw!O!U!V!W!X!Z!_!h!q!t!z#O#Q#S#T#V#^#_#`#a#b#c#e#h#i#j#k#n#u#v#y#|$P$Q$T$W$f$v$x%W%Y%a%c%x%y&O&W&]&`&g&l&m&s&x&y&|'P'R'T'U'W'X'Y']'a'b'e'o'r'w'|'}(S([(c(i(k(o(t(|)V)W)i)l)s)|*Q*`*h*k*l*n*o*p*r*w+R+g+j+l+|+},Q,R,S,T,U,V,W,X,Y,Z,[,],^,_,`,a,b,c,h,{,|,}-O-P-Q-U-V-W-X-Y-Z-[-]-^-_-d%fWOSWYacmnw!O!U!V!W!X!Z!_!q!z#O#Q#S#T#V#^#_#`#a#b#c#h#i#j#k#n#v#|$f$v$x%W%Y%c&g&l&s&x&y&|'P'R'T'U'W'X'Y']'a'b'o'r'w(i(k(t)V)W)i)s*`*h*k*l*n*o*r+g+|+},Q,R,S,T,U,V,W,X,Y,Z,[,],^,_,`,a,b,c,{,|,}-O-P-Q-^S&b#}&d!{-]!h!t#e#u#y$P$Q$T$W%a%x%y&O&W&]&`&m'e'|'}(S([(c(o(|)l)|*Q*p*w+R+j+l,h-U-V-W-X-Y-Z-[-]-_-dQ#v|S$v!j!pU&P#v$v,hZ,h#x&Q&U&V-TS%{#u&OV){'})|*wR#z}T&[#y&]]&X#y&](S([(o*QZ&Z#y&](S(o*QT([&Y(]'s_OSWYacmnw!O!U!V!W!X!Z!_!h!q!t!z#O#Q#S#T#V#^#_#`#a#b#c#e#h#i#j#k#n#u#v#y#|#}$P$Q$T$W$f$v$x%W%Y%a%c%x%y&O&S&W&]&`&b&d&g&l&m&s&x&y&|'P'R'T'U'W'X'Y']'a'b'e'o'r'w'|'}(S([(c(i(k(o(t(|)V)W)i)l)s)|*P*Q*S*`*h*k*l*n*o*p*r*w*|+R+^+g+j+l+|+},Q,R,S,T,U,V,W,X,Y,Z,[,],^,_,`,a,b,c,h,{,|,}-O-P-Q-U-V-W-X-Y-Z-[-]-^-_-d'r_OSWYacmnw!O!U!V!W!X!Z!_!h!q!t!z#O#Q#S#T#V#^#_#`#a#b#c#e#h#i#j#k#n#u#v#y#|#}$P$Q$T$W$f$v$x%W%Y%a%c%x%y&O&S&W&]&`&b&d&g&l&m&s&x&y&|'P'R'T'U'W'X'Y']'a'b'e'o'r'w'|'}(S([(c(i(k(o(t(|)V)W)i)l)s)|*P*Q*S*`*h*k*l*n*o*p*r*w*|+R+^+g+j+l+|+},Q,R,S,T,U,V,W,X,Y,Z,[,],^,_,`,a,b,c,h,{,|,}-O-P-Q-U-V-W-X-Y-Z-[-]-^-_-dR!w^'bbOSWYacmnw!O!U!V!W!X!Z!_!h!q!t!z#O#Q#S#T#V#^#_#`#a#b#c#e#h#i#j#k#n#u#v#y#|$P$Q$T$W$f$v$x%W%Y%a%c%x%y&O&W&]&`&g&l&m&s&x&y&|'P'R'T'U'W'X'Y']'a'b'e'o'r'w'|'}(S([(c(i(k(o(t(|)V)W)i)l)s)|*Q*`*h*k*l*n*o*p*r*w+R+g+j+l+|+},Q,R,S,T,U,V,W,X,Y,Z,[,],^,_,`,a,b,c,h,{,|,}-O-P-Q-U-V-W-X-Y-Z-[-]-^-_-dS&a#}&dR(d&bS!u]fX!x`&_(e(oQ!r[Q%O!qQ)d'aU)f'b)i*oR+X*nR%R!qR%P!qV)h'b)i*oV)g'b)i*odtOScw#O#k#n&|'Y+gQ$h!WQ&R#wQ&w$[S'S$c$iQ(V&TQ*O(RQ*V(WQ*b(yQ*c(zR+_+Q%PfOSYacmnw!U!V!W!X!Z!_!q#O#Q#S#T#V#^#_#`#a#b#c#i#j#k#n$f%c&g&l&s&x&y&|'P'R'T'U'W'X'Y']'a'b'o'r'w(k(t)V)W)i)s*`*h*k*l*n*o*r+g+|+},Q,R,S,T,U,V,W,X,Y,Z,[,],^,_,`,a,b,c,{,|,}-O-P-Q-^%PgOSYacmnw!U!V!W!X!Z!_!q#O#Q#S#T#V#^#_#`#a#b#c#i#j#k#n$f%c&g&l&s&x&y&|'P'R'T'U'W'X'Y']'a'b'o'r'w(k(t)V)W)i)s*`*h*k*l*n*o*r+g+|+},Q,R,S,T,U,V,W,X,Y,Z,[,],^,_,`,a,b,c,{,|,}-O-P-Q-^!q#Weg!o!y$[$_$c$j$m$q$}%^%b%d%m'V'p(z({)S)Y)^)c)e)q)t*i*s+T+V+W+Y,f,g,i,j,w,z-aR#fh#^mOSacmnw!X!Z!_!q#O#S#T#^#_#`#a#b#c#i#j#k#n$f%c&g&l&s&y&|'P'T'U'X'Y']'a'b'o'r(k(t)i)s*`*h*l*n*o*r+g-^!W#_e!y$j$m$q$}%b%d%j%k%l%m'V'p({)Y)^)c)e)q)t*s+T+V+W+Y-aW,T!o,n,q,tj,U$[$_$c(z)S*i,g,j,o,r,u,w,z[,V%^,f,i,p,s,v`,{Y,Q,T,W,Z,^,{-Ox,|!U!V!W&x'R'W)V)W*k+},R,U,X,[,_,a,b,c,|-Pg,}#Q#V'w+|,S,V,Y,],`,}-Q#^mOSacmnw!X!Z!_!q#O#S#T#^#_#`#a#b#c#i#j#k#n$f%c&g&l&s&y&|'P'T'U'X'Y']'a'b'o'r(k(t)i)s*`*h*l*n*o*r+g-^`,{Y,Q,T,W,Z,^,{-Ox,|!U!V!W&x'R'W)V)W*k+},R,U,X,[,_,a,b,c,|-Pg,}#Q#V'w+|,S,V,Y,],`,}-Q!Y#^e!y$j$m$q$}%b%d%i%j%k%l%m'V'p({)Y)^)c)e)q)t*s+T+V+W+Y-aY,Q!o,k,n,q,tl,R$[$_$c(z)S*i,g,j,l,o,r,u,w,z_,S%^,f,i,m,p,s,v!W#_e!y$j$m$q$}%b%d%j%k%l%m'V'p({)Y)^)c)e)q)t*s+T+V+W+Y-aW,T!o,n,q,tj,U$[$_$c(z)S*i,g,j,o,r,u,w,z],V%^,f,i,p,s,v!S#ae!y$j$m$q$}%b%d%l%m'V'p({)Y)^)c)e)q)t*s+T+V+W+Y-aS,Z!o,tf,[$[$_$c(z)S*i,g,j,u,w,zX,]%^,f,i,v!Q#be!y$j$m$q$}%b%d%m'V'p({)Y)^)c)e)q)t*s+T+V+W+Y-aQ,^!od,_$[$_$c(z)S*i,g,j,w,zV,`%^,f,iprOScw!U!V!W#O#k#n&|'W'Y)W*k+gR)a']etOScw#O#k#n&|'Y+gQ$S!RT&i$R&jR$S!RQ$V!ST&o$U&pQ&U#xR&m$TS(T&S&lV*{*S*|+^R$V!SQ$Y!TT&t$X&uR$Y!TdsOScw#O#k#n&|'Y+gT$p![!]dtOScw#O#k#n&|'Y+gQ*b(yR+_+QQ$a!VQ&{$_Q)T'RR*g)ST&|$`&}Q+b+SQ+m+fR+v+uT+g+a+hR$i!WR$l!YT'Y$k'ZXuOSw#nQ$s!`R'_$sSSO#nR!dSQ%u#sR'y%uUwOS#nR#mwQ&d#}R(g&dQ(c&`R*Z(cS!mX$^R$z!mQ(O%{R)}(OQ&]#yR(_&]Q(]&YR*X(]'r^OSWYacmnw!O!U!V!W!X!Z!_!h!q!t!z#O#Q#S#T#V#^#_#`#a#b#c#e#h#i#j#k#n#u#v#y#|#}$P$Q$T$W$f$v$x%W%Y%a%c%x%y&O&S&W&]&`&b&d&g&l&m&s&x&y&|'P'R'T'U'W'X'Y']'a'b'e'o'r'w'|'}(S([(c(i(k(o(t(|)V)W)i)l)s)|*P*Q*S*`*h*k*l*n*o*p*r*w*|+R+^+g+j+l+|+},Q,R,S,T,U,V,W,X,Y,Z,[,],^,_,`,a,b,c,h,{,|,}-O-P-Q-U-V-W-X-Y-Z-[-]-^-_-dR!v^S'f%T+PR)m'fQ'c%RR)j'cW#Oc&|'Y+gR%[#O^#Ue$[$_$c$m)^,zU%e#U,O,PQ,O,fR,P,gQ&j$RR(m&jS*Q(S(oR*y*QQ*T(TR*}*TQ&p$UR(r&pQ&u$XR(w&uQ&}$`R)O&}Q+h+aR+o+hQ'Z$kR)['ZQ!cRQ#luQ#nyQ%Z!|Q&x$]Q'R$bQ'x%tQ(^&[Q(f&cQ(l&iQ(q&oR(v&tVxOS#nWuOSw#nY!|c#O&|'Y+gR%r#kdtOScw#O#k#n&|'Y+gQ$]!UQ$b!VQ$g!WQ)X'WQ*j)WR+U*kdeOScw#O#k#n&|'Y+gQ!oYQ!ya`#gmn,{,|,}-O-P-QQ$[!UQ$_!VQ$c!WQ$j!Xd$m!Z#i#j&g&s'P'T'U(k(tQ$q!_Q$}!qQ%^#QQ%b#SQ%d#TW%h#^,Q,R,SQ%i#_Q%j#`Q%k#aQ%l#bQ%m#cQ'V$fQ'p%cQ(z&xQ({&yQ)S'RQ)Y'XQ)^']Q)c'aU)e'b)i*oQ)q'oQ)t'rQ*i)VQ*s)sQ+T*hQ+V*lQ+W*nQ+Y*rS,f#V'wS,g,b,cQ,i+|Q,j+}Q,k,TQ,l,UQ,m,VQ,n,WQ,o,XQ,p,YQ,q,ZQ,r,[Q,s,]Q,t,^Q,u,_Q,v,`Q,w,aU,z'W)W*kV-a&l*`-^#bZW!O!h!t!z#e#h#u#v#y#|$P$Q$T$W$v$x%W%Y%a%x%y&O&W&]&`&m'e'|'}(S([(c(i(o(|)l)|*Q*p*w+R+j+l,h-U-V-W-X-Y-Z-[-]-_-d%P[OSYacmnw!U!V!W!X!Z!_!q#O#Q#S#T#V#^#_#`#a#b#c#i#j#k#n$f%c&g&l&s&x&y&|'P'R'T'U'W'X'Y']'a'b'o'r'w(k(t)V)W)i)s*`*h*k*l*n*o*r+g+|+},Q,R,S,T,U,V,W,X,Y,Z,[,],^,_,`,a,b,c,{,|,}-O-P-Q-^$zdOSacmnw!U!V!W!X!Z!_!q#O#Q#S#T#V#^#_#`#a#b#c#i#j#k#n$f%c&g&l&s&x&y&|'P'R'T'U'W'X'Y']'a'b'o'r'w(k(t)V)W)i)s*h*k*l*n*o*r+g+|+},Q,R,S,T,U,V,W,X,Y,Z,[,],^,_,`,a,b,c,{,|,}-O-P-Q-^S!gW-]Q!nYS#{!O-_Q$u!hS%T!t+jS%X!z-UQ%n#e[%o#h#|$x-V-W-XW%w#u'})|*wU&P#v$v,h[&X#y&](S([(o*QQ&f$PQ&h$QQ&n$TQ&r$WS'h%W-YS'i%Y-ZW'l%a(|+R+lS'{%x%yQ(Q&OQ(Y&WQ(d&`Q(p&mU)k'e)l*pQ)z'|Q*[(cS*^(i-[Q+P*`R-c-dS#w|!pS$w!j-TQ&T#xQ(R&QQ(W&UR(X&VT%|#u&OhqOScw!U!V#O#k#n&|'Y+gU$Q!R$R&jU$W!T$X&uQ$e!WY%y#u&O'})|*wQ)`']V-S'W)W*kS&[#y&]S*R(S(oR*z*QY&Y#y&](S(o*QR*W(['``OSWYacmnw!O!U!V!W!X!Z!_!h!q!t!z#O#Q#S#T#V#^#_#`#a#b#c#e#h#i#j#k#n#u#v#y#|$P$Q$T$W$f$v$x%W%Y%a%c%x%y&O&W&]&`&g&m&s&x&y&|'P'R'T'U'W'X'Y']'a'b'e'o'r'w'|'}(S([(c(i(k(o(t(|)V)W)i)l)s)|*Q*`*h*k*l*n*o*p*r*w+R+g+j+l+|+},Q,R,S,T,U,V,W,X,Y,Z,[,],^,_,`,a,b,c,h,{,|,}-O-P-Q-U-V-W-X-Y-Z-[-]-^-_-dS&_#}&dW(S&S*S*|+^Q(e&bQ(o&lR*x*PS%U!t*`R+q+jR%S!qQ#PcQ(}&|Q)Z'YR+n+ghpOScw!U!V#O#k#n&|'Y+gQ$d!WQ$n!ZQ%g#VU%p#i'T,bU%q#j'U,cQ(j&gQ(u&sQ)Q'PQ)_']Q)y'wQ*_(kQ*a(tV-R'W)W*kT(U&S&l",nodeNames:"⚠ LineComment BlockComment SourceFile PackageClause package DefName ; ImportDecl import ImportSpec . String ) ( SpecList ExprStatement Number Bool Nil Rune VariableName TypedLiteral StructType struct } { StructBody FieldDecl FieldName , PointerType * FunctionType func Parameters Parameter ... InterfaceType interface InterfaceBody MethodElem UnderlyingType ~ TypeElem LogicOp ChannelType chan <- ParenthesizedType QualifiedType TypeName ParameterizedType ] [ TypeArgs ArrayType SliceType MapType map LiteralValue Element Key : Element Key ParenthesizedExpr FunctionLiteral Block Conversion SelectorExpr IndexExpr SliceExpr TypeAssertion CallExpr ParameterizedExpr Arguments CallExpr make new Arguments UnaryExp ArithOp LogicOp BitOp DerefOp BinaryExp ArithOp BitOp BitOp CompareOp LogicOp LogicOp SendStatement IncDecStatement IncDecOp Assignment = UpdateOp VarDecl := ConstDecl const ConstSpec SpecList TypeDecl type TypeSpec TypeParams TypeParam SpecList VarDecl var VarSpec SpecList LabeledStatement LabelName IfStatement if else SwitchStatement switch SwitchBlock Case case default TypeSwitchStatement SwitchBlock Case ForStatement for ForClause RangeClause range GoStatement go SelectStatement select SelectBlock Case ReceiveStatement ReturnStatement return GotoStatement break continue goto FallthroughStatement fallthrough DeferStatement defer FunctionDecl MethodDecl",maxTerm:218,context:a,nodeProps:[["isolate",-3,2,12,20,""],["group",-18,12,17,18,19,20,21,22,66,67,69,70,71,72,73,74,77,81,86,"Expr",-20,16,68,93,94,96,99,101,105,111,115,117,120,126,129,134,136,141,143,147,149,"Statement",-12,23,31,33,38,46,49,50,51,52,56,57,58,"Type"],["openedBy",13,"(",25,"{",53,"["],["closedBy",14,")",26,"}",54,"]"]],propSources:[i],skippedNodes:[0,1,2,153],repeatNodeCount:23,tokenData:":b~RvXY#iYZ#i]^#ipq#iqr#zrs$Xuv&Pvw&^wx&yxy(qyz(vz{({{|)T|})e}!O)j!O!P)u!P!Q+}!Q!R,y!R![-t![!]2^!]!^2k!^!_2p!_!`3]!`!a3e!c!}3x!}#O4j#P#Q4o#Q#R4t#R#S4|#S#T9X#T#o3x#o#p9q#p#q9v#q#r:W#r#s:]$g;'S3x;'S;=`4d<%lO3x~#nS$y~XY#iYZ#i]^#ipq#iU$PP%hQ!_!`$SS$XO!|S~$^W[~OY$XZr$Xrs$vs#O$X#O#P${#P;'S$X;'S;=`%y<%lO$X~${O[~~%ORO;'S$X;'S;=`%X;=`O$X~%^X[~OY$XZr$Xrs$vs#O$X#O#P${#P;'S$X;'S;=`%y;=`<%l$X<%lO$X~%|P;=`<%l$X~&UP%l~!_!`&X~&^O#U~~&cR%j~vw&l!_!`&X#Q#R&q~&qO%p~~&vP%o~!_!`&X~'OWd~OY&yZw&ywx'hx#O&y#O#P'm#P;'S&y;'S;=`(k<%lO&y~'mOd~~'pRO;'S&y;'S;=`'y;=`O&y~(OXd~OY&yZw&ywx'hx#O&y#O#P'm#P;'S&y;'S;=`(k;=`<%l&y<%lO&y~(nP;=`<%l&y~(vO^~~({O]~~)QP%Y~!_!`&X~)YQ%f~{|)`!_!`&X~)eO#R~~)jOn~~)oQ%g~}!O)`!_!`&X~)zRZS!O!P*T!Q![*`#R#S+w~*WP!O!P*Z~*`Ou~Q*eTaQ!Q![*`!g!h*t#R#S+w#X#Y*t#]#^+rQ*wS{|+T}!O+T!Q![+^#R#S+lQ+WQ!Q![+^#R#S+lQ+cRaQ!Q![+^#R#S+l#]#^+rQ+oP!Q![+^Q+wOaQQ+zP!Q![*`~,SR%k~z{,]!P!Q,b!_!`&X~,bO$z~~,gSP~OY,bZ;'S,b;'S;=`,s<%lO,b~,vP;=`<%l,bQ-O[aQ!O!P*`!Q![-t!d!e.c!g!h*t!q!r/Z!z!{/x#R#S.]#U#V.c#X#Y*t#]#^+r#c#d/Z#l#m/xQ-yUaQ!O!P*`!Q![-t!g!h*t#R#S.]#X#Y*t#]#^+rQ.`P!Q![-tQ.fR!Q!R.o!R!S.o#R#S/QQ.tSaQ!Q!R.o!R!S.o#R#S/Q#]#^+rQ/TQ!Q!R.o!R!S.oQ/^Q!Q!Y/d#R#S/rQ/iRaQ!Q!Y/d#R#S/r#]#^+rQ/uP!Q!Y/dQ/{T!O!P0[!Q![1c!c!i1c#R#S2Q#T#Z1cQ0_S!Q![0k!c!i0k#R#S1V#T#Z0kQ0pVaQ!Q![0k!c!i0k!r!s*t#R#S1V#T#Z0k#]#^+r#d#e*tQ1YR!Q![0k!c!i0k#T#Z0kQ1hWaQ!O!P0k!Q![1c!c!i1c!r!s*t#R#S2Q#T#Z1c#]#^+r#d#e*tQ2TR!Q![1c!c!i1c#T#Z1c~2cP!a~!_!`2f~2kO#W~~2pOV~~2uR!|S}!O3O!^!_3T!_!`$S~3TO!Q~~3YP%m~!_!`&X~3bP#T~!_!`$S~3jQ!|S!_!`$S!`!a3p~3uP%n~!_!`&X~3}V%O~!Q![3x!c!}3x#R#S3x#T#o3x$g;'S3x;'S;=`4d<%lO3x~4gP;=`<%l3x~4oO!W~~4tO!V~~4yP%i~!_!`&X~5RV%O~!Q![5h!c!}3x#R#S3x#T#o3x$g;'S3x;'S;=`4d<%lO3x~5o^aQ%O~!O!P*`!Q![5h!c!g3x!g!h6k!h!}3x#R#S4|#T#X3x#X#Y6k#Y#]3x#]#^8k#^#o3x$g;'S3x;'S;=`4d<%lO3x~6pX%O~{|+T}!O+T!Q![7]!c!}3x#R#S8P#T#o3x$g;'S3x;'S;=`4d<%lO3x~7dXaQ%O~!Q![7]!c!}3x#R#S8P#T#]3x#]#^8k#^#o3x$g;'S3x;'S;=`4d<%lO3x~8UV%O~!Q![7]!c!}3x#R#S3x#T#o3x$g;'S3x;'S;=`4d<%lO3x~8rVaQ%O~!Q![3x!c!}3x#R#S3x#T#o3x$g;'S3x;'S;=`4d<%lO3x~9[TO#S9X#S#T$v#T;'S9X;'S;=`9k<%lO9X~9nP;=`<%l9X~9vOj~~9{Q%`~!_!`&X#p#q:R~:WO%q~~:]Oi~~:bO{~",tokenizers:[e,1,2,new O.LocalTokenGroup("j~RQYZXz{^~^O$|~~aP!P!Qd~iO$}~~",25,181)],topRules:{SourceFile:[0,3]},dynamicPrecedences:{19:1,51:-1,55:2,69:-1,108:-1},specialized:[{term:184,get:O=>n[O]||-1}],tokenPrec:5451}),P=[Q.snippetCompletion("func ${name}(${params}) ${type} {\n\t${}\n}",{label:"func",detail:"declaration",type:"keyword"}),Q.snippetCompletion("func (${receiver}) ${name}(${params}) ${type} {\n\t${}\n}",{label:"func",detail:"method declaration",type:"keyword"}),Q.snippetCompletion("var ${name} = ${value}",{label:"var",detail:"declaration",type:"keyword"}),Q.snippetCompletion("type ${name} ${type}",{label:"type",detail:"declaration",type:"keyword"}),Q.snippetCompletion("const ${name} = ${value}",{label:"const",detail:"declaration",type:"keyword"}),Q.snippetCompletion("type ${name} = ${type}",{label:"type",detail:"alias declaration",type:"keyword"}),Q.snippetCompletion("for ${init}; ${test}; ${update} {\n\t${}\n}",{label:"for",detail:"loop",type:"keyword"}),Q.snippetCompletion("for ${i} := range ${value} {\n\t${}\n}",{label:"for",detail:"range",type:"keyword"}),Q.snippetCompletion("select {\n\t${}\n}",{label:"select",detail:"statement",type:"keyword"}),Q.snippetCompletion("case ${}:\n${}",{label:"case",type:"keyword"}),Q.snippetCompletion("switch ${} {\n\t${}\n}",{label:"switch",detail:"statement",type:"keyword"}),Q.snippetCompletion("switch ${}.(${type}) {\n\t${}\n}",{label:"switch",detail:"type statement",type:"keyword"}),Q.snippetCompletion("if ${} {\n\t${}\n}",{label:"if",detail:"block",type:"keyword"}),Q.snippetCompletion("if ${} {\n\t${}\n} else {\n\t${}\n}",{label:"if",detail:"/ else block",type:"keyword"}),Q.snippetCompletion('import ${name} "${module}"\n${}',{label:"import",detail:"declaration",type:"keyword"})],o=new Q.NodeWeakMap,c=new Set(["SourceFile","Block","FunctionDecl","MethodDecl","FunctionLiteral","ForStatement","SwitchStatement","TypeSwitchStatement","IfStatement"]);function l(O,Q){return(e,t)=>{O:for(let a=e.node.firstChild,i=0,n=null;;){for(;!a;){if(!i)break O;i--,a=n.nextSibling,n=n.parent}Q&&a.name==Q||"SpecList"==a.name?(i++,n=a,a=a.firstChild):("DefName"==a.name&&t(a,O),a=a.nextSibling)}return!0}}const r={FunctionDecl:l("function"),VarDecl:l("var","VarSpec"),ConstDecl:l("constant","ConstSpec"),TypeDecl:l("type","TypeSpec"),ImportDecl:l("constant","ImportSpec"),Parameter:l("var"),__proto__:null};function $(O,e){let t=o.get(e);if(t)return t;let a=[],i=!0;function n(Q,e){let t=O.sliceString(Q.from,Q.to);a.push({label:t,type:e})}return e.cursor(Q.IterMode.IncludeAnonymous).iterate(Q=>{if(i)i=!1;else if(Q.name){let O=r[Q.name];if(O&&O(Q,n)||c.has(Q.name))return!1}else if(Q.to-Q.from>8192){for(let e of $(O,Q.node))a.push(e);return!1}}),o.set(e,a),a}const p=/^[\w$\xa1-\uffff][\w$\d\xa1-\uffff]*$/,S=["String","LineComment","BlockComment","DefName","LabelName","FieldName",".","?."],T=O=>{let e=Q.syntaxTree(O.state).resolveInner(O.pos,-1);if(S.indexOf(e.name)>-1)return null;let t="VariableName"==e.name||e.to-e.from<20&&p.test(O.state.sliceDoc(e.from,e.to));if(!t&&!O.explicit)return null;let a=[];for(let Q=e;Q;Q=Q.parent)c.has(Q.name)&&(a=a.concat($(O.state.doc,Q)));return{options:a,from:t?e.from:O.pos,validFor:p}},m=Q.LRLanguage.define({name:"go",parser:X.configure({props:[Q.indentNodeProp.add({IfStatement:Q.continuedIndent({except:/^\s*({|else\b)/}),LabeledStatement:Q.flatIndent,"SwitchBlock SelectBlock":O=>{let Q=O.textAfter,e=/^\s*\}/.test(Q),t=/^\s*(case|default)\b/.test(Q);return O.baseIndent+(e||t?0:O.unit)},Block:Q.delimitedIndent({closing:"}"}),BlockComment:()=>null,Statement:Q.continuedIndent({except:/^{/})}),Q.foldNodeProp.add({"Block SwitchBlock SelectBlock LiteralValue InterfaceType StructType SpecList":Q.foldInside,BlockComment:O=>({from:O.from+2,to:O.to-2})})]}),languageData:{closeBrackets:{brackets:["(","[","{","'",'"',"`"]},commentTokens:{line:"//",block:{open:"/*",close:"*/"}},indentOnInput:/^\s*(?:case\b|default\b|\})$/}});let W=O=>({label:O,type:"keyword"});const V="interface struct chan map package go return break continue goto fallthrough else defer range true false nil".split(" ").map(W);exports.go=function(){let O=P.concat(V);return new Q.LanguageSupport(m,[m.data.of({autocomplete:Q.ifNotIn(S,Q.completeFromList(O))}),m.data.of({autocomplete:T})])},exports.goLanguage=m,exports.localCompletionSource=T,exports.snippets=P;
|
|
2
|
+
//# sourceMappingURL=index-DD3pDFDN.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index-DD3pDFDN.cjs","sources":["../../../node_modules/@lezer/go/dist/index.js","../../../node_modules/@codemirror/lang-go/dist/index.js"],"sourcesContent":["import { ExternalTokenizer, ContextTracker, LRParser, LocalTokenGroup } from '@lezer/lr';\nimport { styleTags, tags } from '@lezer/highlight';\n\n// This file was generated by lezer-generator. You probably shouldn't edit it.\nconst insertedSemi = 177,\n space$1 = 179,\n identifier = 184,\n String = 12,\n closeParen$1 = 13,\n Number = 17,\n Rune = 20,\n closeBrace$1 = 25,\n closeBracket = 53,\n IncDecOp = 95,\n _return = 142,\n _break = 144,\n _continue = 145,\n fallthrough = 148;\n\nconst newline = 10, carriageReturn = 13, space = 32, tab = 9, slash = 47, closeParen = 41, closeBrace = 125;\n\nconst semicolon = new ExternalTokenizer((input, stack) => {\n for (let scan = 0, next = input.next;;) {\n if (stack.context && (next < 0 || next == newline || next == carriageReturn ||\n next == slash && input.peek(scan + 1) == slash) ||\n next == closeParen || next == closeBrace)\n input.acceptToken(insertedSemi);\n if (next != space && next != tab) break\n next = input.peek(++scan);\n }\n}, {contextual: true});\n\nlet trackedTokens = new Set([IncDecOp, identifier, Rune, String, Number,\n _break, _continue, _return, fallthrough,\n closeParen$1, closeBracket, closeBrace$1]);\n\nconst trackTokens = new ContextTracker({\n start: false,\n shift: (context, term) => term == space$1 ? context : trackedTokens.has(term)\n});\n\nconst goHighlighting = styleTags({\n \"func interface struct chan map const type var\": tags.definitionKeyword,\n \"import package\": tags.moduleKeyword,\n \"switch for go select return break continue goto fallthrough case if else defer\": tags.controlKeyword,\n \"range\": tags.keyword,\n Bool: tags.bool,\n String: tags.string,\n Rune: tags.character,\n Number: tags.number,\n Nil: tags.null,\n VariableName: tags.variableName,\n DefName: tags.definition(tags.variableName),\n TypeName: tags.typeName,\n LabelName: tags.labelName,\n FieldName: tags.propertyName,\n \"FunctionDecl/DefName\": tags.function(tags.definition(tags.variableName)),\n \"TypeSpec/DefName\": tags.definition(tags.typeName),\n \"CallExpr/VariableName\": tags.function(tags.variableName),\n LineComment: tags.lineComment,\n BlockComment: tags.blockComment,\n LogicOp: tags.logicOperator,\n ArithOp: tags.arithmeticOperator,\n BitOp: tags.bitwiseOperator,\n \"DerefOp .\": tags.derefOperator,\n \"UpdateOp IncDecOp\": tags.updateOperator,\n CompareOp: tags.compareOperator,\n \"= :=\": tags.definitionOperator,\n \"<-\": tags.operator,\n \"~ \\\"*\\\"\": tags.modifier,\n \"; ,\": tags.separator,\n \"... :\": tags.punctuation,\n \"( )\": tags.paren,\n \"[ ]\": tags.squareBracket,\n \"{ }\": tags.brace,\n});\n\n// This file was generated by lezer-generator. You probably shouldn't edit it.\nconst spec_identifier = {__proto__:null,package:10, import:18, true:380, false:380, nil:383, struct:48, func:68, interface:78, chan:94, map:118, make:157, new:159, const:204, type:212, var:224, if:236, else:238, switch:242, case:248, default:250, for:260, range:266, go:270, select:274, return:284, break:288, continue:290, goto:292, fallthrough:296, defer:300};\nconst parser = LRParser.deserialize({\n version: 14,\n states: \"!=xO#{QQOOP$SOQOOO&UQTO'#CbO&]QRO'#FlO]QQOOOOQP'#Cn'#CnOOQP'#Co'#CoO&eQQO'#C|O(kQQO'#C{O)]QRO'#GiO+tQQO'#D_OOQP'#Ge'#GeO+{QQO'#GeO.aQTO'#GaO.hQQO'#D`OOQP'#Gm'#GmO.mQRO'#GdO/hQQO'#DgOOQP'#Gd'#GdO/uQQO'#DrO2bQQO'#DsO4QQTO'#GqO,^QTO'#GaO4XQQO'#DxO4^QQO'#D{OOQO'#EQ'#EQOOQO'#ER'#EROOQO'#ES'#ESOOQO'#ET'#ETO4cQQO'#EPO5}QQO'#EPOOQP'#Ga'#GaO6UQQO'#E`O6^QQO'#EcOOQP'#G`'#G`O6cQQO'#EsOOQP'#G_'#G_O&]QRO'#FnOOQO'#Fn'#FnO9QQQO'#G^QOQQOOO&]QROOO9XQQO'#C`O9^QSO'#CdO9lQQO'#C}O9tQQO'#DSO9yQQO'#D[O:kQQO'#CsO:pQQO'#DhO:uQQO'#EeO:}QQO'#EiO;VQQO'#EoO;_QQO'#EuO<uQQO'#ExO<|QQO'#FRO4cQQO'#FWO=WQQO'#FYO=]QRO'#F_O=jQRO'#FaO=uQQO'#FaOOQP'#Fe'#FeO4cQQO'#FgP=zOWO'#C^POOO)CAz)CAzOOQO'#G]'#G]OOQO,5<W,5<WOOQO-E9j-E9jO?TQTO'#CqOOQO'#C|'#C|OOQP,59g,59gO?tQQO'#D_O@fQSO'#FuO@kQQO'#C}O@pQQO'#D[O9XQQO'#FqO@uQRO,5=TOAyQQO,59yOCVQSO,5:[O@kQQO'#C}OCaQQO'#DjOOQP,59^,59^OOQO,5<a,5<aO?tQQO'#DeOOQO,5:e,5:eOOQO-E9s-E9sOOQP,59z,59zOOQP,59|,59|OCqQSO,5:QO(kQQO,5:ROC{QQO,5:RO&]QRO'#FxOOQO'#Fx'#FxOFjQQO'#GpOFwQQO,5:^OF|QQO,5:_OHdQQO,5:`OHlQQO,5:aOHvQRO'#FyOIaQRO,5=]OIuQQO'#DzOOQP,5:d,5:dOOQO'#EV'#EVOOQO'#EW'#EWOOQO'#EX'#EXOOQO'#EZ'#EZOOQO'#E['#E[O4cQQO,5:pO4cQQO,5:pO4cQQO,5:pO4cQQO,5:pO4cQQO,5:pO4cQQO,5:wOOQP,5:x,5:xO?tQQO'#EOOOQP,5:g,5:gOOQP,5:k,5:kO9yQQO,59vO4cQQO,5:zO4cQQO,5:}OI|QRO,5;_OOQO,5<Y,5<YOOQO-E9l-E9lO]QQOOOOQP'#Cb'#CbOOQP,58z,58zOOQP'#Cf'#CfOJWQQO'#CfOJ]QSO'#CkOOQP,59O,59OOJkQQO'#DPOLZQQO,5<UOLbQQO,59iOLsQQO,5<TOMpQQO'#DUOOQP,59n,59nOOQP,59v,59vONfQQO,59vONmQQO'#CwOOQP,59_,59_O?tQQO,5:SONxQRO'#EgO! VQQO'#EhOOQP,5;P,5;PO! |QQO'#EkO!!WQQO'#EnOOQP,5;T,5;TO!!`QRO'#EqO!!mQQO'#ErOOQP,5;Z,5;ZO!!uQTO'#CbO!!|QTO,5;aO&]QRO,5;aO!#WQQO,5;jO!$yQTO,5;dO!%WQQO'#EzOOQP,5;d,5;dO&]QRO,5;dO!%cQSO,5;mO!%mQQO'#E`O!%uQQO'#EcO!%zQQO'#FTO!&UQQO'#FTOOQP,5;m,5;mO!&ZQQO,5;mO!&`QTO,5;rO!&mQQO'#F[OOQP,5;t,5;tO!&xQTO'#GqOOQP,5;y,5;yOOQP'#Et'#EtOOQP,5;{,5;{O!']QTO,5<RPOOO'#Fk'#FkP!'jOWO,58xPOOO,58x,58xO!'uQQO,59yO!'zQQO'#GgOOQP,59i,59iO(kQQO,59vOOQP,5<],5<]OOQP-E9o-E9oOOQP1G/e1G/eOOQP1G/v1G/vO!([QSO'#DlO!(lQQO'#DlO!(wQQO'#DkOOQO'#Go'#GoO!(|QQO'#GoO!)UQQO,5:UO!)ZQQO'#GnO!)fQQO,5:PPOQO'#Cq'#CqO(kQQO1G/lOOQP1G/m1G/mO(kQQO1G/mOOQO,5<d,5<dOOQO-E9v-E9vOOQP1G/x1G/xO!)kQSO1G/yOOQP'#Cy'#CyOOQP1G/z1G/zO?tQQO1G/}O!)xQSO1G/{O!*YQQO1G/|O!*gQTO,5<eOOQP-E9w-E9wOOQP,5:f,5:fO!+QQQO,5:fOOQP1G0[1G0[O!,vQTO1G0[O!.wQTO1G0[O!/OQTO1G0[O!0pQTO1G0[O!1QQTO1G0cO!1bQQO,5:jOOQP1G/b1G/bOOQP1G0f1G0fOOQP1G0i1G0iOOQP1G0y1G0yOOQP,59Q,59QO&]QRO'#FmO!1mQSO,59VOOQP,59V,59VOOQO'#DQ'#DQO?tQQO'#DQO!1{QQO'#DQOOQO'#Gh'#GhO!2SQQO'#GhO!2[QQO,59kO!2aQSO'#CqOJkQQO'#DPOOQP,5=R,5=RO@kQQO1G1pOOQP1G/w1G/wO.hQQO'#ElO!2rQRO1G1oO@kQQO1G1oO@kQQO'#DVO?tQQO'#DWOOQP'#Gk'#GkO!2}QRO'#GjOOQP'#Gj'#GjO&]QRO'#FsO!3`QQO,59pOOQP,59p,59pO!3gQRO'#CxO!3uQQO'#CxO!3|QRO'#CxO.hQQO'#CxO&]QRO'#FoO!4XQQO,59cOOQP,59c,59cO!4dQQO1G/nO4cQQO,5;RO!4iQQO,5;RO&]QRO'#FzO!4nQQO,5;SOOQP,5;S,5;SO!6aQQO'#DgO?tQQO,5;VOOQP,5;V,5;VO&]QRO'#F}O!6hQQO,5;YOOQP,5;Y,5;YO!6pQRO,5;]O4cQQO,5;]O&]QRO'#GOO!6{QQO,5;^OOQP,5;^,5;^O!7TQRO1G0{O!7`QQO1G0{O4cQQO1G1UO!8vQQO1G1UOOQP1G1O1G1OO!9OQQO'#GPO!9YQQO,5;fOOQP,5;f,5;fO4cQQO'#E{O!9eQQO'#E{O<uQQO1G1OOOQP1G1X1G1XO!9jQQO,5:zO!9jQQO,5:}O!9tQSO,5;oO!:OQQO,5;oO!:VQQO,5;oO!9OQQO'#GRO!:aQQO,5;vOOQP,5;v,5;vO!<PQQO'#F]O!<WQQO'#F]POOO-E9i-E9iPOOO1G.d1G.dO!<]QQO,5:VO!<gQQO,5=ZO!<tQQO,5=ZOOQP1G/p1G/pO!<|QQO,5=YO!=WQQO,5=YOOQP1G/k1G/kOOQP7+%W7+%WOOQP7+%X7+%XOOQP7+%e7+%eO!=cQQO7+%eO!=hQQO7+%iOOQP7+%g7+%gO!=mQQO7+%gO!=rQQO7+%hO!>PQSO7+%hOOQP7+%h7+%hO4cQQO7+%hOOQP1G0Q1G0QO!>^QQO1G0QOOQP1G0U1G0UO!>fQQO1G0UOF|QQO1G0UOOQO,5<X,5<XOOQO-E9k-E9kOOQP1G.q1G.qOOQO,59l,59lO?tQQO,59lO!?cQQO,5=SO!?jQQO,5=SOOQP1G/V1G/VO!?rQQO,59yO!?}QRO7+'[O!@YQQO'#EmO!@dQQO'#HOO!@lQQO,5;WOOQP7+'Z7+'ZO!@qQRO7+'ZOOQP,59q,59qOOQP,59r,59rOOQO'#DZ'#DZO!@]QQO'#FtO!@|QRO,59tOOQO,5<_,5<_OOQO-E9q-E9qOOQP1G/[1G/[OOQP,59d,59dOHgQQO'#FpO!3uQQO,59dO!A_QRO,59dO!AjQRO,59dOOQO,5<Z,5<ZOOQO-E9m-E9mOOQP1G.}1G.}O(kQQO7+%YOOQP1G0m1G0mO4cQQO1G0mOOQO,5<f,5<fOOQO-E9x-E9xOOQP1G0n1G0nO!AxQQO'#GdOOQP1G0q1G0qOOQO,5<i,5<iOOQO-E9{-E9{OOQP1G0t1G0tO4cQQO1G0wOOQP1G0w1G0wOOQO,5<j,5<jOOQO-E9|-E9|OOQP1G0x1G0xO!B]QQO7+&gO!BeQSO7+&gO!CsQSO7+&pO!CzQQO7+&pOOQO,5<k,5<kOOQO-E9}-E9}OOQP1G1Q1G1QO!DRQQO,5;gOOQO,5;g,5;gO!DWQSO7+&jOOQP7+&j7+&jO!DbQQO7+&pO!7`QQO1G1[O!DgQQO1G1ZOOQO1G1Z1G1ZO!DnQSO1G1ZOOQO,5<m,5<mOOQO-E:P-E:POOQP1G1b1G1bO!DxQSO'#GqO!E]QQO'#F^O!EbQQO'#F^O!EgQQO,5;wOOQO,5;w,5;wO!ElQSO1G/qOOQO1G/q1G/qO!EyQSO'#DoO!FZQQO'#DoO!FfQQO'#DnOOQO,5<c,5<cO!FkQQO1G2uOOQO-E9u-E9uOOQO,5<b,5<bO!FxQQO1G2tOOQO-E9t-E9tOOQP<<IP<<IPOOQP<<IT<<ITOOQP<<IR<<IRO!GSQSO<<ISOOQP<<IS<<ISO4cQQO<<ISO!GaQSO<<ISOOQP7+%l7+%lO!GkQQO7+%lOOQP7+%p7+%pO!GpQQO7+%pO!GuQQO7+%pOOQO1G/W1G/WOOQO,5<^,5<^O!G}QQO1G2nOOQO-E9p-E9pOOQP<<Jv<<JvO.hQQO'#F{O!@YQQO,5;XOOQO,5;X,5;XO!HUQQO,5=jO!H^QQO,5=jOOQO1G0r1G0rOOQP<<Ju<<JuOOQP,5<`,5<`OOQP-E9r-E9rOOQO,5<[,5<[OOQO-E9n-E9nO!HfQRO1G/OOOQP1G/O1G/OOOQP<<Ht<<HtOOQP7+&X7+&XO!HqQQO'#DeOOQP7+&c7+&cOOQP<<JR<<JRO!HxQRO<<JRO!ITQQO<<J[O!I]QQO<<J[OOQO1G1R1G1ROOQP<<JU<<JUO4cQQO<<J[O!IbQSO7+&vOOQO7+&u7+&uO!IlQQO7+&uO4cQQO,5;xOOQO1G1c1G1cO!<]QQO,5:YP!<]QQO'#FwP?tQQO'#FvOOQPAN>nAN>nO4cQQOAN>nO!IsQSOAN>nOOQP<<IW<<IWOOQP<<I[<<I[O!I}QQO<<I[P!>nQQO'#FrOOQO,5<g,5<gOOQO-E9y-E9yOOQO1G0s1G0sOOQO,5<h,5<hO!JVQQO1G3UOOQO-E9z-E9zOOQP7+$j7+$jO!J_QQO'#GnO!B]QQOAN?mO!JjQQOAN?vO!JqQQOAN?vO!KzQSOAN?vOOQO<<Ja<<JaO!LRQSO1G1dO!L]QSO1G/tOOQO1G/t1G/tO!LjQSOG24YOOQPG24YG24YOOQPAN>vAN>vO!LtQQOAN>vP.hQQO'#F|OOQPG25XG25XO!LyQQOG25bO!MOQQO'#FPOOQPG25bG25bO!MZQQOG25bOOQPLD)tLD)tOOQPG24bG24bO!JqQQOLD*|O!9OQQO'#GQO!McQQO,5;kOOQP,5;k,5;kO?tQQO'#FQO!MnQQO'#FQO!MsQQOLD*|OOQP!$'Nh!$'NhOOQO,5<l,5<lOOQO-E:O-E:OOOQP1G1V1G1VO!MzQQO,5;lOOQO,5;l,5;lO!NPQQO!$'NhOOQO1G1W1G1WO!JqQQO!)9DSOOQP!.K9n!.K9nO# {QTO'#CqO#!`QTO'#CqO##}QSO'#CqO#$XQSO'#CqO#&]QSO'#CqO#&gQQO'#FyO#&tQQO'#FyO#'OQQO,5=]O#'ZQQO,5=]O#'cQQO,5:pO!7`QQO,5:pOF|QQO,5:pO#'cQQO,5:pO!7`QQO,5:pOF|QQO,5:pO#'cQQO,5:pO!7`QQO,5:pOF|QQO,5:pO#'cQQO,5:pO!7`QQO,5:pOF|QQO,5:pO#'cQQO,5:pO!7`QQO,5:pOF|QQO,5:pO!7`QQO,5:wO!7`QQO,5:zO!7`QQO,5:}O#(yQSO'#CbO#)}QSO'#CbO#*bQSO'#GqO#*rQSO'#GqO#+PQRO'#GgO#+yQSO,5<eO#,ZQSO,5<eO#,hQSO1G0[O#-rQTO1G0[O#-yQSO1G0[O#.TQSO1G0[O#0{QTO1G0[O#1SQSO1G0[O#2eQSO1G0[O#2lQTO1G0[O#2sQSO1G0[O#4XQSO1G0[O#4`QTO1G0[O#4jQSO1G0[O#4wQSO1G0cO#5dQTO'#CqO#5kQTO'#CqO#6bQSO'#GqO#'cQQO'#EPO!7`QQO'#EPOF|QQO'#EPO#8]QQO'#EPO#8gQQO'#EPO#8qQQO'#EPO#8{QQO'#E`O#9TQQO'#EcO@kQQO'#C}O?tQQO,5:RO#9YQQO,59vO#:iQQO,59vO?tQQO,59vO?tQQO1G/lO?tQQO1G/mO?tQQO7+%YO?tQQO'#C{O#:pQQO'#DgO#9YQQO'#D[O#:wQQO'#D[O#:|QSO,5:QO#;WQQO,5:RO#;]QQO1G/nO?tQQO,5:SO#;bQQO'#Dh\",\n stateData: \"#;m~O$yOSPOS$zPQ~OVvOX{O[oO^YOaoOdoOh!POjcOr|Ow}O!P!OO!QnO!WaO!]!QO!phO!qhO#Y!RO#^!SO#d!TO#j!UO#m!VO#v!WO#{!XO#}!YO$S!ZO$U![O$V![O$W!]O$Y!^O$[!_O%OQO%UTO%VUO%YVO%fiO%giO%hjO%ikO%jlO$v%QP~OTzO~P]O$z!`O~OVeXZeX^eX^!TXj!TXnUXneX!QeX!WeX!W!TX!|eX#ReX#TeX#UeX#WUX$weX%YeX%`eX%feX%geX%ieX%jeX%keX%leX%meX%neX%oeX%peX%qeX~O!a#hX~P$XOV!bO$w!bO~O[!wX^pX^!wXa!wXd!wXhpXh!wXrpXr!wXwpXw!wX!PpX!P!wX!QpX!Q!wX!WpX!W!wX!]pX!]!wX!p!wX!q!wX%OpX%O!wX%U!wX%V!wX%YpX%Y!wX%f!wX%g!wX%h!wX%i!wX%j!wX~O^!hOh!POr!jOw}O!P!OO!Q!kO!WaO!]!QO%O!eO%Y!fO~On!lO#W%]XV%]X^%]Xh%]Xr%]Xw%]X!P%]X!Q%]X!W%]X!]%]X#T%]X$w%]X%O%]X%Y%]Xu%]X~O[oO^YOaoOdoOh!POr!pOw}O!P!OO!WaO!]!QO!phO!qhO%O+wO%UTO%VUO%YVO%fiO%giO%hjO%ikO%jlO~O!Q-OO~P*aOj!qO^%XX]%XXn%XX!V%XX~O!W!tOV%TXZ%TX^%TXn%TX!Q%TX!W%TX!|%TX#R%TX#T%TX#U%TX$w%TX%Y%TX%`%TX%f%TX%g%TX%i%TX%j%TX%k%TX%l%TX%m%TX%n%TX%o%TX%p%TX%q%TX]%TX!V%TXj%TXi%TX!a%TXu%TX~OZ!sO~P,^O%O!eO~O!W!tO^%WXj%WX]%WXn%WX!V%WXu%WXV%WX$w%WX%`%WX#T%WX[%WX!a%WX~Ou!{O!QnO!V!zO~P*aOV!}O[oO^YOaoOdoOh!POjcOr!pOw}O!P!OO!QnO!WaO!]!QO!phO!qhO#Y!RO#^!SO#d!TO#j!UO#m!VO#v!WO#{!XO#}!YO$S!ZO$U![O$V![O$W!]O$Y!^O$[!_O%OQO%UTO%VUO%YVO%fiO%giO%hjO%ikO%jlOi%dP~O^#QO~OZ#RO^#VOn#TO!Q#cO!W#SO#R#dO%Y#XO%`#ZO%fiO%giO%i#ZO%j#YO%k#XO%l#XO%m#YO%n#YO%o#YO%p#[O%q#]OV`X#T%eX#U%eX$w`X~O!|#`O~P2gO^#VO~O^#eO~O!QnO~P*aO[oO^YOaoOdoOh!POr!pOw}O!QnO!WaO!]!QO!phO!qhO%O+wO%UTO%VUO%YVO%fiO%giO%hjO%ikO%jlO~O!P#hO~P4jO#T#iO#U#iO~O#W#jO~O!a#kO~OVvO[oO^YOaoOdoOh!POjcOr|Ow}O!P!OO!QnO!WaO!]!QO!phO!qhO#Y!RO#^!SO#d!TO#j!UO#m!VO#v!WO#{!XO#}!YO$S!ZO$U![O$V![O$W!]O$Y!^O$[!_O%OQO%UTO%VUO%YVO%fiO%giO%hjO%ikO%jlO~O$v%QX~P6hO%O#oO~OZ#rO[#qO^#sO%O#oO~O^#uO%O#oO~Oj#yO~O^!hOh!POr!jOw}O!P!OO!Q#|O!WaO!]!QO%O!eO%Y!fO~Oj#}O~O!W$PO~O^$RO%O#oO~O^$UO%O#oO~O^$XO%O#oO~O[oO^YOaoOdoOh!POr!pOw}O!P!OO!Q-PO!WaO!]!QO!phO!qhO%O$ZO%UTO%VUO%YVO%fiO%giO%hjO%ikO%jlO~Oj$`O~P;_OV$fOjcO~P;_Oj$kO~O!QnOV$RX$w$RX~P*aO%O$oOV$TX$w$TX~O%O$oO~O${$rO$|$rO$}$tO~OZeX^!TX!W!TXj!TXn!TXh!TXr!TXw!TX{!TX!P!TX!Q!TX!]!TX%O!TX%Y!TX~O]!TX!V!TXu!TX#T!TXV!TX$w!TX%`!TX[!TX!a!TX~P>VO^!hOh!POr-TOw}O!P-_O!Q-`O!W-^O!]-eO%O!eO%Y!fO~OZ!sO~O^#uO~O!P$xO~On!lO#W%]aV%]a^%]ah%]ar%]aw%]a!P%]a!Q%]a!W%]a!]%]a#T%]a$w%]a%O%]a%Y%]au%]a~O]${O^#QO~OZ#RO^#VO!W#SO%Y#XO%`#ZO%fiO%giO%i#ZO%j#YO%k#XO%l#XO%m#YO%n#YO%o#YO%p#[O%q#]O~O]$|O!|,WO~PBROj!qOn%QO!QnOi%cP~P*aO!V%WO!|#`O~PBRO!V%YO~OV!}O[oO^YOaoOdoOh!POjcOr!pOw}O!P!OO!QnO!WaO!]!QO!phO!qhO#Y!RO#^!SO#d!TO#j!UO#m!VO#v!WO#{!XO#}!YO$S!ZO$U![O$V![O$W!]O$Y!^O$[!_O%OQO%UTO%VUO%YVO%fiO%giO%hjO%ikO%jlO~Oi%dX#p%dX#q%dX~PDQOi%]O~O[oO^YOaoOdoOh!POr!pOw}O!P!OO!Q-QO!WaO!]!QO!phO!qhO%O+{O%UTO%VUO%YVO%fiO%giO%hjO%ikO%jlO~O^%aO%O%_O~O!QnO!a%cO~P*aO!QnOn$mX#T$mX#U$mXV$mX$w$mX!a$mX~P*aOn#TO#T%ea#U%eaV%ea$w%ea!a%ea~O]%fO~PF|OV#ga$w#ga~PDTO[%sO~OZ#rO[#qO]%vO%O#oO~O^!hOh!POn%zOr-TOu%xOw}O!P-_O!Q-`O!W-^O!]-eO%O,dO%Y!fO]%[P~O^&OOh!POr!jOw}O!P!OO!Q!kO!WaO!]!QO%Y!fO^%ZXj%ZX~O%O%}O~PKfOjcO^qa]qanqa!Vqa~O^#uO!W&SO~O^!hOh!POr-TOw}O{&WO!P-_O!Q-`O!W-^O!]-eO%O,xO%Y!fO~Oi&^O~PL{O^!hOh!POr!jOw}O!Q!kO!WaO!]!QO%O!eO%Y!fO~O!P#hO~PMwOi&eO%O,yO%Y!fO~O#T&gOV#ZX$w#ZX~P?tO]&kO%O#oO~O^!hOh!POr-TOw}O!P-_O!Q-`O!]-eO%O!eO%Y!fO~O!W&lO#T&mO~P! _O]&qO%O#oO~O#T&sOV#eX$w#eX~P?tO]&vO%O#oO~OjeX~P$XOjcO!|,XO~P2gOn!lO#W&yO#W%]X~O^#VOn#TO!Q#cO!W#SO!|,XO#R#dO%Y#XO%`#ZO%fiO%giO%i#ZO%j#YO%k#XO%l#XO%m#YO%n#YO%o#YO%p#[O%q#]OV`X#T%eX#U%eX~OZ&zOj$`O$w`X~P!#cOi'OO#p'PO#q'QO~OZ#ROjcO~P!#cO#T'TO#U#iO~O#W'UO~OV'WO!QnO~P*aOV'XO~OjcO~O!|#`OV#za$w#za~PBROi'[O#p']O#q'^O~On#TO!|#`OV%eX$w%eX!a%eX~PBRO!|#`OV$Za$w$Za~PBRO${$rO$|$rO$}'`O~O]${O~O%O!eO]%ZXn%ZX!V%ZX~PKfO!|#`Oi!_Xn!_X!a!`X~PBROi!_Xn!_X!a!`X~O!a'aO~On'bOi%cX~Oi'dO~On'eO!V%bX!a%bX~O!V'gO~O]'jOn'kO!|,YO~PBROn'nO!V'mO!a'oO!|#`O~PBRO!QnO!V'qO!a'rO~P*aO!|#`On$ma#T$ma#U$maV$ma$w$ma!a$ma~PBRO]'sOu'tO~O%Y#XO%j#YO%k#XO%l#XO%m#YO%n#YO%o#YOV!xiZ!xi^!xin!xi!Q!xi!W!xi!|!xi#R!xi#T!xi#U!xi$w!xi%`!xi%f!xi%g!xi%i!xi%p!xi%q!xi~O!V!xii!xi!a!xi~P!+YO%Y#XO%`#ZO%fiO%giO%i#ZO%j#YO%k#XO%l#XO%m#YO%n#YO%o#YOV!xiZ!xi^!xin!xi!Q!xi!W!xi#R!xi#T!xi#U!xi$w!xi%p!xi%q!xi!V!xii!xi!a!xi~O!|!xi~P!-TO!|#`O~P!-TO%Y#XO%`#ZO%fiO%giO%i#ZO%j#YO%k#XO%l#XO%m#YO%n#YO%o#YO%p#[OV!xiZ!xi^!xin!xi!Q!xi!W!xi#R!xi#T!xi#U!xi$w!xi%q!xi~O!|#`O!V!xii!xi!a!xi~P!/VO!|#`OV#Pi$w#Pi!a#Pi~PBRO]'uOn'wOu'vO~OZ#rO[#qO]'zO%O#oO~Ou'|O~P?tOn'}O]%[X~O](PO~OZeX^mX^!TXj!TX!W!TX~OjcOV$]i$w$]i~O%`(ZOV%^X$w%^Xn%^X!V%^X~Oi(`O~PL{O[(aO!W!tOVlX$wlX~On(bO~P?tO[(aOVlX$wlX~Oi(hO%O,yO%Y!fO~O!V(iO~O#T(kO~O](nO%O#oO~O[oO^YOaoOdoOh!POr!pOu-bOw}O!P!OO!QnO!V-UO!WaO!]!QO!phO!qhO%UTO%VUO%YVO%fiO%giO%hjO%ikO%jlO~O%O+zO~P!4vO](sO%O#oO~O#T(tOV#ea$w#ea~O](xO%O#oO~O#k(yOV#ii$w#ii~O[oO^YOaoOdoOh!POr!pOw}O!P!OO!Q-PO!WaO!]!QO!phO!qhO%O+xO%UTO%VUO%YVO%fiO%giO%hjO%ikO%jlO~O^(|O%O%_O~O#p%dP#q%dP~P/uOi)PO#p'PO#q'QO~O!a)RO~O!QnO#y)VO~P*aOV)WO!|#`O~PBROj#wa~P;_OV)WO!QnO~P*aOi)]O#p']O#q'^O~O[oO^YOaoOdoOh!POr!pOw}O!P!OO!QnO!WaO!]!QO!phO!qhO%UTO%VUO%YVO%fiO%giO%hjO%ikO%jlO~O%O,eO~P!:lO!a)bO~Oj!qO!QnO~P*aOj!qO!QnOi%ca~P*aOn)iOi%ca~O!V%ba!a%ba~P?tOn)lO!V%ba!a%ba~O])nO~O])oO~O!V)pO~O!QnO!V)rO!a)sO~P*aO!V)rO!a)sO!|#`O~PBRO])uOn)vO~O])wOn)xO~O^!hOh!POr-TOu%xOw}O!P-_O!Q-`O!W-^O!]-eO%O,dO%Y!fO~O]%[a~P!>nOn)|O]%[a~O]${O]tXntX~OjcOV$^q$w$^q~On*PO{&WO~P?tOn*SO!V%rX~O!V*UO~OjcOV$]q$w$]q~O%`(ZOV|a$w|an|a!V|a~O[*]OVla$wla~O[*]O!W!tOVla$wla~On*PO{&WO!W*`O^%WXj%WX~P! _OjcO#j!UO~OjcO!|,XO~PBROZ*dO^#VO!W#SO%Y#XO%`#ZO%fiO%giO%i#ZO%j#YO%k#XO%l#XO%m#YO%n#YO%o#YO%p#[O%q#]O~O!|#`O~P!BoO#^*eO~P?tO!a*fO~Oj$`O!|,XO~P!BoO#W*hO~Oj#wi~P;_OV*kO!|#`O~PBROn#TO!Q#cO!|#`O!a$QX#T%eX~PBRO#T*lO~O#W*lO~O!a*mO~O!|#`Oi!_in!_i~PBRO!|#`Oi!bXn!bX!a!cX~PBROi!bXn!bX!a!cX~O!a*nO~Oj!qO!QnOi%ci~P*aO!V%bi!a%bi~P?tO!V*qO!a*rO!|#`O~PBRO!V*qO!|#`O~PBRO]*tO~O]*uO~O]*uOu*vO~O]%[i~P!>nO%O!eO!V%ra~On*|O!V%ra~O[+OOVli$wli~O%O+yO~P!4vO#k+QOV#iy$w#iy~O^+RO%O%_O~O]+SO~O!|,XOj#xq~PBROj#wq~P;_O!V+ZO!|#`O~PBRO]+[On+]O~O%O!eO!V%ri~O^#QOn'eO!V%bX~O#^+`O~P?tOj+aO~O^#VO!W#SO!|#`O%Y#XO%`#ZO%fiO%giO%i#ZO%j#YO%k#XO%l#XO%m#YO%n#YO%o#YO%p#[O%q#]O~OZ+cO~P!JvO!|#`O!a$Qi~PBRO!|#`Oi!bin!bi~PBRO!V+dO!|#`O~PBRO]+eO~O]+fO~Oi+iO#p+jO#q+kO~O^+lO%O%_O~Oi+pO#p+jO#q+kO~O!a+rO~O#^+sO~P?tO!a+tO~O]+uO~OZeX^eX^!TXj!TX!WeX!W!TX!|eX%YeX%`eX%feX%geX%ieX%jeX%keX%leX%meX%neX%oeX%peX%qeXVeXneX!QeX#ReX#TeX#UeX$weX~O]eX]!TX!VeXieX!aeX~P!NUOjeX~P!NUOZeX^eX^!TXj!TX!WeX!W!TX!|eX%YeX%`eX%feX%geX%ieX%jeX%keX%leX%meX%neX%oeX%peX%qeXn!TX!VeX~O]eX!V!TX~P#!gOh!TXr!TXw!TX{!TX!P!TX!Q!TX!]!TX%O!TX%Y!TX~P#!gOZeX^eX^!TXj!TXneX!WeX!W!TX!|eX%YeX%`eX%feX%geX%ieX%jeX%keX%leX%meX%neX%oeX%peX%qeX~O]eXueX~P#$xO]$mXn$mXu$mX~PF|Oj$mXn$mX~P!7`On+|O]%eau%ea~On+}Oj%ea~O[oO^YOaoOdoOh!POr!pOw}O!P!OO!Q-OO!WaO!]!QO!phO!qhO%O+yO%UTO%VUO%YVO%fiO%giO%hjO%ikO%jlO~OZeX]!TX^UXhUXnUXn!TXrUXuUXwUX!PUX!QUX!WUX!W!TX!]UX%OUX%YUX~OnUX!QeX!aeX#TeX#WUX~P#$xOn+|O!|,YO]%eXu%eX~PBROn+}O!|,XOj%eX~PBRO^&OOV%ZXj%ZX$w%ZX]%ZXn%ZX!V%ZXu%ZX%`%ZX#T%ZX[%ZX!a%ZX~P?wO!|,YO]$man$mau$ma~PBRO!|,XOj$man$ma~PBRO%Y#XO%j#YO%k#XO%l#XO%m#YO%n#YO%o#YOZ!xi]!xi^!xi!W!xi!|!xi%`!xi%f!xi%g!xi%i!xi%p!xi%q!xi~Oj!xi~P!+YOn!xiu!xi~P#,hO%Y#XO%`#ZO%fiO%giO%i#ZO%j#YO%k#XO%l#XO%m#YO%n#YO%o#YOZ!xi]!xi^!xi!W!xi!|!xi%p!xi%q!xi~O%Y#XO%`#ZO%fiO%giO%i#ZO%j#YO%k#XO%l#XO%m#YO%n#YO%o#YOV!xiZ!xi^!xij!xin!xi!Q!xi!W!xi#R!xi#T!xi#U!xi$w!xi%p!xi%q!xi~O!|!xi~P#/_On!xiu!xi~P#.TO%Y#XO%`#ZO%fiO%giO%i#ZO%j#YO%k#XO%l#XO%m#YO%n#YO%o#YOZ!xi]!xi^!xi!W!xi%p!xi%q!xi~O!|,WO~P#1^O!|,XO~P#/_O!|,YOn!xiu!xi~P#1^O%Y#XO%`#ZO%fiO%giO%i#ZO%j#YO%k#XO%l#XO%m#YO%n#YO%o#YO%p#[OZ!xi]!xi^!xi!W!xi%q!xi~O!|,WO~P#3QO!|,XOj!xi~P!/VO!|,YOn!xiu!xi~P#3QO!|,XOj#Pi~PBROV!TXZeX^mX!W!TX$w!TX~O%`!TX~P#5RO[!TXhmXnmXrmXwmX!PmX!QmX!WmX!]mX%OmX%YmX~P#5ROn#TO!Q,aO!|,XO#R#dOj`X#T%eX#U%eX~PBRO[oO^YOaoOdoOh!POr!pOw}O!P#hO!WaO!]!QO!phO!qhO%UTO%VUO%YVO%fiO%giO%hjO%ikO%jlO~O!Q-OO%O+yO~P#6{O!Q-PO%O+xO~P#6{O!Q-QO%O+{O~P#6{O#T,bO#U,bO~O#W,cO~O^!hOh!POr-TOw}O!P-_O!Q-WO!W-^O!]-eO%O!eO%Y!fO~O^!hOh!POr-TOw}O!Q-`O!W-^O!]-eO%O!eO%Y!fO~O!P-VO~P#9zO%O+wO~P!4vO!P-XO~O!V-YO!|#`O~PBRO!V-ZO~O!V-[O~O!W-dO~OP%ka%Oa~\",\n goto: \"!FW%sPP%tP%wP%zP'SP'XPPPP'`'cP'u'uP)w'u-_PPP0j0m0qP1V4b1VP7s8WP1VP8a8d8hP8p8w1VPP1V8{<`?vPPCY-_-_-_PCdCuCxPC{DQ'u'uDV'uES'u'u'u'uGUIW'uPPJR'uJUMjMjMj'u! r! r!#SP!$`!%d!&d'cP'cPP'cP!&yP!'V!'^!&yP!'a!'h!'n!'w!&yP!'z!(R!&y!(U!(fPP!&yP!(x!)UPP!&y!)Y!)c!&yP!)g!)gP!&yP!&yP!)j!)m!&v!&yP!&yPPP!&yP!&yP!)q!)q!)w!)}!*U!*[!*d!*j!*p!*w!*}!+T!+Z!.q!.x!/O!/X!/m!/s!/z!0Q!0W!0^!0d!0jPPPPPPPPP!0p!1f!1k!1{!2kPP!7P!:^P!>u!?Z!?_!@Z!@fP!@p!D_!Df!Di!DuPPPPPPPPPPPP!FSR!aPRyO!WXOScw!R!T!U!W#O#k#n#u$R$X&O&j&u&|'W'Y']'})W)|*k*w+gQ#pzU#r{#s%uQ#x|U$T!S$U&pQ$^!VQ$y!lR)U'RVROS#nQ#t{T%t#s%uR#t{qrOScw!U!V!W#O#k#n&|'W'Y)W*k+g%PoOSYacmnw!U!V!W!X!Z!_!q#O#Q#S#T#V#^#_#`#a#b#c#i#j#k#n$f%c&g&l&s&x&y&|'P'R'T'U'W'X'Y']'a'b'o'r'w(k(t)V)W)i)s*`*h*k*l*n*o*r+g+|+},Q,R,S,T,U,V,W,X,Y,Z,[,],^,_,`,a,b,c,{,|,}-O-P-Q-^%O]OSYacmnw!U!V!W!X!Z!_!q#O#Q#S#T#V#^#_#`#a#b#c#i#j#k#n$f%c&g&l&s&x&y&|'P'R'T'U'W'X'Y']'a'b'o'r'w(k(t)V)W)i)s*`*h*k*l*n*o*r+g+|+},Q,R,S,T,U,V,W,X,Y,Z,[,],^,_,`,a,b,c,{,|,}-O-P-Q-^#u!iW^!O!h!t!z#e#h#u#v#y#|#}$P$Q$T$W$v$x%W%Y%a%x%y&O&S&W&]&`&b&d&m'e'|'}(S([(c(i(o(|)l)|*P*Q*S*p*w*|+R+^+j+l,h-U-V-W-X-Y-Z-[-]-_-d'cbOSWYacmnw!O!U!V!W!X!Z!_!h!q!t!z#O#Q#S#T#V#^#_#`#a#b#c#e#h#i#j#k#n#u#v#y#|$P$Q$T$W$f$v$x%W%Y%a%c%x%y&O&W&]&`&g&l&m&s&x&y&|'P'R'T'U'W'X'Y']'a'b'e'o'r'w'|'}(S([(c(i(k(o(t(|)V)W)i)l)s)|*Q*`*h*k*l*n*o*p*r*w+R+g+j+l+|+},Q,R,S,T,U,V,W,X,Y,Z,[,],^,_,`,a,b,c,h,{,|,}-O-P-Q-U-V-W-X-Y-Z-[-]-^-_-dR$O!PT&c#}&dW%`#R&z*d+cQ&Q#vS&V#y&]S&`#}&dR*Y(b'cZOSWYacmnw!O!U!V!W!X!Z!_!h!q!t!z#O#Q#S#T#V#^#_#`#a#b#c#e#h#i#j#k#n#u#v#y#|$P$Q$T$W$f$v$x%W%Y%a%c%x%y&O&W&]&`&g&l&m&s&x&y&|'P'R'T'U'W'X'Y']'a'b'e'o'r'w'|'}(S([(c(i(k(o(t(|)V)W)i)l)s)|*Q*`*h*k*l*n*o*p*r*w+R+g+j+l+|+},Q,R,S,T,U,V,W,X,Y,Z,[,],^,_,`,a,b,c,h,{,|,}-O-P-Q-U-V-W-X-Y-Z-[-]-^-_-d%fWOSWYacmnw!O!U!V!W!X!Z!_!q!z#O#Q#S#T#V#^#_#`#a#b#c#h#i#j#k#n#v#|$f$v$x%W%Y%c&g&l&s&x&y&|'P'R'T'U'W'X'Y']'a'b'o'r'w(i(k(t)V)W)i)s*`*h*k*l*n*o*r+g+|+},Q,R,S,T,U,V,W,X,Y,Z,[,],^,_,`,a,b,c,{,|,}-O-P-Q-^S&b#}&d!{-]!h!t#e#u#y$P$Q$T$W%a%x%y&O&W&]&`&m'e'|'}(S([(c(o(|)l)|*Q*p*w+R+j+l,h-U-V-W-X-Y-Z-[-]-_-dQ#v|S$v!j!pU&P#v$v,hZ,h#x&Q&U&V-TS%{#u&OV){'})|*wR#z}T&[#y&]]&X#y&](S([(o*QZ&Z#y&](S(o*QT([&Y(]'s_OSWYacmnw!O!U!V!W!X!Z!_!h!q!t!z#O#Q#S#T#V#^#_#`#a#b#c#e#h#i#j#k#n#u#v#y#|#}$P$Q$T$W$f$v$x%W%Y%a%c%x%y&O&S&W&]&`&b&d&g&l&m&s&x&y&|'P'R'T'U'W'X'Y']'a'b'e'o'r'w'|'}(S([(c(i(k(o(t(|)V)W)i)l)s)|*P*Q*S*`*h*k*l*n*o*p*r*w*|+R+^+g+j+l+|+},Q,R,S,T,U,V,W,X,Y,Z,[,],^,_,`,a,b,c,h,{,|,}-O-P-Q-U-V-W-X-Y-Z-[-]-^-_-d'r_OSWYacmnw!O!U!V!W!X!Z!_!h!q!t!z#O#Q#S#T#V#^#_#`#a#b#c#e#h#i#j#k#n#u#v#y#|#}$P$Q$T$W$f$v$x%W%Y%a%c%x%y&O&S&W&]&`&b&d&g&l&m&s&x&y&|'P'R'T'U'W'X'Y']'a'b'e'o'r'w'|'}(S([(c(i(k(o(t(|)V)W)i)l)s)|*P*Q*S*`*h*k*l*n*o*p*r*w*|+R+^+g+j+l+|+},Q,R,S,T,U,V,W,X,Y,Z,[,],^,_,`,a,b,c,h,{,|,}-O-P-Q-U-V-W-X-Y-Z-[-]-^-_-dR!w^'bbOSWYacmnw!O!U!V!W!X!Z!_!h!q!t!z#O#Q#S#T#V#^#_#`#a#b#c#e#h#i#j#k#n#u#v#y#|$P$Q$T$W$f$v$x%W%Y%a%c%x%y&O&W&]&`&g&l&m&s&x&y&|'P'R'T'U'W'X'Y']'a'b'e'o'r'w'|'}(S([(c(i(k(o(t(|)V)W)i)l)s)|*Q*`*h*k*l*n*o*p*r*w+R+g+j+l+|+},Q,R,S,T,U,V,W,X,Y,Z,[,],^,_,`,a,b,c,h,{,|,}-O-P-Q-U-V-W-X-Y-Z-[-]-^-_-dS&a#}&dR(d&bS!u]fX!x`&_(e(oQ!r[Q%O!qQ)d'aU)f'b)i*oR+X*nR%R!qR%P!qV)h'b)i*oV)g'b)i*odtOScw#O#k#n&|'Y+gQ$h!WQ&R#wQ&w$[S'S$c$iQ(V&TQ*O(RQ*V(WQ*b(yQ*c(zR+_+Q%PfOSYacmnw!U!V!W!X!Z!_!q#O#Q#S#T#V#^#_#`#a#b#c#i#j#k#n$f%c&g&l&s&x&y&|'P'R'T'U'W'X'Y']'a'b'o'r'w(k(t)V)W)i)s*`*h*k*l*n*o*r+g+|+},Q,R,S,T,U,V,W,X,Y,Z,[,],^,_,`,a,b,c,{,|,}-O-P-Q-^%PgOSYacmnw!U!V!W!X!Z!_!q#O#Q#S#T#V#^#_#`#a#b#c#i#j#k#n$f%c&g&l&s&x&y&|'P'R'T'U'W'X'Y']'a'b'o'r'w(k(t)V)W)i)s*`*h*k*l*n*o*r+g+|+},Q,R,S,T,U,V,W,X,Y,Z,[,],^,_,`,a,b,c,{,|,}-O-P-Q-^!q#Weg!o!y$[$_$c$j$m$q$}%^%b%d%m'V'p(z({)S)Y)^)c)e)q)t*i*s+T+V+W+Y,f,g,i,j,w,z-aR#fh#^mOSacmnw!X!Z!_!q#O#S#T#^#_#`#a#b#c#i#j#k#n$f%c&g&l&s&y&|'P'T'U'X'Y']'a'b'o'r(k(t)i)s*`*h*l*n*o*r+g-^!W#_e!y$j$m$q$}%b%d%j%k%l%m'V'p({)Y)^)c)e)q)t*s+T+V+W+Y-aW,T!o,n,q,tj,U$[$_$c(z)S*i,g,j,o,r,u,w,z[,V%^,f,i,p,s,v`,{Y,Q,T,W,Z,^,{-Ox,|!U!V!W&x'R'W)V)W*k+},R,U,X,[,_,a,b,c,|-Pg,}#Q#V'w+|,S,V,Y,],`,}-Q#^mOSacmnw!X!Z!_!q#O#S#T#^#_#`#a#b#c#i#j#k#n$f%c&g&l&s&y&|'P'T'U'X'Y']'a'b'o'r(k(t)i)s*`*h*l*n*o*r+g-^`,{Y,Q,T,W,Z,^,{-Ox,|!U!V!W&x'R'W)V)W*k+},R,U,X,[,_,a,b,c,|-Pg,}#Q#V'w+|,S,V,Y,],`,}-Q!Y#^e!y$j$m$q$}%b%d%i%j%k%l%m'V'p({)Y)^)c)e)q)t*s+T+V+W+Y-aY,Q!o,k,n,q,tl,R$[$_$c(z)S*i,g,j,l,o,r,u,w,z_,S%^,f,i,m,p,s,v!W#_e!y$j$m$q$}%b%d%j%k%l%m'V'p({)Y)^)c)e)q)t*s+T+V+W+Y-aW,T!o,n,q,tj,U$[$_$c(z)S*i,g,j,o,r,u,w,z],V%^,f,i,p,s,v!S#ae!y$j$m$q$}%b%d%l%m'V'p({)Y)^)c)e)q)t*s+T+V+W+Y-aS,Z!o,tf,[$[$_$c(z)S*i,g,j,u,w,zX,]%^,f,i,v!Q#be!y$j$m$q$}%b%d%m'V'p({)Y)^)c)e)q)t*s+T+V+W+Y-aQ,^!od,_$[$_$c(z)S*i,g,j,w,zV,`%^,f,iprOScw!U!V!W#O#k#n&|'W'Y)W*k+gR)a']etOScw#O#k#n&|'Y+gQ$S!RT&i$R&jR$S!RQ$V!ST&o$U&pQ&U#xR&m$TS(T&S&lV*{*S*|+^R$V!SQ$Y!TT&t$X&uR$Y!TdsOScw#O#k#n&|'Y+gT$p![!]dtOScw#O#k#n&|'Y+gQ*b(yR+_+QQ$a!VQ&{$_Q)T'RR*g)ST&|$`&}Q+b+SQ+m+fR+v+uT+g+a+hR$i!WR$l!YT'Y$k'ZXuOSw#nQ$s!`R'_$sSSO#nR!dSQ%u#sR'y%uUwOS#nR#mwQ&d#}R(g&dQ(c&`R*Z(cS!mX$^R$z!mQ(O%{R)}(OQ&]#yR(_&]Q(]&YR*X(]'r^OSWYacmnw!O!U!V!W!X!Z!_!h!q!t!z#O#Q#S#T#V#^#_#`#a#b#c#e#h#i#j#k#n#u#v#y#|#}$P$Q$T$W$f$v$x%W%Y%a%c%x%y&O&S&W&]&`&b&d&g&l&m&s&x&y&|'P'R'T'U'W'X'Y']'a'b'e'o'r'w'|'}(S([(c(i(k(o(t(|)V)W)i)l)s)|*P*Q*S*`*h*k*l*n*o*p*r*w*|+R+^+g+j+l+|+},Q,R,S,T,U,V,W,X,Y,Z,[,],^,_,`,a,b,c,h,{,|,}-O-P-Q-U-V-W-X-Y-Z-[-]-^-_-dR!v^S'f%T+PR)m'fQ'c%RR)j'cW#Oc&|'Y+gR%[#O^#Ue$[$_$c$m)^,zU%e#U,O,PQ,O,fR,P,gQ&j$RR(m&jS*Q(S(oR*y*QQ*T(TR*}*TQ&p$UR(r&pQ&u$XR(w&uQ&}$`R)O&}Q+h+aR+o+hQ'Z$kR)['ZQ!cRQ#luQ#nyQ%Z!|Q&x$]Q'R$bQ'x%tQ(^&[Q(f&cQ(l&iQ(q&oR(v&tVxOS#nWuOSw#nY!|c#O&|'Y+gR%r#kdtOScw#O#k#n&|'Y+gQ$]!UQ$b!VQ$g!WQ)X'WQ*j)WR+U*kdeOScw#O#k#n&|'Y+gQ!oYQ!ya`#gmn,{,|,}-O-P-QQ$[!UQ$_!VQ$c!WQ$j!Xd$m!Z#i#j&g&s'P'T'U(k(tQ$q!_Q$}!qQ%^#QQ%b#SQ%d#TW%h#^,Q,R,SQ%i#_Q%j#`Q%k#aQ%l#bQ%m#cQ'V$fQ'p%cQ(z&xQ({&yQ)S'RQ)Y'XQ)^']Q)c'aU)e'b)i*oQ)q'oQ)t'rQ*i)VQ*s)sQ+T*hQ+V*lQ+W*nQ+Y*rS,f#V'wS,g,b,cQ,i+|Q,j+}Q,k,TQ,l,UQ,m,VQ,n,WQ,o,XQ,p,YQ,q,ZQ,r,[Q,s,]Q,t,^Q,u,_Q,v,`Q,w,aU,z'W)W*kV-a&l*`-^#bZW!O!h!t!z#e#h#u#v#y#|$P$Q$T$W$v$x%W%Y%a%x%y&O&W&]&`&m'e'|'}(S([(c(i(o(|)l)|*Q*p*w+R+j+l,h-U-V-W-X-Y-Z-[-]-_-d%P[OSYacmnw!U!V!W!X!Z!_!q#O#Q#S#T#V#^#_#`#a#b#c#i#j#k#n$f%c&g&l&s&x&y&|'P'R'T'U'W'X'Y']'a'b'o'r'w(k(t)V)W)i)s*`*h*k*l*n*o*r+g+|+},Q,R,S,T,U,V,W,X,Y,Z,[,],^,_,`,a,b,c,{,|,}-O-P-Q-^$zdOSacmnw!U!V!W!X!Z!_!q#O#Q#S#T#V#^#_#`#a#b#c#i#j#k#n$f%c&g&l&s&x&y&|'P'R'T'U'W'X'Y']'a'b'o'r'w(k(t)V)W)i)s*h*k*l*n*o*r+g+|+},Q,R,S,T,U,V,W,X,Y,Z,[,],^,_,`,a,b,c,{,|,}-O-P-Q-^S!gW-]Q!nYS#{!O-_Q$u!hS%T!t+jS%X!z-UQ%n#e[%o#h#|$x-V-W-XW%w#u'})|*wU&P#v$v,h[&X#y&](S([(o*QQ&f$PQ&h$QQ&n$TQ&r$WS'h%W-YS'i%Y-ZW'l%a(|+R+lS'{%x%yQ(Q&OQ(Y&WQ(d&`Q(p&mU)k'e)l*pQ)z'|Q*[(cS*^(i-[Q+P*`R-c-dS#w|!pS$w!j-TQ&T#xQ(R&QQ(W&UR(X&VT%|#u&OhqOScw!U!V#O#k#n&|'Y+gU$Q!R$R&jU$W!T$X&uQ$e!WY%y#u&O'})|*wQ)`']V-S'W)W*kS&[#y&]S*R(S(oR*z*QY&Y#y&](S(o*QR*W(['``OSWYacmnw!O!U!V!W!X!Z!_!h!q!t!z#O#Q#S#T#V#^#_#`#a#b#c#e#h#i#j#k#n#u#v#y#|$P$Q$T$W$f$v$x%W%Y%a%c%x%y&O&W&]&`&g&m&s&x&y&|'P'R'T'U'W'X'Y']'a'b'e'o'r'w'|'}(S([(c(i(k(o(t(|)V)W)i)l)s)|*Q*`*h*k*l*n*o*p*r*w+R+g+j+l+|+},Q,R,S,T,U,V,W,X,Y,Z,[,],^,_,`,a,b,c,h,{,|,}-O-P-Q-U-V-W-X-Y-Z-[-]-^-_-dS&_#}&dW(S&S*S*|+^Q(e&bQ(o&lR*x*PS%U!t*`R+q+jR%S!qQ#PcQ(}&|Q)Z'YR+n+ghpOScw!U!V#O#k#n&|'Y+gQ$d!WQ$n!ZQ%g#VU%p#i'T,bU%q#j'U,cQ(j&gQ(u&sQ)Q'PQ)_']Q)y'wQ*_(kQ*a(tV-R'W)W*kT(U&S&l\",\n nodeNames: \"⚠ LineComment BlockComment SourceFile PackageClause package DefName ; ImportDecl import ImportSpec . String ) ( SpecList ExprStatement Number Bool Nil Rune VariableName TypedLiteral StructType struct } { StructBody FieldDecl FieldName , PointerType * FunctionType func Parameters Parameter ... InterfaceType interface InterfaceBody MethodElem UnderlyingType ~ TypeElem LogicOp ChannelType chan <- ParenthesizedType QualifiedType TypeName ParameterizedType ] [ TypeArgs ArrayType SliceType MapType map LiteralValue Element Key : Element Key ParenthesizedExpr FunctionLiteral Block Conversion SelectorExpr IndexExpr SliceExpr TypeAssertion CallExpr ParameterizedExpr Arguments CallExpr make new Arguments UnaryExp ArithOp LogicOp BitOp DerefOp BinaryExp ArithOp BitOp BitOp CompareOp LogicOp LogicOp SendStatement IncDecStatement IncDecOp Assignment = UpdateOp VarDecl := ConstDecl const ConstSpec SpecList TypeDecl type TypeSpec TypeParams TypeParam SpecList VarDecl var VarSpec SpecList LabeledStatement LabelName IfStatement if else SwitchStatement switch SwitchBlock Case case default TypeSwitchStatement SwitchBlock Case ForStatement for ForClause RangeClause range GoStatement go SelectStatement select SelectBlock Case ReceiveStatement ReturnStatement return GotoStatement break continue goto FallthroughStatement fallthrough DeferStatement defer FunctionDecl MethodDecl\",\n maxTerm: 218,\n context: trackTokens,\n nodeProps: [\n [\"isolate\", -3,2,12,20,\"\"],\n [\"group\", -18,12,17,18,19,20,21,22,66,67,69,70,71,72,73,74,77,81,86,\"Expr\",-20,16,68,93,94,96,99,101,105,111,115,117,120,126,129,134,136,141,143,147,149,\"Statement\",-12,23,31,33,38,46,49,50,51,52,56,57,58,\"Type\"],\n [\"openedBy\", 13,\"(\",25,\"{\",53,\"[\"],\n [\"closedBy\", 14,\")\",26,\"}\",54,\"]\"]\n ],\n propSources: [goHighlighting],\n skippedNodes: [0,1,2,153],\n repeatNodeCount: 23,\n tokenData: \":b~RvXY#iYZ#i]^#ipq#iqr#zrs$Xuv&Pvw&^wx&yxy(qyz(vz{({{|)T|})e}!O)j!O!P)u!P!Q+}!Q!R,y!R![-t![!]2^!]!^2k!^!_2p!_!`3]!`!a3e!c!}3x!}#O4j#P#Q4o#Q#R4t#R#S4|#S#T9X#T#o3x#o#p9q#p#q9v#q#r:W#r#s:]$g;'S3x;'S;=`4d<%lO3x~#nS$y~XY#iYZ#i]^#ipq#iU$PP%hQ!_!`$SS$XO!|S~$^W[~OY$XZr$Xrs$vs#O$X#O#P${#P;'S$X;'S;=`%y<%lO$X~${O[~~%ORO;'S$X;'S;=`%X;=`O$X~%^X[~OY$XZr$Xrs$vs#O$X#O#P${#P;'S$X;'S;=`%y;=`<%l$X<%lO$X~%|P;=`<%l$X~&UP%l~!_!`&X~&^O#U~~&cR%j~vw&l!_!`&X#Q#R&q~&qO%p~~&vP%o~!_!`&X~'OWd~OY&yZw&ywx'hx#O&y#O#P'm#P;'S&y;'S;=`(k<%lO&y~'mOd~~'pRO;'S&y;'S;=`'y;=`O&y~(OXd~OY&yZw&ywx'hx#O&y#O#P'm#P;'S&y;'S;=`(k;=`<%l&y<%lO&y~(nP;=`<%l&y~(vO^~~({O]~~)QP%Y~!_!`&X~)YQ%f~{|)`!_!`&X~)eO#R~~)jOn~~)oQ%g~}!O)`!_!`&X~)zRZS!O!P*T!Q![*`#R#S+w~*WP!O!P*Z~*`Ou~Q*eTaQ!Q![*`!g!h*t#R#S+w#X#Y*t#]#^+rQ*wS{|+T}!O+T!Q![+^#R#S+lQ+WQ!Q![+^#R#S+lQ+cRaQ!Q![+^#R#S+l#]#^+rQ+oP!Q![+^Q+wOaQQ+zP!Q![*`~,SR%k~z{,]!P!Q,b!_!`&X~,bO$z~~,gSP~OY,bZ;'S,b;'S;=`,s<%lO,b~,vP;=`<%l,bQ-O[aQ!O!P*`!Q![-t!d!e.c!g!h*t!q!r/Z!z!{/x#R#S.]#U#V.c#X#Y*t#]#^+r#c#d/Z#l#m/xQ-yUaQ!O!P*`!Q![-t!g!h*t#R#S.]#X#Y*t#]#^+rQ.`P!Q![-tQ.fR!Q!R.o!R!S.o#R#S/QQ.tSaQ!Q!R.o!R!S.o#R#S/Q#]#^+rQ/TQ!Q!R.o!R!S.oQ/^Q!Q!Y/d#R#S/rQ/iRaQ!Q!Y/d#R#S/r#]#^+rQ/uP!Q!Y/dQ/{T!O!P0[!Q![1c!c!i1c#R#S2Q#T#Z1cQ0_S!Q![0k!c!i0k#R#S1V#T#Z0kQ0pVaQ!Q![0k!c!i0k!r!s*t#R#S1V#T#Z0k#]#^+r#d#e*tQ1YR!Q![0k!c!i0k#T#Z0kQ1hWaQ!O!P0k!Q![1c!c!i1c!r!s*t#R#S2Q#T#Z1c#]#^+r#d#e*tQ2TR!Q![1c!c!i1c#T#Z1c~2cP!a~!_!`2f~2kO#W~~2pOV~~2uR!|S}!O3O!^!_3T!_!`$S~3TO!Q~~3YP%m~!_!`&X~3bP#T~!_!`$S~3jQ!|S!_!`$S!`!a3p~3uP%n~!_!`&X~3}V%O~!Q![3x!c!}3x#R#S3x#T#o3x$g;'S3x;'S;=`4d<%lO3x~4gP;=`<%l3x~4oO!W~~4tO!V~~4yP%i~!_!`&X~5RV%O~!Q![5h!c!}3x#R#S3x#T#o3x$g;'S3x;'S;=`4d<%lO3x~5o^aQ%O~!O!P*`!Q![5h!c!g3x!g!h6k!h!}3x#R#S4|#T#X3x#X#Y6k#Y#]3x#]#^8k#^#o3x$g;'S3x;'S;=`4d<%lO3x~6pX%O~{|+T}!O+T!Q![7]!c!}3x#R#S8P#T#o3x$g;'S3x;'S;=`4d<%lO3x~7dXaQ%O~!Q![7]!c!}3x#R#S8P#T#]3x#]#^8k#^#o3x$g;'S3x;'S;=`4d<%lO3x~8UV%O~!Q![7]!c!}3x#R#S3x#T#o3x$g;'S3x;'S;=`4d<%lO3x~8rVaQ%O~!Q![3x!c!}3x#R#S3x#T#o3x$g;'S3x;'S;=`4d<%lO3x~9[TO#S9X#S#T$v#T;'S9X;'S;=`9k<%lO9X~9nP;=`<%l9X~9vOj~~9{Q%`~!_!`&X#p#q:R~:WO%q~~:]Oi~~:bO{~\",\n tokenizers: [semicolon, 1, 2, new LocalTokenGroup(\"j~RQYZXz{^~^O$|~~aP!P!Qd~iO$}~~\", 25, 181)],\n topRules: {\"SourceFile\":[0,3]},\n dynamicPrecedences: {\"19\":1,\"51\":-1,\"55\":2,\"69\":-1,\"108\":-1},\n specialized: [{term: 184, get: (value) => spec_identifier[value] || -1}],\n tokenPrec: 5451\n});\n\nexport { parser };\n","import { parser } from '@lezer/go';\nimport { syntaxTree, LRLanguage, indentNodeProp, continuedIndent, flatIndent, delimitedIndent, foldNodeProp, foldInside, LanguageSupport } from '@codemirror/language';\nimport { snippetCompletion, ifNotIn, completeFromList } from '@codemirror/autocomplete';\nimport { NodeWeakMap, IterMode } from '@lezer/common';\n\n/**\nA collection of Go-related [snippets](https://codemirror.net/6/docs/ref/#autocomplete.snippet).\n*/\nconst snippets = [\n /*@__PURE__*/snippetCompletion(\"func ${name}(${params}) ${type} {\\n\\t${}\\n}\", {\n label: \"func\",\n detail: \"declaration\",\n type: \"keyword\"\n }),\n /*@__PURE__*/snippetCompletion(\"func (${receiver}) ${name}(${params}) ${type} {\\n\\t${}\\n}\", {\n label: \"func\",\n detail: \"method declaration\",\n type: \"keyword\"\n }),\n /*@__PURE__*/snippetCompletion(\"var ${name} = ${value}\", {\n label: \"var\",\n detail: \"declaration\",\n type: \"keyword\"\n }),\n /*@__PURE__*/snippetCompletion(\"type ${name} ${type}\", {\n label: \"type\",\n detail: \"declaration\",\n type: \"keyword\"\n }),\n /*@__PURE__*/snippetCompletion(\"const ${name} = ${value}\", {\n label: \"const\",\n detail: \"declaration\",\n type: \"keyword\"\n }),\n /*@__PURE__*/snippetCompletion(\"type ${name} = ${type}\", {\n label: \"type\",\n detail: \"alias declaration\",\n type: \"keyword\"\n }),\n /*@__PURE__*/snippetCompletion(\"for ${init}; ${test}; ${update} {\\n\\t${}\\n}\", {\n label: \"for\",\n detail: \"loop\",\n type: \"keyword\"\n }),\n /*@__PURE__*/snippetCompletion(\"for ${i} := range ${value} {\\n\\t${}\\n}\", {\n label: \"for\",\n detail: \"range\",\n type: \"keyword\"\n }),\n /*@__PURE__*/snippetCompletion(\"select {\\n\\t${}\\n}\", {\n label: \"select\",\n detail: \"statement\",\n type: \"keyword\"\n }),\n /*@__PURE__*/snippetCompletion(\"case ${}:\\n${}\", {\n label: \"case\",\n type: \"keyword\"\n }),\n /*@__PURE__*/snippetCompletion(\"switch ${} {\\n\\t${}\\n}\", {\n label: \"switch\",\n detail: \"statement\",\n type: \"keyword\"\n }),\n /*@__PURE__*/snippetCompletion(\"switch ${}.(${type}) {\\n\\t${}\\n}\", {\n label: \"switch\",\n detail: \"type statement\",\n type: \"keyword\"\n }),\n /*@__PURE__*/snippetCompletion(\"if ${} {\\n\\t${}\\n}\", {\n label: \"if\",\n detail: \"block\",\n type: \"keyword\"\n }),\n /*@__PURE__*/snippetCompletion(\"if ${} {\\n\\t${}\\n} else {\\n\\t${}\\n}\", {\n label: \"if\",\n detail: \"/ else block\",\n type: \"keyword\"\n }),\n /*@__PURE__*/snippetCompletion(\"import ${name} \\\"${module}\\\"\\n${}\", {\n label: \"import\",\n detail: \"declaration\",\n type: \"keyword\"\n }),\n];\n\nconst cache = /*@__PURE__*/new NodeWeakMap();\nconst ScopeNodes = /*@__PURE__*/new Set([\n \"SourceFile\", \"Block\",\n \"FunctionDecl\", \"MethodDecl\", \"FunctionLiteral\",\n \"ForStatement\", \"SwitchStatement\", \"TypeSwitchStatement\", \"IfStatement\",\n]);\nfunction defIDs(type, spec) {\n return (node, def) => {\n outer: for (let cur = node.node.firstChild, depth = 0, parent = null;;) {\n while (!cur) {\n if (!depth)\n break outer;\n depth--;\n cur = parent.nextSibling;\n parent = parent.parent;\n }\n if (spec && cur.name == spec || cur.name == \"SpecList\") {\n depth++;\n parent = cur;\n cur = cur.firstChild;\n }\n else {\n if (cur.name == \"DefName\")\n def(cur, type);\n cur = cur.nextSibling;\n }\n }\n return true;\n };\n}\nconst gatherCompletions = {\n FunctionDecl: /*@__PURE__*/defIDs(\"function\"),\n VarDecl: /*@__PURE__*/defIDs(\"var\", \"VarSpec\"),\n ConstDecl: /*@__PURE__*/defIDs(\"constant\", \"ConstSpec\"),\n TypeDecl: /*@__PURE__*/defIDs(\"type\", \"TypeSpec\"),\n ImportDecl: /*@__PURE__*/defIDs(\"constant\", \"ImportSpec\"),\n Parameter: /*@__PURE__*/defIDs(\"var\"),\n __proto__: null\n};\nfunction getScope(doc, node) {\n let cached = cache.get(node);\n if (cached)\n return cached;\n let completions = [], top = true;\n function def(node, type) {\n let name = doc.sliceString(node.from, node.to);\n completions.push({ label: name, type });\n }\n node.cursor(IterMode.IncludeAnonymous).iterate(node => {\n if (top) {\n top = false;\n }\n else if (node.name) {\n let gather = gatherCompletions[node.name];\n if (gather && gather(node, def) || ScopeNodes.has(node.name))\n return false;\n }\n else if (node.to - node.from > 8192) {\n // Allow caching for bigger internal nodes\n for (let c of getScope(doc, node.node))\n completions.push(c);\n return false;\n }\n });\n cache.set(node, completions);\n return completions;\n}\nconst Identifier = /^[\\w$\\xa1-\\uffff][\\w$\\d\\xa1-\\uffff]*$/;\nconst dontComplete = [\n \"String\", \"LineComment\", \"BlockComment\",\n \"DefName\", \"LabelName\", \"FieldName\",\n \".\", \"?.\"\n];\n/**\nCompletion source that looks up locally defined names in Go code.\n*/\nconst localCompletionSource = context => {\n let inner = syntaxTree(context.state).resolveInner(context.pos, -1);\n if (dontComplete.indexOf(inner.name) > -1)\n return null;\n let isWord = inner.name == \"VariableName\" ||\n inner.to - inner.from < 20 && Identifier.test(context.state.sliceDoc(inner.from, inner.to));\n if (!isWord && !context.explicit)\n return null;\n let options = [];\n for (let pos = inner; pos; pos = pos.parent) {\n if (ScopeNodes.has(pos.name))\n options = options.concat(getScope(context.state.doc, pos));\n }\n return {\n options,\n from: isWord ? inner.from : context.pos,\n validFor: Identifier\n };\n};\n\n/**\nA language provider based on the [Lezer Go\nparser](https://github.com/lezer-parser/go), extended with\nfolding and indentation information.\n*/\nconst goLanguage = /*@__PURE__*/LRLanguage.define({\n name: \"go\",\n parser: /*@__PURE__*/parser.configure({\n props: [\n /*@__PURE__*/indentNodeProp.add({\n IfStatement: /*@__PURE__*/continuedIndent({ except: /^\\s*({|else\\b)/ }),\n LabeledStatement: flatIndent,\n \"SwitchBlock SelectBlock\": context => {\n let after = context.textAfter, closed = /^\\s*\\}/.test(after), isCase = /^\\s*(case|default)\\b/.test(after);\n return context.baseIndent + (closed || isCase ? 0 : context.unit);\n },\n Block: /*@__PURE__*/delimitedIndent({ closing: \"}\" }),\n BlockComment: () => null,\n Statement: /*@__PURE__*/continuedIndent({ except: /^{/ }),\n }),\n /*@__PURE__*/foldNodeProp.add({\n \"Block SwitchBlock SelectBlock LiteralValue InterfaceType StructType SpecList\": foldInside,\n BlockComment(tree) { return { from: tree.from + 2, to: tree.to - 2 }; }\n })\n ]\n }),\n languageData: {\n closeBrackets: { brackets: [\"(\", \"[\", \"{\", \"'\", '\"', \"`\"] },\n commentTokens: { line: \"//\", block: { open: \"/*\", close: \"*/\" } },\n indentOnInput: /^\\s*(?:case\\b|default\\b|\\})$/\n }\n});\nlet kwCompletion = (name) => ({ label: name, type: \"keyword\" });\nconst keywords = /*@__PURE__*/\"interface struct chan map package go return break continue goto fallthrough else defer range true false nil\".split(\" \").map(kwCompletion);\n/**\nGo support. Includes [snippet](https://codemirror.net/6/docs/ref/#lang-go.snippets) and local\nvariable completion.\n*/\nfunction go() {\n let completions = snippets.concat(keywords);\n return new LanguageSupport(goLanguage, [\n goLanguage.data.of({\n autocomplete: ifNotIn(dontComplete, completeFromList(completions))\n }),\n goLanguage.data.of({\n autocomplete: localCompletionSource\n })\n ]);\n}\n\nexport { go, goLanguage, localCompletionSource, snippets };\n"],"names":["semicolon","ExternalTokenizer","input","stack","scan","next","context","peek","acceptToken","contextual","trackedTokens","Set","trackTokens","ContextTracker","start","shift","term","has","goHighlighting","styleTags","tags","definitionKeyword","moduleKeyword","controlKeyword","range","keyword","Bool","bool","String","string","Rune","character","Number","number","Nil","null","VariableName","variableName","DefName","definition","TypeName","typeName","LabelName","labelName","FieldName","propertyName","function","LineComment","lineComment","BlockComment","blockComment","LogicOp","logicOperator","ArithOp","arithmeticOperator","BitOp","bitwiseOperator","derefOperator","updateOperator","CompareOp","compareOperator","definitionOperator","operator","modifier","separator","punctuation","paren","squareBracket","brace","spec_identifier","__proto__","package","import","true","false","nil","struct","func","interface","chan","map","make","new","const","type","var","if","else","switch","case","default","for","go","select","return","break","continue","goto","fallthrough","defer","parser","LRParser","deserialize","version","states","stateData","nodeNames","maxTerm","nodeProps","propSources","skippedNodes","repeatNodeCount","tokenData","tokenizers","LocalTokenGroup","topRules","SourceFile","dynamicPrecedences","specialized","get","value","tokenPrec","snippets","snippetCompletion","label","detail","cache","NodeWeakMap","ScopeNodes","defIDs","spec","node","def","outer","cur","firstChild","depth","parent","nextSibling","name","gatherCompletions","FunctionDecl","VarDecl","ConstDecl","TypeDecl","ImportDecl","Parameter","getScope","doc","cached","completions","top","sliceString","from","to","push","cursor","IterMode","IncludeAnonymous","iterate","gather","c","set","Identifier","dontComplete","localCompletionSource","inner","syntaxTree","state","resolveInner","pos","indexOf","isWord","test","sliceDoc","explicit","options","concat","validFor","goLanguage","LRLanguage","define","configure","props","indentNodeProp","add","IfStatement","continuedIndent","except","LabeledStatement","flatIndent","after","textAfter","closed","isCase","baseIndent","unit","Block","delimitedIndent","closing","Statement","foldNodeProp","foldInside","tree","languageData","closeBrackets","brackets","commentTokens","line","block","open","close","indentOnInput","kwCompletion","keywords","split","LanguageSupport","data","of","autocomplete","ifNotIn","completeFromList"],"mappings":"0JAqBMA,EAAY,IAAIC,EAAAA,kBAAkB,CAACC,EAAOC,KAC9C,IAAK,IAAIC,EAAO,EAAGC,EAAOH,EAAMG,MAC1BF,EAAMG,UAAYD,EAAO,GAJjB,IAIsBA,GAJD,IAIoBA,GAJa,IAK5CA,GAL4C,IAK3BH,EAAMK,KAAKH,EAAO,KAL0B,IAM/EC,GANgG,KAM1EA,IACxBH,EAAMM,YAtBS,KAe4B,IAQzCH,GARmD,GAQlCA,GACrBA,EAAOH,EAAMK,OAAOH,IAErB,CAACK,YAAY,IAEhB,IAAIC,EAAgB,IAAIC,IAAI,CAnBf,GAPE,IAIN,GAHE,GAEA,GAMA,IACG,IAFF,IAGI,IATC,GAIA,GADA,KAyBjB,MAAMC,EAAc,IAAIC,EAAAA,eAAe,CACrCC,OAAO,EACPC,MAAO,CAACT,EAASU,IAjCP,KAiCgBA,EAAkBV,EAAUI,EAAcO,IAAID,KAGpEE,EAAiBC,EAAAA,UAAU,CAC/B,gDAAiDC,EAAAA,KAAKC,kBACtD,iBAAkBD,EAAAA,KAAKE,cACvB,iFAAkFF,EAAAA,KAAKG,eACvFC,MAASJ,EAAAA,KAAKK,QACdC,KAAMN,EAAAA,KAAKO,KACXC,OAAQR,EAAAA,KAAKS,OACbC,KAAMV,EAAAA,KAAKW,UACXC,OAAQZ,EAAAA,KAAKa,OACbC,IAAKd,EAAAA,KAAKe,KACVC,aAAchB,EAAAA,KAAKiB,aACnBC,QAASlB,EAAAA,KAAKmB,WAAWnB,EAAAA,KAAKiB,cAC9BG,SAAUpB,EAAAA,KAAKqB,SACfC,UAAWtB,EAAAA,KAAKuB,UAChBC,UAAWxB,EAAAA,KAAKyB,aAChB,uBAAwBzB,EAAAA,KAAK0B,SAAS1B,EAAAA,KAAKmB,WAAWnB,EAAAA,KAAKiB,eAC3D,mBAAoBjB,EAAAA,KAAKmB,WAAWnB,EAAAA,KAAKqB,UACzC,wBAAyBrB,EAAAA,KAAK0B,SAAS1B,EAAAA,KAAKiB,cAC5CU,YAAa3B,EAAAA,KAAK4B,YAClBC,aAAc7B,EAAAA,KAAK8B,aACnBC,QAAS/B,EAAAA,KAAKgC,cACdC,QAASjC,EAAAA,KAAKkC,mBACdC,MAAOnC,EAAAA,KAAKoC,gBACZ,YAAapC,EAAAA,KAAKqC,cAClB,oBAAqBrC,EAAAA,KAAKsC,eAC1BC,UAAWvC,EAAAA,KAAKwC,gBAChB,OAAQxC,EAAAA,KAAKyC,mBACb,KAAMzC,EAAAA,KAAK0C,SACX,QAAW1C,EAAAA,KAAK2C,SAChB,MAAO3C,EAAAA,KAAK4C,UACZ,QAAS5C,EAAAA,KAAK6C,YACd,MAAO7C,EAAAA,KAAK8C,MACZ,MAAO9C,EAAAA,KAAK+C,cACZ,MAAO/C,EAAAA,KAAKgD,QAIRC,EAAkB,CAACC,UAAU,KAAKC,QAAQ,GAAIC,OAAO,GAAIC,KAAK,IAAKC,MAAM,IAAKC,IAAI,IAAKC,OAAO,GAAIC,KAAK,GAAIC,UAAU,GAAIC,KAAK,GAAIC,IAAI,IAAKC,KAAK,IAAKC,IAAI,IAAKC,MAAM,IAAKC,KAAK,IAAKC,IAAI,IAAKC,GAAG,IAAKC,KAAK,IAAKC,OAAO,IAAKC,KAAK,IAAKC,QAAQ,IAAKC,IAAI,IAAKnE,MAAM,IAAKoE,GAAG,IAAKC,OAAO,IAAKC,OAAO,IAAKC,MAAM,IAAKC,SAAS,IAAKC,KAAK,IAAKC,YAAY,IAAKC,MAAM,KAC/VC,EAASC,EAAAA,SAASC,YAAY,CAClCC,QAAS,GACTC,OAAQ,itMACRC,UAAW,2gPACXR,KAAM,s6NACNS,UAAW,k2CACXC,QAAS,IACTrG,QAASM,EACTgG,UAAW,CACT,CAAC,WAAW,EAAG,EAAE,GAAG,GAAG,IACvB,CAAC,SAAS,GAAI,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,QAAO,GAAI,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,aAAY,GAAI,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,QAC7M,CAAC,WAAY,GAAG,IAAI,GAAG,IAAI,GAAG,KAC9B,CAAC,WAAY,GAAG,IAAI,GAAG,IAAI,GAAG,MAEhCC,YAAa,CAAC3F,GACd4F,aAAc,CAAC,EAAE,EAAE,EAAE,KACrBC,gBAAiB,GACjBC,UAAW,+gEACXC,WAAY,CAACjH,EAAW,EAAG,EAAG,IAAIkH,EAAAA,gBAAgB,kCAAmC,GAAI,MACzFC,SAAU,CAACC,WAAa,CAAC,EAAE,IAC3BC,mBAAoB,CAAC,GAAK,EAAE,IAAK,EAAG,GAAK,EAAE,MAAQ,KAAM,GACzDC,YAAa,CAAC,CAACtG,KAAM,IAAKuG,IAAMC,GAAUnD,EAAgBmD,KAAU,IACpEC,UAAW,OC7FPC,EAAW,CACAC,EAAAA,kBAAkB,8CAA+C,CAC1EC,MAAO,OACPC,OAAQ,cACRzC,KAAM,YAEGuC,EAAAA,kBAAkB,4DAA6D,CACxFC,MAAO,OACPC,OAAQ,qBACRzC,KAAM,YAEGuC,EAAAA,kBAAkB,yBAA0B,CACrDC,MAAO,MACPC,OAAQ,cACRzC,KAAM,YAEGuC,EAAAA,kBAAkB,uBAAwB,CACnDC,MAAO,OACPC,OAAQ,cACRzC,KAAM,YAEGuC,EAAAA,kBAAkB,2BAA4B,CACvDC,MAAO,QACPC,OAAQ,cACRzC,KAAM,YAEGuC,EAAAA,kBAAkB,yBAA0B,CACrDC,MAAO,OACPC,OAAQ,oBACRzC,KAAM,YAEGuC,EAAAA,kBAAkB,8CAA+C,CAC1EC,MAAO,MACPC,OAAQ,OACRzC,KAAM,YAEGuC,EAAAA,kBAAkB,yCAA0C,CACrEC,MAAO,MACPC,OAAQ,QACRzC,KAAM,YAEGuC,EAAAA,kBAAkB,qBAAsB,CACjDC,MAAO,SACPC,OAAQ,YACRzC,KAAM,YAEGuC,EAAAA,kBAAkB,iBAAkB,CAC7CC,MAAO,OACPxC,KAAM,YAEGuC,EAAAA,kBAAkB,yBAA0B,CACrDC,MAAO,SACPC,OAAQ,YACRzC,KAAM,YAEGuC,EAAAA,kBAAkB,mCAAoC,CAC/DC,MAAO,SACPC,OAAQ,iBACRzC,KAAM,YAEGuC,EAAAA,kBAAkB,qBAAsB,CACjDC,MAAO,KACPC,OAAQ,QACRzC,KAAM,YAEGuC,EAAAA,kBAAkB,sCAAuC,CAClEC,MAAO,KACPC,OAAQ,eACRzC,KAAM,YAEGuC,EAAAA,kBAAkB,kCAAqC,CAChEC,MAAO,SACPC,OAAQ,cACRzC,KAAM,aAIR0C,EAAqB,IAAIC,EAAAA,YACzBC,EAA0B,IAAIrH,IAAI,CACpC,aAAc,QACd,eAAgB,aAAc,kBAC9B,eAAgB,kBAAmB,sBAAuB,gBAE9D,SAASsH,EAAO7C,EAAM8C,GAClB,MAAO,CAACC,EAAMC,KACVC,EAAO,IAAK,IAAIC,EAAMH,EAAKA,KAAKI,WAAYC,EAAQ,EAAGC,EAAS,OAAQ,CACpE,MAAQH,GAAK,CACT,IAAKE,EACD,MAAMH,EACVG,IACAF,EAAMG,EAAOC,YACbD,EAASA,EAAOA,MACpB,CACIP,GAAQI,EAAIK,MAAQT,GAAoB,YAAZI,EAAIK,MAChCH,IACAC,EAASH,EACTA,EAAMA,EAAIC,aAGM,WAAZD,EAAIK,MACJP,EAAIE,EAAKlD,GACbkD,EAAMA,EAAII,YAElB,CACA,OAAO,EAEf,CACA,MAAME,EAAoB,CACtBC,aAA2BZ,EAAO,YAClCa,QAAsBb,EAAO,MAAO,WACpCc,UAAwBd,EAAO,WAAY,aAC3Ce,SAAuBf,EAAO,OAAQ,YACtCgB,WAAyBhB,EAAO,WAAY,cAC5CiB,UAAwBjB,EAAO,OAC/B3D,UAAW,MAEf,SAAS6E,EAASC,EAAKjB,GACnB,IAAIkB,EAASvB,EAAMP,IAAIY,GACvB,GAAIkB,EACA,OAAOA,EACX,IAAIC,EAAc,GAAIC,GAAM,EAC5B,SAASnB,EAAID,EAAM/C,GACf,IAAIuD,EAAOS,EAAII,YAAYrB,EAAKsB,KAAMtB,EAAKuB,IAC3CJ,EAAYK,KAAK,CAAE/B,MAAOe,EAAMvD,QACpC,CAkBA,OAjBA+C,EAAKyB,OAAOC,EAAAA,SAASC,kBAAkBC,QAAQ5B,IAC3C,GAAIoB,EACAA,GAAM,OAEL,GAAIpB,EAAKQ,KAAM,CAChB,IAAIqB,EAASpB,EAAkBT,EAAKQ,MACpC,GAAIqB,GAAUA,EAAO7B,EAAMC,IAAQJ,EAAW/G,IAAIkH,EAAKQ,MACnD,OAAO,CACf,MACK,GAAIR,EAAKuB,GAAKvB,EAAKsB,KAAO,KAAM,CAEjC,IAAK,IAAIQ,KAAKd,EAASC,EAAKjB,EAAKA,MAC7BmB,EAAYK,KAAKM,GACrB,OAAO,CACX,IAEJnC,EAAMoC,IAAI/B,EAAMmB,GACTA,CACX,CACA,MAAMa,EAAa,wCACbC,EAAe,CACjB,SAAU,cAAe,eACzB,UAAW,YAAa,YACxB,IAAK,MAKHC,EAAwB/J,IAC1B,IAAIgK,EAAQC,EAAAA,WAAWjK,EAAQkK,OAAOC,aAAanK,EAAQoK,QAC3D,GAAIN,EAAaO,QAAQL,EAAM3B,OAAQ,EACnC,OAAO,KACX,IAAIiC,EAAuB,gBAAdN,EAAM3B,MACf2B,EAAMZ,GAAKY,EAAMb,KAAO,IAAMU,EAAWU,KAAKvK,EAAQkK,MAAMM,SAASR,EAAMb,KAAMa,EAAMZ,KAC3F,IAAKkB,IAAWtK,EAAQyK,SACpB,OAAO,KACX,IAAIC,EAAU,GACd,IAAK,IAAIN,EAAMJ,EAAOI,EAAKA,EAAMA,EAAIjC,OAC7BT,EAAW/G,IAAIyJ,EAAI/B,QACnBqC,EAAUA,EAAQC,OAAO9B,EAAS7I,EAAQkK,MAAMpB,IAAKsB,KAE7D,MAAO,CACHM,UACAvB,KAAMmB,EAASN,EAAMb,KAAOnJ,EAAQoK,IACpCQ,SAAUf,IASZgB,EAA0BC,EAAAA,WAAWC,OAAO,CAC9C1C,KAAM,KACNvC,OAAqBA,EAAOkF,UAAU,CAClCC,MAAO,CACUC,EAAAA,eAAeC,IAAI,CAC5BC,YAA0BC,EAAAA,gBAAgB,CAAEC,OAAQ,mBACpDC,iBAAkBC,EAAAA,WAClB,0BAA2BxL,IACvB,IAAIyL,EAAQzL,EAAQ0L,UAAWC,EAAS,SAASpB,KAAKkB,GAAQG,EAAS,uBAAuBrB,KAAKkB,GACnG,OAAOzL,EAAQ6L,YAAcF,GAAUC,EAAS,EAAI5L,EAAQ8L,OAEhEC,MAAoBC,EAAAA,gBAAgB,CAAEC,QAAS,MAC/CtJ,aAAc,IAAM,KACpBuJ,UAAwBb,EAAAA,gBAAgB,CAAEC,OAAQ,SAEzCa,EAAAA,aAAahB,IAAI,CAC1B,+EAAgFiB,EAAAA,WAChFzJ,aAAa0J,IAAe,CAAElD,KAAMkD,EAAKlD,KAAO,EAAGC,GAAIiD,EAAKjD,GAAK,SAI7EkD,aAAc,CACVC,cAAe,CAAEC,SAAU,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,MACrDC,cAAe,CAAEC,KAAM,KAAMC,MAAO,CAAEC,KAAM,KAAMC,MAAO,OACzDC,cAAe,kCAGvB,IAAIC,EAAgB1E,KAAYf,MAAOe,EAAMvD,KAAM,YACnD,MAAMkI,EAAwB,8GAA8GC,MAAM,KAAKvI,IAAIqI,cAK3J,WACI,IAAI/D,EAAc5B,EAASuD,OAAOqC,GAClC,OAAO,IAAIE,EAAAA,gBAAgBrC,EAAY,CACnCA,EAAWsC,KAAKC,GAAG,CACfC,aAAcC,EAAAA,QAAQxD,EAAcyD,EAAAA,iBAAiBvE,MAEzD6B,EAAWsC,KAAKC,GAAG,CACfC,aAActD,KAG1B","x_google_ignoreList":[0,1]}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";const t=require("./index-Cdt7DehW.cjs");class e{constructor(t,e,s,i,r,h,n,o,a,l=0,c){this.p=t,this.stack=e,this.state=s,this.reducePos=i,this.pos=r,this.score=h,this.buffer=n,this.bufferBase=o,this.curContext=a,this.lookAhead=l,this.parent=c}toString(){return`[${this.stack.filter((t,e)=>e%3==0).concat(this.state)}]@${this.pos}${this.score?"!"+this.score:""}`}static start(t,i,r=0){let h=t.parser.context;return new e(t,[],i,r,r,0,[],0,h?new s(h,h.start):null,0,null)}get context(){return this.curContext?this.curContext.context:null}pushState(t,e){this.stack.push(this.state,e,this.bufferBase+this.buffer.length),this.state=t}reduce(t){var e;let s=t>>19,i=65535&t,{parser:r}=this.p,h=this.reducePos<this.pos-25&&this.setLookAhead(this.pos),n=r.dynamicPrecedence(i);if(n&&(this.score+=n),0==s)return this.pushState(r.getGoto(this.state,i,!0),this.reducePos),i<r.minRepeatTerm&&this.storeNode(i,this.reducePos,this.reducePos,h?8:4,!0),void this.reduceContext(i,this.reducePos);let o=this.stack.length-3*(s-1)-(262144&t?6:0),a=o?this.stack[o-2]:this.p.ranges[0].from,l=this.reducePos-a;l>=2e3&&!(null===(e=this.p.parser.nodeSet.types[i])||void 0===e?void 0:e.isAnonymous)&&(a==this.p.lastBigReductionStart?(this.p.bigReductionCount++,this.p.lastBigReductionSize=l):this.p.lastBigReductionSize<l&&(this.p.bigReductionCount=1,this.p.lastBigReductionStart=a,this.p.lastBigReductionSize=l));let c=o?this.stack[o-1]:0,u=this.bufferBase+this.buffer.length-c;if(i<r.minRepeatTerm||131072&t){let t=r.stateFlag(this.state,1)?this.pos:this.reducePos;this.storeNode(i,a,t,u+4,!0)}if(262144&t)this.state=this.stack[o];else{let t=this.stack[o-3];this.state=r.getGoto(t,i,!0)}for(;this.stack.length>o;)this.stack.pop();this.reduceContext(i,a)}storeNode(t,e,s,i=4,r=!1){if(0==t&&(!this.stack.length||this.stack[this.stack.length-1]<this.buffer.length+this.bufferBase)){let t=this,i=this.buffer.length;if(0==i&&t.parent&&(i=t.bufferBase-t.parent.bufferBase,t=t.parent),i>0&&0==t.buffer[i-4]&&t.buffer[i-1]>-1){if(e==s)return;if(t.buffer[i-2]>=e)return void(t.buffer[i-2]=s)}}if(r&&this.pos!=s){let r=this.buffer.length;if(r>0&&(0!=this.buffer[r-4]||this.buffer[r-1]<0)){let t=!1;for(let e=r;e>0&&this.buffer[e-2]>s;e-=4)if(this.buffer[e-1]>=0){t=!0;break}if(t)for(;r>0&&this.buffer[r-2]>s;)this.buffer[r]=this.buffer[r-4],this.buffer[r+1]=this.buffer[r-3],this.buffer[r+2]=this.buffer[r-2],this.buffer[r+3]=this.buffer[r-1],r-=4,i>4&&(i-=4)}this.buffer[r]=t,this.buffer[r+1]=e,this.buffer[r+2]=s,this.buffer[r+3]=i}else this.buffer.push(t,e,s,i)}shift(t,e,s,i){if(131072&t)this.pushState(65535&t,this.pos);else if(262144&t)this.pos=i,this.shiftContext(e,s),e<=this.p.parser.maxNode&&this.buffer.push(e,s,i,4);else{let r=t,{parser:h}=this.p;(i>this.pos||e<=h.maxNode)&&(this.pos=i,h.stateFlag(r,1)||(this.reducePos=i)),this.pushState(r,s),this.shiftContext(e,s),e<=h.maxNode&&this.buffer.push(e,s,i,4)}}apply(t,e,s,i){65536&t?this.reduce(t):this.shift(t,e,s,i)}useNode(t,e){let s=this.p.reused.length-1;(s<0||this.p.reused[s]!=t)&&(this.p.reused.push(t),s++);let i=this.pos;this.reducePos=this.pos=i+t.length,this.pushState(e,i),this.buffer.push(s,i,this.reducePos,-1),this.curContext&&this.updateContext(this.curContext.tracker.reuse(this.curContext.context,t,this,this.p.stream.reset(this.pos-t.length)))}split(){let t=this,s=t.buffer.length;for(;s>0&&t.buffer[s-2]>t.reducePos;)s-=4;let i=t.buffer.slice(s),r=t.bufferBase+s;for(;t&&r==t.bufferBase;)t=t.parent;return new e(this.p,this.stack.slice(),this.state,this.reducePos,this.pos,this.score,i,r,this.curContext,this.lookAhead,t)}recoverByDelete(t,e){let s=t<=this.p.parser.maxNode;s&&this.storeNode(t,this.pos,e,4),this.storeNode(0,this.pos,e,s?8:4),this.pos=this.reducePos=e,this.score-=190}canShift(t){for(let e=new i(this);;){let s=this.p.parser.stateSlot(e.state,4)||this.p.parser.hasAction(e.state,t);if(0==s)return!1;if(!(65536&s))return!0;e.reduce(s)}}recoverByInsert(t){if(this.stack.length>=300)return[];let e=this.p.parser.nextStates(this.state);if(e.length>8||this.stack.length>=120){let s=[];for(let i,r=0;r<e.length;r+=2)(i=e[r+1])!=this.state&&this.p.parser.hasAction(i,t)&&s.push(e[r],i);if(this.stack.length<120)for(let t=0;s.length<8&&t<e.length;t+=2){let i=e[t+1];s.some((t,e)=>1&e&&t==i)||s.push(e[t],i)}e=s}let s=[];for(let t=0;t<e.length&&s.length<4;t+=2){let i=e[t+1];if(i==this.state)continue;let r=this.split();r.pushState(i,this.pos),r.storeNode(0,r.pos,r.pos,4,!0),r.shiftContext(e[t],this.pos),r.reducePos=this.pos,r.score-=200,s.push(r)}return s}forceReduce(){let{parser:t}=this.p,e=t.stateSlot(this.state,5);if(!(65536&e))return!1;if(!t.validAction(this.state,e)){let s=e>>19,i=65535&e,r=this.stack.length-3*s;if(r<0||t.getGoto(this.stack[r],i,!1)<0){let t=this.findForcedReduction();if(null==t)return!1;e=t}this.storeNode(0,this.pos,this.pos,4,!0),this.score-=100}return this.reducePos=this.pos,this.reduce(e),!0}findForcedReduction(){let{parser:t}=this.p,e=[],s=(i,r)=>{if(!e.includes(i))return e.push(i),t.allActions(i,e=>{if(393216&e);else if(65536&e){let s=(e>>19)-r;if(s>1){let i=65535&e,r=this.stack.length-3*s;if(r>=0&&t.getGoto(this.stack[r],i,!1)>=0)return s<<19|65536|i}}else{let t=s(e,r+1);if(null!=t)return t}})};return s(this.state,0)}forceAll(){for(;!this.p.parser.stateFlag(this.state,2);)if(!this.forceReduce()){this.storeNode(0,this.pos,this.pos,4,!0);break}return this}get deadEnd(){if(3!=this.stack.length)return!1;let{parser:t}=this.p;return 65535==t.data[t.stateSlot(this.state,1)]&&!t.stateSlot(this.state,4)}restart(){this.storeNode(0,this.pos,this.pos,4,!0),this.state=this.stack[0],this.stack.length=0}sameState(t){if(this.state!=t.state||this.stack.length!=t.stack.length)return!1;for(let e=0;e<this.stack.length;e+=3)if(this.stack[e]!=t.stack[e])return!1;return!0}get parser(){return this.p.parser}dialectEnabled(t){return this.p.parser.dialect.flags[t]}shiftContext(t,e){this.curContext&&this.updateContext(this.curContext.tracker.shift(this.curContext.context,t,this,this.p.stream.reset(e)))}reduceContext(t,e){this.curContext&&this.updateContext(this.curContext.tracker.reduce(this.curContext.context,t,this,this.p.stream.reset(e)))}emitContext(){let t=this.buffer.length-1;(t<0||-3!=this.buffer[t])&&this.buffer.push(this.curContext.hash,this.pos,this.pos,-3)}emitLookAhead(){let t=this.buffer.length-1;(t<0||-4!=this.buffer[t])&&this.buffer.push(this.lookAhead,this.pos,this.pos,-4)}updateContext(t){if(t!=this.curContext.context){let e=new s(this.curContext.tracker,t);e.hash!=this.curContext.hash&&this.emitContext(),this.curContext=e}}setLookAhead(t){return!(t<=this.lookAhead)&&(this.emitLookAhead(),this.lookAhead=t,!0)}close(){this.curContext&&this.curContext.tracker.strict&&this.emitContext(),this.lookAhead>0&&this.emitLookAhead()}}class s{constructor(t,e){this.tracker=t,this.context=e,this.hash=t.strict?t.hash(e):0}}class i{constructor(t){this.start=t,this.state=t.state,this.stack=t.stack,this.base=this.stack.length}reduce(t){let e=65535&t,s=t>>19;0==s?(this.stack==this.start.stack&&(this.stack=this.stack.slice()),this.stack.push(this.state,0,0),this.base+=3):this.base-=3*(s-1);let i=this.start.p.parser.getGoto(this.stack[this.base-3],e,!0);this.state=i}}class r{constructor(t,e,s){this.stack=t,this.pos=e,this.index=s,this.buffer=t.buffer,0==this.index&&this.maybeNext()}static create(t,e=t.bufferBase+t.buffer.length){return new r(t,e,e-t.bufferBase)}maybeNext(){let t=this.stack.parent;null!=t&&(this.index=this.stack.bufferBase-t.bufferBase,this.stack=t,this.buffer=t.buffer)}get id(){return this.buffer[this.index-4]}get start(){return this.buffer[this.index-3]}get end(){return this.buffer[this.index-2]}get size(){return this.buffer[this.index-1]}next(){this.index-=4,this.pos-=4,0==this.index&&this.maybeNext()}fork(){return new r(this.stack,this.pos,this.index)}}function h(t,e=Uint16Array){if("string"!=typeof t)return t;let s=null;for(let i=0,r=0;i<t.length;){let h=0;for(;;){let e=t.charCodeAt(i++),s=!1;if(126==e){h=65535;break}e>=92&&e--,e>=34&&e--;let r=e-32;if(r>=46&&(r-=46,s=!0),h+=r,s)break;h*=46}s?s[r++]=h:s=new e(h)}return s}class n{constructor(){this.start=-1,this.value=-1,this.end=-1,this.extended=-1,this.lookAhead=0,this.mask=0,this.context=0}}const o=new n;class a{constructor(t,e){this.input=t,this.ranges=e,this.chunk="",this.chunkOff=0,this.chunk2="",this.chunk2Pos=0,this.next=-1,this.token=o,this.rangeIndex=0,this.pos=this.chunkPos=e[0].from,this.range=e[0],this.end=e[e.length-1].to,this.readNext()}resolveOffset(t,e){let s=this.range,i=this.rangeIndex,r=this.pos+t;for(;r<s.from;){if(!i)return null;let t=this.ranges[--i];r-=s.from-t.to,s=t}for(;e<0?r>s.to:r>=s.to;){if(i==this.ranges.length-1)return null;let t=this.ranges[++i];r+=t.from-s.to,s=t}return r}clipPos(t){if(t>=this.range.from&&t<this.range.to)return t;for(let e of this.ranges)if(e.to>t)return Math.max(t,e.from);return this.end}peek(t){let e,s,i=this.chunkOff+t;if(i>=0&&i<this.chunk.length)e=this.pos+t,s=this.chunk.charCodeAt(i);else{let i=this.resolveOffset(t,1);if(null==i)return-1;if(e=i,e>=this.chunk2Pos&&e<this.chunk2Pos+this.chunk2.length)s=this.chunk2.charCodeAt(e-this.chunk2Pos);else{let t=this.rangeIndex,i=this.range;for(;i.to<=e;)i=this.ranges[++t];this.chunk2=this.input.chunk(this.chunk2Pos=e),e+this.chunk2.length>i.to&&(this.chunk2=this.chunk2.slice(0,i.to-e)),s=this.chunk2.charCodeAt(0)}}return e>=this.token.lookAhead&&(this.token.lookAhead=e+1),s}acceptToken(t,e=0){let s=e?this.resolveOffset(e,-1):this.pos;if(null==s||s<this.token.start)throw new RangeError("Token end out of bounds");this.token.value=t,this.token.end=s}acceptTokenTo(t,e){this.token.value=t,this.token.end=e}getChunk(){if(this.pos>=this.chunk2Pos&&this.pos<this.chunk2Pos+this.chunk2.length){let{chunk:t,chunkPos:e}=this;this.chunk=this.chunk2,this.chunkPos=this.chunk2Pos,this.chunk2=t,this.chunk2Pos=e,this.chunkOff=this.pos-this.chunkPos}else{this.chunk2=this.chunk,this.chunk2Pos=this.chunkPos;let t=this.input.chunk(this.pos),e=this.pos+t.length;this.chunk=e>this.range.to?t.slice(0,this.range.to-this.pos):t,this.chunkPos=this.pos,this.chunkOff=0}}readNext(){return this.chunkOff>=this.chunk.length&&(this.getChunk(),this.chunkOff==this.chunk.length)?this.next=-1:this.next=this.chunk.charCodeAt(this.chunkOff)}advance(t=1){for(this.chunkOff+=t;this.pos+t>=this.range.to;){if(this.rangeIndex==this.ranges.length-1)return this.setDone();t-=this.range.to-this.pos,this.range=this.ranges[++this.rangeIndex],this.pos=this.range.from}return this.pos+=t,this.pos>=this.token.lookAhead&&(this.token.lookAhead=this.pos+1),this.readNext()}setDone(){return this.pos=this.chunkPos=this.end,this.range=this.ranges[this.rangeIndex=this.ranges.length-1],this.chunk="",this.next=-1}reset(t,e){if(e?(this.token=e,e.start=t,e.lookAhead=t+1,e.value=e.extended=-1):this.token=o,this.pos!=t){if(this.pos=t,t==this.end)return this.setDone(),this;for(;t<this.range.from;)this.range=this.ranges[--this.rangeIndex];for(;t>=this.range.to;)this.range=this.ranges[++this.rangeIndex];t>=this.chunkPos&&t<this.chunkPos+this.chunk.length?this.chunkOff=t-this.chunkPos:(this.chunk="",this.chunkOff=0),this.readNext()}return this}read(t,e){if(t>=this.chunkPos&&e<=this.chunkPos+this.chunk.length)return this.chunk.slice(t-this.chunkPos,e-this.chunkPos);if(t>=this.chunk2Pos&&e<=this.chunk2Pos+this.chunk2.length)return this.chunk2.slice(t-this.chunk2Pos,e-this.chunk2Pos);if(t>=this.range.from&&e<=this.range.to)return this.input.read(t,e);let s="";for(let i of this.ranges){if(i.from>=e)break;i.to>t&&(s+=this.input.read(Math.max(i.from,t),Math.min(i.to,e)))}return s}}class l{constructor(t,e){this.data=t,this.id=e}token(t,e){let{parser:s}=e.p;u(this.data,t,e,this.id,s.data,s.tokenPrecTable)}}l.prototype.contextual=l.prototype.fallback=l.prototype.extend=!1;class c{constructor(t,e,s){this.precTable=e,this.elseToken=s,this.data="string"==typeof t?h(t):t}token(t,e){let s=t.pos,i=0;for(;;){let s=t.next<0,r=t.resolveOffset(1,1);if(u(this.data,t,e,0,this.data,this.precTable),t.token.value>-1)break;if(null==this.elseToken)return;if(s||i++,null==r)break;t.reset(r,t.token)}i&&(t.reset(s,t.token),t.acceptToken(this.elseToken,i))}}c.prototype.contextual=l.prototype.fallback=l.prototype.extend=!1;function u(t,e,s,i,r,h){let n=0,o=1<<i,{dialect:a}=s.p.parser;t:for(;0!=(o&t[n]);){let s=t[n+1];for(let i=n+3;i<s;i+=2)if((t[i+1]&o)>0){let s=t[i];if(a.allows(s)&&(-1==e.token.value||e.token.value==s||p(s,e.token.value,r,h))){e.acceptToken(s);break}}let i=e.next,l=0,c=t[n+2];if(!(e.next<0&&c>l&&65535==t[s+3*c-3])){for(;l<c;){let r=l+c>>1,h=s+r+(r<<1),o=t[h],a=t[h+1]||65536;if(i<o)c=r;else{if(!(i>=a)){n=t[h+2],e.advance();continue t}l=r+1}}break}n=t[s+3*c-1]}}function f(t,e,s){for(let i,r=e;65535!=(i=t[r]);r++)if(i==s)return r-e;return-1}function p(t,e,s,i){let r=f(s,i,e);return r<0||f(s,i,t)<r}const d="undefined"!=typeof process&&process.env&&/\bparse\b/.test(process.env.LOG);let k=null;function g(e,s,i){let r=e.cursor(t.IterMode.IncludeAnonymous);for(r.moveTo(s);;)if(!(i<0?r.childBefore(s):r.childAfter(s)))for(;;){if((i<0?r.to<s:r.from>s)&&!r.type.isError)return i<0?Math.max(0,Math.min(r.to-1,s-25)):Math.min(e.length,Math.max(r.from+1,s+25));if(i<0?r.prevSibling():r.nextSibling())break;if(!r.parent())return i<0?0:e.length}}class m{constructor(t,e){this.fragments=t,this.nodeSet=e,this.i=0,this.fragment=null,this.safeFrom=-1,this.safeTo=-1,this.trees=[],this.start=[],this.index=[],this.nextFragment()}nextFragment(){let t=this.fragment=this.i==this.fragments.length?null:this.fragments[this.i++];if(t){for(this.safeFrom=t.openStart?g(t.tree,t.from+t.offset,1)-t.offset:t.from,this.safeTo=t.openEnd?g(t.tree,t.to+t.offset,-1)-t.offset:t.to;this.trees.length;)this.trees.pop(),this.start.pop(),this.index.pop();this.trees.push(t.tree),this.start.push(-t.offset),this.index.push(0),this.nextStart=this.safeFrom}else this.nextStart=1e9}nodeAt(e){if(e<this.nextStart)return null;for(;this.fragment&&this.safeTo<=e;)this.nextFragment();if(!this.fragment)return null;for(;;){let s=this.trees.length-1;if(s<0)return this.nextFragment(),null;let i=this.trees[s],r=this.index[s];if(r==i.children.length){this.trees.pop(),this.start.pop(),this.index.pop();continue}let h=i.children[r],n=this.start[s]+i.positions[r];if(n>e)return this.nextStart=n,null;if(h instanceof t.Tree){if(n==e){if(n<this.safeFrom)return null;let e=n+h.length;if(e<=this.safeTo){let s=h.prop(t.NodeProp.lookAhead);if(!s||e+s<this.fragment.to)return h}}this.index[s]++,n+h.length>=Math.max(this.safeFrom,e)&&(this.trees.push(h),this.start.push(n),this.index.push(0))}else this.index[s]++,this.nextStart=n+h.length}}}class x{constructor(t,e){this.stream=e,this.tokens=[],this.mainToken=null,this.actions=[],this.tokens=t.tokenizers.map(t=>new n)}getActions(t){let e=0,s=null,{parser:i}=t.p,{tokenizers:r}=i,h=i.stateSlot(t.state,3),o=t.curContext?t.curContext.hash:0,a=0;for(let i=0;i<r.length;i++){if(!(1<<i&h))continue;let n=r[i],l=this.tokens[i];if((!s||n.fallback)&&((n.contextual||l.start!=t.pos||l.mask!=h||l.context!=o)&&(this.updateCachedToken(l,n,t),l.mask=h,l.context=o),l.lookAhead>l.end+25&&(a=Math.max(l.lookAhead,a)),0!=l.value)){let i=e;if(l.extended>-1&&(e=this.addActions(t,l.extended,l.end,e)),e=this.addActions(t,l.value,l.end,e),!n.extend&&(s=l,e>i))break}}for(;this.actions.length>e;)this.actions.pop();return a&&t.setLookAhead(a),s||t.pos!=this.stream.end||(s=new n,s.value=t.p.parser.eofTerm,s.start=s.end=t.pos,e=this.addActions(t,s.value,s.end,e)),this.mainToken=s,this.actions}getMainToken(t){if(this.mainToken)return this.mainToken;let e=new n,{pos:s,p:i}=t;return e.start=s,e.end=Math.min(s+1,i.stream.end),e.value=s==i.stream.end?i.parser.eofTerm:0,e}updateCachedToken(t,e,s){let i=this.stream.clipPos(s.pos);if(e.token(this.stream.reset(i,t),s),t.value>-1){let{parser:e}=s.p;for(let i=0;i<e.specialized.length;i++)if(e.specialized[i]==t.value){let r=e.specializers[i](this.stream.read(t.start,t.end),s);if(r>=0&&s.p.parser.dialect.allows(r>>1)){1&r?t.extended=r>>1:t.value=r>>1;break}}}else t.value=0,t.end=this.stream.clipPos(i+1)}putAction(t,e,s,i){for(let e=0;e<i;e+=3)if(this.actions[e]==t)return i;return this.actions[i++]=t,this.actions[i++]=e,this.actions[i++]=s,i}addActions(t,e,s,i){let{state:r}=t,{parser:h}=t.p,{data:n}=h;for(let t=0;t<2;t++)for(let o=h.stateSlot(r,t?2:1);;o+=3){if(65535==n[o]){if(1!=n[o+1]){0==i&&2==n[o+1]&&(i=this.putAction(T(n,o+2),e,s,i));break}o=T(n,o+2)}n[o]==e&&(i=this.putAction(T(n,o+1),e,s,i))}return i}}class b{constructor(t,s,i,r){this.parser=t,this.input=s,this.ranges=r,this.recovering=0,this.nextStackID=9812,this.minStackPos=0,this.reused=[],this.stoppedAt=null,this.lastBigReductionStart=-1,this.lastBigReductionSize=0,this.bigReductionCount=0,this.stream=new a(s,r),this.tokens=new x(t,this.stream),this.topTerm=t.top[1];let{from:h}=r[0];this.stacks=[e.start(this,t.top[0],h)],this.fragments=i.length&&this.stream.end-h>4*t.bufferLength?new m(i,t.nodeSet):null}get parsedPos(){return this.minStackPos}advance(){let t,e,s=this.stacks,i=this.minStackPos,r=this.stacks=[];if(this.bigReductionCount>300&&1==s.length){let[t]=s;for(;t.forceReduce()&&t.stack.length&&t.stack[t.stack.length-2]>=this.lastBigReductionStart;);this.bigReductionCount=this.lastBigReductionSize=0}for(let h=0;h<s.length;h++){let n=s[h];for(;;){if(this.tokens.mainToken=null,n.pos>i)r.push(n);else{if(this.advanceStack(n,r,s))continue;{t||(t=[],e=[]),t.push(n);let s=this.tokens.getMainToken(n);e.push(s.value,s.end)}}break}}if(!r.length){let e=t&&function(t){let e=null;for(let s of t){let t=s.p.stoppedAt;(s.pos==s.p.stream.end||null!=t&&s.pos>t)&&s.p.parser.stateFlag(s.state,2)&&(!e||e.score<s.score)&&(e=s)}return e}(t);if(e)return d&&console.log("Finish with "+this.stackID(e)),this.stackToTree(e);if(this.parser.strict)throw d&&t&&console.log("Stuck with token "+(this.tokens.mainToken?this.parser.getName(this.tokens.mainToken.value):"none")),new SyntaxError("No parse at "+i);this.recovering||(this.recovering=5)}if(this.recovering&&t){let s=null!=this.stoppedAt&&t[0].pos>this.stoppedAt?t[0]:this.runRecovery(t,e,r);if(s)return d&&console.log("Force-finish "+this.stackID(s)),this.stackToTree(s.forceAll())}if(this.recovering){let t=1==this.recovering?1:3*this.recovering;if(r.length>t)for(r.sort((t,e)=>e.score-t.score);r.length>t;)r.pop();r.some(t=>t.reducePos>i)&&this.recovering--}else if(r.length>1){t:for(let t=0;t<r.length-1;t++){let e=r[t];for(let s=t+1;s<r.length;s++){let i=r[s];if(e.sameState(i)||e.buffer.length>500&&i.buffer.length>500){if(!((e.score-i.score||e.buffer.length-i.buffer.length)>0)){r.splice(t--,1);continue t}r.splice(s--,1)}}}r.length>12&&r.splice(12,r.length-12)}this.minStackPos=r[0].pos;for(let t=1;t<r.length;t++)r[t].pos<this.minStackPos&&(this.minStackPos=r[t].pos);return null}stopAt(t){if(null!=this.stoppedAt&&this.stoppedAt<t)throw new RangeError("Can't move stoppedAt forward");this.stoppedAt=t}advanceStack(e,s,i){let r=e.pos,{parser:h}=this,n=d?this.stackID(e)+" -> ":"";if(null!=this.stoppedAt&&r>this.stoppedAt)return e.forceReduce()?e:null;if(this.fragments){let s=e.curContext&&e.curContext.tracker.strict,i=s?e.curContext.hash:0;for(let o=this.fragments.nodeAt(r);o;){let r=this.parser.nodeSet.types[o.type.id]==o.type?h.getGoto(e.state,o.type.id):-1;if(r>-1&&o.length&&(!s||(o.prop(t.NodeProp.contextHash)||0)==i))return e.useNode(o,r),d&&console.log(n+this.stackID(e)+` (via reuse of ${h.getName(o.type.id)})`),!0;if(!(o instanceof t.Tree)||0==o.children.length||o.positions[0]>0)break;let a=o.children[0];if(!(a instanceof t.Tree&&0==o.positions[0]))break;o=a}}let o=h.stateSlot(e.state,4);if(o>0)return e.reduce(o),d&&console.log(n+this.stackID(e)+` (via always-reduce ${h.getName(65535&o)})`),!0;if(e.stack.length>=8400)for(;e.stack.length>6e3&&e.forceReduce(););let a=this.tokens.getActions(e);for(let t=0;t<a.length;){let o=a[t++],l=a[t++],c=a[t++],u=t==a.length||!i,f=u?e:e.split(),p=this.tokens.mainToken;if(f.apply(o,l,p?p.start:f.pos,c),d&&console.log(n+this.stackID(f)+` (via ${65536&o?`reduce of ${h.getName(65535&o)}`:"shift"} for ${h.getName(l)} @ ${r}${f==e?"":", split"})`),u)return!0;f.pos>r?s.push(f):i.push(f)}return!1}advanceFully(t,e){let s=t.pos;for(;;){if(!this.advanceStack(t,null,null))return!1;if(t.pos>s)return S(t,e),!0}}runRecovery(t,e,s){let i=null,r=!1;for(let h=0;h<t.length;h++){let n=t[h],o=e[h<<1],a=e[1+(h<<1)],l=d?this.stackID(n)+" -> ":"";if(n.deadEnd){if(r)continue;if(r=!0,n.restart(),d&&console.log(l+this.stackID(n)+" (restarted)"),this.advanceFully(n,s))continue}let c=n.split(),u=l;for(let t=0;t<10&&c.forceReduce();t++){if(d&&console.log(u+this.stackID(c)+" (via force-reduce)"),this.advanceFully(c,s))break;d&&(u=this.stackID(c)+" -> ")}for(let t of n.recoverByInsert(o))d&&console.log(l+this.stackID(t)+" (via recover-insert)"),this.advanceFully(t,s);this.stream.end>n.pos?(a==n.pos&&(a++,o=0),n.recoverByDelete(o,a),d&&console.log(l+this.stackID(n)+` (via recover-delete ${this.parser.getName(o)})`),S(n,s)):(!i||i.score<n.score)&&(i=n)}return i}stackToTree(e){return e.close(),t.Tree.build({buffer:r.create(e),nodeSet:this.parser.nodeSet,topID:this.topTerm,maxBufferLength:this.parser.bufferLength,reused:this.reused,start:this.ranges[0].from,length:e.pos-this.ranges[0].from,minRepeatType:this.parser.minRepeatTerm})}stackID(t){let e=(k||(k=new WeakMap)).get(t);return e||k.set(t,e=String.fromCodePoint(this.nextStackID++)),e+t}}function S(t,e){for(let s=0;s<e.length;s++){let i=e[s];if(i.pos==t.pos&&i.sameState(t))return void(e[s].score<t.score&&(e[s]=t))}e.push(t)}class v{constructor(t,e,s){this.source=t,this.flags=e,this.disabled=s}allows(t){return!this.disabled||0==this.disabled[t]}}const P=t=>t;class A extends t.Parser{constructor(e){if(super(),this.wrappers=[],14!=e.version)throw new RangeError(`Parser version (${e.version}) doesn't match runtime version (14)`);let s=e.nodeNames.split(" ");this.minRepeatTerm=s.length;for(let t=0;t<e.repeatNodeCount;t++)s.push("");let i=Object.keys(e.topRules).map(t=>e.topRules[t][1]),r=[];for(let t=0;t<s.length;t++)r.push([]);function n(t,e,s){r[t].push([e,e.deserialize(String(s))])}if(e.nodeProps)for(let s of e.nodeProps){let e=s[0];"string"==typeof e&&(e=t.NodeProp[e]);for(let t=1;t<s.length;){let i=s[t++];if(i>=0)n(i,e,s[t++]);else{let r=s[t+-i];for(let h=-i;h>0;h--)n(s[t++],e,r);t++}}}this.nodeSet=new t.NodeSet(s.map((s,h)=>t.NodeType.define({name:h>=this.minRepeatTerm?void 0:s,id:h,props:r[h],top:i.indexOf(h)>-1,error:0==h,skipped:e.skippedNodes&&e.skippedNodes.indexOf(h)>-1}))),e.propSources&&(this.nodeSet=this.nodeSet.extend(...e.propSources)),this.strict=!1,this.bufferLength=t.DefaultBufferLength;let o=h(e.tokenData);this.context=e.context,this.specializerSpecs=e.specialized||[],this.specialized=new Uint16Array(this.specializerSpecs.length);for(let t=0;t<this.specializerSpecs.length;t++)this.specialized[t]=this.specializerSpecs[t].term;this.specializers=this.specializerSpecs.map(C),this.states=h(e.states,Uint32Array),this.data=h(e.stateData),this.goto=h(e.goto),this.maxTerm=e.maxTerm,this.tokenizers=e.tokenizers.map(t=>"number"==typeof t?new l(o,t):t),this.topRules=e.topRules,this.dialects=e.dialects||{},this.dynamicPrecedences=e.dynamicPrecedences||null,this.tokenPrecTable=e.tokenPrec,this.termNames=e.termNames||null,this.maxNode=this.nodeSet.types.length-1,this.dialect=this.parseDialect(),this.top=this.topRules[Object.keys(this.topRules)[0]]}createParse(t,e,s){let i=new b(this,t,e,s);for(let r of this.wrappers)i=r(i,t,e,s);return i}getGoto(t,e,s=!1){let i=this.goto;if(e>=i[0])return-1;for(let r=i[e+1];;){let e=i[r++],h=1&e,n=i[r++];if(h&&s)return n;for(let s=r+(e>>1);r<s;r++)if(i[r]==t)return n;if(h)return-1}}hasAction(t,e){let s=this.data;for(let i=0;i<2;i++)for(let r,h=this.stateSlot(t,i?2:1);;h+=3){if(65535==(r=s[h])){if(1!=s[h+1]){if(2==s[h+1])return T(s,h+2);break}r=s[h=T(s,h+2)]}if(r==e||0==r)return T(s,h+1)}return 0}stateSlot(t,e){return this.states[6*t+e]}stateFlag(t,e){return(this.stateSlot(t,0)&e)>0}validAction(t,e){return!!this.allActions(t,t=>t==e||null)}allActions(t,e){let s=this.stateSlot(t,4),i=s?e(s):void 0;for(let s=this.stateSlot(t,1);null==i;s+=3){if(65535==this.data[s]){if(1!=this.data[s+1])break;s=T(this.data,s+2)}i=e(T(this.data,s+1))}return i}nextStates(t){let e=[];for(let s=this.stateSlot(t,1);;s+=3){if(65535==this.data[s]){if(1!=this.data[s+1])break;s=T(this.data,s+2)}if(!(1&this.data[s+2])){let t=this.data[s+1];e.some((e,s)=>1&s&&e==t)||e.push(this.data[s],t)}}return e}configure(t){let e=Object.assign(Object.create(A.prototype),this);if(t.props&&(e.nodeSet=this.nodeSet.extend(...t.props)),t.top){let s=this.topRules[t.top];if(!s)throw new RangeError(`Invalid top rule name ${t.top}`);e.top=s}return t.tokenizers&&(e.tokenizers=this.tokenizers.map(e=>{let s=t.tokenizers.find(t=>t.from==e);return s?s.to:e})),t.specializers&&(e.specializers=this.specializers.slice(),e.specializerSpecs=this.specializerSpecs.map((s,i)=>{let r=t.specializers.find(t=>t.from==s.external);if(!r)return s;let h=Object.assign(Object.assign({},s),{external:r.to});return e.specializers[i]=C(h),h})),t.contextTracker&&(e.context=t.contextTracker),t.dialect&&(e.dialect=this.parseDialect(t.dialect)),null!=t.strict&&(e.strict=t.strict),t.wrap&&(e.wrappers=e.wrappers.concat(t.wrap)),null!=t.bufferLength&&(e.bufferLength=t.bufferLength),e}hasWrappers(){return this.wrappers.length>0}getName(t){return this.termNames?this.termNames[t]:String(t<=this.maxNode&&this.nodeSet.types[t].name||t)}get eofTerm(){return this.maxNode+1}get topNode(){return this.nodeSet.types[this.top[1]]}dynamicPrecedence(t){let e=this.dynamicPrecedences;return null==e?0:e[t]||0}parseDialect(t){let e=Object.keys(this.dialects),s=e.map(()=>!1);if(t)for(let i of t.split(" ")){let t=e.indexOf(i);t>=0&&(s[t]=!0)}let i=null;for(let t=0;t<e.length;t++)if(!s[t])for(let s,r=this.dialects[e[t]];65535!=(s=this.data[r++]);)(i||(i=new Uint8Array(this.maxTerm+1)))[s]=1;return new v(t,s,i)}static deserialize(t){return new A(t)}}function T(t,e){return t[e]|t[e+1]<<16}function C(t){if(t.external){let e=t.extend?1:0;return(s,i)=>t.external(s,i)<<1|e}return t.get}exports.ContextTracker=class{constructor(t){this.start=t.start,this.shift=t.shift||P,this.reduce=t.reduce||P,this.reuse=t.reuse||P,this.hash=t.hash||(()=>0),this.strict=!1!==t.strict}},exports.ExternalTokenizer=class{constructor(t,e={}){this.token=t,this.contextual=!!e.contextual,this.fallback=!!e.fallback,this.extend=!!e.extend}},exports.LRParser=A,exports.LocalTokenGroup=c;
|
|
2
|
+
//# sourceMappingURL=index-DJuPAZHh.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index-DJuPAZHh.cjs","sources":["../../../node_modules/@lezer/lr/dist/index.js"],"sourcesContent":["import { Parser, NodeProp, NodeSet, NodeType, DefaultBufferLength, Tree, IterMode } from '@lezer/common';\n\n/**\nA parse stack. These are used internally by the parser to track\nparsing progress. They also provide some properties and methods\nthat external code such as a tokenizer can use to get information\nabout the parse state.\n*/\nclass Stack {\n /**\n @internal\n */\n constructor(\n /**\n The parse that this stack is part of @internal\n */\n p, \n /**\n Holds state, input pos, buffer index triplets for all but the\n top state @internal\n */\n stack, \n /**\n The current parse state @internal\n */\n state, \n // The position at which the next reduce should take place. This\n // can be less than `this.pos` when skipped expressions have been\n // added to the stack (which should be moved outside of the next\n // reduction)\n /**\n @internal\n */\n reducePos, \n /**\n The input position up to which this stack has parsed.\n */\n pos, \n /**\n The dynamic score of the stack, including dynamic precedence\n and error-recovery penalties\n @internal\n */\n score, \n // The output buffer. Holds (type, start, end, size) quads\n // representing nodes created by the parser, where `size` is\n // amount of buffer array entries covered by this node.\n /**\n @internal\n */\n buffer, \n // The base offset of the buffer. When stacks are split, the split\n // instance shared the buffer history with its parent up to\n // `bufferBase`, which is the absolute offset (including the\n // offset of previous splits) into the buffer at which this stack\n // starts writing.\n /**\n @internal\n */\n bufferBase, \n /**\n @internal\n */\n curContext, \n /**\n @internal\n */\n lookAhead = 0, \n // A parent stack from which this was split off, if any. This is\n // set up so that it always points to a stack that has some\n // additional buffer content, never to a stack with an equal\n // `bufferBase`.\n /**\n @internal\n */\n parent) {\n this.p = p;\n this.stack = stack;\n this.state = state;\n this.reducePos = reducePos;\n this.pos = pos;\n this.score = score;\n this.buffer = buffer;\n this.bufferBase = bufferBase;\n this.curContext = curContext;\n this.lookAhead = lookAhead;\n this.parent = parent;\n }\n /**\n @internal\n */\n toString() {\n return `[${this.stack.filter((_, i) => i % 3 == 0).concat(this.state)}]@${this.pos}${this.score ? \"!\" + this.score : \"\"}`;\n }\n // Start an empty stack\n /**\n @internal\n */\n static start(p, state, pos = 0) {\n let cx = p.parser.context;\n return new Stack(p, [], state, pos, pos, 0, [], 0, cx ? new StackContext(cx, cx.start) : null, 0, null);\n }\n /**\n The stack's current [context](#lr.ContextTracker) value, if\n any. Its type will depend on the context tracker's type\n parameter, or it will be `null` if there is no context\n tracker.\n */\n get context() { return this.curContext ? this.curContext.context : null; }\n // Push a state onto the stack, tracking its start position as well\n // as the buffer base at that point.\n /**\n @internal\n */\n pushState(state, start) {\n this.stack.push(this.state, start, this.bufferBase + this.buffer.length);\n this.state = state;\n }\n // Apply a reduce action\n /**\n @internal\n */\n reduce(action) {\n var _a;\n let depth = action >> 19 /* Action.ReduceDepthShift */, type = action & 65535 /* Action.ValueMask */;\n let { parser } = this.p;\n let lookaheadRecord = this.reducePos < this.pos - 25 /* Lookahead.Margin */ && this.setLookAhead(this.pos);\n let dPrec = parser.dynamicPrecedence(type);\n if (dPrec)\n this.score += dPrec;\n if (depth == 0) {\n this.pushState(parser.getGoto(this.state, type, true), this.reducePos);\n // Zero-depth reductions are a special case—they add stuff to\n // the stack without popping anything off.\n if (type < parser.minRepeatTerm)\n this.storeNode(type, this.reducePos, this.reducePos, lookaheadRecord ? 8 : 4, true);\n this.reduceContext(type, this.reducePos);\n return;\n }\n // Find the base index into `this.stack`, content after which will\n // be dropped. Note that with `StayFlag` reductions we need to\n // consume two extra frames (the dummy parent node for the skipped\n // expression and the state that we'll be staying in, which should\n // be moved to `this.state`).\n let base = this.stack.length - ((depth - 1) * 3) - (action & 262144 /* Action.StayFlag */ ? 6 : 0);\n let start = base ? this.stack[base - 2] : this.p.ranges[0].from, size = this.reducePos - start;\n // This is a kludge to try and detect overly deep left-associative\n // trees, which will not increase the parse stack depth and thus\n // won't be caught by the regular stack-depth limit check.\n if (size >= 2000 /* Recover.MinBigReduction */ && !((_a = this.p.parser.nodeSet.types[type]) === null || _a === void 0 ? void 0 : _a.isAnonymous)) {\n if (start == this.p.lastBigReductionStart) {\n this.p.bigReductionCount++;\n this.p.lastBigReductionSize = size;\n }\n else if (this.p.lastBigReductionSize < size) {\n this.p.bigReductionCount = 1;\n this.p.lastBigReductionStart = start;\n this.p.lastBigReductionSize = size;\n }\n }\n let bufferBase = base ? this.stack[base - 1] : 0, count = this.bufferBase + this.buffer.length - bufferBase;\n // Store normal terms or `R -> R R` repeat reductions\n if (type < parser.minRepeatTerm || (action & 131072 /* Action.RepeatFlag */)) {\n let pos = parser.stateFlag(this.state, 1 /* StateFlag.Skipped */) ? this.pos : this.reducePos;\n this.storeNode(type, start, pos, count + 4, true);\n }\n if (action & 262144 /* Action.StayFlag */) {\n this.state = this.stack[base];\n }\n else {\n let baseStateID = this.stack[base - 3];\n this.state = parser.getGoto(baseStateID, type, true);\n }\n while (this.stack.length > base)\n this.stack.pop();\n this.reduceContext(type, start);\n }\n // Shift a value into the buffer\n /**\n @internal\n */\n storeNode(term, start, end, size = 4, mustSink = false) {\n if (term == 0 /* Term.Err */ &&\n (!this.stack.length || this.stack[this.stack.length - 1] < this.buffer.length + this.bufferBase)) {\n // Try to omit/merge adjacent error nodes\n let cur = this, top = this.buffer.length;\n if (top == 0 && cur.parent) {\n top = cur.bufferBase - cur.parent.bufferBase;\n cur = cur.parent;\n }\n if (top > 0 && cur.buffer[top - 4] == 0 /* Term.Err */ && cur.buffer[top - 1] > -1) {\n if (start == end)\n return;\n if (cur.buffer[top - 2] >= start) {\n cur.buffer[top - 2] = end;\n return;\n }\n }\n }\n if (!mustSink || this.pos == end) { // Simple case, just append\n this.buffer.push(term, start, end, size);\n }\n else { // There may be skipped nodes that have to be moved forward\n let index = this.buffer.length;\n if (index > 0 && (this.buffer[index - 4] != 0 /* Term.Err */ || this.buffer[index - 1] < 0)) {\n let mustMove = false;\n for (let scan = index; scan > 0 && this.buffer[scan - 2] > end; scan -= 4) {\n if (this.buffer[scan - 1] >= 0) {\n mustMove = true;\n break;\n }\n }\n if (mustMove)\n while (index > 0 && this.buffer[index - 2] > end) {\n // Move this record forward\n this.buffer[index] = this.buffer[index - 4];\n this.buffer[index + 1] = this.buffer[index - 3];\n this.buffer[index + 2] = this.buffer[index - 2];\n this.buffer[index + 3] = this.buffer[index - 1];\n index -= 4;\n if (size > 4)\n size -= 4;\n }\n }\n this.buffer[index] = term;\n this.buffer[index + 1] = start;\n this.buffer[index + 2] = end;\n this.buffer[index + 3] = size;\n }\n }\n // Apply a shift action\n /**\n @internal\n */\n shift(action, type, start, end) {\n if (action & 131072 /* Action.GotoFlag */) {\n this.pushState(action & 65535 /* Action.ValueMask */, this.pos);\n }\n else if ((action & 262144 /* Action.StayFlag */) == 0) { // Regular shift\n let nextState = action, { parser } = this.p;\n if (end > this.pos || type <= parser.maxNode) {\n this.pos = end;\n if (!parser.stateFlag(nextState, 1 /* StateFlag.Skipped */))\n this.reducePos = end;\n }\n this.pushState(nextState, start);\n this.shiftContext(type, start);\n if (type <= parser.maxNode)\n this.buffer.push(type, start, end, 4);\n }\n else { // Shift-and-stay, which means this is a skipped token\n this.pos = end;\n this.shiftContext(type, start);\n if (type <= this.p.parser.maxNode)\n this.buffer.push(type, start, end, 4);\n }\n }\n // Apply an action\n /**\n @internal\n */\n apply(action, next, nextStart, nextEnd) {\n if (action & 65536 /* Action.ReduceFlag */)\n this.reduce(action);\n else\n this.shift(action, next, nextStart, nextEnd);\n }\n // Add a prebuilt (reused) node into the buffer.\n /**\n @internal\n */\n useNode(value, next) {\n let index = this.p.reused.length - 1;\n if (index < 0 || this.p.reused[index] != value) {\n this.p.reused.push(value);\n index++;\n }\n let start = this.pos;\n this.reducePos = this.pos = start + value.length;\n this.pushState(next, start);\n this.buffer.push(index, start, this.reducePos, -1 /* size == -1 means this is a reused value */);\n if (this.curContext)\n this.updateContext(this.curContext.tracker.reuse(this.curContext.context, value, this, this.p.stream.reset(this.pos - value.length)));\n }\n // Split the stack. Due to the buffer sharing and the fact\n // that `this.stack` tends to stay quite shallow, this isn't very\n // expensive.\n /**\n @internal\n */\n split() {\n let parent = this;\n let off = parent.buffer.length;\n // Because the top of the buffer (after this.pos) may be mutated\n // to reorder reductions and skipped tokens, and shared buffers\n // should be immutable, this copies any outstanding skipped tokens\n // to the new buffer, and puts the base pointer before them.\n while (off > 0 && parent.buffer[off - 2] > parent.reducePos)\n off -= 4;\n let buffer = parent.buffer.slice(off), base = parent.bufferBase + off;\n // Make sure parent points to an actual parent with content, if there is such a parent.\n while (parent && base == parent.bufferBase)\n parent = parent.parent;\n return new Stack(this.p, this.stack.slice(), this.state, this.reducePos, this.pos, this.score, buffer, base, this.curContext, this.lookAhead, parent);\n }\n // Try to recover from an error by 'deleting' (ignoring) one token.\n /**\n @internal\n */\n recoverByDelete(next, nextEnd) {\n let isNode = next <= this.p.parser.maxNode;\n if (isNode)\n this.storeNode(next, this.pos, nextEnd, 4);\n this.storeNode(0 /* Term.Err */, this.pos, nextEnd, isNode ? 8 : 4);\n this.pos = this.reducePos = nextEnd;\n this.score -= 190 /* Recover.Delete */;\n }\n /**\n Check if the given term would be able to be shifted (optionally\n after some reductions) on this stack. This can be useful for\n external tokenizers that want to make sure they only provide a\n given token when it applies.\n */\n canShift(term) {\n for (let sim = new SimulatedStack(this);;) {\n let action = this.p.parser.stateSlot(sim.state, 4 /* ParseState.DefaultReduce */) || this.p.parser.hasAction(sim.state, term);\n if (action == 0)\n return false;\n if ((action & 65536 /* Action.ReduceFlag */) == 0)\n return true;\n sim.reduce(action);\n }\n }\n // Apply up to Recover.MaxNext recovery actions that conceptually\n // inserts some missing token or rule.\n /**\n @internal\n */\n recoverByInsert(next) {\n if (this.stack.length >= 300 /* Recover.MaxInsertStackDepth */)\n return [];\n let nextStates = this.p.parser.nextStates(this.state);\n if (nextStates.length > 4 /* Recover.MaxNext */ << 1 || this.stack.length >= 120 /* Recover.DampenInsertStackDepth */) {\n let best = [];\n for (let i = 0, s; i < nextStates.length; i += 2) {\n if ((s = nextStates[i + 1]) != this.state && this.p.parser.hasAction(s, next))\n best.push(nextStates[i], s);\n }\n if (this.stack.length < 120 /* Recover.DampenInsertStackDepth */)\n for (let i = 0; best.length < 4 /* Recover.MaxNext */ << 1 && i < nextStates.length; i += 2) {\n let s = nextStates[i + 1];\n if (!best.some((v, i) => (i & 1) && v == s))\n best.push(nextStates[i], s);\n }\n nextStates = best;\n }\n let result = [];\n for (let i = 0; i < nextStates.length && result.length < 4 /* Recover.MaxNext */; i += 2) {\n let s = nextStates[i + 1];\n if (s == this.state)\n continue;\n let stack = this.split();\n stack.pushState(s, this.pos);\n stack.storeNode(0 /* Term.Err */, stack.pos, stack.pos, 4, true);\n stack.shiftContext(nextStates[i], this.pos);\n stack.reducePos = this.pos;\n stack.score -= 200 /* Recover.Insert */;\n result.push(stack);\n }\n return result;\n }\n // Force a reduce, if possible. Return false if that can't\n // be done.\n /**\n @internal\n */\n forceReduce() {\n let { parser } = this.p;\n let reduce = parser.stateSlot(this.state, 5 /* ParseState.ForcedReduce */);\n if ((reduce & 65536 /* Action.ReduceFlag */) == 0)\n return false;\n if (!parser.validAction(this.state, reduce)) {\n let depth = reduce >> 19 /* Action.ReduceDepthShift */, term = reduce & 65535 /* Action.ValueMask */;\n let target = this.stack.length - depth * 3;\n if (target < 0 || parser.getGoto(this.stack[target], term, false) < 0) {\n let backup = this.findForcedReduction();\n if (backup == null)\n return false;\n reduce = backup;\n }\n this.storeNode(0 /* Term.Err */, this.pos, this.pos, 4, true);\n this.score -= 100 /* Recover.Reduce */;\n }\n this.reducePos = this.pos;\n this.reduce(reduce);\n return true;\n }\n /**\n Try to scan through the automaton to find some kind of reduction\n that can be applied. Used when the regular ForcedReduce field\n isn't a valid action. @internal\n */\n findForcedReduction() {\n let { parser } = this.p, seen = [];\n let explore = (state, depth) => {\n if (seen.includes(state))\n return;\n seen.push(state);\n return parser.allActions(state, (action) => {\n if (action & (262144 /* Action.StayFlag */ | 131072 /* Action.GotoFlag */)) ;\n else if (action & 65536 /* Action.ReduceFlag */) {\n let rDepth = (action >> 19 /* Action.ReduceDepthShift */) - depth;\n if (rDepth > 1) {\n let term = action & 65535 /* Action.ValueMask */, target = this.stack.length - rDepth * 3;\n if (target >= 0 && parser.getGoto(this.stack[target], term, false) >= 0)\n return (rDepth << 19 /* Action.ReduceDepthShift */) | 65536 /* Action.ReduceFlag */ | term;\n }\n }\n else {\n let found = explore(action, depth + 1);\n if (found != null)\n return found;\n }\n });\n };\n return explore(this.state, 0);\n }\n /**\n @internal\n */\n forceAll() {\n while (!this.p.parser.stateFlag(this.state, 2 /* StateFlag.Accepting */)) {\n if (!this.forceReduce()) {\n this.storeNode(0 /* Term.Err */, this.pos, this.pos, 4, true);\n break;\n }\n }\n return this;\n }\n /**\n Check whether this state has no further actions (assumed to be a direct descendant of the\n top state, since any other states must be able to continue\n somehow). @internal\n */\n get deadEnd() {\n if (this.stack.length != 3)\n return false;\n let { parser } = this.p;\n return parser.data[parser.stateSlot(this.state, 1 /* ParseState.Actions */)] == 65535 /* Seq.End */ &&\n !parser.stateSlot(this.state, 4 /* ParseState.DefaultReduce */);\n }\n /**\n Restart the stack (put it back in its start state). Only safe\n when this.stack.length == 3 (state is directly below the top\n state). @internal\n */\n restart() {\n this.storeNode(0 /* Term.Err */, this.pos, this.pos, 4, true);\n this.state = this.stack[0];\n this.stack.length = 0;\n }\n /**\n @internal\n */\n sameState(other) {\n if (this.state != other.state || this.stack.length != other.stack.length)\n return false;\n for (let i = 0; i < this.stack.length; i += 3)\n if (this.stack[i] != other.stack[i])\n return false;\n return true;\n }\n /**\n Get the parser used by this stack.\n */\n get parser() { return this.p.parser; }\n /**\n Test whether a given dialect (by numeric ID, as exported from\n the terms file) is enabled.\n */\n dialectEnabled(dialectID) { return this.p.parser.dialect.flags[dialectID]; }\n shiftContext(term, start) {\n if (this.curContext)\n this.updateContext(this.curContext.tracker.shift(this.curContext.context, term, this, this.p.stream.reset(start)));\n }\n reduceContext(term, start) {\n if (this.curContext)\n this.updateContext(this.curContext.tracker.reduce(this.curContext.context, term, this, this.p.stream.reset(start)));\n }\n /**\n @internal\n */\n emitContext() {\n let last = this.buffer.length - 1;\n if (last < 0 || this.buffer[last] != -3)\n this.buffer.push(this.curContext.hash, this.pos, this.pos, -3);\n }\n /**\n @internal\n */\n emitLookAhead() {\n let last = this.buffer.length - 1;\n if (last < 0 || this.buffer[last] != -4)\n this.buffer.push(this.lookAhead, this.pos, this.pos, -4);\n }\n updateContext(context) {\n if (context != this.curContext.context) {\n let newCx = new StackContext(this.curContext.tracker, context);\n if (newCx.hash != this.curContext.hash)\n this.emitContext();\n this.curContext = newCx;\n }\n }\n /**\n @internal\n */\n setLookAhead(lookAhead) {\n if (lookAhead <= this.lookAhead)\n return false;\n this.emitLookAhead();\n this.lookAhead = lookAhead;\n return true;\n }\n /**\n @internal\n */\n close() {\n if (this.curContext && this.curContext.tracker.strict)\n this.emitContext();\n if (this.lookAhead > 0)\n this.emitLookAhead();\n }\n}\nclass StackContext {\n constructor(tracker, context) {\n this.tracker = tracker;\n this.context = context;\n this.hash = tracker.strict ? tracker.hash(context) : 0;\n }\n}\n// Used to cheaply run some reductions to scan ahead without mutating\n// an entire stack\nclass SimulatedStack {\n constructor(start) {\n this.start = start;\n this.state = start.state;\n this.stack = start.stack;\n this.base = this.stack.length;\n }\n reduce(action) {\n let term = action & 65535 /* Action.ValueMask */, depth = action >> 19 /* Action.ReduceDepthShift */;\n if (depth == 0) {\n if (this.stack == this.start.stack)\n this.stack = this.stack.slice();\n this.stack.push(this.state, 0, 0);\n this.base += 3;\n }\n else {\n this.base -= (depth - 1) * 3;\n }\n let goto = this.start.p.parser.getGoto(this.stack[this.base - 3], term, true);\n this.state = goto;\n }\n}\n// This is given to `Tree.build` to build a buffer, and encapsulates\n// the parent-stack-walking necessary to read the nodes.\nclass StackBufferCursor {\n constructor(stack, pos, index) {\n this.stack = stack;\n this.pos = pos;\n this.index = index;\n this.buffer = stack.buffer;\n if (this.index == 0)\n this.maybeNext();\n }\n static create(stack, pos = stack.bufferBase + stack.buffer.length) {\n return new StackBufferCursor(stack, pos, pos - stack.bufferBase);\n }\n maybeNext() {\n let next = this.stack.parent;\n if (next != null) {\n this.index = this.stack.bufferBase - next.bufferBase;\n this.stack = next;\n this.buffer = next.buffer;\n }\n }\n get id() { return this.buffer[this.index - 4]; }\n get start() { return this.buffer[this.index - 3]; }\n get end() { return this.buffer[this.index - 2]; }\n get size() { return this.buffer[this.index - 1]; }\n next() {\n this.index -= 4;\n this.pos -= 4;\n if (this.index == 0)\n this.maybeNext();\n }\n fork() {\n return new StackBufferCursor(this.stack, this.pos, this.index);\n }\n}\n\n// See lezer-generator/src/encode.ts for comments about the encoding\n// used here\nfunction decodeArray(input, Type = Uint16Array) {\n if (typeof input != \"string\")\n return input;\n let array = null;\n for (let pos = 0, out = 0; pos < input.length;) {\n let value = 0;\n for (;;) {\n let next = input.charCodeAt(pos++), stop = false;\n if (next == 126 /* Encode.BigValCode */) {\n value = 65535 /* Encode.BigVal */;\n break;\n }\n if (next >= 92 /* Encode.Gap2 */)\n next--;\n if (next >= 34 /* Encode.Gap1 */)\n next--;\n let digit = next - 32 /* Encode.Start */;\n if (digit >= 46 /* Encode.Base */) {\n digit -= 46 /* Encode.Base */;\n stop = true;\n }\n value += digit;\n if (stop)\n break;\n value *= 46 /* Encode.Base */;\n }\n if (array)\n array[out++] = value;\n else\n array = new Type(value);\n }\n return array;\n}\n\nclass CachedToken {\n constructor() {\n this.start = -1;\n this.value = -1;\n this.end = -1;\n this.extended = -1;\n this.lookAhead = 0;\n this.mask = 0;\n this.context = 0;\n }\n}\nconst nullToken = new CachedToken;\n/**\n[Tokenizers](#lr.ExternalTokenizer) interact with the input\nthrough this interface. It presents the input as a stream of\ncharacters, tracking lookahead and hiding the complexity of\n[ranges](#common.Parser.parse^ranges) from tokenizer code.\n*/\nclass InputStream {\n /**\n @internal\n */\n constructor(\n /**\n @internal\n */\n input, \n /**\n @internal\n */\n ranges) {\n this.input = input;\n this.ranges = ranges;\n /**\n @internal\n */\n this.chunk = \"\";\n /**\n @internal\n */\n this.chunkOff = 0;\n /**\n Backup chunk\n */\n this.chunk2 = \"\";\n this.chunk2Pos = 0;\n /**\n The character code of the next code unit in the input, or -1\n when the stream is at the end of the input.\n */\n this.next = -1;\n /**\n @internal\n */\n this.token = nullToken;\n this.rangeIndex = 0;\n this.pos = this.chunkPos = ranges[0].from;\n this.range = ranges[0];\n this.end = ranges[ranges.length - 1].to;\n this.readNext();\n }\n /**\n @internal\n */\n resolveOffset(offset, assoc) {\n let range = this.range, index = this.rangeIndex;\n let pos = this.pos + offset;\n while (pos < range.from) {\n if (!index)\n return null;\n let next = this.ranges[--index];\n pos -= range.from - next.to;\n range = next;\n }\n while (assoc < 0 ? pos > range.to : pos >= range.to) {\n if (index == this.ranges.length - 1)\n return null;\n let next = this.ranges[++index];\n pos += next.from - range.to;\n range = next;\n }\n return pos;\n }\n /**\n @internal\n */\n clipPos(pos) {\n if (pos >= this.range.from && pos < this.range.to)\n return pos;\n for (let range of this.ranges)\n if (range.to > pos)\n return Math.max(pos, range.from);\n return this.end;\n }\n /**\n Look at a code unit near the stream position. `.peek(0)` equals\n `.next`, `.peek(-1)` gives you the previous character, and so\n on.\n \n Note that looking around during tokenizing creates dependencies\n on potentially far-away content, which may reduce the\n effectiveness incremental parsing—when looking forward—or even\n cause invalid reparses when looking backward more than 25 code\n units, since the library does not track lookbehind.\n */\n peek(offset) {\n let idx = this.chunkOff + offset, pos, result;\n if (idx >= 0 && idx < this.chunk.length) {\n pos = this.pos + offset;\n result = this.chunk.charCodeAt(idx);\n }\n else {\n let resolved = this.resolveOffset(offset, 1);\n if (resolved == null)\n return -1;\n pos = resolved;\n if (pos >= this.chunk2Pos && pos < this.chunk2Pos + this.chunk2.length) {\n result = this.chunk2.charCodeAt(pos - this.chunk2Pos);\n }\n else {\n let i = this.rangeIndex, range = this.range;\n while (range.to <= pos)\n range = this.ranges[++i];\n this.chunk2 = this.input.chunk(this.chunk2Pos = pos);\n if (pos + this.chunk2.length > range.to)\n this.chunk2 = this.chunk2.slice(0, range.to - pos);\n result = this.chunk2.charCodeAt(0);\n }\n }\n if (pos >= this.token.lookAhead)\n this.token.lookAhead = pos + 1;\n return result;\n }\n /**\n Accept a token. By default, the end of the token is set to the\n current stream position, but you can pass an offset (relative to\n the stream position) to change that.\n */\n acceptToken(token, endOffset = 0) {\n let end = endOffset ? this.resolveOffset(endOffset, -1) : this.pos;\n if (end == null || end < this.token.start)\n throw new RangeError(\"Token end out of bounds\");\n this.token.value = token;\n this.token.end = end;\n }\n /**\n Accept a token ending at a specific given position.\n */\n acceptTokenTo(token, endPos) {\n this.token.value = token;\n this.token.end = endPos;\n }\n getChunk() {\n if (this.pos >= this.chunk2Pos && this.pos < this.chunk2Pos + this.chunk2.length) {\n let { chunk, chunkPos } = this;\n this.chunk = this.chunk2;\n this.chunkPos = this.chunk2Pos;\n this.chunk2 = chunk;\n this.chunk2Pos = chunkPos;\n this.chunkOff = this.pos - this.chunkPos;\n }\n else {\n this.chunk2 = this.chunk;\n this.chunk2Pos = this.chunkPos;\n let nextChunk = this.input.chunk(this.pos);\n let end = this.pos + nextChunk.length;\n this.chunk = end > this.range.to ? nextChunk.slice(0, this.range.to - this.pos) : nextChunk;\n this.chunkPos = this.pos;\n this.chunkOff = 0;\n }\n }\n readNext() {\n if (this.chunkOff >= this.chunk.length) {\n this.getChunk();\n if (this.chunkOff == this.chunk.length)\n return this.next = -1;\n }\n return this.next = this.chunk.charCodeAt(this.chunkOff);\n }\n /**\n Move the stream forward N (defaults to 1) code units. Returns\n the new value of [`next`](#lr.InputStream.next).\n */\n advance(n = 1) {\n this.chunkOff += n;\n while (this.pos + n >= this.range.to) {\n if (this.rangeIndex == this.ranges.length - 1)\n return this.setDone();\n n -= this.range.to - this.pos;\n this.range = this.ranges[++this.rangeIndex];\n this.pos = this.range.from;\n }\n this.pos += n;\n if (this.pos >= this.token.lookAhead)\n this.token.lookAhead = this.pos + 1;\n return this.readNext();\n }\n setDone() {\n this.pos = this.chunkPos = this.end;\n this.range = this.ranges[this.rangeIndex = this.ranges.length - 1];\n this.chunk = \"\";\n return this.next = -1;\n }\n /**\n @internal\n */\n reset(pos, token) {\n if (token) {\n this.token = token;\n token.start = pos;\n token.lookAhead = pos + 1;\n token.value = token.extended = -1;\n }\n else {\n this.token = nullToken;\n }\n if (this.pos != pos) {\n this.pos = pos;\n if (pos == this.end) {\n this.setDone();\n return this;\n }\n while (pos < this.range.from)\n this.range = this.ranges[--this.rangeIndex];\n while (pos >= this.range.to)\n this.range = this.ranges[++this.rangeIndex];\n if (pos >= this.chunkPos && pos < this.chunkPos + this.chunk.length) {\n this.chunkOff = pos - this.chunkPos;\n }\n else {\n this.chunk = \"\";\n this.chunkOff = 0;\n }\n this.readNext();\n }\n return this;\n }\n /**\n @internal\n */\n read(from, to) {\n if (from >= this.chunkPos && to <= this.chunkPos + this.chunk.length)\n return this.chunk.slice(from - this.chunkPos, to - this.chunkPos);\n if (from >= this.chunk2Pos && to <= this.chunk2Pos + this.chunk2.length)\n return this.chunk2.slice(from - this.chunk2Pos, to - this.chunk2Pos);\n if (from >= this.range.from && to <= this.range.to)\n return this.input.read(from, to);\n let result = \"\";\n for (let r of this.ranges) {\n if (r.from >= to)\n break;\n if (r.to > from)\n result += this.input.read(Math.max(r.from, from), Math.min(r.to, to));\n }\n return result;\n }\n}\n/**\n@internal\n*/\nclass TokenGroup {\n constructor(data, id) {\n this.data = data;\n this.id = id;\n }\n token(input, stack) {\n let { parser } = stack.p;\n readToken(this.data, input, stack, this.id, parser.data, parser.tokenPrecTable);\n }\n}\nTokenGroup.prototype.contextual = TokenGroup.prototype.fallback = TokenGroup.prototype.extend = false;\n/**\n@hide\n*/\nclass LocalTokenGroup {\n constructor(data, precTable, elseToken) {\n this.precTable = precTable;\n this.elseToken = elseToken;\n this.data = typeof data == \"string\" ? decodeArray(data) : data;\n }\n token(input, stack) {\n let start = input.pos, skipped = 0;\n for (;;) {\n let atEof = input.next < 0, nextPos = input.resolveOffset(1, 1);\n readToken(this.data, input, stack, 0, this.data, this.precTable);\n if (input.token.value > -1)\n break;\n if (this.elseToken == null)\n return;\n if (!atEof)\n skipped++;\n if (nextPos == null)\n break;\n input.reset(nextPos, input.token);\n }\n if (skipped) {\n input.reset(start, input.token);\n input.acceptToken(this.elseToken, skipped);\n }\n }\n}\nLocalTokenGroup.prototype.contextual = TokenGroup.prototype.fallback = TokenGroup.prototype.extend = false;\n/**\n`@external tokens` declarations in the grammar should resolve to\nan instance of this class.\n*/\nclass ExternalTokenizer {\n /**\n Create a tokenizer. The first argument is the function that,\n given an input stream, scans for the types of tokens it\n recognizes at the stream's position, and calls\n [`acceptToken`](#lr.InputStream.acceptToken) when it finds\n one.\n */\n constructor(\n /**\n @internal\n */\n token, options = {}) {\n this.token = token;\n this.contextual = !!options.contextual;\n this.fallback = !!options.fallback;\n this.extend = !!options.extend;\n }\n}\n// Tokenizer data is stored a big uint16 array containing, for each\n// state:\n//\n// - A group bitmask, indicating what token groups are reachable from\n// this state, so that paths that can only lead to tokens not in\n// any of the current groups can be cut off early.\n//\n// - The position of the end of the state's sequence of accepting\n// tokens\n//\n// - The number of outgoing edges for the state\n//\n// - The accepting tokens, as (token id, group mask) pairs\n//\n// - The outgoing edges, as (start character, end character, state\n// index) triples, with end character being exclusive\n//\n// This function interprets that data, running through a stream as\n// long as new states with the a matching group mask can be reached,\n// and updating `input.token` when it matches a token.\nfunction readToken(data, input, stack, group, precTable, precOffset) {\n let state = 0, groupMask = 1 << group, { dialect } = stack.p.parser;\n scan: for (;;) {\n if ((groupMask & data[state]) == 0)\n break;\n let accEnd = data[state + 1];\n // Check whether this state can lead to a token in the current group\n // Accept tokens in this state, possibly overwriting\n // lower-precedence / shorter tokens\n for (let i = state + 3; i < accEnd; i += 2)\n if ((data[i + 1] & groupMask) > 0) {\n let term = data[i];\n if (dialect.allows(term) &&\n (input.token.value == -1 || input.token.value == term ||\n overrides(term, input.token.value, precTable, precOffset))) {\n input.acceptToken(term);\n break;\n }\n }\n let next = input.next, low = 0, high = data[state + 2];\n // Special case for EOF\n if (input.next < 0 && high > low && data[accEnd + high * 3 - 3] == 65535 /* Seq.End */) {\n state = data[accEnd + high * 3 - 1];\n continue scan;\n }\n // Do a binary search on the state's edges\n for (; low < high;) {\n let mid = (low + high) >> 1;\n let index = accEnd + mid + (mid << 1);\n let from = data[index], to = data[index + 1] || 0x10000;\n if (next < from)\n high = mid;\n else if (next >= to)\n low = mid + 1;\n else {\n state = data[index + 2];\n input.advance();\n continue scan;\n }\n }\n break;\n }\n}\nfunction findOffset(data, start, term) {\n for (let i = start, next; (next = data[i]) != 65535 /* Seq.End */; i++)\n if (next == term)\n return i - start;\n return -1;\n}\nfunction overrides(token, prev, tableData, tableOffset) {\n let iPrev = findOffset(tableData, tableOffset, prev);\n return iPrev < 0 || findOffset(tableData, tableOffset, token) < iPrev;\n}\n\n// Environment variable used to control console output\nconst verbose = typeof process != \"undefined\" && process.env && /\\bparse\\b/.test(process.env.LOG);\nlet stackIDs = null;\nfunction cutAt(tree, pos, side) {\n let cursor = tree.cursor(IterMode.IncludeAnonymous);\n cursor.moveTo(pos);\n for (;;) {\n if (!(side < 0 ? cursor.childBefore(pos) : cursor.childAfter(pos)))\n for (;;) {\n if ((side < 0 ? cursor.to < pos : cursor.from > pos) && !cursor.type.isError)\n return side < 0 ? Math.max(0, Math.min(cursor.to - 1, pos - 25 /* Lookahead.Margin */))\n : Math.min(tree.length, Math.max(cursor.from + 1, pos + 25 /* Lookahead.Margin */));\n if (side < 0 ? cursor.prevSibling() : cursor.nextSibling())\n break;\n if (!cursor.parent())\n return side < 0 ? 0 : tree.length;\n }\n }\n}\nclass FragmentCursor {\n constructor(fragments, nodeSet) {\n this.fragments = fragments;\n this.nodeSet = nodeSet;\n this.i = 0;\n this.fragment = null;\n this.safeFrom = -1;\n this.safeTo = -1;\n this.trees = [];\n this.start = [];\n this.index = [];\n this.nextFragment();\n }\n nextFragment() {\n let fr = this.fragment = this.i == this.fragments.length ? null : this.fragments[this.i++];\n if (fr) {\n this.safeFrom = fr.openStart ? cutAt(fr.tree, fr.from + fr.offset, 1) - fr.offset : fr.from;\n this.safeTo = fr.openEnd ? cutAt(fr.tree, fr.to + fr.offset, -1) - fr.offset : fr.to;\n while (this.trees.length) {\n this.trees.pop();\n this.start.pop();\n this.index.pop();\n }\n this.trees.push(fr.tree);\n this.start.push(-fr.offset);\n this.index.push(0);\n this.nextStart = this.safeFrom;\n }\n else {\n this.nextStart = 1e9;\n }\n }\n // `pos` must be >= any previously given `pos` for this cursor\n nodeAt(pos) {\n if (pos < this.nextStart)\n return null;\n while (this.fragment && this.safeTo <= pos)\n this.nextFragment();\n if (!this.fragment)\n return null;\n for (;;) {\n let last = this.trees.length - 1;\n if (last < 0) { // End of tree\n this.nextFragment();\n return null;\n }\n let top = this.trees[last], index = this.index[last];\n if (index == top.children.length) {\n this.trees.pop();\n this.start.pop();\n this.index.pop();\n continue;\n }\n let next = top.children[index];\n let start = this.start[last] + top.positions[index];\n if (start > pos) {\n this.nextStart = start;\n return null;\n }\n if (next instanceof Tree) {\n if (start == pos) {\n if (start < this.safeFrom)\n return null;\n let end = start + next.length;\n if (end <= this.safeTo) {\n let lookAhead = next.prop(NodeProp.lookAhead);\n if (!lookAhead || end + lookAhead < this.fragment.to)\n return next;\n }\n }\n this.index[last]++;\n if (start + next.length >= Math.max(this.safeFrom, pos)) { // Enter this node\n this.trees.push(next);\n this.start.push(start);\n this.index.push(0);\n }\n }\n else {\n this.index[last]++;\n this.nextStart = start + next.length;\n }\n }\n }\n}\nclass TokenCache {\n constructor(parser, stream) {\n this.stream = stream;\n this.tokens = [];\n this.mainToken = null;\n this.actions = [];\n this.tokens = parser.tokenizers.map(_ => new CachedToken);\n }\n getActions(stack) {\n let actionIndex = 0;\n let main = null;\n let { parser } = stack.p, { tokenizers } = parser;\n let mask = parser.stateSlot(stack.state, 3 /* ParseState.TokenizerMask */);\n let context = stack.curContext ? stack.curContext.hash : 0;\n let lookAhead = 0;\n for (let i = 0; i < tokenizers.length; i++) {\n if (((1 << i) & mask) == 0)\n continue;\n let tokenizer = tokenizers[i], token = this.tokens[i];\n if (main && !tokenizer.fallback)\n continue;\n if (tokenizer.contextual || token.start != stack.pos || token.mask != mask || token.context != context) {\n this.updateCachedToken(token, tokenizer, stack);\n token.mask = mask;\n token.context = context;\n }\n if (token.lookAhead > token.end + 25 /* Lookahead.Margin */)\n lookAhead = Math.max(token.lookAhead, lookAhead);\n if (token.value != 0 /* Term.Err */) {\n let startIndex = actionIndex;\n if (token.extended > -1)\n actionIndex = this.addActions(stack, token.extended, token.end, actionIndex);\n actionIndex = this.addActions(stack, token.value, token.end, actionIndex);\n if (!tokenizer.extend) {\n main = token;\n if (actionIndex > startIndex)\n break;\n }\n }\n }\n while (this.actions.length > actionIndex)\n this.actions.pop();\n if (lookAhead)\n stack.setLookAhead(lookAhead);\n if (!main && stack.pos == this.stream.end) {\n main = new CachedToken;\n main.value = stack.p.parser.eofTerm;\n main.start = main.end = stack.pos;\n actionIndex = this.addActions(stack, main.value, main.end, actionIndex);\n }\n this.mainToken = main;\n return this.actions;\n }\n getMainToken(stack) {\n if (this.mainToken)\n return this.mainToken;\n let main = new CachedToken, { pos, p } = stack;\n main.start = pos;\n main.end = Math.min(pos + 1, p.stream.end);\n main.value = pos == p.stream.end ? p.parser.eofTerm : 0 /* Term.Err */;\n return main;\n }\n updateCachedToken(token, tokenizer, stack) {\n let start = this.stream.clipPos(stack.pos);\n tokenizer.token(this.stream.reset(start, token), stack);\n if (token.value > -1) {\n let { parser } = stack.p;\n for (let i = 0; i < parser.specialized.length; i++)\n if (parser.specialized[i] == token.value) {\n let result = parser.specializers[i](this.stream.read(token.start, token.end), stack);\n if (result >= 0 && stack.p.parser.dialect.allows(result >> 1)) {\n if ((result & 1) == 0 /* Specialize.Specialize */)\n token.value = result >> 1;\n else\n token.extended = result >> 1;\n break;\n }\n }\n }\n else {\n token.value = 0 /* Term.Err */;\n token.end = this.stream.clipPos(start + 1);\n }\n }\n putAction(action, token, end, index) {\n // Don't add duplicate actions\n for (let i = 0; i < index; i += 3)\n if (this.actions[i] == action)\n return index;\n this.actions[index++] = action;\n this.actions[index++] = token;\n this.actions[index++] = end;\n return index;\n }\n addActions(stack, token, end, index) {\n let { state } = stack, { parser } = stack.p, { data } = parser;\n for (let set = 0; set < 2; set++) {\n for (let i = parser.stateSlot(state, set ? 2 /* ParseState.Skip */ : 1 /* ParseState.Actions */);; i += 3) {\n if (data[i] == 65535 /* Seq.End */) {\n if (data[i + 1] == 1 /* Seq.Next */) {\n i = pair(data, i + 2);\n }\n else {\n if (index == 0 && data[i + 1] == 2 /* Seq.Other */)\n index = this.putAction(pair(data, i + 2), token, end, index);\n break;\n }\n }\n if (data[i] == token)\n index = this.putAction(pair(data, i + 1), token, end, index);\n }\n }\n return index;\n }\n}\nclass Parse {\n constructor(parser, input, fragments, ranges) {\n this.parser = parser;\n this.input = input;\n this.ranges = ranges;\n this.recovering = 0;\n this.nextStackID = 0x2654; // ♔, ♕, ♖, ♗, ♘, ♙, ♠, ♡, ♢, ♣, ♤, ♥, ♦, ♧\n this.minStackPos = 0;\n this.reused = [];\n this.stoppedAt = null;\n this.lastBigReductionStart = -1;\n this.lastBigReductionSize = 0;\n this.bigReductionCount = 0;\n this.stream = new InputStream(input, ranges);\n this.tokens = new TokenCache(parser, this.stream);\n this.topTerm = parser.top[1];\n let { from } = ranges[0];\n this.stacks = [Stack.start(this, parser.top[0], from)];\n this.fragments = fragments.length && this.stream.end - from > parser.bufferLength * 4\n ? new FragmentCursor(fragments, parser.nodeSet) : null;\n }\n get parsedPos() {\n return this.minStackPos;\n }\n // Move the parser forward. This will process all parse stacks at\n // `this.pos` and try to advance them to a further position. If no\n // stack for such a position is found, it'll start error-recovery.\n //\n // When the parse is finished, this will return a syntax tree. When\n // not, it returns `null`.\n advance() {\n let stacks = this.stacks, pos = this.minStackPos;\n // This will hold stacks beyond `pos`.\n let newStacks = this.stacks = [];\n let stopped, stoppedTokens;\n // If a large amount of reductions happened with the same start\n // position, force the stack out of that production in order to\n // avoid creating a tree too deep to recurse through.\n // (This is an ugly kludge, because unfortunately there is no\n // straightforward, cheap way to check for this happening, due to\n // the history of reductions only being available in an\n // expensive-to-access format in the stack buffers.)\n if (this.bigReductionCount > 300 /* Rec.MaxLeftAssociativeReductionCount */ && stacks.length == 1) {\n let [s] = stacks;\n while (s.forceReduce() && s.stack.length && s.stack[s.stack.length - 2] >= this.lastBigReductionStart) { }\n this.bigReductionCount = this.lastBigReductionSize = 0;\n }\n // Keep advancing any stacks at `pos` until they either move\n // forward or can't be advanced. Gather stacks that can't be\n // advanced further in `stopped`.\n for (let i = 0; i < stacks.length; i++) {\n let stack = stacks[i];\n for (;;) {\n this.tokens.mainToken = null;\n if (stack.pos > pos) {\n newStacks.push(stack);\n }\n else if (this.advanceStack(stack, newStacks, stacks)) {\n continue;\n }\n else {\n if (!stopped) {\n stopped = [];\n stoppedTokens = [];\n }\n stopped.push(stack);\n let tok = this.tokens.getMainToken(stack);\n stoppedTokens.push(tok.value, tok.end);\n }\n break;\n }\n }\n if (!newStacks.length) {\n let finished = stopped && findFinished(stopped);\n if (finished) {\n if (verbose)\n console.log(\"Finish with \" + this.stackID(finished));\n return this.stackToTree(finished);\n }\n if (this.parser.strict) {\n if (verbose && stopped)\n console.log(\"Stuck with token \" + (this.tokens.mainToken ? this.parser.getName(this.tokens.mainToken.value) : \"none\"));\n throw new SyntaxError(\"No parse at \" + pos);\n }\n if (!this.recovering)\n this.recovering = 5 /* Rec.Distance */;\n }\n if (this.recovering && stopped) {\n let finished = this.stoppedAt != null && stopped[0].pos > this.stoppedAt ? stopped[0]\n : this.runRecovery(stopped, stoppedTokens, newStacks);\n if (finished) {\n if (verbose)\n console.log(\"Force-finish \" + this.stackID(finished));\n return this.stackToTree(finished.forceAll());\n }\n }\n if (this.recovering) {\n let maxRemaining = this.recovering == 1 ? 1 : this.recovering * 3 /* Rec.MaxRemainingPerStep */;\n if (newStacks.length > maxRemaining) {\n newStacks.sort((a, b) => b.score - a.score);\n while (newStacks.length > maxRemaining)\n newStacks.pop();\n }\n if (newStacks.some(s => s.reducePos > pos))\n this.recovering--;\n }\n else if (newStacks.length > 1) {\n // Prune stacks that are in the same state, or that have been\n // running without splitting for a while, to avoid getting stuck\n // with multiple successful stacks running endlessly on.\n outer: for (let i = 0; i < newStacks.length - 1; i++) {\n let stack = newStacks[i];\n for (let j = i + 1; j < newStacks.length; j++) {\n let other = newStacks[j];\n if (stack.sameState(other) ||\n stack.buffer.length > 500 /* Rec.MinBufferLengthPrune */ && other.buffer.length > 500 /* Rec.MinBufferLengthPrune */) {\n if (((stack.score - other.score) || (stack.buffer.length - other.buffer.length)) > 0) {\n newStacks.splice(j--, 1);\n }\n else {\n newStacks.splice(i--, 1);\n continue outer;\n }\n }\n }\n }\n if (newStacks.length > 12 /* Rec.MaxStackCount */)\n newStacks.splice(12 /* Rec.MaxStackCount */, newStacks.length - 12 /* Rec.MaxStackCount */);\n }\n this.minStackPos = newStacks[0].pos;\n for (let i = 1; i < newStacks.length; i++)\n if (newStacks[i].pos < this.minStackPos)\n this.minStackPos = newStacks[i].pos;\n return null;\n }\n stopAt(pos) {\n if (this.stoppedAt != null && this.stoppedAt < pos)\n throw new RangeError(\"Can't move stoppedAt forward\");\n this.stoppedAt = pos;\n }\n // Returns an updated version of the given stack, or null if the\n // stack can't advance normally. When `split` and `stacks` are\n // given, stacks split off by ambiguous operations will be pushed to\n // `split`, or added to `stacks` if they move `pos` forward.\n advanceStack(stack, stacks, split) {\n let start = stack.pos, { parser } = this;\n let base = verbose ? this.stackID(stack) + \" -> \" : \"\";\n if (this.stoppedAt != null && start > this.stoppedAt)\n return stack.forceReduce() ? stack : null;\n if (this.fragments) {\n let strictCx = stack.curContext && stack.curContext.tracker.strict, cxHash = strictCx ? stack.curContext.hash : 0;\n for (let cached = this.fragments.nodeAt(start); cached;) {\n let match = this.parser.nodeSet.types[cached.type.id] == cached.type ? parser.getGoto(stack.state, cached.type.id) : -1;\n if (match > -1 && cached.length && (!strictCx || (cached.prop(NodeProp.contextHash) || 0) == cxHash)) {\n stack.useNode(cached, match);\n if (verbose)\n console.log(base + this.stackID(stack) + ` (via reuse of ${parser.getName(cached.type.id)})`);\n return true;\n }\n if (!(cached instanceof Tree) || cached.children.length == 0 || cached.positions[0] > 0)\n break;\n let inner = cached.children[0];\n if (inner instanceof Tree && cached.positions[0] == 0)\n cached = inner;\n else\n break;\n }\n }\n let defaultReduce = parser.stateSlot(stack.state, 4 /* ParseState.DefaultReduce */);\n if (defaultReduce > 0) {\n stack.reduce(defaultReduce);\n if (verbose)\n console.log(base + this.stackID(stack) + ` (via always-reduce ${parser.getName(defaultReduce & 65535 /* Action.ValueMask */)})`);\n return true;\n }\n if (stack.stack.length >= 8400 /* Rec.CutDepth */) {\n while (stack.stack.length > 6000 /* Rec.CutTo */ && stack.forceReduce()) { }\n }\n let actions = this.tokens.getActions(stack);\n for (let i = 0; i < actions.length;) {\n let action = actions[i++], term = actions[i++], end = actions[i++];\n let last = i == actions.length || !split;\n let localStack = last ? stack : stack.split();\n let main = this.tokens.mainToken;\n localStack.apply(action, term, main ? main.start : localStack.pos, end);\n if (verbose)\n console.log(base + this.stackID(localStack) + ` (via ${(action & 65536 /* Action.ReduceFlag */) == 0 ? \"shift\"\n : `reduce of ${parser.getName(action & 65535 /* Action.ValueMask */)}`} for ${parser.getName(term)} @ ${start}${localStack == stack ? \"\" : \", split\"})`);\n if (last)\n return true;\n else if (localStack.pos > start)\n stacks.push(localStack);\n else\n split.push(localStack);\n }\n return false;\n }\n // Advance a given stack forward as far as it will go. Returns the\n // (possibly updated) stack if it got stuck, or null if it moved\n // forward and was given to `pushStackDedup`.\n advanceFully(stack, newStacks) {\n let pos = stack.pos;\n for (;;) {\n if (!this.advanceStack(stack, null, null))\n return false;\n if (stack.pos > pos) {\n pushStackDedup(stack, newStacks);\n return true;\n }\n }\n }\n runRecovery(stacks, tokens, newStacks) {\n let finished = null, restarted = false;\n for (let i = 0; i < stacks.length; i++) {\n let stack = stacks[i], token = tokens[i << 1], tokenEnd = tokens[(i << 1) + 1];\n let base = verbose ? this.stackID(stack) + \" -> \" : \"\";\n if (stack.deadEnd) {\n if (restarted)\n continue;\n restarted = true;\n stack.restart();\n if (verbose)\n console.log(base + this.stackID(stack) + \" (restarted)\");\n let done = this.advanceFully(stack, newStacks);\n if (done)\n continue;\n }\n let force = stack.split(), forceBase = base;\n for (let j = 0; j < 10 /* Rec.ForceReduceLimit */ && force.forceReduce(); j++) {\n if (verbose)\n console.log(forceBase + this.stackID(force) + \" (via force-reduce)\");\n let done = this.advanceFully(force, newStacks);\n if (done)\n break;\n if (verbose)\n forceBase = this.stackID(force) + \" -> \";\n }\n for (let insert of stack.recoverByInsert(token)) {\n if (verbose)\n console.log(base + this.stackID(insert) + \" (via recover-insert)\");\n this.advanceFully(insert, newStacks);\n }\n if (this.stream.end > stack.pos) {\n if (tokenEnd == stack.pos) {\n tokenEnd++;\n token = 0 /* Term.Err */;\n }\n stack.recoverByDelete(token, tokenEnd);\n if (verbose)\n console.log(base + this.stackID(stack) + ` (via recover-delete ${this.parser.getName(token)})`);\n pushStackDedup(stack, newStacks);\n }\n else if (!finished || finished.score < stack.score) {\n finished = stack;\n }\n }\n return finished;\n }\n // Convert the stack's buffer to a syntax tree.\n stackToTree(stack) {\n stack.close();\n return Tree.build({ buffer: StackBufferCursor.create(stack),\n nodeSet: this.parser.nodeSet,\n topID: this.topTerm,\n maxBufferLength: this.parser.bufferLength,\n reused: this.reused,\n start: this.ranges[0].from,\n length: stack.pos - this.ranges[0].from,\n minRepeatType: this.parser.minRepeatTerm });\n }\n stackID(stack) {\n let id = (stackIDs || (stackIDs = new WeakMap)).get(stack);\n if (!id)\n stackIDs.set(stack, id = String.fromCodePoint(this.nextStackID++));\n return id + stack;\n }\n}\nfunction pushStackDedup(stack, newStacks) {\n for (let i = 0; i < newStacks.length; i++) {\n let other = newStacks[i];\n if (other.pos == stack.pos && other.sameState(stack)) {\n if (newStacks[i].score < stack.score)\n newStacks[i] = stack;\n return;\n }\n }\n newStacks.push(stack);\n}\nclass Dialect {\n constructor(source, flags, disabled) {\n this.source = source;\n this.flags = flags;\n this.disabled = disabled;\n }\n allows(term) { return !this.disabled || this.disabled[term] == 0; }\n}\nconst id = x => x;\n/**\nContext trackers are used to track stateful context (such as\nindentation in the Python grammar, or parent elements in the XML\ngrammar) needed by external tokenizers. You declare them in a\ngrammar file as `@context exportName from \"module\"`.\n\nContext values should be immutable, and can be updated (replaced)\non shift or reduce actions.\n\nThe export used in a `@context` declaration should be of this\ntype.\n*/\nclass ContextTracker {\n /**\n Define a context tracker.\n */\n constructor(spec) {\n this.start = spec.start;\n this.shift = spec.shift || id;\n this.reduce = spec.reduce || id;\n this.reuse = spec.reuse || id;\n this.hash = spec.hash || (() => 0);\n this.strict = spec.strict !== false;\n }\n}\n/**\nHolds the parse tables for a given grammar, as generated by\n`lezer-generator`, and provides [methods](#common.Parser) to parse\ncontent with.\n*/\nclass LRParser extends Parser {\n /**\n @internal\n */\n constructor(spec) {\n super();\n /**\n @internal\n */\n this.wrappers = [];\n if (spec.version != 14 /* File.Version */)\n throw new RangeError(`Parser version (${spec.version}) doesn't match runtime version (${14 /* File.Version */})`);\n let nodeNames = spec.nodeNames.split(\" \");\n this.minRepeatTerm = nodeNames.length;\n for (let i = 0; i < spec.repeatNodeCount; i++)\n nodeNames.push(\"\");\n let topTerms = Object.keys(spec.topRules).map(r => spec.topRules[r][1]);\n let nodeProps = [];\n for (let i = 0; i < nodeNames.length; i++)\n nodeProps.push([]);\n function setProp(nodeID, prop, value) {\n nodeProps[nodeID].push([prop, prop.deserialize(String(value))]);\n }\n if (spec.nodeProps)\n for (let propSpec of spec.nodeProps) {\n let prop = propSpec[0];\n if (typeof prop == \"string\")\n prop = NodeProp[prop];\n for (let i = 1; i < propSpec.length;) {\n let next = propSpec[i++];\n if (next >= 0) {\n setProp(next, prop, propSpec[i++]);\n }\n else {\n let value = propSpec[i + -next];\n for (let j = -next; j > 0; j--)\n setProp(propSpec[i++], prop, value);\n i++;\n }\n }\n }\n this.nodeSet = new NodeSet(nodeNames.map((name, i) => NodeType.define({\n name: i >= this.minRepeatTerm ? undefined : name,\n id: i,\n props: nodeProps[i],\n top: topTerms.indexOf(i) > -1,\n error: i == 0,\n skipped: spec.skippedNodes && spec.skippedNodes.indexOf(i) > -1\n })));\n if (spec.propSources)\n this.nodeSet = this.nodeSet.extend(...spec.propSources);\n this.strict = false;\n this.bufferLength = DefaultBufferLength;\n let tokenArray = decodeArray(spec.tokenData);\n this.context = spec.context;\n this.specializerSpecs = spec.specialized || [];\n this.specialized = new Uint16Array(this.specializerSpecs.length);\n for (let i = 0; i < this.specializerSpecs.length; i++)\n this.specialized[i] = this.specializerSpecs[i].term;\n this.specializers = this.specializerSpecs.map(getSpecializer);\n this.states = decodeArray(spec.states, Uint32Array);\n this.data = decodeArray(spec.stateData);\n this.goto = decodeArray(spec.goto);\n this.maxTerm = spec.maxTerm;\n this.tokenizers = spec.tokenizers.map(value => typeof value == \"number\" ? new TokenGroup(tokenArray, value) : value);\n this.topRules = spec.topRules;\n this.dialects = spec.dialects || {};\n this.dynamicPrecedences = spec.dynamicPrecedences || null;\n this.tokenPrecTable = spec.tokenPrec;\n this.termNames = spec.termNames || null;\n this.maxNode = this.nodeSet.types.length - 1;\n this.dialect = this.parseDialect();\n this.top = this.topRules[Object.keys(this.topRules)[0]];\n }\n createParse(input, fragments, ranges) {\n let parse = new Parse(this, input, fragments, ranges);\n for (let w of this.wrappers)\n parse = w(parse, input, fragments, ranges);\n return parse;\n }\n /**\n Get a goto table entry @internal\n */\n getGoto(state, term, loose = false) {\n let table = this.goto;\n if (term >= table[0])\n return -1;\n for (let pos = table[term + 1];;) {\n let groupTag = table[pos++], last = groupTag & 1;\n let target = table[pos++];\n if (last && loose)\n return target;\n for (let end = pos + (groupTag >> 1); pos < end; pos++)\n if (table[pos] == state)\n return target;\n if (last)\n return -1;\n }\n }\n /**\n Check if this state has an action for a given terminal @internal\n */\n hasAction(state, terminal) {\n let data = this.data;\n for (let set = 0; set < 2; set++) {\n for (let i = this.stateSlot(state, set ? 2 /* ParseState.Skip */ : 1 /* ParseState.Actions */), next;; i += 3) {\n if ((next = data[i]) == 65535 /* Seq.End */) {\n if (data[i + 1] == 1 /* Seq.Next */)\n next = data[i = pair(data, i + 2)];\n else if (data[i + 1] == 2 /* Seq.Other */)\n return pair(data, i + 2);\n else\n break;\n }\n if (next == terminal || next == 0 /* Term.Err */)\n return pair(data, i + 1);\n }\n }\n return 0;\n }\n /**\n @internal\n */\n stateSlot(state, slot) {\n return this.states[(state * 6 /* ParseState.Size */) + slot];\n }\n /**\n @internal\n */\n stateFlag(state, flag) {\n return (this.stateSlot(state, 0 /* ParseState.Flags */) & flag) > 0;\n }\n /**\n @internal\n */\n validAction(state, action) {\n return !!this.allActions(state, a => a == action ? true : null);\n }\n /**\n @internal\n */\n allActions(state, action) {\n let deflt = this.stateSlot(state, 4 /* ParseState.DefaultReduce */);\n let result = deflt ? action(deflt) : undefined;\n for (let i = this.stateSlot(state, 1 /* ParseState.Actions */); result == null; i += 3) {\n if (this.data[i] == 65535 /* Seq.End */) {\n if (this.data[i + 1] == 1 /* Seq.Next */)\n i = pair(this.data, i + 2);\n else\n break;\n }\n result = action(pair(this.data, i + 1));\n }\n return result;\n }\n /**\n Get the states that can follow this one through shift actions or\n goto jumps. @internal\n */\n nextStates(state) {\n let result = [];\n for (let i = this.stateSlot(state, 1 /* ParseState.Actions */);; i += 3) {\n if (this.data[i] == 65535 /* Seq.End */) {\n if (this.data[i + 1] == 1 /* Seq.Next */)\n i = pair(this.data, i + 2);\n else\n break;\n }\n if ((this.data[i + 2] & (65536 /* Action.ReduceFlag */ >> 16)) == 0) {\n let value = this.data[i + 1];\n if (!result.some((v, i) => (i & 1) && v == value))\n result.push(this.data[i], value);\n }\n }\n return result;\n }\n /**\n Configure the parser. Returns a new parser instance that has the\n given settings modified. Settings not provided in `config` are\n kept from the original parser.\n */\n configure(config) {\n // Hideous reflection-based kludge to make it easy to create a\n // slightly modified copy of a parser.\n let copy = Object.assign(Object.create(LRParser.prototype), this);\n if (config.props)\n copy.nodeSet = this.nodeSet.extend(...config.props);\n if (config.top) {\n let info = this.topRules[config.top];\n if (!info)\n throw new RangeError(`Invalid top rule name ${config.top}`);\n copy.top = info;\n }\n if (config.tokenizers)\n copy.tokenizers = this.tokenizers.map(t => {\n let found = config.tokenizers.find(r => r.from == t);\n return found ? found.to : t;\n });\n if (config.specializers) {\n copy.specializers = this.specializers.slice();\n copy.specializerSpecs = this.specializerSpecs.map((s, i) => {\n let found = config.specializers.find(r => r.from == s.external);\n if (!found)\n return s;\n let spec = Object.assign(Object.assign({}, s), { external: found.to });\n copy.specializers[i] = getSpecializer(spec);\n return spec;\n });\n }\n if (config.contextTracker)\n copy.context = config.contextTracker;\n if (config.dialect)\n copy.dialect = this.parseDialect(config.dialect);\n if (config.strict != null)\n copy.strict = config.strict;\n if (config.wrap)\n copy.wrappers = copy.wrappers.concat(config.wrap);\n if (config.bufferLength != null)\n copy.bufferLength = config.bufferLength;\n return copy;\n }\n /**\n Tells you whether any [parse wrappers](#lr.ParserConfig.wrap)\n are registered for this parser.\n */\n hasWrappers() {\n return this.wrappers.length > 0;\n }\n /**\n Returns the name associated with a given term. This will only\n work for all terms when the parser was generated with the\n `--names` option. By default, only the names of tagged terms are\n stored.\n */\n getName(term) {\n return this.termNames ? this.termNames[term] : String(term <= this.maxNode && this.nodeSet.types[term].name || term);\n }\n /**\n The eof term id is always allocated directly after the node\n types. @internal\n */\n get eofTerm() { return this.maxNode + 1; }\n /**\n The type of top node produced by the parser.\n */\n get topNode() { return this.nodeSet.types[this.top[1]]; }\n /**\n @internal\n */\n dynamicPrecedence(term) {\n let prec = this.dynamicPrecedences;\n return prec == null ? 0 : prec[term] || 0;\n }\n /**\n @internal\n */\n parseDialect(dialect) {\n let values = Object.keys(this.dialects), flags = values.map(() => false);\n if (dialect)\n for (let part of dialect.split(\" \")) {\n let id = values.indexOf(part);\n if (id >= 0)\n flags[id] = true;\n }\n let disabled = null;\n for (let i = 0; i < values.length; i++)\n if (!flags[i]) {\n for (let j = this.dialects[values[i]], id; (id = this.data[j++]) != 65535 /* Seq.End */;)\n (disabled || (disabled = new Uint8Array(this.maxTerm + 1)))[id] = 1;\n }\n return new Dialect(dialect, flags, disabled);\n }\n /**\n Used by the output of the parser generator. Not available to\n user code. @hide\n */\n static deserialize(spec) {\n return new LRParser(spec);\n }\n}\nfunction pair(data, off) { return data[off] | (data[off + 1] << 16); }\nfunction findFinished(stacks) {\n let best = null;\n for (let stack of stacks) {\n let stopped = stack.p.stoppedAt;\n if ((stack.pos == stack.p.stream.end || stopped != null && stack.pos > stopped) &&\n stack.p.parser.stateFlag(stack.state, 2 /* StateFlag.Accepting */) &&\n (!best || best.score < stack.score))\n best = stack;\n }\n return best;\n}\nfunction getSpecializer(spec) {\n if (spec.external) {\n let mask = spec.extend ? 1 /* Specialize.Extend */ : 0 /* Specialize.Specialize */;\n return (value, stack) => (spec.external(value, stack) << 1) | mask;\n }\n return spec.get;\n}\n\nexport { ContextTracker, ExternalTokenizer, InputStream, LRParser, LocalTokenGroup, Stack };\n"],"names":["Stack","constructor","p","stack","state","reducePos","pos","score","buffer","bufferBase","curContext","lookAhead","parent","this","toString","filter","_","i","concat","start","cx","parser","context","StackContext","pushState","push","length","reduce","action","_a","depth","type","lookaheadRecord","setLookAhead","dPrec","dynamicPrecedence","getGoto","minRepeatTerm","storeNode","reduceContext","base","ranges","from","size","nodeSet","types","isAnonymous","lastBigReductionStart","bigReductionCount","lastBigReductionSize","count","stateFlag","baseStateID","pop","term","end","mustSink","cur","top","index","mustMove","scan","shift","shiftContext","maxNode","nextState","apply","next","nextStart","nextEnd","useNode","value","reused","updateContext","tracker","reuse","stream","reset","split","off","slice","recoverByDelete","isNode","canShift","sim","SimulatedStack","stateSlot","hasAction","recoverByInsert","nextStates","best","s","some","v","result","forceReduce","validAction","target","backup","findForcedReduction","seen","explore","includes","allActions","rDepth","found","forceAll","deadEnd","data","restart","sameState","other","dialectEnabled","dialectID","dialect","flags","emitContext","last","hash","emitLookAhead","newCx","close","strict","goto","StackBufferCursor","maybeNext","create","id","fork","decodeArray","input","Type","Uint16Array","array","out","charCodeAt","stop","digit","CachedToken","extended","mask","nullToken","InputStream","chunk","chunkOff","chunk2","chunk2Pos","token","rangeIndex","chunkPos","range","to","readNext","resolveOffset","offset","assoc","clipPos","Math","max","peek","idx","resolved","acceptToken","endOffset","RangeError","acceptTokenTo","endPos","getChunk","nextChunk","advance","n","setDone","read","r","min","TokenGroup","readToken","tokenPrecTable","prototype","contextual","fallback","extend","LocalTokenGroup","precTable","elseToken","skipped","atEof","nextPos","group","precOffset","groupMask","accEnd","allows","overrides","low","high","mid","findOffset","prev","tableData","tableOffset","iPrev","verbose","process","env","test","LOG","stackIDs","cutAt","tree","side","cursor","IterMode","IncludeAnonymous","moveTo","childBefore","childAfter","isError","prevSibling","nextSibling","FragmentCursor","fragments","fragment","safeFrom","safeTo","trees","nextFragment","fr","openStart","openEnd","nodeAt","children","positions","Tree","prop","NodeProp","TokenCache","tokens","mainToken","actions","tokenizers","map","getActions","actionIndex","main","tokenizer","updateCachedToken","startIndex","addActions","eofTerm","getMainToken","specialized","specializers","putAction","set","pair","Parse","recovering","nextStackID","minStackPos","stoppedAt","topTerm","stacks","bufferLength","parsedPos","stopped","stoppedTokens","newStacks","advanceStack","tok","finished","findFinished","console","log","stackID","stackToTree","getName","SyntaxError","runRecovery","maxRemaining","sort","a","b","outer","j","splice","stopAt","strictCx","cxHash","cached","match","contextHash","inner","defaultReduce","localStack","advanceFully","pushStackDedup","restarted","tokenEnd","force","forceBase","insert","build","topID","maxBufferLength","minRepeatType","WeakMap","get","String","fromCodePoint","Dialect","source","disabled","x","LRParser","Parser","spec","super","wrappers","version","nodeNames","repeatNodeCount","topTerms","Object","keys","topRules","nodeProps","setProp","nodeID","deserialize","propSpec","NodeSet","name","NodeType","define","undefined","props","indexOf","error","skippedNodes","propSources","DefaultBufferLength","tokenArray","tokenData","specializerSpecs","getSpecializer","states","Uint32Array","stateData","maxTerm","dialects","dynamicPrecedences","tokenPrec","termNames","parseDialect","createParse","parse","w","loose","table","groupTag","terminal","slot","flag","deflt","configure","config","copy","assign","info","t","find","external","contextTracker","wrap","hasWrappers","topNode","prec","values","part","Uint8Array","options"],"mappings":"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","x_google_ignoreList":[0]}
|