diff --git a/THIRD_PARTY.txt b/THIRD_PARTY.txt
index a984440c..46b8b2dc 100644
--- a/THIRD_PARTY.txt
+++ b/THIRD_PARTY.txt
@@ -770,264 +770,264 @@ https://cdnjs.cloudflare.com/ajax/libs/highlight.js/10.7.3/styles/vs.min.css
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/10.7.3/styles/xcode.min.css
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/10.7.3/styles/xt256.min.css
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/10.7.3/styles/zenburn.min.css
-https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/highlight.min.js
-https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/languages/1c.min.js
-https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/languages/abnf.min.js
-https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/languages/accesslog.min.js
-https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/languages/actionscript.min.js
-https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/languages/ada.min.js
-https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/languages/angelscript.min.js
-https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/languages/apache.min.js
-https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/languages/applescript.min.js
-https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/languages/arcade.min.js
-https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/languages/arduino.min.js
-https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/languages/armasm.min.js
-https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/languages/asciidoc.min.js
-https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/languages/aspectj.min.js
-https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/languages/autohotkey.min.js
-https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/languages/autoit.min.js
-https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/languages/avrasm.min.js
-https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/languages/awk.min.js
-https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/languages/axapta.min.js
-https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/languages/bash.min.js
-https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/languages/basic.min.js
-https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/languages/bnf.min.js
-https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/languages/brainfuck.min.js
-https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/languages/cal.min.js
-https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/languages/capnproto.min.js
-https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/languages/ceylon.min.js
-https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/languages/clean.min.js
-https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/languages/clojure.min.js
-https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/languages/clojure-repl.min.js
-https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/languages/cmake.min.js
-https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/languages/c.min.js
-https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/languages/coffeescript.min.js
-https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/languages/coq.min.js
-https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/languages/cos.min.js
-https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/languages/cpp.min.js
-https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/languages/crmsh.min.js
-https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/languages/crystal.min.js
-https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/languages/csharp.min.js
-https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/languages/csp.min.js
-https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/languages/css.min.js
-https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/languages/dart.min.js
-https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/languages/delphi.min.js
-https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/languages/diff.min.js
-https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/languages/django.min.js
-https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/languages/d.min.js
-https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/languages/dns.min.js
-https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/languages/dockerfile.min.js
-https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/languages/dos.min.js
-https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/languages/dsconfig.min.js
-https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/languages/dts.min.js
-https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/languages/dust.min.js
-https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/languages/ebnf.min.js
-https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/languages/elixir.min.js
-https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/languages/elm.min.js
-https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/languages/erb.min.js
-https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/languages/erlang.min.js
-https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/languages/erlang-repl.min.js
-https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/languages/excel.min.js
-https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/languages/fix.min.js
-https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/languages/flix.min.js
-https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/languages/fortran.min.js
-https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/languages/fsharp.min.js
-https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/languages/gams.min.js
-https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/languages/gauss.min.js
-https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/languages/gcode.min.js
-https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/languages/gherkin.min.js
-https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/languages/glsl.min.js
-https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/languages/gml.min.js
-https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/languages/golo.min.js
-https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/languages/go.min.js
-https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/languages/gradle.min.js
-https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/languages/groovy.min.js
-https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/languages/haml.min.js
-https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/languages/handlebars.min.js
-https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/languages/haskell.min.js
-https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/languages/haxe.min.js
-https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/languages/hsp.min.js
-https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/languages/http.min.js
-https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/languages/hy.min.js
-https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/languages/inform7.min.js
-https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/languages/ini.min.js
-https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/languages/irpf90.min.js
-https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/languages/isbl.min.js
-https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/languages/java.min.js
-https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/languages/javascript.min.js
-https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/languages/jboss-cli.min.js
-https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/languages/json.min.js
-https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/languages/julia.min.js
-https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/languages/julia-repl.min.js
-https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/languages/kotlin.min.js
-https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/languages/lasso.min.js
-https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/languages/latex.min.js
-https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/languages/ldif.min.js
-https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/languages/leaf.min.js
-https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/languages/less.min.js
-https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/languages/lisp.min.js
-https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/languages/livecodeserver.min.js
-https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/languages/livescript.min.js
-https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/languages/llvm.min.js
-https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/languages/lsl.min.js
-https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/languages/lua.min.js
-https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/languages/makefile.min.js
-https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/languages/markdown.min.js
-https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/languages/mathematica.min.js
-https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/languages/matlab.min.js
-https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/languages/maxima.min.js
-https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/languages/mel.min.js
-https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/languages/mercury.min.js
-https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/languages/mipsasm.min.js
-https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/languages/mizar.min.js
-https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/languages/mojolicious.min.js
-https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/languages/monkey.min.js
-https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/languages/moonscript.min.js
-https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/languages/n1ql.min.js
-https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/languages/nestedtext.min.js
-https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/languages/nginx.min.js
-https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/languages/nim.min.js
-https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/languages/nix.min.js
-https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/languages/node-repl.min.js
-https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/languages/nsis.min.js
-https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/languages/objectivec.min.js
-https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/languages/ocaml.min.js
-https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/languages/openscad.min.js
-https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/languages/oxygene.min.js
-https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/languages/parser3.min.js
-https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/languages/perl.min.js
-https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/languages/pf.min.js
-https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/languages/pgsql.min.js
-https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/languages/php.min.js
-https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/languages/php-template.min.js
-https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/languages/plaintext.min.js
-https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/languages/pony.min.js
-https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/languages/powershell.min.js
-https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/languages/processing.min.js
-https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/languages/profile.min.js
-https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/languages/prolog.min.js
-https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/languages/properties.min.js
-https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/languages/protobuf.min.js
-https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/languages/puppet.min.js
-https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/languages/purebasic.min.js
-https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/languages/python.min.js
-https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/languages/python-repl.min.js
-https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/languages/q.min.js
-https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/languages/qml.min.js
-https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/languages/reasonml.min.js
-https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/languages/rib.min.js
-https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/languages/r.min.js
-https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/languages/roboconf.min.js
-https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/languages/routeros.min.js
-https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/languages/rsl.min.js
-https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/languages/ruby.min.js
-https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/languages/ruleslanguage.min.js
-https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/languages/rust.min.js
-https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/languages/sas.min.js
-https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/languages/scala.min.js
-https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/languages/scheme.min.js
-https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/languages/scilab.min.js
-https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/languages/scss.min.js
-https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/languages/shell.min.js
-https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/languages/smali.min.js
-https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/languages/smalltalk.min.js
-https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/languages/sml.min.js
-https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/languages/sqf.min.js
-https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/languages/sql.min.js
-https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/languages/stan.min.js
-https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/languages/stata.min.js
-https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/languages/step21.min.js
-https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/languages/stylus.min.js
-https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/languages/subunit.min.js
-https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/languages/swift.min.js
-https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/languages/taggerscript.min.js
-https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/languages/tap.min.js
-https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/languages/tcl.min.js
-https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/languages/thrift.min.js
-https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/languages/tp.min.js
-https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/languages/twig.min.js
-https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/languages/typescript.min.js
-https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/languages/vala.min.js
-https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/languages/vbnet.min.js
-https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/languages/vbscript-html.min.js
-https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/languages/vbscript.min.js
-https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/languages/verilog.min.js
-https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/languages/vhdl.min.js
-https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/languages/vim.min.js
-https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/languages/wasm.min.js
-https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/languages/wren.min.js
-https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/languages/x86asm.min.js
-https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/languages/xl.min.js
-https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/languages/xml.min.js
-https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/languages/xquery.min.js
-https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/languages/yaml.min.js
-https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/languages/zephir.min.js
-https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/styles/a11y-dark.min.css
-https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/styles/a11y-light.min.css
-https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/styles/agate.min.css
-https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/styles/androidstudio.min.css
-https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/styles/an-old-hope.min.css
-https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/styles/arduino-light.min.css
-https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/styles/arta.min.css
-https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/styles/ascetic.min.css
-https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/styles/atom-one-dark.min.css
-https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/styles/atom-one-dark-reasonable.min.css
-https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/styles/atom-one-light.min.css
-https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/styles/brown-paper.min.css
-https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/styles/codepen-embed.min.css
-https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/styles/color-brewer.min.css
-https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/styles/dark.min.css
-https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/styles/default.min.css
-https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/styles/devibeans.min.css
-https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/styles/docco.min.css
-https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/styles/far.min.css
-https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/styles/foundation.min.css
-https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/styles/github-dark-dimmed.min.css
-https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/styles/github-dark.min.css
-https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/styles/github.min.css
-https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/styles/gml.min.css
-https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/styles/googlecode.min.css
-https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/styles/gradient-dark.min.css
-https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/styles/gradient-light.min.css
-https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/styles/grayscale.min.css
-https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/styles/hybrid.min.css
-https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/styles/idea.min.css
-https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/styles/ir-black.min.css
-https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/styles/isbl-editor-dark.min.css
-https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/styles/isbl-editor-light.min.css
-https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/styles/kimbie-dark.min.css
-https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/styles/kimbie-light.min.css
-https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/styles/lightfair.min.css
-https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/styles/lioshi.min.css
-https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/styles/magula.min.css
-https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/styles/mono-blue.min.css
-https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/styles/monokai.min.css
-https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/styles/monokai-sublime.min.css
-https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/styles/night-owl.min.css
-https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/styles/nnfx-dark.min.css
-https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/styles/nnfx-light.min.css
-https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/styles/nord.min.css
-https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/styles/obsidian.min.css
-https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/styles/paraiso-dark.min.css
-https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/styles/paraiso-light.min.css
-https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/styles/pojoaque.min.css
-https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/styles/purebasic.min.css
-https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/styles/qtcreator-dark.min.css
-https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/styles/qtcreator-light.min.css
-https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/styles/rainbow.min.css
-https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/styles/routeros.min.css
-https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/styles/school-book.min.css
-https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/styles/shades-of-purple.min.css
-https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/styles/srcery.min.css
-https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/styles/stackoverflow-dark.min.css
-https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/styles/stackoverflow-light.min.css
-https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/styles/sunburst.min.css
-https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/styles/tomorrow-night-blue.min.css
-https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/styles/tomorrow-night-bright.min.css
-https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/styles/vs2015.min.css
-https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/styles/vs.min.css
-https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/styles/xcode.min.css
-https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/styles/xt256.min.css
+https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/highlight.min.js
+https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/languages/1c.min.js
+https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/languages/abnf.min.js
+https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/languages/accesslog.min.js
+https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/languages/actionscript.min.js
+https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/languages/ada.min.js
+https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/languages/angelscript.min.js
+https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/languages/apache.min.js
+https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/languages/applescript.min.js
+https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/languages/arcade.min.js
+https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/languages/arduino.min.js
+https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/languages/armasm.min.js
+https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/languages/asciidoc.min.js
+https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/languages/aspectj.min.js
+https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/languages/autohotkey.min.js
+https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/languages/autoit.min.js
+https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/languages/avrasm.min.js
+https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/languages/awk.min.js
+https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/languages/axapta.min.js
+https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/languages/bash.min.js
+https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/languages/basic.min.js
+https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/languages/bnf.min.js
+https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/languages/brainfuck.min.js
+https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/languages/cal.min.js
+https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/languages/capnproto.min.js
+https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/languages/ceylon.min.js
+https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/languages/clean.min.js
+https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/languages/clojure.min.js
+https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/languages/clojure-repl.min.js
+https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/languages/cmake.min.js
+https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/languages/c.min.js
+https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/languages/coffeescript.min.js
+https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/languages/coq.min.js
+https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/languages/cos.min.js
+https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/languages/cpp.min.js
+https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/languages/crmsh.min.js
+https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/languages/crystal.min.js
+https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/languages/csharp.min.js
+https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/languages/csp.min.js
+https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/languages/css.min.js
+https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/languages/dart.min.js
+https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/languages/delphi.min.js
+https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/languages/diff.min.js
+https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/languages/django.min.js
+https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/languages/d.min.js
+https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/languages/dns.min.js
+https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/languages/dockerfile.min.js
+https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/languages/dos.min.js
+https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/languages/dsconfig.min.js
+https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/languages/dts.min.js
+https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/languages/dust.min.js
+https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/languages/ebnf.min.js
+https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/languages/elixir.min.js
+https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/languages/elm.min.js
+https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/languages/erb.min.js
+https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/languages/erlang.min.js
+https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/languages/erlang-repl.min.js
+https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/languages/excel.min.js
+https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/languages/fix.min.js
+https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/languages/flix.min.js
+https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/languages/fortran.min.js
+https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/languages/fsharp.min.js
+https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/languages/gams.min.js
+https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/languages/gauss.min.js
+https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/languages/gcode.min.js
+https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/languages/gherkin.min.js
+https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/languages/glsl.min.js
+https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/languages/gml.min.js
+https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/languages/golo.min.js
+https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/languages/go.min.js
+https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/languages/gradle.min.js
+https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/languages/groovy.min.js
+https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/languages/haml.min.js
+https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/languages/handlebars.min.js
+https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/languages/haskell.min.js
+https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/languages/haxe.min.js
+https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/languages/hsp.min.js
+https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/languages/http.min.js
+https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/languages/hy.min.js
+https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/languages/inform7.min.js
+https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/languages/ini.min.js
+https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/languages/irpf90.min.js
+https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/languages/isbl.min.js
+https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/languages/java.min.js
+https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/languages/javascript.min.js
+https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/languages/jboss-cli.min.js
+https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/languages/json.min.js
+https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/languages/julia.min.js
+https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/languages/julia-repl.min.js
+https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/languages/kotlin.min.js
+https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/languages/lasso.min.js
+https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/languages/latex.min.js
+https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/languages/ldif.min.js
+https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/languages/leaf.min.js
+https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/languages/less.min.js
+https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/languages/lisp.min.js
+https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/languages/livecodeserver.min.js
+https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/languages/livescript.min.js
+https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/languages/llvm.min.js
+https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/languages/lsl.min.js
+https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/languages/lua.min.js
+https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/languages/makefile.min.js
+https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/languages/markdown.min.js
+https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/languages/mathematica.min.js
+https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/languages/matlab.min.js
+https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/languages/maxima.min.js
+https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/languages/mel.min.js
+https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/languages/mercury.min.js
+https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/languages/mipsasm.min.js
+https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/languages/mizar.min.js
+https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/languages/mojolicious.min.js
+https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/languages/monkey.min.js
+https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/languages/moonscript.min.js
+https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/languages/n1ql.min.js
+https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/languages/nestedtext.min.js
+https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/languages/nginx.min.js
+https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/languages/nim.min.js
+https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/languages/nix.min.js
+https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/languages/node-repl.min.js
+https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/languages/nsis.min.js
+https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/languages/objectivec.min.js
+https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/languages/ocaml.min.js
+https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/languages/openscad.min.js
+https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/languages/oxygene.min.js
+https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/languages/parser3.min.js
+https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/languages/perl.min.js
+https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/languages/pf.min.js
+https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/languages/pgsql.min.js
+https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/languages/php.min.js
+https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/languages/php-template.min.js
+https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/languages/plaintext.min.js
+https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/languages/pony.min.js
+https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/languages/powershell.min.js
+https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/languages/processing.min.js
+https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/languages/profile.min.js
+https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/languages/prolog.min.js
+https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/languages/properties.min.js
+https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/languages/protobuf.min.js
+https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/languages/puppet.min.js
+https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/languages/purebasic.min.js
+https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/languages/python.min.js
+https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/languages/python-repl.min.js
+https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/languages/q.min.js
+https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/languages/qml.min.js
+https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/languages/reasonml.min.js
+https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/languages/rib.min.js
+https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/languages/r.min.js
+https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/languages/roboconf.min.js
+https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/languages/routeros.min.js
+https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/languages/rsl.min.js
+https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/languages/ruby.min.js
+https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/languages/ruleslanguage.min.js
+https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/languages/rust.min.js
+https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/languages/sas.min.js
+https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/languages/scala.min.js
+https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/languages/scheme.min.js
+https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/languages/scilab.min.js
+https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/languages/scss.min.js
+https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/languages/shell.min.js
+https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/languages/smali.min.js
+https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/languages/smalltalk.min.js
+https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/languages/sml.min.js
+https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/languages/sqf.min.js
+https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/languages/sql.min.js
+https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/languages/stan.min.js
+https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/languages/stata.min.js
+https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/languages/step21.min.js
+https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/languages/stylus.min.js
+https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/languages/subunit.min.js
+https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/languages/swift.min.js
+https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/languages/taggerscript.min.js
+https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/languages/tap.min.js
+https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/languages/tcl.min.js
+https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/languages/thrift.min.js
+https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/languages/tp.min.js
+https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/languages/twig.min.js
+https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/languages/typescript.min.js
+https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/languages/vala.min.js
+https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/languages/vbnet.min.js
+https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/languages/vbscript-html.min.js
+https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/languages/vbscript.min.js
+https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/languages/verilog.min.js
+https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/languages/vhdl.min.js
+https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/languages/vim.min.js
+https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/languages/wasm.min.js
+https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/languages/wren.min.js
+https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/languages/x86asm.min.js
+https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/languages/xl.min.js
+https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/languages/xml.min.js
+https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/languages/xquery.min.js
+https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/languages/yaml.min.js
+https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/languages/zephir.min.js
+https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/styles/a11y-dark.min.css
+https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/styles/a11y-light.min.css
+https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/styles/agate.min.css
+https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/styles/androidstudio.min.css
+https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/styles/an-old-hope.min.css
+https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/styles/arduino-light.min.css
+https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/styles/arta.min.css
+https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/styles/ascetic.min.css
+https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/styles/atom-one-dark.min.css
+https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/styles/atom-one-dark-reasonable.min.css
+https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/styles/atom-one-light.min.css
+https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/styles/brown-paper.min.css
+https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/styles/codepen-embed.min.css
+https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/styles/color-brewer.min.css
+https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/styles/dark.min.css
+https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/styles/default.min.css
+https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/styles/devibeans.min.css
+https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/styles/docco.min.css
+https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/styles/far.min.css
+https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/styles/foundation.min.css
+https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/styles/github-dark-dimmed.min.css
+https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/styles/github-dark.min.css
+https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/styles/github.min.css
+https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/styles/gml.min.css
+https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/styles/googlecode.min.css
+https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/styles/gradient-dark.min.css
+https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/styles/gradient-light.min.css
+https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/styles/grayscale.min.css
+https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/styles/hybrid.min.css
+https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/styles/idea.min.css
+https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/styles/ir-black.min.css
+https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/styles/isbl-editor-dark.min.css
+https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/styles/isbl-editor-light.min.css
+https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/styles/kimbie-dark.min.css
+https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/styles/kimbie-light.min.css
+https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/styles/lightfair.min.css
+https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/styles/lioshi.min.css
+https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/styles/magula.min.css
+https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/styles/mono-blue.min.css
+https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/styles/monokai.min.css
+https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/styles/monokai-sublime.min.css
+https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/styles/night-owl.min.css
+https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/styles/nnfx-dark.min.css
+https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/styles/nnfx-light.min.css
+https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/styles/nord.min.css
+https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/styles/obsidian.min.css
+https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/styles/paraiso-dark.min.css
+https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/styles/paraiso-light.min.css
+https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/styles/pojoaque.min.css
+https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/styles/purebasic.min.css
+https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/styles/qtcreator-dark.min.css
+https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/styles/qtcreator-light.min.css
+https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/styles/rainbow.min.css
+https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/styles/routeros.min.css
+https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/styles/school-book.min.css
+https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/styles/shades-of-purple.min.css
+https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/styles/srcery.min.css
+https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/styles/stackoverflow-dark.min.css
+https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/styles/stackoverflow-light.min.css
+https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/styles/sunburst.min.css
+https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/styles/tomorrow-night-blue.min.css
+https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/styles/tomorrow-night-bright.min.css
+https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/styles/vs2015.min.css
+https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/styles/vs.min.css
+https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/styles/xcode.min.css
+https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/styles/xt256.min.css
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.18.5/highlight.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.18.5/languages/apache.min.js
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.18.5/languages/bash.min.js
diff --git a/modules/internal/targets.js b/modules/internal/targets.js
index 4ff1c49a..ecac94ec 100644
--- a/modules/internal/targets.js
+++ b/modules/internal/targets.js
@@ -228,7 +228,7 @@ targets.setLastVersion = function (type, version) {
if (type.startsWith('/highlight.js/8.')) return '9.18.5';
if (type.startsWith('/highlight.js/9.')) return '9.18.5';
if (type.startsWith('/highlight.js/10.')) return '10.7.3';
- if (type.startsWith('/highlight.js/11.')) return '11.8.0';
+ if (type.startsWith('/highlight.js/11.')) return '11.9.0';
if (type.startsWith('/history/4.')) return '4.10.1';
if (type.startsWith('/history/5.')) return '5.3.0';
if (type.startsWith('/hls.js/0.')) return '0.14.17';
diff --git a/pages/updates/updates.html b/pages/updates/updates.html
index d87fbda6..264aa5e4 100644
--- a/pages/updates/updates.html
+++ b/pages/updates/updates.html
@@ -25,6 +25,10 @@
New in LocalCDN:
+
Updated
+
+ - highlight.js v11.8.0 -> v11.9.0 (#1546)
+
Improved
- Update manifest.json to prepare Firefox for Android support and new signing method by Mozilla (#136)
diff --git a/resources/highlight.js/11.8.0/haskell.min.jsm b/resources/highlight.js/11.8.0/haskell.min.jsm
deleted file mode 100644
index 028db6f6..00000000
--- a/resources/highlight.js/11.8.0/haskell.min.jsm
+++ /dev/null
@@ -1,30 +0,0 @@
-/*! `haskell` grammar compiled for Highlight.js 11.8.0 */
-(()=>{var e=(()=>{"use strict";return e=>{const n={
-variants:[e.COMMENT("--","$"),e.COMMENT(/\{-/,/-\}/,{contains:["self"]})]},a={
-className:"meta",begin:/\{-#/,end:/#-\}/},s={className:"meta",begin:"^#",end:"$"
-},i={className:"type",begin:"\\b[A-Z][\\w']*",relevance:0},l={begin:"\\(",
-end:"\\)",illegal:'"',contains:[a,s,{className:"type",
-begin:"\\b[A-Z][\\w]*(\\((\\.\\.|,|\\w+)\\))?"},e.inherit(e.TITLE_MODE,{
-begin:"[_a-z][\\w']*"}),n]},t="([0-9]_*)+",c="([0-9a-fA-F]_*)+",r={
-className:"number",relevance:0,variants:[{
-match:`\\b(${t})(\\.(${t}))?([eE][+-]?(${t}))?\\b`},{
-match:`\\b0[xX]_*(${c})(\\.(${c}))?([pP][+-]?(${t}))?\\b`},{
-match:"\\b0[oO](([0-7]_*)+)\\b"},{match:"\\b0[bB](([01]_*)+)\\b"}]};return{
-name:"Haskell",aliases:["hs"],
-keywords:"let in if then else case of where do module import hiding qualified type data newtype deriving class instance as default infix infixl infixr foreign export ccall stdcall cplusplus jvm dotnet safe unsafe family forall mdo proc rec",
-contains:[{beginKeywords:"module",end:"where",keywords:"module where",
-contains:[l,n],illegal:"\\W\\.|;"},{begin:"\\bimport\\b",end:"$",
-keywords:"import qualified as hiding",contains:[l,n],illegal:"\\W\\.|;"},{
-className:"class",begin:"^(\\s*)?(class|instance)\\b",end:"where",
-keywords:"class family instance where",contains:[i,l,n]},{className:"class",
-begin:"\\b(data|(new)?type)\\b",end:"$",
-keywords:"data family type newtype deriving",contains:[a,i,l,{begin:/\{/,
-end:/\}/,contains:l.contains},n]},{beginKeywords:"default",end:"$",
-contains:[i,l,n]},{beginKeywords:"infix infixl infixr",end:"$",
-contains:[e.C_NUMBER_MODE,n]},{begin:"\\bforeign\\b",end:"$",
-keywords:"foreign import export ccall stdcall cplusplus jvm dotnet safe unsafe",
-contains:[i,e.QUOTE_STRING_MODE,n]},{className:"meta",
-begin:"#!\\/usr\\/bin\\/env runhaskell",end:"$"},a,s,{scope:"string",
-begin:/'(?=\\?.')/,end:/'/,contains:[{scope:"char.escape",match:/\\./}]
-},e.QUOTE_STRING_MODE,r,i,e.inherit(e.TITLE_MODE,{begin:"^[_a-z][\\w']*"}),n,{
-begin:"->|<-"}]}}})();hljs.registerLanguage("haskell",e)})();
\ No newline at end of file
diff --git a/resources/highlight.js/11.8.0/haxe.min.jsm b/resources/highlight.js/11.8.0/haxe.min.jsm
deleted file mode 100644
index 6e5b37f5..00000000
--- a/resources/highlight.js/11.8.0/haxe.min.jsm
+++ /dev/null
@@ -1,26 +0,0 @@
-/*! `haxe` grammar compiled for Highlight.js 11.8.0 */
-(()=>{var e=(()=>{"use strict";return e=>({name:"Haxe",aliases:["hx"],keywords:{
-keyword:"break case cast catch continue default do dynamic else enum extern for function here if import in inline never new override package private get set public return static super switch this throw trace try typedef untyped using var while Int Float String Bool Dynamic Void Array ",
-built_in:"trace this",literal:"true false null _"},contains:[{
-className:"string",begin:"'",end:"'",contains:[e.BACKSLASH_ESCAPE,{
-className:"subst",begin:"\\$\\{",end:"\\}"},{className:"subst",begin:"\\$",
-end:/\W\}/}]
-},e.QUOTE_STRING_MODE,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,e.C_NUMBER_MODE,{
-className:"meta",begin:"@:",end:"$"},{className:"meta",begin:"#",end:"$",
-keywords:{keyword:"if else elseif end error"}},{className:"type",
-begin:":[ \t]*",end:"[^A-Za-z0-9_ \t\\->]",excludeBegin:!0,excludeEnd:!0,
-relevance:0},{className:"type",begin:":[ \t]*",end:"\\W",excludeBegin:!0,
-excludeEnd:!0},{className:"type",begin:"new *",end:"\\W",excludeBegin:!0,
-excludeEnd:!0},{className:"class",beginKeywords:"enum",end:"\\{",
-contains:[e.TITLE_MODE]},{className:"class",beginKeywords:"abstract",
-end:"[\\{$]",contains:[{className:"type",begin:"\\(",end:"\\)",excludeBegin:!0,
-excludeEnd:!0},{className:"type",begin:"from +",end:"\\W",excludeBegin:!0,
-excludeEnd:!0},{className:"type",begin:"to +",end:"\\W",excludeBegin:!0,
-excludeEnd:!0},e.TITLE_MODE],keywords:{keyword:"abstract from to"}},{
-className:"class",begin:"\\b(class|interface) +",end:"[\\{$]",excludeEnd:!0,
-keywords:"class interface",contains:[{className:"keyword",
-begin:"\\b(extends|implements) +",keywords:"extends implements",contains:[{
-className:"type",begin:e.IDENT_RE,relevance:0}]},e.TITLE_MODE]},{
-className:"function",beginKeywords:"function",end:"\\(",excludeEnd:!0,
-illegal:"\\S",contains:[e.TITLE_MODE]}],illegal:/<\//})})()
-;hljs.registerLanguage("haxe",e)})();
\ No newline at end of file
diff --git a/resources/highlight.js/11.8.0/leaf.min.jsm b/resources/highlight.js/11.8.0/leaf.min.jsm
deleted file mode 100644
index f180c751..00000000
--- a/resources/highlight.js/11.8.0/leaf.min.jsm
+++ /dev/null
@@ -1,8 +0,0 @@
-/*! `leaf` grammar compiled for Highlight.js 11.8.0 */
-(()=>{var e=(()=>{"use strict";return e=>({name:"Leaf",contains:[{
-className:"function",begin:"#+[A-Za-z_0-9]*\\(",end:/ \{/,returnBegin:!0,
-excludeEnd:!0,contains:[{className:"keyword",begin:"#+"},{className:"title",
-begin:"[A-Za-z_][A-Za-z_0-9]*"},{className:"params",begin:"\\(",end:"\\)",
-endsParent:!0,contains:[{className:"string",begin:'"',end:'"'},{
-className:"variable",begin:"[A-Za-z_][A-Za-z_0-9]*"}]}]}]})})()
-;hljs.registerLanguage("leaf",e)})();
\ No newline at end of file
diff --git a/resources/highlight.js/11.8.0/reasonml.min.jsm b/resources/highlight.js/11.8.0/reasonml.min.jsm
deleted file mode 100644
index 85751d2e..00000000
--- a/resources/highlight.js/11.8.0/reasonml.min.jsm
+++ /dev/null
@@ -1,41 +0,0 @@
-/*! `reasonml` grammar compiled for Highlight.js 11.8.0 */
-(()=>{var e=(()=>{"use strict";return e=>{
-const n="~?[a-z$_][0-9a-zA-Z$_]*",a="`?[A-Z$_][0-9a-zA-Z$_]*",s="'?[a-z$_][0-9a-z$_]*",i=n+"(\\s*:\\s*[a-z$_][0-9a-z$_]*(\\(\\s*("+s+"\\s*(,"+s+"\\s*)*)?\\))?){0,2}",r="("+["||","++","**","+.","*","/","*.","/.","..."].map((e=>e.split("").map((e=>"\\"+e)).join(""))).join("|")+"|\\|>|&&|==|===)",l="\\s+"+r+"\\s+",t={
-keyword:"and as asr assert begin class constraint do done downto else end exception external for fun function functor if in include inherit initializer land lazy let lor lsl lsr lxor match method mod module mutable new nonrec object of open or private rec sig struct then to try type val virtual when while with",
-built_in:"array bool bytes char exn|5 float int int32 int64 list lazy_t|5 nativeint|5 ref string unit ",
-literal:"true false"
-},c="\\b(0[xX][a-fA-F0-9_]+[Lln]?|0[oO][0-7_]+[Lln]?|0[bB][01_]+[Lln]?|[0-9][0-9_]*([Lln]|(\\.[0-9_]*)?([eE][-+]?[0-9_]+)?)?)",o={
-className:"number",relevance:0,variants:[{begin:c},{begin:"\\(-"+c+"\\)"}]},g={
-className:"operator",relevance:0,begin:r},b=[{className:"identifier",
-relevance:0,begin:n},g,o],m=[e.QUOTE_STRING_MODE,g,{className:"module",
-begin:"\\b"+a,returnBegin:!0,relevance:0,end:".",contains:[{
-className:"identifier",begin:a,relevance:0}]}],d=[{className:"module",
-begin:"\\b"+a,returnBegin:!0,end:".",relevance:0,contains:[{
-className:"identifier",begin:a,relevance:0}]}],u={className:"function",
-relevance:0,keywords:t,variants:[{begin:"\\s(\\(\\.?.*?\\)|"+n+")\\s*=>",
-end:"\\s*=>",returnBegin:!0,relevance:0,contains:[{className:"params",
-variants:[{begin:n},{begin:i},{begin:/\(\s*\)/}]}]},{
-begin:"\\s\\(\\.?[^;\\|]*\\)\\s*=>",end:"\\s=>",returnBegin:!0,relevance:0,
-contains:[{className:"params",relevance:0,variants:[{begin:n,end:"(,|\\n|\\))",
-relevance:0,contains:[g,{className:"typing",begin:":",end:"(,|\\n)",
-returnBegin:!0,relevance:0,contains:d}]}]}]},{begin:"\\(\\.\\s"+n+"\\)\\s*=>"}]}
-;m.push(u);const v={className:"constructor",begin:a+"\\(",end:"\\)",
-illegal:"\\n",keywords:t,contains:[e.QUOTE_STRING_MODE,g,{className:"params",
-begin:"\\b"+n}]},N={className:"pattern-match",begin:"\\|",returnBegin:!0,
-keywords:t,end:"=>",relevance:0,contains:[v,g,{relevance:0,
-className:"constructor",begin:a}]},_={className:"module-access",keywords:t,
-returnBegin:!0,variants:[{begin:"\\b("+a+"\\.)+"+n},{begin:"\\b("+a+"\\.)+\\(",
-end:"\\)",returnBegin:!0,contains:[u,{begin:"\\(",end:"\\)",relevance:0,skip:!0
-}].concat(m)},{begin:"\\b("+a+"\\.)+\\{",end:/\}/}],contains:m}
-;return d.push(_),{name:"ReasonML",aliases:["re"],keywords:t,
-illegal:"(:-|:=|\\$\\{|\\+=)",contains:[e.COMMENT("/\\*","\\*/",{
-illegal:"^(#,\\/\\/)"}),{className:"character",begin:"'(\\\\[^']+|[^'])'",
-illegal:"\\n",relevance:0},e.QUOTE_STRING_MODE,{className:"literal",
-begin:"\\(\\)",relevance:0},{className:"literal",begin:"\\[\\|",end:"\\|\\]",
-relevance:0,contains:b},{className:"literal",begin:"\\[",end:"\\]",relevance:0,
-contains:b},v,{className:"operator",begin:l,illegal:"--\x3e",relevance:0
-},o,e.C_LINE_COMMENT_MODE,N,u,{className:"module-def",
-begin:"\\bmodule\\s+"+n+"\\s+"+a+"\\s+=\\s+\\{",end:/\}/,returnBegin:!0,
-keywords:t,relevance:0,contains:[{className:"module",relevance:0,begin:a},{
-begin:/\{/,end:/\}/,relevance:0,skip:!0}].concat(m)},_]}}})()
-;hljs.registerLanguage("reasonml",e)})();
\ No newline at end of file
diff --git a/resources/highlight.js/11.8.0/stan.min.jsm b/resources/highlight.js/11.8.0/stan.min.jsm
deleted file mode 100644
index 0dfb9961..00000000
--- a/resources/highlight.js/11.8.0/stan.min.jsm
+++ /dev/null
@@ -1,28 +0,0 @@
-/*! `stan` grammar compiled for Highlight.js 11.8.0 */
-(()=>{var e=(()=>{"use strict";return e=>{
-const _=e.regex,o=["bernoulli","bernoulli_logit","bernoulli_logit_glm","beta","beta_binomial","beta_proportion","binomial","binomial_logit","categorical","categorical_logit","categorical_logit_glm","cauchy","chi_square","dirichlet","discrete_range","double_exponential","exp_mod_normal","exponential","frechet","gamma","gaussian_dlm_obs","gumbel","hmm_latent","hypergeometric","inv_chi_square","inv_gamma","inv_wishart","lkj_corr","lkj_corr_cholesky","logistic","lognormal","multi_gp","multi_gp_cholesky","multi_normal","multi_normal_cholesky","multi_normal_prec","multi_student_t","multinomial","multinomial_logit","neg_binomial","neg_binomial_2","neg_binomial_2_log","neg_binomial_2_log_glm","normal","normal_id_glm","ordered_logistic","ordered_logistic_glm","ordered_probit","pareto","pareto_type_2","poisson","poisson_log","poisson_log_glm","rayleigh","scaled_inv_chi_square","skew_double_exponential","skew_normal","std_normal","student_t","uniform","von_mises","weibull","wiener","wishart"],i=e.COMMENT(/\/\*/,/\*\//,{
-relevance:0,contains:[{scope:"doctag",match:/@(return|param)/}]}),r={
-scope:"meta",begin:/#include\b/,end:/$/,contains:[{match:/[a-z][a-z-._]+/,
-scope:"string"},e.C_LINE_COMMENT_MODE]
-},t=["lower","upper","offset","multiplier"];return{name:"Stan",
-aliases:["stanfuncs"],keywords:{$pattern:e.IDENT_RE,
-title:["functions","model","data","parameters","quantities","transformed","generated"],
-type:["array","complex","int","real","vector","ordered","positive_ordered","simplex","unit_vector","row_vector","matrix","cholesky_factor_corr|10","cholesky_factor_cov|10","corr_matrix|10","cov_matrix|10","void"],
-keyword:["for","in","if","else","while","break","continue","return"],
-built_in:["Phi","Phi_approx","abs","acos","acosh","add_diag","algebra_solver","algebra_solver_newton","append_array","append_col","append_row","asin","asinh","atan","atan2","atanh","bessel_first_kind","bessel_second_kind","binary_log_loss","binomial_coefficient_log","block","cbrt","ceil","chol2inv","cholesky_decompose","choose","col","cols","columns_dot_product","columns_dot_self","conj","cos","cosh","cov_exp_quad","crossprod","csr_extract_u","csr_extract_v","csr_extract_w","csr_matrix_times_vector","csr_to_dense_matrix","cumulative_sum","determinant","diag_matrix","diag_post_multiply","diag_pre_multiply","diagonal","digamma","dims","distance","dot_product","dot_self","eigenvalues_sym","eigenvectors_sym","erf","erfc","exp","exp2","expm1","fabs","falling_factorial","fdim","floor","fma","fmax","fmin","fmod","gamma_p","gamma_q","generalized_inverse","get_imag","get_lp","get_real","head","hmm_hidden_state_prob","hmm_marginal","hypot","identity_matrix","inc_beta","int_step","integrate_1d","integrate_ode","integrate_ode_adams","integrate_ode_bdf","integrate_ode_rk45","inv","inv_Phi","inv_cloglog","inv_logit","inv_sqrt","inv_square","inverse","inverse_spd","is_inf","is_nan","lambert_w0","lambert_wm1","lbeta","lchoose","ldexp","lgamma","linspaced_array","linspaced_int_array","linspaced_row_vector","linspaced_vector","lmgamma","lmultiply","log","log1m","log1m_exp","log1m_inv_logit","log1p","log1p_exp","log_determinant","log_diff_exp","log_falling_factorial","log_inv_logit","log_inv_logit_diff","log_mix","log_modified_bessel_first_kind","log_rising_factorial","log_softmax","log_sum_exp","logit","machine_precision","map_rect","matrix_exp","matrix_exp_multiply","matrix_power","max","mdivide_left_spd","mdivide_left_tri_low","mdivide_right_spd","mdivide_right_tri_low","mean","min","modified_bessel_first_kind","modified_bessel_second_kind","multiply_log","multiply_lower_tri_self_transpose","negative_infinity","norm","not_a_number","num_elements","ode_adams","ode_adams_tol","ode_adjoint_tol_ctl","ode_bdf","ode_bdf_tol","ode_ckrk","ode_ckrk_tol","ode_rk45","ode_rk45_tol","one_hot_array","one_hot_int_array","one_hot_row_vector","one_hot_vector","ones_array","ones_int_array","ones_row_vector","ones_vector","owens_t","polar","positive_infinity","pow","print","prod","proj","qr_Q","qr_R","qr_thin_Q","qr_thin_R","quad_form","quad_form_diag","quad_form_sym","quantile","rank","reduce_sum","reject","rep_array","rep_matrix","rep_row_vector","rep_vector","reverse","rising_factorial","round","row","rows","rows_dot_product","rows_dot_self","scale_matrix_exp_multiply","sd","segment","sin","singular_values","sinh","size","softmax","sort_asc","sort_desc","sort_indices_asc","sort_indices_desc","sqrt","square","squared_distance","step","sub_col","sub_row","sum","svd_U","svd_V","symmetrize_from_lower_tri","tail","tan","tanh","target","tcrossprod","tgamma","to_array_1d","to_array_2d","to_complex","to_matrix","to_row_vector","to_vector","trace","trace_gen_quad_form","trace_quad_form","trigamma","trunc","uniform_simplex","variance","zeros_array","zeros_int_array","zeros_row_vector"]
-},contains:[e.C_LINE_COMMENT_MODE,r,e.HASH_COMMENT_MODE,i,{scope:"built_in",
-match:/\s(pi|e|sqrt2|log2|log10)(?=\()/,relevance:0},{
-match:_.concat(/[<,]\s*/,_.either(...t),/\s*=/),keywords:t},{scope:"keyword",
-match:/\btarget(?=\s*\+=)/},{
-match:[/~\s*/,_.either(...o),/(?:\(\))/,/\s*T(?=\s*\[)/],scope:{2:"built_in",
-4:"keyword"}},{scope:"built_in",keywords:o,
-begin:_.concat(/\w*/,_.either(...o),/(_lpdf|_lupdf|_lpmf|_cdf|_lcdf|_lccdf|_qf)(?=\s*[\(.*\)])/)
-},{begin:[/~/,/\s*/,_.concat(_.either(...o),/(?=\s*[\(.*\)])/)],scope:{
-3:"built_in"}},{
-begin:[/~/,/\s*\w+(?=\s*[\(.*\)])/,"(?!.*/\b("+_.either(...o)+")\b)"],scope:{
-2:"title.function"}},{scope:"title.function",
-begin:/\w*(_lpdf|_lupdf|_lpmf|_cdf|_lcdf|_lccdf|_qf)(?=\s*[\(.*\)])/},{
-scope:"number",
-match:_.concat(/(?:\b\d+(?:_\d+)*(?:\.(?:\d+(?:_\d+)*)?)?|\B\.\d+(?:_\d+)*)/,/(?:[eE][+-]?\d+(?:_\d+)*)?i?(?!\w)/),
-relevance:0},{scope:"string",begin:/"/,end:/"/}]}}})()
-;hljs.registerLanguage("stan",e)})();
\ No newline at end of file
diff --git a/resources/highlight.js/11.8.0/swift.min.jsm b/resources/highlight.js/11.8.0/swift.min.jsm
deleted file mode 100644
index 714ebad2..00000000
--- a/resources/highlight.js/11.8.0/swift.min.jsm
+++ /dev/null
@@ -1,60 +0,0 @@
-/*! `swift` grammar compiled for Highlight.js 11.8.0 */
-(()=>{var e=(()=>{"use strict";function e(e){
-return e?"string"==typeof e?e:e.source:null}function a(e){return t("(?=",e,")")}
-function t(...a){return a.map((a=>e(a))).join("")}function n(...a){const t=(e=>{
-const a=e[e.length-1]
-;return"object"==typeof a&&a.constructor===Object?(e.splice(e.length-1,1),a):{}
-})(a);return"("+(t.capture?"":"?:")+a.map((a=>e(a))).join("|")+")"}
-const i=e=>t(/\b/,e,/\w$/.test(e)?/\b/:/\B/),s=["Protocol","Type"].map(i),u=["init","self"].map(i),c=["Any","Self"],r=["actor","any","associatedtype","async","await",/as\?/,/as!/,"as","break","case","catch","class","continue","convenience","default","defer","deinit","didSet","distributed","do","dynamic","else","enum","extension","fallthrough",/fileprivate\(set\)/,"fileprivate","final","for","func","get","guard","if","import","indirect","infix",/init\?/,/init!/,"inout",/internal\(set\)/,"internal","in","is","isolated","nonisolated","lazy","let","mutating","nonmutating",/open\(set\)/,"open","operator","optional","override","postfix","precedencegroup","prefix",/private\(set\)/,"private","protocol",/public\(set\)/,"public","repeat","required","rethrows","return","set","some","static","struct","subscript","super","switch","throws","throw",/try\?/,/try!/,"try","typealias",/unowned\(safe\)/,/unowned\(unsafe\)/,"unowned","var","weak","where","while","willSet"],o=["false","nil","true"],l=["assignment","associativity","higherThan","left","lowerThan","none","right"],m=["#colorLiteral","#column","#dsohandle","#else","#elseif","#endif","#error","#file","#fileID","#fileLiteral","#filePath","#function","#if","#imageLiteral","#keyPath","#line","#selector","#sourceLocation","#warn_unqualified_access","#warning"],p=["abs","all","any","assert","assertionFailure","debugPrint","dump","fatalError","getVaList","isKnownUniquelyReferenced","max","min","numericCast","pointwiseMax","pointwiseMin","precondition","preconditionFailure","print","readLine","repeatElement","sequence","stride","swap","swift_unboxFromSwiftValueWithType","transcode","type","unsafeBitCast","unsafeDowncast","withExtendedLifetime","withUnsafeMutablePointer","withUnsafePointer","withVaList","withoutActuallyEscaping","zip"],d=n(/[/=\-+!*%<>&|^~?]/,/[\u00A1-\u00A7]/,/[\u00A9\u00AB]/,/[\u00AC\u00AE]/,/[\u00B0\u00B1]/,/[\u00B6\u00BB\u00BF\u00D7\u00F7]/,/[\u2016-\u2017]/,/[\u2020-\u2027]/,/[\u2030-\u203E]/,/[\u2041-\u2053]/,/[\u2055-\u205E]/,/[\u2190-\u23FF]/,/[\u2500-\u2775]/,/[\u2794-\u2BFF]/,/[\u2E00-\u2E7F]/,/[\u3001-\u3003]/,/[\u3008-\u3020]/,/[\u3030]/),F=n(d,/[\u0300-\u036F]/,/[\u1DC0-\u1DFF]/,/[\u20D0-\u20FF]/,/[\uFE00-\uFE0F]/,/[\uFE20-\uFE2F]/),b=t(d,F,"*"),h=n(/[a-zA-Z_]/,/[\u00A8\u00AA\u00AD\u00AF\u00B2-\u00B5\u00B7-\u00BA]/,/[\u00BC-\u00BE\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u00FF]/,/[\u0100-\u02FF\u0370-\u167F\u1681-\u180D\u180F-\u1DBF]/,/[\u1E00-\u1FFF]/,/[\u200B-\u200D\u202A-\u202E\u203F-\u2040\u2054\u2060-\u206F]/,/[\u2070-\u20CF\u2100-\u218F\u2460-\u24FF\u2776-\u2793]/,/[\u2C00-\u2DFF\u2E80-\u2FFF]/,/[\u3004-\u3007\u3021-\u302F\u3031-\u303F\u3040-\uD7FF]/,/[\uF900-\uFD3D\uFD40-\uFDCF\uFDF0-\uFE1F\uFE30-\uFE44]/,/[\uFE47-\uFEFE\uFF00-\uFFFD]/),f=n(h,/\d/,/[\u0300-\u036F\u1DC0-\u1DFF\u20D0-\u20FF\uFE20-\uFE2F]/),w=t(h,f,"*"),y=t(/[A-Z]/,f,"*"),g=["autoclosure",t(/convention\(/,n("swift","block","c"),/\)/),"discardableResult","dynamicCallable","dynamicMemberLookup","escaping","frozen","GKInspectable","IBAction","IBDesignable","IBInspectable","IBOutlet","IBSegueAction","inlinable","main","nonobjc","NSApplicationMain","NSCopying","NSManaged",t(/objc\(/,w,/\)/),"objc","objcMembers","propertyWrapper","requires_stored_property_inits","resultBuilder","testable","UIApplicationMain","unknown","usableFromInline"],E=["iOS","iOSApplicationExtension","macOS","macOSApplicationExtension","macCatalyst","macCatalystApplicationExtension","watchOS","watchOSApplicationExtension","tvOS","tvOSApplicationExtension","swift"]
-;return e=>{const d={match:/\s+/,relevance:0},h=e.COMMENT("/\\*","\\*/",{
-contains:["self"]}),v=[e.C_LINE_COMMENT_MODE,h],A={match:[/\./,n(...s,...u)],
-className:{2:"keyword"}},N={match:t(/\./,n(...r)),relevance:0
-},C=r.filter((e=>"string"==typeof e)).concat(["_|0"]),D={variants:[{
-className:"keyword",
-match:n(...r.filter((e=>"string"!=typeof e)).concat(c).map(i),...u)}]},k={
-$pattern:n(/\b\w+/,/#\w+/),keyword:C.concat(m),literal:o},B=[A,N,D],_=[{
-match:t(/\./,n(...p)),relevance:0},{className:"built_in",
-match:t(/\b/,n(...p),/(?=\()/)}],S={match:/->/,relevance:0},M=[S,{
-className:"operator",relevance:0,variants:[{match:b},{match:`\\.(\\.|${F})+`}]
-}],x="([0-9]_*)+",$="([0-9a-fA-F]_*)+",I={className:"number",relevance:0,
-variants:[{match:`\\b(${x})(\\.(${x}))?([eE][+-]?(${x}))?\\b`},{
-match:`\\b0x(${$})(\\.(${$}))?([pP][+-]?(${x}))?\\b`},{match:/\b0o([0-7]_*)+\b/
-},{match:/\b0b([01]_*)+\b/}]},L=(e="")=>({className:"subst",variants:[{
-match:t(/\\/,e,/[0\\tnr"']/)},{match:t(/\\/,e,/u\{[0-9a-fA-F]{1,8}\}/)}]
-}),O=(e="")=>({className:"subst",match:t(/\\/,e,/[\t ]*(?:[\r\n]|\r\n)/)
-}),T=(e="")=>({className:"subst",label:"interpol",begin:t(/\\/,e,/\(/),end:/\)/
-}),j=(e="")=>({begin:t(e,/"""/),end:t(/"""/,e),contains:[L(e),O(e),T(e)]
-}),P=(e="")=>({begin:t(e,/"/),end:t(/"/,e),contains:[L(e),T(e)]}),K={
-className:"string",
-variants:[j(),j("#"),j("##"),j("###"),P(),P("#"),P("##"),P("###")]},z={
-match:t(/`/,w,/`/)},q=[z,{className:"variable",match:/\$\d+/},{
-className:"variable",match:`\\$${f}+`}],U=[{match:/(@|#(un)?)available/,
-className:"keyword",starts:{contains:[{begin:/\(/,end:/\)/,keywords:E,
-contains:[...M,I,K]}]}},{className:"keyword",match:t(/@/,n(...g))},{
-className:"meta",match:t(/@/,w)}],Z={match:a(/\b[A-Z]/),relevance:0,contains:[{
-className:"type",
-match:t(/(AV|CA|CF|CG|CI|CL|CM|CN|CT|MK|MP|MTK|MTL|NS|SCN|SK|UI|WK|XC)/,f,"+")
-},{className:"type",match:y,relevance:0},{match:/[?!]+/,relevance:0},{
-match:/\.\.\./,relevance:0},{match:t(/\s+&\s+/,a(y)),relevance:0}]},V={
-begin:/,end:/>/,keywords:k,contains:[...v,...B,...U,S,Z]};Z.contains.push(V)
-;const W={begin:/\(/,end:/\)/,relevance:0,keywords:k,contains:["self",{
-match:t(w,/\s*:/),keywords:"_|0",relevance:0
-},...v,...B,..._,...M,I,K,...q,...U,Z]},G={begin:/,end:/>/,contains:[...v,Z]
-},R={begin:/\(/,end:/\)/,keywords:k,contains:[{
-begin:n(a(t(w,/\s*:/)),a(t(w,/\s+/,w,/\s*:/))),end:/:/,relevance:0,contains:[{
-className:"keyword",match:/\b_\b/},{className:"params",match:w}]
-},...v,...B,...M,I,K,...U,Z,W],endsParent:!0,illegal:/["']/},X={
-match:[/func/,/\s+/,n(z.match,w,b)],className:{1:"keyword",3:"title.function"},
-contains:[G,R,d],illegal:[/\[/,/%/]},H={
-match:[/\b(?:subscript|init[?!]?)/,/\s*(?=[<(])/],className:{1:"keyword"},
-contains:[G,R,d],illegal:/\[|%/},J={match:[/operator/,/\s+/,b],className:{
-1:"keyword",3:"title"}},Q={begin:[/precedencegroup/,/\s+/,y],className:{
-1:"keyword",3:"title"},contains:[Z],keywords:[...l,...o],end:/}/}
-;for(const e of K.variants){const a=e.contains.find((e=>"interpol"===e.label))
-;a.keywords=k;const t=[...B,..._,...M,I,K,...q];a.contains=[...t,{begin:/\(/,
-end:/\)/,contains:["self",...t]}]}return{name:"Swift",keywords:k,
-contains:[...v,X,H,{beginKeywords:"struct protocol class extension enum actor",
-end:"\\{",excludeEnd:!0,keywords:k,contains:[e.inherit(e.TITLE_MODE,{
-className:"title.class",begin:/[A-Za-z$_][\u00C0-\u02B80-9A-Za-z$_]*/}),...B]
-},J,Q,{beginKeywords:"import",end:/$/,contains:[...v],relevance:0
-},...B,..._,...M,I,K,...q,...U,Z,W]}}})();hljs.registerLanguage("swift",e)})();
\ No newline at end of file
diff --git a/resources/highlight.js/11.8.0/1c.min.jsm b/resources/highlight.js/11.9.0/1c.min.jsm
similarity index 99%
rename from resources/highlight.js/11.8.0/1c.min.jsm
rename to resources/highlight.js/11.9.0/1c.min.jsm
index ab4b2c45..132d0af1 100644
--- a/resources/highlight.js/11.8.0/1c.min.jsm
+++ b/resources/highlight.js/11.9.0/1c.min.jsm
@@ -1,4 +1,4 @@
-/*! `1c` grammar compiled for Highlight.js 11.8.0 */
+/*! `1c` grammar compiled for Highlight.js 11.9.0 */
(()=>{var s=(()=>{"use strict";return s=>{
const x="[A-Za-z\u0410-\u042f\u0430-\u044f\u0451\u0401_][A-Za-z\u0410-\u042f\u0430-\u044f\u0451\u0401_0-9]+",n="\u0434\u0430\u043b\u0435\u0435 \u0432\u043e\u0437\u0432\u0440\u0430\u0442 \u0432\u044b\u0437\u0432\u0430\u0442\u044c\u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u0434\u043b\u044f \u0435\u0441\u043b\u0438 \u0438 \u0438\u0437 \u0438\u043b\u0438 \u0438\u043d\u0430\u0447\u0435 \u0438\u043d\u0430\u0447\u0435\u0435\u0441\u043b\u0438 \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u043a\u043e\u043d\u0435\u0446\u0435\u0441\u043b\u0438 \u043a\u043e\u043d\u0435\u0446\u043f\u043e\u043f\u044b\u0442\u043a\u0438 \u043a\u043e\u043d\u0435\u0446\u0446\u0438\u043a\u043b\u0430 \u043d\u0435 \u043d\u043e\u0432\u044b\u0439 \u043f\u0435\u0440\u0435\u0439\u0442\u0438 \u043f\u0435\u0440\u0435\u043c \u043f\u043e \u043f\u043e\u043a\u0430 \u043f\u043e\u043f\u044b\u0442\u043a\u0430 \u043f\u0440\u0435\u0440\u0432\u0430\u0442\u044c \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0438\u0442\u044c \u0442\u043e\u0433\u0434\u0430 \u0446\u0438\u043a\u043b \u044d\u043a\u0441\u043f\u043e\u0440\u0442 ",e="null \u0438\u0441\u0442\u0438\u043d\u0430 \u043b\u043e\u0436\u044c \u043d\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043e",o=s.inherit(s.NUMBER_MODE),t={
className:"string",begin:'"|\\|',end:'"|$',contains:[{begin:'""'}]},a={
diff --git a/resources/highlight.js/11.8.0/a11y-dark.min.css b/resources/highlight.js/11.9.0/a11y-dark.min.css
similarity index 100%
rename from resources/highlight.js/11.8.0/a11y-dark.min.css
rename to resources/highlight.js/11.9.0/a11y-dark.min.css
diff --git a/resources/highlight.js/11.8.0/a11y-light.min.css b/resources/highlight.js/11.9.0/a11y-light.min.css
similarity index 100%
rename from resources/highlight.js/11.8.0/a11y-light.min.css
rename to resources/highlight.js/11.9.0/a11y-light.min.css
diff --git a/resources/highlight.js/11.8.0/abnf.min.jsm b/resources/highlight.js/11.9.0/abnf.min.jsm
similarity index 87%
rename from resources/highlight.js/11.8.0/abnf.min.jsm
rename to resources/highlight.js/11.9.0/abnf.min.jsm
index 136da8d7..53202ad9 100644
--- a/resources/highlight.js/11.8.0/abnf.min.jsm
+++ b/resources/highlight.js/11.9.0/abnf.min.jsm
@@ -1,4 +1,4 @@
-/*! `abnf` grammar compiled for Highlight.js 11.8.0 */
+/*! `abnf` grammar compiled for Highlight.js 11.9.0 */
(()=>{var e=(()=>{"use strict";return e=>{const a=e.regex,s=e.COMMENT(/;/,/$/)
;return{name:"Augmented Backus-Naur Form",illegal:/[!@#$^&',?+~`|:]/,
keywords:["ALPHA","BIT","CHAR","CR","CRLF","CTL","DIGIT","DQUOTE","HEXDIG","HTAB","LF","LWSP","OCTET","SP","VCHAR","WSP"],
diff --git a/resources/highlight.js/11.8.0/accesslog.min.jsm b/resources/highlight.js/11.9.0/accesslog.min.jsm
similarity index 88%
rename from resources/highlight.js/11.8.0/accesslog.min.jsm
rename to resources/highlight.js/11.9.0/accesslog.min.jsm
index 621ca115..4f5cc546 100644
--- a/resources/highlight.js/11.8.0/accesslog.min.jsm
+++ b/resources/highlight.js/11.9.0/accesslog.min.jsm
@@ -1,4 +1,4 @@
-/*! `accesslog` grammar compiled for Highlight.js 11.8.0 */
+/*! `accesslog` grammar compiled for Highlight.js 11.9.0 */
(()=>{var e=(()=>{"use strict";return e=>{
const n=e.regex,a=["GET","POST","HEAD","PUT","DELETE","CONNECT","OPTIONS","PATCH","TRACE"]
;return{name:"Apache Access Log",contains:[{className:"number",
diff --git a/resources/highlight.js/11.8.0/actionscript.min.jsm b/resources/highlight.js/11.9.0/actionscript.min.jsm
similarity index 92%
rename from resources/highlight.js/11.8.0/actionscript.min.jsm
rename to resources/highlight.js/11.9.0/actionscript.min.jsm
index c8ecc32c..899e17e1 100644
--- a/resources/highlight.js/11.8.0/actionscript.min.jsm
+++ b/resources/highlight.js/11.9.0/actionscript.min.jsm
@@ -1,4 +1,4 @@
-/*! `actionscript` grammar compiled for Highlight.js 11.8.0 */
+/*! `actionscript` grammar compiled for Highlight.js 11.9.0 */
(()=>{var e=(()=>{"use strict";return e=>{
const a=e.regex,t=/[a-zA-Z_$][a-zA-Z0-9_$]*/,n=a.concat(t,a.concat("(\\.",t,")*")),s={
className:"rest_arg",begin:/[.]{3}/,end:t,relevance:10};return{
diff --git a/resources/highlight.js/11.8.0/ada.min.jsm b/resources/highlight.js/11.9.0/ada.min.jsm
similarity index 95%
rename from resources/highlight.js/11.8.0/ada.min.jsm
rename to resources/highlight.js/11.9.0/ada.min.jsm
index 9c1adb92..8ea72d79 100644
--- a/resources/highlight.js/11.8.0/ada.min.jsm
+++ b/resources/highlight.js/11.9.0/ada.min.jsm
@@ -1,4 +1,4 @@
-/*! `ada` grammar compiled for Highlight.js 11.8.0 */
+/*! `ada` grammar compiled for Highlight.js 11.9.0 */
(()=>{var e=(()=>{"use strict";return e=>{
const n="\\d(_|\\d)*",s="[eE][-+]?"+n,a="\\b("+n+"#\\w+(\\.\\w+)?#("+s+")?|"+n+"(\\."+n+")?("+s+")?)",r="[A-Za-z](_?[A-Za-z0-9.])*",i="[]\\{\\}%#'\"",t=e.COMMENT("--","$"),c={
begin:"\\s+:\\s+",end:"\\s*(:=|;|\\)|=>|$)",illegal:i,contains:[{
diff --git a/resources/highlight.js/11.8.0/agate.min.css b/resources/highlight.js/11.9.0/agate.min.css
similarity index 100%
rename from resources/highlight.js/11.8.0/agate.min.css
rename to resources/highlight.js/11.9.0/agate.min.css
diff --git a/resources/highlight.js/11.8.0/an-old-hope.min.css b/resources/highlight.js/11.9.0/an-old-hope.min.css
similarity index 100%
rename from resources/highlight.js/11.8.0/an-old-hope.min.css
rename to resources/highlight.js/11.9.0/an-old-hope.min.css
diff --git a/resources/highlight.js/11.8.0/androidstudio.min.css b/resources/highlight.js/11.9.0/androidstudio.min.css
similarity index 100%
rename from resources/highlight.js/11.8.0/androidstudio.min.css
rename to resources/highlight.js/11.9.0/androidstudio.min.css
diff --git a/resources/highlight.js/11.8.0/angelscript.min.jsm b/resources/highlight.js/11.9.0/angelscript.min.jsm
similarity index 93%
rename from resources/highlight.js/11.8.0/angelscript.min.jsm
rename to resources/highlight.js/11.9.0/angelscript.min.jsm
index 95222748..5a36df89 100644
--- a/resources/highlight.js/11.8.0/angelscript.min.jsm
+++ b/resources/highlight.js/11.9.0/angelscript.min.jsm
@@ -1,4 +1,4 @@
-/*! `angelscript` grammar compiled for Highlight.js 11.8.0 */
+/*! `angelscript` grammar compiled for Highlight.js 11.9.0 */
(()=>{var e=(()=>{"use strict";return e=>{const n={className:"built_in",
begin:"\\b(void|bool|int8|int16|int32|int64|int|uint8|uint16|uint32|uint64|uint|string|ref|array|double|float|auto|dictionary)"
},a={className:"symbol",begin:"[a-zA-Z0-9_]+@"},i={className:"keyword",
diff --git a/resources/highlight.js/11.8.0/apache.min.jsm b/resources/highlight.js/11.9.0/apache.min.jsm
similarity index 90%
rename from resources/highlight.js/11.8.0/apache.min.jsm
rename to resources/highlight.js/11.9.0/apache.min.jsm
index 78d1aa65..9cf9dde8 100644
--- a/resources/highlight.js/11.8.0/apache.min.jsm
+++ b/resources/highlight.js/11.9.0/apache.min.jsm
@@ -1,4 +1,4 @@
-/*! `apache` grammar compiled for Highlight.js 11.8.0 */
+/*! `apache` grammar compiled for Highlight.js 11.9.0 */
(()=>{var e=(()=>{"use strict";return e=>{const n={className:"number",
begin:/\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}(:\d{1,5})?/};return{
name:"Apache config",aliases:["apacheconf"],case_insensitive:!0,
diff --git a/resources/highlight.js/11.8.0/applescript.min.jsm b/resources/highlight.js/11.9.0/applescript.min.jsm
similarity index 97%
rename from resources/highlight.js/11.8.0/applescript.min.jsm
rename to resources/highlight.js/11.9.0/applescript.min.jsm
index 991fbfc6..1b6a80f3 100644
--- a/resources/highlight.js/11.8.0/applescript.min.jsm
+++ b/resources/highlight.js/11.9.0/applescript.min.jsm
@@ -1,4 +1,4 @@
-/*! `applescript` grammar compiled for Highlight.js 11.8.0 */
+/*! `applescript` grammar compiled for Highlight.js 11.9.0 */
(()=>{var e=(()=>{"use strict";return e=>{
const t=e.regex,r=e.inherit(e.QUOTE_STRING_MODE,{illegal:null}),i={
className:"params",begin:/\(/,end:/\)/,contains:["self",e.C_NUMBER_MODE,r]
diff --git a/resources/highlight.js/11.8.0/arcade.min.jsm b/resources/highlight.js/11.9.0/arcade.min.jsm
similarity index 97%
rename from resources/highlight.js/11.8.0/arcade.min.jsm
rename to resources/highlight.js/11.9.0/arcade.min.jsm
index 0c450734..3c7bb6db 100644
--- a/resources/highlight.js/11.8.0/arcade.min.jsm
+++ b/resources/highlight.js/11.9.0/arcade.min.jsm
@@ -1,4 +1,4 @@
-/*! `arcade` grammar compiled for Highlight.js 11.8.0 */
+/*! `arcade` grammar compiled for Highlight.js 11.9.0 */
(()=>{var e=(()=>{"use strict";return e=>{const n="[A-Za-z_][0-9A-Za-z_]*",a={
keyword:["if","for","while","var","new","function","do","return","void","else","break"],
literal:["BackSlash","DoubleQuote","false","ForwardSlash","Infinity","NaN","NewLine","null","PI","SingleQuote","Tab","TextFormatting","true","undefined"],
diff --git a/resources/highlight.js/11.8.0/arduino-light.min.css b/resources/highlight.js/11.9.0/arduino-light.min.css
similarity index 100%
rename from resources/highlight.js/11.8.0/arduino-light.min.css
rename to resources/highlight.js/11.9.0/arduino-light.min.css
diff --git a/resources/highlight.js/11.8.0/arduino.min.jsm b/resources/highlight.js/11.9.0/arduino.min.jsm
similarity index 99%
rename from resources/highlight.js/11.8.0/arduino.min.jsm
rename to resources/highlight.js/11.9.0/arduino.min.jsm
index ff9c7dcc..fe755514 100644
--- a/resources/highlight.js/11.8.0/arduino.min.jsm
+++ b/resources/highlight.js/11.9.0/arduino.min.jsm
@@ -1,4 +1,4 @@
-/*! `arduino` grammar compiled for Highlight.js 11.8.0 */
+/*! `arduino` grammar compiled for Highlight.js 11.9.0 */
(()=>{var e=(()=>{"use strict";return e=>{const t={
type:["boolean","byte","word","String"],
built_in:["KeyboardController","MouseController","SoftwareSerial","EthernetServer","EthernetClient","LiquidCrystal","RobotControl","GSMVoiceCall","EthernetUDP","EsploraTFT","HttpClient","RobotMotor","WiFiClient","GSMScanner","FileSystem","Scheduler","GSMServer","YunClient","YunServer","IPAddress","GSMClient","GSMModem","Keyboard","Ethernet","Console","GSMBand","Esplora","Stepper","Process","WiFiUDP","GSM_SMS","Mailbox","USBHost","Firmata","PImage","Client","Server","GSMPIN","FileIO","Bridge","Serial","EEPROM","Stream","Mouse","Audio","Servo","File","Task","GPRS","WiFi","Wire","TFT","GSM","SPI","SD"],
diff --git a/resources/highlight.js/11.8.0/armasm.min.jsm b/resources/highlight.js/11.9.0/armasm.min.jsm
similarity index 67%
rename from resources/highlight.js/11.8.0/armasm.min.jsm
rename to resources/highlight.js/11.9.0/armasm.min.jsm
index 31f6661a..b49ecfa2 100644
--- a/resources/highlight.js/11.8.0/armasm.min.jsm
+++ b/resources/highlight.js/11.9.0/armasm.min.jsm
@@ -1,11 +1,11 @@
-/*! `armasm` grammar compiled for Highlight.js 11.8.0 */
+/*! `armasm` grammar compiled for Highlight.js 11.9.0 */
(()=>{var s=(()=>{"use strict";return s=>{const e={
variants:[s.COMMENT("^[ \\t]*(?=#)","$",{relevance:0,excludeBegin:!0
}),s.COMMENT("[;@]","$",{relevance:0
}),s.C_LINE_COMMENT_MODE,s.C_BLOCK_COMMENT_MODE]};return{name:"ARM Assembly",
case_insensitive:!0,aliases:["arm"],keywords:{$pattern:"\\.?"+s.IDENT_RE,
meta:".2byte .4byte .align .ascii .asciz .balign .byte .code .data .else .end .endif .endm .endr .equ .err .exitm .extern .global .hword .if .ifdef .ifndef .include .irp .long .macro .rept .req .section .set .skip .space .text .word .arm .thumb .code16 .code32 .force_thumb .thumb_func .ltorg ALIAS ALIGN ARM AREA ASSERT ATTR CN CODE CODE16 CODE32 COMMON CP DATA DCB DCD DCDU DCDO DCFD DCFDU DCI DCQ DCQU DCW DCWU DN ELIF ELSE END ENDFUNC ENDIF ENDP ENTRY EQU EXPORT EXPORTAS EXTERN FIELD FILL FUNCTION GBLA GBLL GBLS GET GLOBAL IF IMPORT INCBIN INCLUDE INFO KEEP LCLA LCLL LCLS LTORG MACRO MAP MEND MEXIT NOFP OPT PRESERVE8 PROC QN READONLY RELOC REQUIRE REQUIRE8 RLIST FN ROUT SETA SETL SETS SN SPACE SUBT THUMB THUMBX TTL WHILE WEND ",
-built_in:"r0 r1 r2 r3 r4 r5 r6 r7 r8 r9 r10 r11 r12 r13 r14 r15 pc lr sp ip sl sb fp a1 a2 a3 a4 v1 v2 v3 v4 v5 v6 v7 v8 f0 f1 f2 f3 f4 f5 f6 f7 p0 p1 p2 p3 p4 p5 p6 p7 p8 p9 p10 p11 p12 p13 p14 p15 c0 c1 c2 c3 c4 c5 c6 c7 c8 c9 c10 c11 c12 c13 c14 c15 q0 q1 q2 q3 q4 q5 q6 q7 q8 q9 q10 q11 q12 q13 q14 q15 cpsr_c cpsr_x cpsr_s cpsr_f cpsr_cx cpsr_cxs cpsr_xs cpsr_xsf cpsr_sf cpsr_cxsf spsr_c spsr_x spsr_s spsr_f spsr_cx spsr_cxs spsr_xs spsr_xsf spsr_sf spsr_cxsf s0 s1 s2 s3 s4 s5 s6 s7 s8 s9 s10 s11 s12 s13 s14 s15 s16 s17 s18 s19 s20 s21 s22 s23 s24 s25 s26 s27 s28 s29 s30 s31 d0 d1 d2 d3 d4 d5 d6 d7 d8 d9 d10 d11 d12 d13 d14 d15 d16 d17 d18 d19 d20 d21 d22 d23 d24 d25 d26 d27 d28 d29 d30 d31 {PC} {VAR} {TRUE} {FALSE} {OPT} {CONFIG} {ENDIAN} {CODESIZE} {CPU} {FPU} {ARCHITECTURE} {PCSTOREOFFSET} {ARMASM_VERSION} {INTER} {ROPI} {RWPI} {SWST} {NOSWST} . @"
+built_in:"r0 r1 r2 r3 r4 r5 r6 r7 r8 r9 r10 r11 r12 r13 r14 r15 w0 w1 w2 w3 w4 w5 w6 w7 w8 w9 w10 w11 w12 w13 w14 w15 w16 w17 w18 w19 w20 w21 w22 w23 w24 w25 w26 w27 w28 w29 w30 x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12 x13 x14 x15 x16 x17 x18 x19 x20 x21 x22 x23 x24 x25 x26 x27 x28 x29 x30 pc lr sp ip sl sb fp a1 a2 a3 a4 v1 v2 v3 v4 v5 v6 v7 v8 f0 f1 f2 f3 f4 f5 f6 f7 p0 p1 p2 p3 p4 p5 p6 p7 p8 p9 p10 p11 p12 p13 p14 p15 c0 c1 c2 c3 c4 c5 c6 c7 c8 c9 c10 c11 c12 c13 c14 c15 q0 q1 q2 q3 q4 q5 q6 q7 q8 q9 q10 q11 q12 q13 q14 q15 cpsr_c cpsr_x cpsr_s cpsr_f cpsr_cx cpsr_cxs cpsr_xs cpsr_xsf cpsr_sf cpsr_cxsf spsr_c spsr_x spsr_s spsr_f spsr_cx spsr_cxs spsr_xs spsr_xsf spsr_sf spsr_cxsf s0 s1 s2 s3 s4 s5 s6 s7 s8 s9 s10 s11 s12 s13 s14 s15 s16 s17 s18 s19 s20 s21 s22 s23 s24 s25 s26 s27 s28 s29 s30 s31 d0 d1 d2 d3 d4 d5 d6 d7 d8 d9 d10 d11 d12 d13 d14 d15 d16 d17 d18 d19 d20 d21 d22 d23 d24 d25 d26 d27 d28 d29 d30 d31 {PC} {VAR} {TRUE} {FALSE} {OPT} {CONFIG} {ENDIAN} {CODESIZE} {CPU} {FPU} {ARCHITECTURE} {PCSTOREOFFSET} {ARMASM_VERSION} {INTER} {ROPI} {RWPI} {SWST} {NOSWST} . @"
},contains:[{className:"keyword",
begin:"\\b(adc|(qd?|sh?|u[qh]?)?add(8|16)?|usada?8|(q|sh?|u[qh]?)?(as|sa)x|and|adrl?|sbc|rs[bc]|asr|b[lx]?|blx|bxj|cbn?z|tb[bh]|bic|bfc|bfi|[su]bfx|bkpt|cdp2?|clz|clrex|cmp|cmn|cpsi[ed]|cps|setend|dbg|dmb|dsb|eor|isb|it[te]{0,3}|lsl|lsr|ror|rrx|ldm(([id][ab])|f[ds])?|ldr((s|ex)?[bhd])?|movt?|mvn|mra|mar|mul|[us]mull|smul[bwt][bt]|smu[as]d|smmul|smmla|mla|umlaal|smlal?([wbt][bt]|d)|mls|smlsl?[ds]|smc|svc|sev|mia([bt]{2}|ph)?|mrr?c2?|mcrr2?|mrs|msr|orr|orn|pkh(tb|bt)|rbit|rev(16|sh)?|sel|[su]sat(16)?|nop|pop|push|rfe([id][ab])?|stm([id][ab])?|str(ex)?[bhd]?|(qd?)?sub|(sh?|q|u[qh]?)?sub(8|16)|[su]xt(a?h|a?b(16)?)|srs([id][ab])?|swpb?|swi|smi|tst|teq|wfe|wfi|yield)(eq|ne|cs|cc|mi|pl|vs|vc|hi|ls|ge|lt|gt|le|al|hs|lo)?[sptrx]?(?=\\s)"
},e,s.QUOTE_STRING_MODE,{className:"string",begin:"'",end:"[^\\\\]'",relevance:0
diff --git a/resources/highlight.js/11.8.0/arta.min.css b/resources/highlight.js/11.9.0/arta.min.css
similarity index 100%
rename from resources/highlight.js/11.8.0/arta.min.css
rename to resources/highlight.js/11.9.0/arta.min.css
diff --git a/resources/highlight.js/11.8.0/ascetic.min.css b/resources/highlight.js/11.9.0/ascetic.min.css
similarity index 100%
rename from resources/highlight.js/11.8.0/ascetic.min.css
rename to resources/highlight.js/11.9.0/ascetic.min.css
diff --git a/resources/highlight.js/11.8.0/asciidoc.min.jsm b/resources/highlight.js/11.9.0/asciidoc.min.jsm
similarity index 95%
rename from resources/highlight.js/11.8.0/asciidoc.min.jsm
rename to resources/highlight.js/11.9.0/asciidoc.min.jsm
index e0c8a403..5a70d61d 100644
--- a/resources/highlight.js/11.8.0/asciidoc.min.jsm
+++ b/resources/highlight.js/11.9.0/asciidoc.min.jsm
@@ -1,4 +1,4 @@
-/*! `asciidoc` grammar compiled for Highlight.js 11.8.0 */
+/*! `asciidoc` grammar compiled for Highlight.js 11.9.0 */
(()=>{var e=(()=>{"use strict";return e=>{const n=e.regex,a=[{
className:"strong",begin:/\*{2}([^\n]+?)\*{2}/},{className:"strong",
begin:n.concat(/\*\*/,/((\*(?!\*)|\\[^\n]|[^*\n\\])+\n)+/,/(\*(?!\*)|\\[^\n]|[^*\n\\])*/,/\*\*/),
diff --git a/resources/highlight.js/11.8.0/aspectj.min.jsm b/resources/highlight.js/11.9.0/aspectj.min.jsm
similarity index 97%
rename from resources/highlight.js/11.8.0/aspectj.min.jsm
rename to resources/highlight.js/11.9.0/aspectj.min.jsm
index e9f9400f..1d5f943d 100644
--- a/resources/highlight.js/11.8.0/aspectj.min.jsm
+++ b/resources/highlight.js/11.9.0/aspectj.min.jsm
@@ -1,4 +1,4 @@
-/*! `aspectj` grammar compiled for Highlight.js 11.8.0 */
+/*! `aspectj` grammar compiled for Highlight.js 11.9.0 */
(()=>{var e=(()=>{"use strict";return e=>{
const n=e.regex,t=["false","synchronized","int","abstract","float","private","char","boolean","static","null","if","const","for","true","while","long","throw","strictfp","finally","protected","import","native","final","return","void","enum","else","extends","implements","break","transient","new","catch","instanceof","byte","super","volatile","case","assert","short","package","default","double","public","try","this","switch","continue","throws","privileged","aspectOf","adviceexecution","proceed","cflowbelow","cflow","initialization","preinitialization","staticinitialization","withincode","target","within","execution","getWithinTypeName","handler","thisJoinPoint","thisJoinPointStaticPart","thisEnclosingJoinPointStaticPart","declare","parents","warning","error","soft","precedence","thisAspectInstance"],i=["get","set","args","call"]
;return{name:"AspectJ",keywords:t,illegal:/<\/|#/,
diff --git a/resources/highlight.js/11.8.0/atom-one-dark-reasonable.min.css b/resources/highlight.js/11.9.0/atom-one-dark-reasonable.min.css
similarity index 100%
rename from resources/highlight.js/11.8.0/atom-one-dark-reasonable.min.css
rename to resources/highlight.js/11.9.0/atom-one-dark-reasonable.min.css
diff --git a/resources/highlight.js/11.8.0/atom-one-dark.min.css b/resources/highlight.js/11.9.0/atom-one-dark.min.css
similarity index 100%
rename from resources/highlight.js/11.8.0/atom-one-dark.min.css
rename to resources/highlight.js/11.9.0/atom-one-dark.min.css
diff --git a/resources/highlight.js/11.8.0/atom-one-light.min.css b/resources/highlight.js/11.9.0/atom-one-light.min.css
similarity index 100%
rename from resources/highlight.js/11.8.0/atom-one-light.min.css
rename to resources/highlight.js/11.9.0/atom-one-light.min.css
diff --git a/resources/highlight.js/11.8.0/autohotkey.min.jsm b/resources/highlight.js/11.9.0/autohotkey.min.jsm
similarity index 89%
rename from resources/highlight.js/11.8.0/autohotkey.min.jsm
rename to resources/highlight.js/11.9.0/autohotkey.min.jsm
index 86c682de..40e7e55b 100644
--- a/resources/highlight.js/11.8.0/autohotkey.min.jsm
+++ b/resources/highlight.js/11.9.0/autohotkey.min.jsm
@@ -1,4 +1,4 @@
-/*! `autohotkey` grammar compiled for Highlight.js 11.8.0 */
+/*! `autohotkey` grammar compiled for Highlight.js 11.9.0 */
(()=>{var e=(()=>{"use strict";return e=>{const a={begin:"`[\\s\\S]"};return{
name:"AutoHotkey",case_insensitive:!0,aliases:["ahk"],keywords:{
keyword:"Break Continue Critical Exit ExitApp Gosub Goto New OnExit Pause return SetBatchLines SetTimer Suspend Thread Throw Until ahk_id ahk_class ahk_pid ahk_exe ahk_group",
diff --git a/resources/highlight.js/11.8.0/autoit.min.jsm b/resources/highlight.js/11.9.0/autoit.min.jsm
similarity index 98%
rename from resources/highlight.js/11.8.0/autoit.min.jsm
rename to resources/highlight.js/11.9.0/autoit.min.jsm
index cb337ef1..f5d6da2b 100644
--- a/resources/highlight.js/11.8.0/autoit.min.jsm
+++ b/resources/highlight.js/11.9.0/autoit.min.jsm
@@ -1,4 +1,4 @@
-/*! `autoit` grammar compiled for Highlight.js 11.8.0 */
+/*! `autoit` grammar compiled for Highlight.js 11.9.0 */
(()=>{var e=(()=>{"use strict";return e=>{const t={variants:[e.COMMENT(";","$",{
relevance:0
}),e.COMMENT("#cs","#ce"),e.COMMENT("#comments-start","#comments-end")]},r={
diff --git a/resources/highlight.js/11.8.0/avrasm.min.jsm b/resources/highlight.js/11.9.0/avrasm.min.jsm
similarity index 96%
rename from resources/highlight.js/11.8.0/avrasm.min.jsm
rename to resources/highlight.js/11.9.0/avrasm.min.jsm
index 48d04ad6..e088437a 100644
--- a/resources/highlight.js/11.8.0/avrasm.min.jsm
+++ b/resources/highlight.js/11.9.0/avrasm.min.jsm
@@ -1,4 +1,4 @@
-/*! `avrasm` grammar compiled for Highlight.js 11.8.0 */
+/*! `avrasm` grammar compiled for Highlight.js 11.9.0 */
(()=>{var r=(()=>{"use strict";return r=>({name:"AVR Assembly",
case_insensitive:!0,keywords:{$pattern:"\\.?"+r.IDENT_RE,
keyword:"adc add adiw and andi asr bclr bld brbc brbs brcc brcs break breq brge brhc brhs brid brie brlo brlt brmi brne brpl brsh brtc brts brvc brvs bset bst call cbi cbr clc clh cli cln clr cls clt clv clz com cp cpc cpi cpse dec eicall eijmp elpm eor fmul fmuls fmulsu icall ijmp in inc jmp ld ldd ldi lds lpm lsl lsr mov movw mul muls mulsu neg nop or ori out pop push rcall ret reti rjmp rol ror sbc sbr sbrc sbrs sec seh sbi sbci sbic sbis sbiw sei sen ser ses set sev sez sleep spm st std sts sub subi swap tst wdr",
diff --git a/resources/highlight.js/11.8.0/awk.min.jsm b/resources/highlight.js/11.9.0/awk.min.jsm
similarity index 87%
rename from resources/highlight.js/11.8.0/awk.min.jsm
rename to resources/highlight.js/11.9.0/awk.min.jsm
index c1f7978f..b0c021e3 100644
--- a/resources/highlight.js/11.8.0/awk.min.jsm
+++ b/resources/highlight.js/11.9.0/awk.min.jsm
@@ -1,4 +1,4 @@
-/*! `awk` grammar compiled for Highlight.js 11.8.0 */
+/*! `awk` grammar compiled for Highlight.js 11.9.0 */
(()=>{var e=(()=>{"use strict";return e=>({name:"Awk",keywords:{
keyword:"BEGIN END if else while do for in break continue delete next nextfile function func exit|10"
},contains:[{className:"variable",variants:[{begin:/\$[\w\d#@][\w\d_]*/},{
diff --git a/resources/highlight.js/11.8.0/axapta.min.jsm b/resources/highlight.js/11.9.0/axapta.min.jsm
similarity index 96%
rename from resources/highlight.js/11.8.0/axapta.min.jsm
rename to resources/highlight.js/11.9.0/axapta.min.jsm
index 71a6a0c9..ff7d0bc1 100644
--- a/resources/highlight.js/11.8.0/axapta.min.jsm
+++ b/resources/highlight.js/11.9.0/axapta.min.jsm
@@ -1,4 +1,4 @@
-/*! `axapta` grammar compiled for Highlight.js 11.8.0 */
+/*! `axapta` grammar compiled for Highlight.js 11.9.0 */
(()=>{var e=(()=>{"use strict";return e=>{const t=e.UNDERSCORE_IDENT_RE,s={
keyword:["abstract","as","asc","avg","break","breakpoint","by","byref","case","catch","changecompany","class","client","client","common","const","continue","count","crosscompany","delegate","delete_from","desc","display","div","do","edit","else","eventhandler","exists","extends","final","finally","firstfast","firstonly","firstonly1","firstonly10","firstonly100","firstonly1000","flush","for","forceliterals","forcenestedloop","forceplaceholders","forceselectorder","forupdate","from","generateonly","group","hint","if","implements","in","index","insert_recordset","interface","internal","is","join","like","maxof","minof","mod","namespace","new","next","nofetch","notexists","optimisticlock","order","outer","pessimisticlock","print","private","protected","public","readonly","repeatableread","retry","return","reverse","select","server","setting","static","sum","super","switch","this","throw","try","ttsabort","ttsbegin","ttscommit","unchecked","update_recordset","using","validtimestate","void","where","while"],
built_in:["anytype","boolean","byte","char","container","date","double","enum","guid","int","int64","long","real","short","str","utcdatetime","var"],
diff --git a/resources/highlight.js/11.8.0/bash.min.jsm b/resources/highlight.js/11.9.0/bash.min.jsm
similarity index 94%
rename from resources/highlight.js/11.8.0/bash.min.jsm
rename to resources/highlight.js/11.9.0/bash.min.jsm
index 9f6c48a6..6971457c 100644
--- a/resources/highlight.js/11.8.0/bash.min.jsm
+++ b/resources/highlight.js/11.9.0/bash.min.jsm
@@ -1,4 +1,4 @@
-/*! `bash` grammar compiled for Highlight.js 11.8.0 */
+/*! `bash` grammar compiled for Highlight.js 11.9.0 */
(()=>{var e=(()=>{"use strict";return e=>{const s=e.regex,t={},n={begin:/\$\{/,
end:/\}/,contains:["self",{begin:/:-/,contains:[t]}]};Object.assign(t,{
className:"variable",variants:[{
@@ -16,5 +16,5 @@ keyword:["if","then","else","elif","fi","for","while","until","in","do","done","
literal:["true","false"],
built_in:["break","cd","continue","eval","exec","exit","export","getopts","hash","pwd","readonly","return","shift","test","times","trap","umask","unset","alias","bind","builtin","caller","command","declare","echo","enable","help","let","local","logout","mapfile","printf","read","readarray","source","type","typeset","ulimit","unalias","set","shopt","autoload","bg","bindkey","bye","cap","chdir","clone","comparguments","compcall","compctl","compdescribe","compfiles","compgroups","compquote","comptags","comptry","compvalues","dirs","disable","disown","echotc","echoti","emulate","fc","fg","float","functions","getcap","getln","history","integer","jobs","kill","limit","log","noglob","popd","print","pushd","pushln","rehash","sched","setcap","setopt","stat","suspend","ttyctl","unfunction","unhash","unlimit","unsetopt","vared","wait","whence","where","which","zcompile","zformat","zftp","zle","zmodload","zparseopts","zprof","zpty","zregexparse","zsocket","zstyle","ztcp","chcon","chgrp","chown","chmod","cp","dd","df","dir","dircolors","ln","ls","mkdir","mkfifo","mknod","mktemp","mv","realpath","rm","rmdir","shred","sync","touch","truncate","vdir","b2sum","base32","base64","cat","cksum","comm","csplit","cut","expand","fmt","fold","head","join","md5sum","nl","numfmt","od","paste","ptx","pr","sha1sum","sha224sum","sha256sum","sha384sum","sha512sum","shuf","sort","split","sum","tac","tail","tr","tsort","unexpand","uniq","wc","arch","basename","chroot","date","dirname","du","echo","env","expr","factor","groups","hostid","id","link","logname","nice","nohup","nproc","pathchk","pinky","printenv","printf","pwd","readlink","runcon","seq","sleep","stat","stdbuf","stty","tee","test","timeout","tty","uname","unlink","uptime","users","who","whoami","yes"]
},contains:[r,e.SHEBANG(),l,o,e.HASH_COMMENT_MODE,i,{match:/(\/[a-z._-]+)+/},c,{
-className:"",begin:/\\"/},{className:"string",begin:/'/,end:/'/},t]}}})()
+match:/\\"/},{className:"string",begin:/'/,end:/'/},{match:/\\'/},t]}}})()
;hljs.registerLanguage("bash",e)})();
\ No newline at end of file
diff --git a/resources/highlight.js/11.8.0/basic.min.jsm b/resources/highlight.js/11.9.0/basic.min.jsm
similarity index 95%
rename from resources/highlight.js/11.8.0/basic.min.jsm
rename to resources/highlight.js/11.9.0/basic.min.jsm
index b6cd61b4..85c29ed2 100644
--- a/resources/highlight.js/11.8.0/basic.min.jsm
+++ b/resources/highlight.js/11.9.0/basic.min.jsm
@@ -1,4 +1,4 @@
-/*! `basic` grammar compiled for Highlight.js 11.8.0 */
+/*! `basic` grammar compiled for Highlight.js 11.9.0 */
(()=>{var E=(()=>{"use strict";return E=>({name:"BASIC",case_insensitive:!0,
illegal:"^.",keywords:{$pattern:"[a-zA-Z][a-zA-Z0-9_$%!#]*",
keyword:["ABS","ASC","AND","ATN","AUTO|0","BEEP","BLOAD|10","BSAVE|10","CALL","CALLS","CDBL","CHAIN","CHDIR","CHR$|10","CINT","CIRCLE","CLEAR","CLOSE","CLS","COLOR","COM","COMMON","CONT","COS","CSNG","CSRLIN","CVD","CVI","CVS","DATA","DATE$","DEFDBL","DEFINT","DEFSNG","DEFSTR","DEF|0","SEG","USR","DELETE","DIM","DRAW","EDIT","END","ENVIRON","ENVIRON$","EOF","EQV","ERASE","ERDEV","ERDEV$","ERL","ERR","ERROR","EXP","FIELD","FILES","FIX","FOR|0","FRE","GET","GOSUB|10","GOTO","HEX$","IF","THEN","ELSE|0","INKEY$","INP","INPUT","INPUT#","INPUT$","INSTR","IMP","INT","IOCTL","IOCTL$","KEY","ON","OFF","LIST","KILL","LEFT$","LEN","LET","LINE","LLIST","LOAD","LOC","LOCATE","LOF","LOG","LPRINT","USING","LSET","MERGE","MID$","MKDIR","MKD$","MKI$","MKS$","MOD","NAME","NEW","NEXT","NOISE","NOT","OCT$","ON","OR","PEN","PLAY","STRIG","OPEN","OPTION","BASE","OUT","PAINT","PALETTE","PCOPY","PEEK","PMAP","POINT","POKE","POS","PRINT","PRINT]","PSET","PRESET","PUT","RANDOMIZE","READ","REM","RENUM","RESET|0","RESTORE","RESUME","RETURN|0","RIGHT$","RMDIR","RND","RSET","RUN","SAVE","SCREEN","SGN","SHELL","SIN","SOUND","SPACE$","SPC","SQR","STEP","STICK","STOP","STR$","STRING$","SWAP","SYSTEM","TAB","TAN","TIME$","TIMER","TROFF","TRON","TO","USR","VAL","VARPTR","VARPTR$","VIEW","WAIT","WHILE","WEND","WIDTH","WINDOW","WRITE","XOR"]
diff --git a/resources/highlight.js/11.8.0/bnf.min.jsm b/resources/highlight.js/11.9.0/bnf.min.jsm
similarity index 72%
rename from resources/highlight.js/11.8.0/bnf.min.jsm
rename to resources/highlight.js/11.9.0/bnf.min.jsm
index f2d9efd9..748e1bb3 100644
--- a/resources/highlight.js/11.8.0/bnf.min.jsm
+++ b/resources/highlight.js/11.9.0/bnf.min.jsm
@@ -1,4 +1,4 @@
-/*! `bnf` grammar compiled for Highlight.js 11.8.0 */
+/*! `bnf` grammar compiled for Highlight.js 11.9.0 */
(()=>{var e=(()=>{"use strict";return e=>({name:"Backus\u2013Naur Form",
contains:[{className:"attribute",begin:/,end:/>/},{begin:/::=/,end:/$/,
contains:[{begin:/,end:/>/
diff --git a/resources/highlight.js/11.8.0/brainfuck.min.jsm b/resources/highlight.js/11.9.0/brainfuck.min.jsm
similarity index 81%
rename from resources/highlight.js/11.8.0/brainfuck.min.jsm
rename to resources/highlight.js/11.9.0/brainfuck.min.jsm
index f8777134..7dcc36a5 100644
--- a/resources/highlight.js/11.8.0/brainfuck.min.jsm
+++ b/resources/highlight.js/11.9.0/brainfuck.min.jsm
@@ -1,4 +1,4 @@
-/*! `brainfuck` grammar compiled for Highlight.js 11.8.0 */
+/*! `brainfuck` grammar compiled for Highlight.js 11.9.0 */
(()=>{var e=(()=>{"use strict";return e=>{const n={className:"literal",
begin:/[+-]+/,relevance:0};return{name:"Brainfuck",aliases:["bf"],
contains:[e.COMMENT(/[^\[\]\.,\+\-<> \r\n]/,/[\[\]\.,\+\-<> \r\n]/,{contains:[{
diff --git a/resources/highlight.js/11.8.0/brown-paper.min.css b/resources/highlight.js/11.9.0/brown-paper.min.css
similarity index 100%
rename from resources/highlight.js/11.8.0/brown-paper.min.css
rename to resources/highlight.js/11.9.0/brown-paper.min.css
diff --git a/resources/highlight.js/11.8.0/c.min.jsm b/resources/highlight.js/11.9.0/c.min.jsm
similarity index 97%
rename from resources/highlight.js/11.8.0/c.min.jsm
rename to resources/highlight.js/11.9.0/c.min.jsm
index 3742334a..cb2d3488 100644
--- a/resources/highlight.js/11.8.0/c.min.jsm
+++ b/resources/highlight.js/11.9.0/c.min.jsm
@@ -1,4 +1,4 @@
-/*! `c` grammar compiled for Highlight.js 11.8.0 */
+/*! `c` grammar compiled for Highlight.js 11.9.0 */
(()=>{var e=(()=>{"use strict";return e=>{const n=e.regex,t=e.COMMENT("//","$",{
contains:[{begin:/\\\n/}]
}),s="decltype\\(auto\\)",a="[a-zA-Z_]\\w*::",r="("+s+"|"+n.optional(a)+"[a-zA-Z_]\\w*"+n.optional("<[^<>]+>")+")",i={
diff --git a/resources/highlight.js/11.8.0/cal.min.jsm b/resources/highlight.js/11.9.0/cal.min.jsm
similarity index 92%
rename from resources/highlight.js/11.8.0/cal.min.jsm
rename to resources/highlight.js/11.9.0/cal.min.jsm
index f187ecef..91a5d596 100644
--- a/resources/highlight.js/11.8.0/cal.min.jsm
+++ b/resources/highlight.js/11.9.0/cal.min.jsm
@@ -1,4 +1,4 @@
-/*! `cal` grammar compiled for Highlight.js 11.8.0 */
+/*! `cal` grammar compiled for Highlight.js 11.9.0 */
(()=>{var e=(()=>{"use strict";return e=>{
const n=e.regex,a=["div","mod","in","and","or","not","xor","asserterror","begin","case","do","downto","else","end","exit","for","local","if","of","repeat","then","to","until","while","with","var"],r=[e.C_LINE_COMMENT_MODE,e.COMMENT(/\{/,/\}/,{
relevance:0}),e.COMMENT(/\(\*/,/\*\)/,{relevance:10})],t={className:"string",
diff --git a/resources/highlight.js/11.8.0/capnproto.min.jsm b/resources/highlight.js/11.9.0/capnproto.min.jsm
similarity index 92%
rename from resources/highlight.js/11.8.0/capnproto.min.jsm
rename to resources/highlight.js/11.9.0/capnproto.min.jsm
index c80d2f2a..794557da 100644
--- a/resources/highlight.js/11.8.0/capnproto.min.jsm
+++ b/resources/highlight.js/11.9.0/capnproto.min.jsm
@@ -1,4 +1,4 @@
-/*! `capnproto` grammar compiled for Highlight.js 11.8.0 */
+/*! `capnproto` grammar compiled for Highlight.js 11.9.0 */
(()=>{var t=(()=>{"use strict";return t=>{const n={variants:[{
match:[/(struct|enum|interface)/,/\s+/,t.IDENT_RE]},{
match:[/extends/,/\s*\(/,t.IDENT_RE,/\s*\)/]}],scope:{1:"keyword",
diff --git a/resources/highlight.js/11.8.0/ceylon.min.jsm b/resources/highlight.js/11.9.0/ceylon.min.jsm
similarity index 92%
rename from resources/highlight.js/11.8.0/ceylon.min.jsm
rename to resources/highlight.js/11.9.0/ceylon.min.jsm
index 03db0d21..2e60b0cb 100644
--- a/resources/highlight.js/11.8.0/ceylon.min.jsm
+++ b/resources/highlight.js/11.9.0/ceylon.min.jsm
@@ -1,4 +1,4 @@
-/*! `ceylon` grammar compiled for Highlight.js 11.8.0 */
+/*! `ceylon` grammar compiled for Highlight.js 11.9.0 */
(()=>{var e=(()=>{"use strict";return e=>{
const a=["assembly","module","package","import","alias","class","interface","object","given","value","assign","void","function","new","of","extends","satisfies","abstracts","in","out","return","break","continue","throw","assert","dynamic","if","else","switch","case","for","while","try","catch","finally","then","let","this","outer","super","is","exists","nonempty"],s={
className:"subst",excludeBegin:!0,excludeEnd:!0,begin:/``/,end:/``/,keywords:a,
diff --git a/resources/highlight.js/11.8.0/clean.min.jsm b/resources/highlight.js/11.9.0/clean.min.jsm
similarity index 86%
rename from resources/highlight.js/11.8.0/clean.min.jsm
rename to resources/highlight.js/11.9.0/clean.min.jsm
index fa241299..06ee1400 100644
--- a/resources/highlight.js/11.8.0/clean.min.jsm
+++ b/resources/highlight.js/11.9.0/clean.min.jsm
@@ -1,4 +1,4 @@
-/*! `clean` grammar compiled for Highlight.js 11.8.0 */
+/*! `clean` grammar compiled for Highlight.js 11.9.0 */
(()=>{var e=(()=>{"use strict";return e=>({name:"Clean",aliases:["icl","dcl"],
keywords:{
keyword:["if","let","in","with","where","case","of","class","instance","otherwise","implementation","definition","system","module","from","import","qualified","as","special","code","inline","foreign","export","ccall","stdcall","generic","derive","infix","infixl","infixr"],
diff --git a/resources/highlight.js/11.8.0/clojure-repl.min.jsm b/resources/highlight.js/11.9.0/clojure-repl.min.jsm
similarity index 73%
rename from resources/highlight.js/11.8.0/clojure-repl.min.jsm
rename to resources/highlight.js/11.9.0/clojure-repl.min.jsm
index f7099489..123bc168 100644
--- a/resources/highlight.js/11.8.0/clojure-repl.min.jsm
+++ b/resources/highlight.js/11.9.0/clojure-repl.min.jsm
@@ -1,4 +1,4 @@
-/*! `clojure-repl` grammar compiled for Highlight.js 11.8.0 */
+/*! `clojure-repl` grammar compiled for Highlight.js 11.9.0 */
(()=>{var e=(()=>{"use strict";return e=>({name:"Clojure REPL",contains:[{
className:"meta.prompt",begin:/^([\w.-]+|\s*#_)?=>/,starts:{end:/$/,
subLanguage:"clojure"}}]})})();hljs.registerLanguage("clojure-repl",e)})();
\ No newline at end of file
diff --git a/resources/highlight.js/11.8.0/clojure.min.jsm b/resources/highlight.js/11.9.0/clojure.min.jsm
similarity index 97%
rename from resources/highlight.js/11.8.0/clojure.min.jsm
rename to resources/highlight.js/11.9.0/clojure.min.jsm
index f39ad713..f16b82ee 100644
--- a/resources/highlight.js/11.8.0/clojure.min.jsm
+++ b/resources/highlight.js/11.9.0/clojure.min.jsm
@@ -1,4 +1,4 @@
-/*! `clojure` grammar compiled for Highlight.js 11.8.0 */
+/*! `clojure` grammar compiled for Highlight.js 11.9.0 */
(()=>{var e=(()=>{"use strict";return e=>{
const t="a-zA-Z_\\-!.?+*=<>&'",n="[#]?["+t+"]["+t+"0-9/;:$#]*",a="def defonce defprotocol defstruct defmulti defmethod defn- defn defmacro deftype defrecord",r={
$pattern:n,
diff --git a/resources/highlight.js/11.8.0/cmake.min.jsm b/resources/highlight.js/11.9.0/cmake.min.jsm
similarity index 96%
rename from resources/highlight.js/11.8.0/cmake.min.jsm
rename to resources/highlight.js/11.9.0/cmake.min.jsm
index 75ddfe7d..7eae4c38 100644
--- a/resources/highlight.js/11.8.0/cmake.min.jsm
+++ b/resources/highlight.js/11.9.0/cmake.min.jsm
@@ -1,4 +1,4 @@
-/*! `cmake` grammar compiled for Highlight.js 11.8.0 */
+/*! `cmake` grammar compiled for Highlight.js 11.9.0 */
(()=>{var e=(()=>{"use strict";return e=>({name:"CMake",aliases:["cmake.in"],
case_insensitive:!0,keywords:{
keyword:"break cmake_host_system_information cmake_minimum_required cmake_parse_arguments cmake_policy configure_file continue elseif else endforeach endfunction endif endmacro endwhile execute_process file find_file find_library find_package find_path find_program foreach function get_cmake_property get_directory_property get_filename_component get_property if include include_guard list macro mark_as_advanced math message option return separate_arguments set_directory_properties set_property set site_name string unset variable_watch while add_compile_definitions add_compile_options add_custom_command add_custom_target add_definitions add_dependencies add_executable add_library add_link_options add_subdirectory add_test aux_source_directory build_command create_test_sourcelist define_property enable_language enable_testing export fltk_wrap_ui get_source_file_property get_target_property get_test_property include_directories include_external_msproject include_regular_expression install link_directories link_libraries load_cache project qt_wrap_cpp qt_wrap_ui remove_definitions set_source_files_properties set_target_properties set_tests_properties source_group target_compile_definitions target_compile_features target_compile_options target_include_directories target_link_directories target_link_libraries target_link_options target_sources try_compile try_run ctest_build ctest_configure ctest_coverage ctest_empty_binary_directory ctest_memcheck ctest_read_custom_files ctest_run_script ctest_sleep ctest_start ctest_submit ctest_test ctest_update ctest_upload build_name exec_program export_library_dependencies install_files install_programs install_targets load_command make_directory output_required_files remove subdir_depends subdirs use_mangled_mesa utility_source variable_requires write_file qt5_use_modules qt5_use_package qt5_wrap_cpp on off true false and or not command policy target test exists is_newer_than is_directory is_symlink is_absolute matches less greater equal less_equal greater_equal strless strgreater strequal strless_equal strgreater_equal version_less version_greater version_equal version_less_equal version_greater_equal in_list defined"
diff --git a/resources/highlight.js/11.8.0/codepen-embed.min.css b/resources/highlight.js/11.9.0/codepen-embed.min.css
similarity index 100%
rename from resources/highlight.js/11.8.0/codepen-embed.min.css
rename to resources/highlight.js/11.9.0/codepen-embed.min.css
diff --git a/resources/highlight.js/11.8.0/coffeescript.min.jsm b/resources/highlight.js/11.9.0/coffeescript.min.jsm
similarity index 96%
rename from resources/highlight.js/11.8.0/coffeescript.min.jsm
rename to resources/highlight.js/11.9.0/coffeescript.min.jsm
index 021b96da..a146ee85 100644
--- a/resources/highlight.js/11.8.0/coffeescript.min.jsm
+++ b/resources/highlight.js/11.9.0/coffeescript.min.jsm
@@ -1,4 +1,4 @@
-/*! `coffeescript` grammar compiled for Highlight.js 11.8.0 */
+/*! `coffeescript` grammar compiled for Highlight.js 11.9.0 */
(()=>{var e=(()=>{"use strict"
;const e=["as","in","of","if","for","while","finally","var","new","function","do","return","void","else","break","catch","instanceof","with","throw","case","default","try","switch","continue","typeof","delete","let","yield","const","class","debugger","async","await","static","import","from","export","extends"],n=["true","false","null","undefined","NaN","Infinity"],r=[].concat(["setInterval","setTimeout","clearInterval","clearTimeout","require","exports","eval","isFinite","isNaN","parseFloat","parseInt","decodeURI","decodeURIComponent","encodeURI","encodeURIComponent","escape","unescape"],["Object","Function","Boolean","Symbol","Math","Date","Number","BigInt","String","RegExp","Array","Float32Array","Float64Array","Int8Array","Uint8Array","Uint8ClampedArray","Int16Array","Int32Array","Uint16Array","Uint32Array","BigInt64Array","BigUint64Array","Set","Map","WeakSet","WeakMap","ArrayBuffer","SharedArrayBuffer","Atomics","DataView","JSON","Promise","Generator","GeneratorFunction","AsyncFunction","Reflect","Proxy","Intl","WebAssembly"],["Error","EvalError","InternalError","RangeError","ReferenceError","SyntaxError","TypeError","URIError"])
;return t=>{const a={
diff --git a/resources/highlight.js/11.8.0/color-brewer.min.css b/resources/highlight.js/11.9.0/color-brewer.min.css
similarity index 100%
rename from resources/highlight.js/11.8.0/color-brewer.min.css
rename to resources/highlight.js/11.9.0/color-brewer.min.css
diff --git a/resources/highlight.js/11.8.0/coq.min.jsm b/resources/highlight.js/11.9.0/coq.min.jsm
similarity index 97%
rename from resources/highlight.js/11.8.0/coq.min.jsm
rename to resources/highlight.js/11.9.0/coq.min.jsm
index fc6a8f81..2a037777 100644
--- a/resources/highlight.js/11.8.0/coq.min.jsm
+++ b/resources/highlight.js/11.9.0/coq.min.jsm
@@ -1,4 +1,4 @@
-/*! `coq` grammar compiled for Highlight.js 11.8.0 */
+/*! `coq` grammar compiled for Highlight.js 11.9.0 */
(()=>{var e=(()=>{"use strict";return e=>({name:"Coq",keywords:{
keyword:["_|0","as","at","cofix","else","end","exists","exists2","fix","for","forall","fun","if","IF","in","let","match","mod","Prop","return","Set","then","Type","using","where","with","Abort","About","Add","Admit","Admitted","All","Arguments","Assumptions","Axiom","Back","BackTo","Backtrack","Bind","Blacklist","Canonical","Cd","Check","Class","Classes","Close","Coercion","Coercions","CoFixpoint","CoInductive","Collection","Combined","Compute","Conjecture","Conjectures","Constant","constr","Constraint","Constructors","Context","Corollary","CreateHintDb","Cut","Declare","Defined","Definition","Delimit","Dependencies","Dependent","Derive","Drop","eauto","End","Equality","Eval","Example","Existential","Existentials","Existing","Export","exporting","Extern","Extract","Extraction","Fact","Field","Fields","File","Fixpoint","Focus","for","From","Function","Functional","Generalizable","Global","Goal","Grab","Grammar","Graph","Guarded","Heap","Hint","HintDb","Hints","Hypotheses","Hypothesis","ident","Identity","If","Immediate","Implicit","Import","Include","Inductive","Infix","Info","Initial","Inline","Inspect","Instance","Instances","Intro","Intros","Inversion","Inversion_clear","Language","Left","Lemma","Let","Libraries","Library","Load","LoadPath","Local","Locate","Ltac","ML","Mode","Module","Modules","Monomorphic","Morphism","Next","NoInline","Notation","Obligation","Obligations","Opaque","Open","Optimize","Options","Parameter","Parameters","Parametric","Path","Paths","pattern","Polymorphic","Preterm","Print","Printing","Program","Projections","Proof","Proposition","Pwd","Qed","Quit","Rec","Record","Recursive","Redirect","Relation","Remark","Remove","Require","Reserved","Reset","Resolve","Restart","Rewrite","Right","Ring","Rings","Save","Scheme","Scope","Scopes","Script","Search","SearchAbout","SearchHead","SearchPattern","SearchRewrite","Section","Separate","Set","Setoid","Show","Solve","Sorted","Step","Strategies","Strategy","Structure","SubClass","Table","Tables","Tactic","Term","Test","Theorem","Time","Timeout","Transparent","Type","Typeclasses","Types","Undelimit","Undo","Unfocus","Unfocused","Unfold","Universe","Universes","Unset","Unshelve","using","Variable","Variables","Variant","Verbose","Visibility","where","with"],
built_in:["abstract","absurd","admit","after","apply","as","assert","assumption","at","auto","autorewrite","autounfold","before","bottom","btauto","by","case","case_eq","cbn","cbv","change","classical_left","classical_right","clear","clearbody","cofix","compare","compute","congruence","constr_eq","constructor","contradict","contradiction","cut","cutrewrite","cycle","decide","decompose","dependent","destruct","destruction","dintuition","discriminate","discrR","do","double","dtauto","eapply","eassumption","eauto","ecase","econstructor","edestruct","ediscriminate","eelim","eexact","eexists","einduction","einjection","eleft","elim","elimtype","enough","equality","erewrite","eright","esimplify_eq","esplit","evar","exact","exactly_once","exfalso","exists","f_equal","fail","field","field_simplify","field_simplify_eq","first","firstorder","fix","fold","fourier","functional","generalize","generalizing","gfail","give_up","has_evar","hnf","idtac","in","induction","injection","instantiate","intro","intro_pattern","intros","intuition","inversion","inversion_clear","is_evar","is_var","lapply","lazy","left","lia","lra","move","native_compute","nia","nsatz","omega","once","pattern","pose","progress","proof","psatz","quote","record","red","refine","reflexivity","remember","rename","repeat","replace","revert","revgoals","rewrite","rewrite_strat","right","ring","ring_simplify","rtauto","set","setoid_reflexivity","setoid_replace","setoid_rewrite","setoid_symmetry","setoid_transitivity","shelve","shelve_unifiable","simpl","simple","simplify_eq","solve","specialize","split","split_Rabs","split_Rmult","stepl","stepr","subst","sum","swap","symmetry","tactic","tauto","time","timeout","top","transitivity","trivial","try","tryif","unfold","unify","until","using","vm_compute","with"]
diff --git a/resources/highlight.js/11.8.0/cos.min.jsm b/resources/highlight.js/11.9.0/cos.min.jsm
similarity index 95%
rename from resources/highlight.js/11.8.0/cos.min.jsm
rename to resources/highlight.js/11.9.0/cos.min.jsm
index 6b773e1b..9db23916 100644
--- a/resources/highlight.js/11.8.0/cos.min.jsm
+++ b/resources/highlight.js/11.9.0/cos.min.jsm
@@ -1,4 +1,4 @@
-/*! `cos` grammar compiled for Highlight.js 11.8.0 */
+/*! `cos` grammar compiled for Highlight.js 11.9.0 */
(()=>{var e=(()=>{"use strict";return e=>({name:"Cach\xe9 Object Script",
case_insensitive:!0,aliases:["cls"],
keywords:"property parameter class classmethod clientmethod extends as break catch close continue do d|0 else elseif for goto halt hang h|0 if job j|0 kill k|0 lock l|0 merge new open quit q|0 read r|0 return set s|0 tcommit throw trollback try tstart use view while write w|0 xecute x|0 zkill znspace zn ztrap zwrite zw zzdump zzwrite print zbreak zinsert zload zprint zremove zsave zzprint mv mvcall mvcrt mvdim mvprint zquit zsync ascii",
diff --git a/resources/highlight.js/11.8.0/cpp.min.jsm b/resources/highlight.js/11.9.0/cpp.min.jsm
similarity index 98%
rename from resources/highlight.js/11.8.0/cpp.min.jsm
rename to resources/highlight.js/11.9.0/cpp.min.jsm
index e4a53db3..7b38f3cd 100644
--- a/resources/highlight.js/11.8.0/cpp.min.jsm
+++ b/resources/highlight.js/11.9.0/cpp.min.jsm
@@ -1,4 +1,4 @@
-/*! `cpp` grammar compiled for Highlight.js 11.8.0 */
+/*! `cpp` grammar compiled for Highlight.js 11.9.0 */
(()=>{var e=(()=>{"use strict";return e=>{const t=e.regex,a=e.COMMENT("//","$",{
contains:[{begin:/\\\n/}]
}),n="decltype\\(auto\\)",r="[a-zA-Z_]\\w*::",i="(?!struct)("+n+"|"+t.optional(r)+"[a-zA-Z_]\\w*"+t.optional("<[^<>]+>")+")",s={
diff --git a/resources/highlight.js/11.8.0/crmsh.min.jsm b/resources/highlight.js/11.9.0/crmsh.min.jsm
similarity index 96%
rename from resources/highlight.js/11.8.0/crmsh.min.jsm
rename to resources/highlight.js/11.9.0/crmsh.min.jsm
index 4b313628..706cf4b3 100644
--- a/resources/highlight.js/11.8.0/crmsh.min.jsm
+++ b/resources/highlight.js/11.9.0/crmsh.min.jsm
@@ -1,4 +1,4 @@
-/*! `crmsh` grammar compiled for Highlight.js 11.8.0 */
+/*! `crmsh` grammar compiled for Highlight.js 11.9.0 */
(()=>{var e=(()=>{"use strict";return e=>{
const t="group clone ms master location colocation order fencing_topology rsc_ticket acl_target acl_group user role tag xml"
;return{name:"crmsh",aliases:["crm","pcmk"],case_insensitive:!0,keywords:{
diff --git a/resources/highlight.js/11.8.0/crystal.min.jsm b/resources/highlight.js/11.9.0/crystal.min.jsm
similarity index 98%
rename from resources/highlight.js/11.8.0/crystal.min.jsm
rename to resources/highlight.js/11.9.0/crystal.min.jsm
index 3121a363..cfe85e04 100644
--- a/resources/highlight.js/11.8.0/crystal.min.jsm
+++ b/resources/highlight.js/11.9.0/crystal.min.jsm
@@ -1,4 +1,4 @@
-/*! `crystal` grammar compiled for Highlight.js 11.8.0 */
+/*! `crystal` grammar compiled for Highlight.js 11.9.0 */
(()=>{var e=(()=>{"use strict";return e=>{
const n="(_?[ui](8|16|32|64|128))?",i="[a-zA-Z_]\\w*[!?=]?|[-+~]@|<<|>>|[=!]~|===?|<=>|[<>]=?|\\*\\*|[-/+%^&*~|]|//|//=|&[-+*]=?|&\\*\\*|\\[\\][=?]?",s="[A-Za-z_]\\w*(::\\w+)*(\\?|!)?",a={
$pattern:"[a-zA-Z_]\\w*[!?=]?",
diff --git a/resources/highlight.js/11.8.0/csharp.min.jsm b/resources/highlight.js/11.9.0/csharp.min.jsm
similarity index 97%
rename from resources/highlight.js/11.8.0/csharp.min.jsm
rename to resources/highlight.js/11.9.0/csharp.min.jsm
index 46e43fe5..fdc93716 100644
--- a/resources/highlight.js/11.8.0/csharp.min.jsm
+++ b/resources/highlight.js/11.9.0/csharp.min.jsm
@@ -1,4 +1,4 @@
-/*! `csharp` grammar compiled for Highlight.js 11.8.0 */
+/*! `csharp` grammar compiled for Highlight.js 11.9.0 */
(()=>{var e=(()=>{"use strict";return e=>{const n={
keyword:["abstract","as","base","break","case","catch","class","const","continue","do","else","event","explicit","extern","finally","fixed","for","foreach","goto","if","implicit","in","interface","internal","is","lock","namespace","new","operator","out","override","params","private","protected","public","readonly","record","ref","return","scoped","sealed","sizeof","stackalloc","static","struct","switch","this","throw","try","typeof","unchecked","unsafe","using","virtual","void","volatile","while"].concat(["add","alias","and","ascending","async","await","by","descending","equals","from","get","global","group","init","into","join","let","nameof","not","notnull","on","or","orderby","partial","remove","select","set","unmanaged","value|0","var","when","where","with","yield"]),
built_in:["bool","byte","char","decimal","delegate","double","dynamic","enum","float","int","long","nint","nuint","object","sbyte","short","string","ulong","uint","ushort"],
diff --git a/resources/highlight.js/11.8.0/csp.min.jsm b/resources/highlight.js/11.9.0/csp.min.jsm
similarity index 90%
rename from resources/highlight.js/11.8.0/csp.min.jsm
rename to resources/highlight.js/11.9.0/csp.min.jsm
index e7c97abc..20ad172b 100644
--- a/resources/highlight.js/11.8.0/csp.min.jsm
+++ b/resources/highlight.js/11.9.0/csp.min.jsm
@@ -1,4 +1,4 @@
-/*! `csp` grammar compiled for Highlight.js 11.8.0 */
+/*! `csp` grammar compiled for Highlight.js 11.9.0 */
(()=>{var s=(()=>{"use strict";return s=>({name:"CSP",case_insensitive:!1,
keywords:{$pattern:"[a-zA-Z][a-zA-Z0-9_-]*",
keyword:["base-uri","child-src","connect-src","default-src","font-src","form-action","frame-ancestors","frame-src","img-src","manifest-src","media-src","object-src","plugin-types","report-uri","sandbox","script-src","style-src","trusted-types","unsafe-hashes","worker-src"]
diff --git a/resources/highlight.js/11.8.0/css.min.jsm b/resources/highlight.js/11.9.0/css.min.jsm
similarity index 98%
rename from resources/highlight.js/11.8.0/css.min.jsm
rename to resources/highlight.js/11.9.0/css.min.jsm
index 74ca70f5..3606c543 100644
--- a/resources/highlight.js/11.8.0/css.min.jsm
+++ b/resources/highlight.js/11.9.0/css.min.jsm
@@ -1,4 +1,4 @@
-/*! `css` grammar compiled for Highlight.js 11.8.0 */
+/*! `css` grammar compiled for Highlight.js 11.9.0 */
(()=>{var e=(()=>{"use strict"
;const e=["a","abbr","address","article","aside","audio","b","blockquote","body","button","canvas","caption","cite","code","dd","del","details","dfn","div","dl","dt","em","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","header","hgroup","html","i","iframe","img","input","ins","kbd","label","legend","li","main","mark","menu","nav","object","ol","p","q","quote","samp","section","span","strong","summary","sup","table","tbody","td","textarea","tfoot","th","thead","time","tr","ul","var","video"],i=["any-hover","any-pointer","aspect-ratio","color","color-gamut","color-index","device-aspect-ratio","device-height","device-width","display-mode","forced-colors","grid","height","hover","inverted-colors","monochrome","orientation","overflow-block","overflow-inline","pointer","prefers-color-scheme","prefers-contrast","prefers-reduced-motion","prefers-reduced-transparency","resolution","scan","scripting","update","width","min-width","max-width","min-height","max-height"],r=["active","any-link","blank","checked","current","default","defined","dir","disabled","drop","empty","enabled","first","first-child","first-of-type","fullscreen","future","focus","focus-visible","focus-within","has","host","host-context","hover","indeterminate","in-range","invalid","is","lang","last-child","last-of-type","left","link","local-link","not","nth-child","nth-col","nth-last-child","nth-last-col","nth-last-of-type","nth-of-type","only-child","only-of-type","optional","out-of-range","past","placeholder-shown","read-only","read-write","required","right","root","scope","target","target-within","user-invalid","valid","visited","where"],t=["after","backdrop","before","cue","cue-region","first-letter","first-line","grammar-error","marker","part","placeholder","selection","slotted","spelling-error"],o=["align-content","align-items","align-self","all","animation","animation-delay","animation-direction","animation-duration","animation-fill-mode","animation-iteration-count","animation-name","animation-play-state","animation-timing-function","backface-visibility","background","background-attachment","background-blend-mode","background-clip","background-color","background-image","background-origin","background-position","background-repeat","background-size","block-size","border","border-block","border-block-color","border-block-end","border-block-end-color","border-block-end-style","border-block-end-width","border-block-start","border-block-start-color","border-block-start-style","border-block-start-width","border-block-style","border-block-width","border-bottom","border-bottom-color","border-bottom-left-radius","border-bottom-right-radius","border-bottom-style","border-bottom-width","border-collapse","border-color","border-image","border-image-outset","border-image-repeat","border-image-slice","border-image-source","border-image-width","border-inline","border-inline-color","border-inline-end","border-inline-end-color","border-inline-end-style","border-inline-end-width","border-inline-start","border-inline-start-color","border-inline-start-style","border-inline-start-width","border-inline-style","border-inline-width","border-left","border-left-color","border-left-style","border-left-width","border-radius","border-right","border-right-color","border-right-style","border-right-width","border-spacing","border-style","border-top","border-top-color","border-top-left-radius","border-top-right-radius","border-top-style","border-top-width","border-width","bottom","box-decoration-break","box-shadow","box-sizing","break-after","break-before","break-inside","caption-side","caret-color","clear","clip","clip-path","clip-rule","color","column-count","column-fill","column-gap","column-rule","column-rule-color","column-rule-style","column-rule-width","column-span","column-width","columns","contain","content","content-visibility","counter-increment","counter-reset","cue","cue-after","cue-before","cursor","direction","display","empty-cells","filter","flex","flex-basis","flex-direction","flex-flow","flex-grow","flex-shrink","flex-wrap","float","flow","font","font-display","font-family","font-feature-settings","font-kerning","font-language-override","font-size","font-size-adjust","font-smoothing","font-stretch","font-style","font-synthesis","font-variant","font-variant-caps","font-variant-east-asian","font-variant-ligatures","font-variant-numeric","font-variant-position","font-variation-settings","font-weight","gap","glyph-orientation-vertical","grid","grid-area","grid-auto-columns","grid-auto-flow","grid-auto-rows","grid-column","grid-column-end","grid-column-start","grid-gap","grid-row","grid-row-end","grid-row-start","grid-template","grid-template-areas","grid-template-columns","grid-template-rows","hanging-punctuation","height","hyphens","icon","image-orientation","image-rendering","image-resolution","ime-mode","inline-size","isolation","justify-content","left","letter-spacing","line-break","line-height","list-style","list-style-image","list-style-position","list-style-type","margin","margin-block","margin-block-end","margin-block-start","margin-bottom","margin-inline","margin-inline-end","margin-inline-start","margin-left","margin-right","margin-top","marks","mask","mask-border","mask-border-mode","mask-border-outset","mask-border-repeat","mask-border-slice","mask-border-source","mask-border-width","mask-clip","mask-composite","mask-image","mask-mode","mask-origin","mask-position","mask-repeat","mask-size","mask-type","max-block-size","max-height","max-inline-size","max-width","min-block-size","min-height","min-inline-size","min-width","mix-blend-mode","nav-down","nav-index","nav-left","nav-right","nav-up","none","normal","object-fit","object-position","opacity","order","orphans","outline","outline-color","outline-offset","outline-style","outline-width","overflow","overflow-wrap","overflow-x","overflow-y","padding","padding-block","padding-block-end","padding-block-start","padding-bottom","padding-inline","padding-inline-end","padding-inline-start","padding-left","padding-right","padding-top","page-break-after","page-break-before","page-break-inside","pause","pause-after","pause-before","perspective","perspective-origin","pointer-events","position","quotes","resize","rest","rest-after","rest-before","right","row-gap","scroll-margin","scroll-margin-block","scroll-margin-block-end","scroll-margin-block-start","scroll-margin-bottom","scroll-margin-inline","scroll-margin-inline-end","scroll-margin-inline-start","scroll-margin-left","scroll-margin-right","scroll-margin-top","scroll-padding","scroll-padding-block","scroll-padding-block-end","scroll-padding-block-start","scroll-padding-bottom","scroll-padding-inline","scroll-padding-inline-end","scroll-padding-inline-start","scroll-padding-left","scroll-padding-right","scroll-padding-top","scroll-snap-align","scroll-snap-stop","scroll-snap-type","scrollbar-color","scrollbar-gutter","scrollbar-width","shape-image-threshold","shape-margin","shape-outside","speak","speak-as","src","tab-size","table-layout","text-align","text-align-all","text-align-last","text-combine-upright","text-decoration","text-decoration-color","text-decoration-line","text-decoration-style","text-emphasis","text-emphasis-color","text-emphasis-position","text-emphasis-style","text-indent","text-justify","text-orientation","text-overflow","text-rendering","text-shadow","text-transform","text-underline-position","top","transform","transform-box","transform-origin","transform-style","transition","transition-delay","transition-duration","transition-property","transition-timing-function","unicode-bidi","vertical-align","visibility","voice-balance","voice-duration","voice-family","voice-pitch","voice-range","voice-rate","voice-stress","voice-volume","white-space","widows","width","will-change","word-break","word-spacing","word-wrap","writing-mode","z-index"].reverse()
;return n=>{const a=n.regex,l=(e=>({IMPORTANT:{scope:"meta",begin:"!important"},
@@ -9,7 +9,7 @@ scope:"selector-attr",begin:/\[/,end:/\]/,illegal:"$",
contains:[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]},CSS_NUMBER_MODE:{
scope:"number",
begin:e.NUMBER_RE+"(%|em|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc|px|deg|grad|rad|turn|s|ms|Hz|kHz|dpi|dpcm|dppx)?",
-relevance:0},CSS_VARIABLE:{className:"attr",begin:/--[A-Za-z][A-Za-z0-9_-]*/}
+relevance:0},CSS_VARIABLE:{className:"attr",begin:/--[A-Za-z_][A-Za-z0-9_-]*/}
}))(n),s=[n.APOS_STRING_MODE,n.QUOTE_STRING_MODE];return{name:"CSS",
case_insensitive:!0,illegal:/[=|'\$]/,keywords:{keyframePosition:"from to"},
classNameAliases:{keyframePosition:"selector-tag"},contains:[l.BLOCK_COMMENT,{
diff --git a/resources/highlight.js/11.8.0/d.min.jsm b/resources/highlight.js/11.9.0/d.min.jsm
similarity index 97%
rename from resources/highlight.js/11.8.0/d.min.jsm
rename to resources/highlight.js/11.9.0/d.min.jsm
index ecc846fd..8c941b93 100644
--- a/resources/highlight.js/11.8.0/d.min.jsm
+++ b/resources/highlight.js/11.9.0/d.min.jsm
@@ -1,4 +1,4 @@
-/*! `d` grammar compiled for Highlight.js 11.8.0 */
+/*! `d` grammar compiled for Highlight.js 11.9.0 */
(()=>{var e=(()=>{"use strict";return e=>{const a={
$pattern:e.UNDERSCORE_IDENT_RE,
keyword:"abstract alias align asm assert auto body break byte case cast catch class const continue debug default delete deprecated do else enum export extern final finally for foreach foreach_reverse|10 goto if immutable import in inout int interface invariant is lazy macro mixin module new nothrow out override package pragma private protected public pure ref return scope shared static struct super switch synchronized template this throw try typedef typeid typeof union unittest version void volatile while with __FILE__ __LINE__ __gshared|10 __thread __traits __DATE__ __EOF__ __TIME__ __TIMESTAMP__ __VENDOR__ __VERSION__",
diff --git a/resources/highlight.js/11.8.0/dark.min.css b/resources/highlight.js/11.9.0/dark.min.css
similarity index 100%
rename from resources/highlight.js/11.8.0/dark.min.css
rename to resources/highlight.js/11.9.0/dark.min.css
diff --git a/resources/highlight.js/11.8.0/dart.min.jsm b/resources/highlight.js/11.9.0/dart.min.jsm
similarity index 95%
rename from resources/highlight.js/11.8.0/dart.min.jsm
rename to resources/highlight.js/11.9.0/dart.min.jsm
index 5f37af59..245e1a46 100644
--- a/resources/highlight.js/11.8.0/dart.min.jsm
+++ b/resources/highlight.js/11.9.0/dart.min.jsm
@@ -1,4 +1,4 @@
-/*! `dart` grammar compiled for Highlight.js 11.8.0 */
+/*! `dart` grammar compiled for Highlight.js 11.9.0 */
(()=>{var e=(()=>{"use strict";return e=>{const n={className:"subst",variants:[{
begin:"\\$[A-Za-z0-9_]+"}]},a={className:"subst",variants:[{begin:/\$\{/,
end:/\}/}],keywords:"true false null this is new super"},t={className:"string",
diff --git a/resources/highlight.js/11.8.0/default.min.css b/resources/highlight.js/11.9.0/default.min.css
similarity index 100%
rename from resources/highlight.js/11.8.0/default.min.css
rename to resources/highlight.js/11.9.0/default.min.css
diff --git a/resources/highlight.js/11.8.0/delphi.min.jsm b/resources/highlight.js/11.9.0/delphi.min.jsm
similarity index 95%
rename from resources/highlight.js/11.8.0/delphi.min.jsm
rename to resources/highlight.js/11.9.0/delphi.min.jsm
index 884862b2..faad6380 100644
--- a/resources/highlight.js/11.8.0/delphi.min.jsm
+++ b/resources/highlight.js/11.9.0/delphi.min.jsm
@@ -1,4 +1,4 @@
-/*! `delphi` grammar compiled for Highlight.js 11.8.0 */
+/*! `delphi` grammar compiled for Highlight.js 11.9.0 */
(()=>{var e=(()=>{"use strict";return e=>{
const r=["exports","register","file","shl","array","record","property","for","mod","while","set","ally","label","uses","raise","not","stored","class","safecall","var","interface","or","private","static","exit","index","inherited","to","else","stdcall","override","shr","asm","far","resourcestring","finalization","packed","virtual","out","and","protected","library","do","xorwrite","goto","near","function","end","div","overload","object","unit","begin","string","on","inline","repeat","until","destructor","write","message","program","with","read","initialization","except","default","nil","if","case","cdecl","in","downto","threadvar","of","try","pascal","const","external","constructor","type","public","then","implementation","finally","published","procedure","absolute","reintroduce","operator","as","is","abstract","alias","assembler","bitpacked","break","continue","cppdecl","cvar","enumerator","experimental","platform","deprecated","unimplemented","dynamic","export","far16","forward","generic","helper","implements","interrupt","iochecks","local","name","nodefault","noreturn","nostackframe","oldfpccall","otherwise","saveregisters","softfloat","specialize","strict","unaligned","varargs"],a=[e.C_LINE_COMMENT_MODE,e.COMMENT(/\{/,/\}/,{
relevance:0}),e.COMMENT(/\(\*/,/\*\)/,{relevance:10})],t={className:"meta",
diff --git a/resources/highlight.js/11.8.0/devibeans.min.css b/resources/highlight.js/11.9.0/devibeans.min.css
similarity index 100%
rename from resources/highlight.js/11.8.0/devibeans.min.css
rename to resources/highlight.js/11.9.0/devibeans.min.css
diff --git a/resources/highlight.js/11.8.0/diff.min.jsm b/resources/highlight.js/11.9.0/diff.min.jsm
similarity index 82%
rename from resources/highlight.js/11.8.0/diff.min.jsm
rename to resources/highlight.js/11.9.0/diff.min.jsm
index cc77e0c8..62d1159d 100644
--- a/resources/highlight.js/11.8.0/diff.min.jsm
+++ b/resources/highlight.js/11.9.0/diff.min.jsm
@@ -1,4 +1,4 @@
-/*! `diff` grammar compiled for Highlight.js 11.8.0 */
+/*! `diff` grammar compiled for Highlight.js 11.9.0 */
(()=>{var e=(()=>{"use strict";return e=>{const a=e.regex;return{name:"Diff",
aliases:["patch"],contains:[{className:"meta",relevance:10,
match:a.either(/^@@ +-\d+,\d+ +\+\d+,\d+ +@@/,/^\*\*\* +\d+,\d+ +\*\*\*\*$/,/^--- +\d+,\d+ +----$/)
diff --git a/resources/highlight.js/11.8.0/django.min.jsm b/resources/highlight.js/11.9.0/django.min.jsm
similarity index 94%
rename from resources/highlight.js/11.8.0/django.min.jsm
rename to resources/highlight.js/11.9.0/django.min.jsm
index 8b002c9b..30e2ba1e 100644
--- a/resources/highlight.js/11.8.0/django.min.jsm
+++ b/resources/highlight.js/11.9.0/django.min.jsm
@@ -1,4 +1,4 @@
-/*! `django` grammar compiled for Highlight.js 11.8.0 */
+/*! `django` grammar compiled for Highlight.js 11.9.0 */
(()=>{var e=(()=>{"use strict";return e=>{const t={begin:/\|[A-Za-z]+:?/,
keywords:{
name:"truncatewords removetags linebreaksbr yesno get_digit timesince random striptags filesizeformat escape linebreaks length_is ljust rjust cut urlize fix_ampersands title floatformat capfirst pprint divisibleby add make_list unordered_list urlencode timeuntil urlizetrunc wordcount stringformat linenumbers slice date dictsort dictsortreversed default_if_none pluralize lower join center default truncatewords_html upper length phone2numeric wordwrap time addslashes slugify first escapejs force_escape iriencode last safe safeseq truncatechars localize unlocalize localtime utc timezone"
diff --git a/resources/highlight.js/11.8.0/dns.min.jsm b/resources/highlight.js/11.9.0/dns.min.jsm
similarity index 95%
rename from resources/highlight.js/11.8.0/dns.min.jsm
rename to resources/highlight.js/11.9.0/dns.min.jsm
index a932b2ba..305e2abc 100644
--- a/resources/highlight.js/11.8.0/dns.min.jsm
+++ b/resources/highlight.js/11.9.0/dns.min.jsm
@@ -1,4 +1,4 @@
-/*! `dns` grammar compiled for Highlight.js 11.8.0 */
+/*! `dns` grammar compiled for Highlight.js 11.9.0 */
(()=>{var d=(()=>{"use strict";return d=>({name:"DNS Zone",
aliases:["bind","zone"],
keywords:["IN","A","AAAA","AFSDB","APL","CAA","CDNSKEY","CDS","CERT","CNAME","DHCID","DLV","DNAME","DNSKEY","DS","HIP","IPSECKEY","KEY","KX","LOC","MX","NAPTR","NS","NSEC","NSEC3","NSEC3PARAM","PTR","RRSIG","RP","SIG","SOA","SRV","SSHFP","TA","TKEY","TLSA","TSIG","TXT"],
diff --git a/resources/highlight.js/11.8.0/docco.min.css b/resources/highlight.js/11.9.0/docco.min.css
similarity index 100%
rename from resources/highlight.js/11.8.0/docco.min.css
rename to resources/highlight.js/11.9.0/docco.min.css
diff --git a/resources/highlight.js/11.8.0/dockerfile.min.jsm b/resources/highlight.js/11.9.0/dockerfile.min.jsm
similarity index 80%
rename from resources/highlight.js/11.8.0/dockerfile.min.jsm
rename to resources/highlight.js/11.9.0/dockerfile.min.jsm
index 0fa2e7e5..b6763f84 100644
--- a/resources/highlight.js/11.8.0/dockerfile.min.jsm
+++ b/resources/highlight.js/11.9.0/dockerfile.min.jsm
@@ -1,4 +1,4 @@
-/*! `dockerfile` grammar compiled for Highlight.js 11.8.0 */
+/*! `dockerfile` grammar compiled for Highlight.js 11.9.0 */
(()=>{var e=(()=>{"use strict";return e=>({name:"Dockerfile",aliases:["docker"],
case_insensitive:!0,
keywords:["from","maintainer","expose","env","arg","user","onbuild","stopsignal"],
diff --git a/resources/highlight.js/11.8.0/dos.min.jsm b/resources/highlight.js/11.9.0/dos.min.jsm
similarity index 93%
rename from resources/highlight.js/11.8.0/dos.min.jsm
rename to resources/highlight.js/11.9.0/dos.min.jsm
index 65f1c44b..268b30bc 100644
--- a/resources/highlight.js/11.8.0/dos.min.jsm
+++ b/resources/highlight.js/11.9.0/dos.min.jsm
@@ -1,4 +1,4 @@
-/*! `dos` grammar compiled for Highlight.js 11.8.0 */
+/*! `dos` grammar compiled for Highlight.js 11.9.0 */
(()=>{var e=(()=>{"use strict";return e=>{const r=e.COMMENT(/^\s*@?rem\b/,/$/,{
relevance:10});return{name:"Batch file (DOS)",aliases:["bat","cmd"],
case_insensitive:!0,illegal:/\/\*/,keywords:{
diff --git a/resources/highlight.js/11.8.0/dsconfig.min.jsm b/resources/highlight.js/11.9.0/dsconfig.min.jsm
similarity index 88%
rename from resources/highlight.js/11.8.0/dsconfig.min.jsm
rename to resources/highlight.js/11.9.0/dsconfig.min.jsm
index 8e4a5728..f7ab863d 100644
--- a/resources/highlight.js/11.8.0/dsconfig.min.jsm
+++ b/resources/highlight.js/11.9.0/dsconfig.min.jsm
@@ -1,4 +1,4 @@
-/*! `dsconfig` grammar compiled for Highlight.js 11.8.0 */
+/*! `dsconfig` grammar compiled for Highlight.js 11.9.0 */
(()=>{var e=(()=>{"use strict";return e=>({keywords:"dsconfig",contains:[{
className:"keyword",begin:"^dsconfig",end:/\s/,excludeEnd:!0,relevance:10},{
className:"built_in",begin:/(list|create|get|set|delete)-(\w+)/,end:/\s/,
diff --git a/resources/highlight.js/11.8.0/dts.min.jsm b/resources/highlight.js/11.9.0/dts.min.jsm
similarity index 93%
rename from resources/highlight.js/11.8.0/dts.min.jsm
rename to resources/highlight.js/11.9.0/dts.min.jsm
index d1a2e324..bdb3feaa 100644
--- a/resources/highlight.js/11.8.0/dts.min.jsm
+++ b/resources/highlight.js/11.9.0/dts.min.jsm
@@ -1,4 +1,4 @@
-/*! `dts` grammar compiled for Highlight.js 11.8.0 */
+/*! `dts` grammar compiled for Highlight.js 11.9.0 */
(()=>{var e=(()=>{"use strict";return e=>{const a={className:"string",
variants:[e.inherit(e.QUOTE_STRING_MODE,{begin:'((u8?|U)|L)?"'}),{
begin:'(u8?|U)?R"',end:'"',contains:[e.BACKSLASH_ESCAPE]},{begin:"'\\\\?.",
diff --git a/resources/highlight.js/11.8.0/dust.min.jsm b/resources/highlight.js/11.9.0/dust.min.jsm
similarity index 81%
rename from resources/highlight.js/11.8.0/dust.min.jsm
rename to resources/highlight.js/11.9.0/dust.min.jsm
index 03b6abf3..17d299d1 100644
--- a/resources/highlight.js/11.8.0/dust.min.jsm
+++ b/resources/highlight.js/11.9.0/dust.min.jsm
@@ -1,4 +1,4 @@
-/*! `dust` grammar compiled for Highlight.js 11.8.0 */
+/*! `dust` grammar compiled for Highlight.js 11.9.0 */
(()=>{var e=(()=>{"use strict";return e=>({name:"Dust",aliases:["dst"],
case_insensitive:!0,subLanguage:"xml",contains:[{className:"template-tag",
begin:/\{[#\/]/,end:/\}/,illegal:/;/,contains:[{className:"name",
diff --git a/resources/highlight.js/11.8.0/ebnf.min.jsm b/resources/highlight.js/11.9.0/ebnf.min.jsm
similarity index 80%
rename from resources/highlight.js/11.8.0/ebnf.min.jsm
rename to resources/highlight.js/11.9.0/ebnf.min.jsm
index 50547a72..6040364a 100644
--- a/resources/highlight.js/11.8.0/ebnf.min.jsm
+++ b/resources/highlight.js/11.9.0/ebnf.min.jsm
@@ -1,4 +1,4 @@
-/*! `ebnf` grammar compiled for Highlight.js 11.8.0 */
+/*! `ebnf` grammar compiled for Highlight.js 11.9.0 */
(()=>{var e=(()=>{"use strict";return e=>{const a=e.COMMENT(/\(\*/,/\*\)/)
;return{name:"Extended Backus-Naur Form",illegal:/\S/,contains:[a,{
className:"attribute",begin:/^[ ]*[a-zA-Z]+([\s_-]+[a-zA-Z]+)*/},{begin:/=/,
diff --git a/resources/highlight.js/11.8.0/elixir.min.jsm b/resources/highlight.js/11.9.0/elixir.min.jsm
similarity index 96%
rename from resources/highlight.js/11.8.0/elixir.min.jsm
rename to resources/highlight.js/11.9.0/elixir.min.jsm
index 0cb2b48f..9d9fcb7c 100644
--- a/resources/highlight.js/11.8.0/elixir.min.jsm
+++ b/resources/highlight.js/11.9.0/elixir.min.jsm
@@ -1,4 +1,4 @@
-/*! `elixir` grammar compiled for Highlight.js 11.8.0 */
+/*! `elixir` grammar compiled for Highlight.js 11.9.0 */
(()=>{var e=(()=>{"use strict";return e=>{
const n=e.regex,a="[a-zA-Z_][a-zA-Z0-9_.]*(!|\\?)?",i={$pattern:a,
keyword:["after","alias","and","case","catch","cond","defstruct","defguard","do","else","end","fn","for","if","import","in","not","or","quote","raise","receive","require","reraise","rescue","try","unless","unquote","unquote_splicing","use","when","with|0"],
diff --git a/resources/highlight.js/11.8.0/elm.min.jsm b/resources/highlight.js/11.9.0/elm.min.jsm
similarity index 92%
rename from resources/highlight.js/11.8.0/elm.min.jsm
rename to resources/highlight.js/11.9.0/elm.min.jsm
index 4638f2a7..e0ab4ab7 100644
--- a/resources/highlight.js/11.8.0/elm.min.jsm
+++ b/resources/highlight.js/11.9.0/elm.min.jsm
@@ -1,4 +1,4 @@
-/*! `elm` grammar compiled for Highlight.js 11.8.0 */
+/*! `elm` grammar compiled for Highlight.js 11.9.0 */
(()=>{var e=(()=>{"use strict";return e=>{const n={
variants:[e.COMMENT("--","$"),e.COMMENT(/\{-/,/-\}/,{contains:["self"]})]},i={
className:"type",begin:"\\b[A-Z][\\w']*",relevance:0},s={begin:"\\(",end:"\\)",
diff --git a/resources/highlight.js/11.8.0/erb.min.jsm b/resources/highlight.js/11.9.0/erb.min.jsm
similarity index 68%
rename from resources/highlight.js/11.8.0/erb.min.jsm
rename to resources/highlight.js/11.9.0/erb.min.jsm
index 11ea8b39..d52029eb 100644
--- a/resources/highlight.js/11.8.0/erb.min.jsm
+++ b/resources/highlight.js/11.9.0/erb.min.jsm
@@ -1,4 +1,4 @@
-/*! `erb` grammar compiled for Highlight.js 11.8.0 */
+/*! `erb` grammar compiled for Highlight.js 11.9.0 */
(()=>{var e=(()=>{"use strict";return e=>({name:"ERB",subLanguage:"xml",
contains:[e.COMMENT("<%#","%>"),{begin:"<%[%=-]?",end:"[%-]?%>",
subLanguage:"ruby",excludeBegin:!0,excludeEnd:!0}]})})()
diff --git a/resources/highlight.js/11.8.0/erlang-repl.min.jsm b/resources/highlight.js/11.9.0/erlang-repl.min.jsm
similarity index 88%
rename from resources/highlight.js/11.8.0/erlang-repl.min.jsm
rename to resources/highlight.js/11.9.0/erlang-repl.min.jsm
index 66c48345..fd5648d2 100644
--- a/resources/highlight.js/11.8.0/erlang-repl.min.jsm
+++ b/resources/highlight.js/11.9.0/erlang-repl.min.jsm
@@ -1,4 +1,4 @@
-/*! `erlang-repl` grammar compiled for Highlight.js 11.8.0 */
+/*! `erlang-repl` grammar compiled for Highlight.js 11.9.0 */
(()=>{var e=(()=>{"use strict";return e=>{const n=e.regex;return{
name:"Erlang REPL",keywords:{built_in:"spawn spawn_link self",
keyword:"after and andalso|10 band begin bnot bor bsl bsr bxor case catch cond div end fun if let not of or orelse|10 query receive rem try when xor"
diff --git a/resources/highlight.js/11.8.0/erlang.min.jsm b/resources/highlight.js/11.9.0/erlang.min.jsm
similarity index 95%
rename from resources/highlight.js/11.8.0/erlang.min.jsm
rename to resources/highlight.js/11.9.0/erlang.min.jsm
index fd18f674..9b48a797 100644
--- a/resources/highlight.js/11.8.0/erlang.min.jsm
+++ b/resources/highlight.js/11.9.0/erlang.min.jsm
@@ -1,4 +1,4 @@
-/*! `erlang` grammar compiled for Highlight.js 11.8.0 */
+/*! `erlang` grammar compiled for Highlight.js 11.9.0 */
(()=>{var e=(()=>{"use strict";return e=>{
const n="[a-z'][a-zA-Z0-9_']*",r="("+n+":"+n+"|"+n+")",a={
keyword:"after and andalso|10 band begin bnot bor bsl bzr bxor case catch cond div end fun if let not of orelse|10 query receive rem try when xor",
diff --git a/resources/highlight.js/11.8.0/excel.min.jsm b/resources/highlight.js/11.9.0/excel.min.jsm
similarity index 98%
rename from resources/highlight.js/11.8.0/excel.min.jsm
rename to resources/highlight.js/11.9.0/excel.min.jsm
index 76030fc7..13921d7c 100644
--- a/resources/highlight.js/11.8.0/excel.min.jsm
+++ b/resources/highlight.js/11.9.0/excel.min.jsm
@@ -1,4 +1,4 @@
-/*! `excel` grammar compiled for Highlight.js 11.8.0 */
+/*! `excel` grammar compiled for Highlight.js 11.9.0 */
(()=>{var E=(()=>{"use strict";return E=>({name:"Excel formulae",
aliases:["xlsx","xls"],case_insensitive:!0,keywords:{$pattern:/[a-zA-Z][\w\.]*/,
built_in:["ABS","ACCRINT","ACCRINTM","ACOS","ACOSH","ACOT","ACOTH","AGGREGATE","ADDRESS","AMORDEGRC","AMORLINC","AND","ARABIC","AREAS","ASC","ASIN","ASINH","ATAN","ATAN2","ATANH","AVEDEV","AVERAGE","AVERAGEA","AVERAGEIF","AVERAGEIFS","BAHTTEXT","BASE","BESSELI","BESSELJ","BESSELK","BESSELY","BETADIST","BETA.DIST","BETAINV","BETA.INV","BIN2DEC","BIN2HEX","BIN2OCT","BINOMDIST","BINOM.DIST","BINOM.DIST.RANGE","BINOM.INV","BITAND","BITLSHIFT","BITOR","BITRSHIFT","BITXOR","CALL","CEILING","CEILING.MATH","CEILING.PRECISE","CELL","CHAR","CHIDIST","CHIINV","CHITEST","CHISQ.DIST","CHISQ.DIST.RT","CHISQ.INV","CHISQ.INV.RT","CHISQ.TEST","CHOOSE","CLEAN","CODE","COLUMN","COLUMNS","COMBIN","COMBINA","COMPLEX","CONCAT","CONCATENATE","CONFIDENCE","CONFIDENCE.NORM","CONFIDENCE.T","CONVERT","CORREL","COS","COSH","COT","COTH","COUNT","COUNTA","COUNTBLANK","COUNTIF","COUNTIFS","COUPDAYBS","COUPDAYS","COUPDAYSNC","COUPNCD","COUPNUM","COUPPCD","COVAR","COVARIANCE.P","COVARIANCE.S","CRITBINOM","CSC","CSCH","CUBEKPIMEMBER","CUBEMEMBER","CUBEMEMBERPROPERTY","CUBERANKEDMEMBER","CUBESET","CUBESETCOUNT","CUBEVALUE","CUMIPMT","CUMPRINC","DATE","DATEDIF","DATEVALUE","DAVERAGE","DAY","DAYS","DAYS360","DB","DBCS","DCOUNT","DCOUNTA","DDB","DEC2BIN","DEC2HEX","DEC2OCT","DECIMAL","DEGREES","DELTA","DEVSQ","DGET","DISC","DMAX","DMIN","DOLLAR","DOLLARDE","DOLLARFR","DPRODUCT","DSTDEV","DSTDEVP","DSUM","DURATION","DVAR","DVARP","EDATE","EFFECT","ENCODEURL","EOMONTH","ERF","ERF.PRECISE","ERFC","ERFC.PRECISE","ERROR.TYPE","EUROCONVERT","EVEN","EXACT","EXP","EXPON.DIST","EXPONDIST","FACT","FACTDOUBLE","FALSE|0","F.DIST","FDIST","F.DIST.RT","FILTERXML","FIND","FINDB","F.INV","F.INV.RT","FINV","FISHER","FISHERINV","FIXED","FLOOR","FLOOR.MATH","FLOOR.PRECISE","FORECAST","FORECAST.ETS","FORECAST.ETS.CONFINT","FORECAST.ETS.SEASONALITY","FORECAST.ETS.STAT","FORECAST.LINEAR","FORMULATEXT","FREQUENCY","F.TEST","FTEST","FV","FVSCHEDULE","GAMMA","GAMMA.DIST","GAMMADIST","GAMMA.INV","GAMMAINV","GAMMALN","GAMMALN.PRECISE","GAUSS","GCD","GEOMEAN","GESTEP","GETPIVOTDATA","GROWTH","HARMEAN","HEX2BIN","HEX2DEC","HEX2OCT","HLOOKUP","HOUR","HYPERLINK","HYPGEOM.DIST","HYPGEOMDIST","IF","IFERROR","IFNA","IFS","IMABS","IMAGINARY","IMARGUMENT","IMCONJUGATE","IMCOS","IMCOSH","IMCOT","IMCSC","IMCSCH","IMDIV","IMEXP","IMLN","IMLOG10","IMLOG2","IMPOWER","IMPRODUCT","IMREAL","IMSEC","IMSECH","IMSIN","IMSINH","IMSQRT","IMSUB","IMSUM","IMTAN","INDEX","INDIRECT","INFO","INT","INTERCEPT","INTRATE","IPMT","IRR","ISBLANK","ISERR","ISERROR","ISEVEN","ISFORMULA","ISLOGICAL","ISNA","ISNONTEXT","ISNUMBER","ISODD","ISREF","ISTEXT","ISO.CEILING","ISOWEEKNUM","ISPMT","JIS","KURT","LARGE","LCM","LEFT","LEFTB","LEN","LENB","LINEST","LN","LOG","LOG10","LOGEST","LOGINV","LOGNORM.DIST","LOGNORMDIST","LOGNORM.INV","LOOKUP","LOWER","MATCH","MAX","MAXA","MAXIFS","MDETERM","MDURATION","MEDIAN","MID","MIDBs","MIN","MINIFS","MINA","MINUTE","MINVERSE","MIRR","MMULT","MOD","MODE","MODE.MULT","MODE.SNGL","MONTH","MROUND","MULTINOMIAL","MUNIT","N","NA","NEGBINOM.DIST","NEGBINOMDIST","NETWORKDAYS","NETWORKDAYS.INTL","NOMINAL","NORM.DIST","NORMDIST","NORMINV","NORM.INV","NORM.S.DIST","NORMSDIST","NORM.S.INV","NORMSINV","NOT","NOW","NPER","NPV","NUMBERVALUE","OCT2BIN","OCT2DEC","OCT2HEX","ODD","ODDFPRICE","ODDFYIELD","ODDLPRICE","ODDLYIELD","OFFSET","OR","PDURATION","PEARSON","PERCENTILE.EXC","PERCENTILE.INC","PERCENTILE","PERCENTRANK.EXC","PERCENTRANK.INC","PERCENTRANK","PERMUT","PERMUTATIONA","PHI","PHONETIC","PI","PMT","POISSON.DIST","POISSON","POWER","PPMT","PRICE","PRICEDISC","PRICEMAT","PROB","PRODUCT","PROPER","PV","QUARTILE","QUARTILE.EXC","QUARTILE.INC","QUOTIENT","RADIANS","RAND","RANDBETWEEN","RANK.AVG","RANK.EQ","RANK","RATE","RECEIVED","REGISTER.ID","REPLACE","REPLACEB","REPT","RIGHT","RIGHTB","ROMAN","ROUND","ROUNDDOWN","ROUNDUP","ROW","ROWS","RRI","RSQ","RTD","SEARCH","SEARCHB","SEC","SECH","SECOND","SERIESSUM","SHEET","SHEETS","SIGN","SIN","SINH","SKEW","SKEW.P","SLN","SLOPE","SMALL","SQL.REQUEST","SQRT","SQRTPI","STANDARDIZE","STDEV","STDEV.P","STDEV.S","STDEVA","STDEVP","STDEVPA","STEYX","SUBSTITUTE","SUBTOTAL","SUM","SUMIF","SUMIFS","SUMPRODUCT","SUMSQ","SUMX2MY2","SUMX2PY2","SUMXMY2","SWITCH","SYD","T","TAN","TANH","TBILLEQ","TBILLPRICE","TBILLYIELD","T.DIST","T.DIST.2T","T.DIST.RT","TDIST","TEXT","TEXTJOIN","TIME","TIMEVALUE","T.INV","T.INV.2T","TINV","TODAY","TRANSPOSE","TREND","TRIM","TRIMMEAN","TRUE|0","TRUNC","T.TEST","TTEST","TYPE","UNICHAR","UNICODE","UPPER","VALUE","VAR","VAR.P","VAR.S","VARA","VARP","VARPA","VDB","VLOOKUP","WEBSERVICE","WEEKDAY","WEEKNUM","WEIBULL","WEIBULL.DIST","WORKDAY","WORKDAY.INTL","XIRR","XNPV","XOR","YEAR","YEARFRAC","YIELD","YIELDDISC","YIELDMAT","Z.TEST","ZTEST"]
diff --git a/resources/highlight.js/11.8.0/far.min.css b/resources/highlight.js/11.9.0/far.min.css
similarity index 100%
rename from resources/highlight.js/11.8.0/far.min.css
rename to resources/highlight.js/11.9.0/far.min.css
diff --git a/resources/highlight.js/11.8.0/fix.min.jsm b/resources/highlight.js/11.9.0/fix.min.jsm
similarity index 80%
rename from resources/highlight.js/11.8.0/fix.min.jsm
rename to resources/highlight.js/11.9.0/fix.min.jsm
index 04d16462..18631d86 100644
--- a/resources/highlight.js/11.8.0/fix.min.jsm
+++ b/resources/highlight.js/11.9.0/fix.min.jsm
@@ -1,4 +1,4 @@
-/*! `fix` grammar compiled for Highlight.js 11.8.0 */
+/*! `fix` grammar compiled for Highlight.js 11.9.0 */
(()=>{var e=(()=>{"use strict";return e=>({name:"FIX",contains:[{
begin:/[^\u2401\u0001]+/,end:/[\u2401\u0001]/,excludeEnd:!0,returnBegin:!0,
returnEnd:!1,contains:[{begin:/([^\u2401\u0001=]+)/,end:/=([^\u2401\u0001=]+)/,
diff --git a/resources/highlight.js/11.8.0/flix.min.jsm b/resources/highlight.js/11.9.0/flix.min.jsm
similarity index 83%
rename from resources/highlight.js/11.8.0/flix.min.jsm
rename to resources/highlight.js/11.9.0/flix.min.jsm
index 4f1bad36..59e74a21 100644
--- a/resources/highlight.js/11.8.0/flix.min.jsm
+++ b/resources/highlight.js/11.9.0/flix.min.jsm
@@ -1,4 +1,4 @@
-/*! `flix` grammar compiled for Highlight.js 11.8.0 */
+/*! `flix` grammar compiled for Highlight.js 11.9.0 */
(()=>{var e=(()=>{"use strict";return e=>({name:"Flix",keywords:{
keyword:["case","class","def","else","enum","if","impl","import","in","lat","rel","index","let","match","namespace","switch","type","yield","with"],
literal:["true","false"]},
diff --git a/resources/highlight.js/11.8.0/fortran.min.jsm b/resources/highlight.js/11.9.0/fortran.min.jsm
similarity index 97%
rename from resources/highlight.js/11.8.0/fortran.min.jsm
rename to resources/highlight.js/11.9.0/fortran.min.jsm
index 719ba884..d54fcc15 100644
--- a/resources/highlight.js/11.8.0/fortran.min.jsm
+++ b/resources/highlight.js/11.9.0/fortran.min.jsm
@@ -1,4 +1,4 @@
-/*! `fortran` grammar compiled for Highlight.js 11.8.0 */
+/*! `fortran` grammar compiled for Highlight.js 11.9.0 */
(()=>{var e=(()=>{"use strict";return e=>{const n=e.regex,a={
variants:[e.COMMENT("!","$",{relevance:0}),e.COMMENT("^C[ ]","$",{relevance:0
}),e.COMMENT("^C$","$",{relevance:0})]
diff --git a/resources/highlight.js/11.8.0/foundation.min.css b/resources/highlight.js/11.9.0/foundation.min.css
similarity index 100%
rename from resources/highlight.js/11.8.0/foundation.min.css
rename to resources/highlight.js/11.9.0/foundation.min.css
diff --git a/resources/highlight.js/11.8.0/fsharp.min.jsm b/resources/highlight.js/11.9.0/fsharp.min.jsm
similarity index 97%
rename from resources/highlight.js/11.8.0/fsharp.min.jsm
rename to resources/highlight.js/11.9.0/fsharp.min.jsm
index 1e2ef43d..60421011 100644
--- a/resources/highlight.js/11.8.0/fsharp.min.jsm
+++ b/resources/highlight.js/11.9.0/fsharp.min.jsm
@@ -1,4 +1,4 @@
-/*! `fsharp` grammar compiled for Highlight.js 11.8.0 */
+/*! `fsharp` grammar compiled for Highlight.js 11.9.0 */
(()=>{var e=(()=>{"use strict";function e(e){
return RegExp(e.replace(/[-/\\^$*+?.()|[\]{}]/g,"\\$&"),"m")}function n(e){
return e?"string"==typeof e?e:e.source:null}function t(e){return i("(?=",e,")")}
diff --git a/resources/highlight.js/11.8.0/gams.min.jsm b/resources/highlight.js/11.9.0/gams.min.jsm
similarity index 96%
rename from resources/highlight.js/11.8.0/gams.min.jsm
rename to resources/highlight.js/11.9.0/gams.min.jsm
index 2d51cbb8..621b520c 100644
--- a/resources/highlight.js/11.8.0/gams.min.jsm
+++ b/resources/highlight.js/11.9.0/gams.min.jsm
@@ -1,4 +1,4 @@
-/*! `gams` grammar compiled for Highlight.js 11.8.0 */
+/*! `gams` grammar compiled for Highlight.js 11.9.0 */
(()=>{var e=(()=>{"use strict";return e=>{const a=e.regex,n={
keyword:"abort acronym acronyms alias all and assign binary card diag display else eq file files for free ge gt if integer le loop lt maximizing minimizing model models ne negative no not option options or ord positive prod put putpage puttl repeat sameas semicont semiint smax smin solve sos1 sos2 sum system table then until using while xor yes",
literal:"eps inf na",
diff --git a/resources/highlight.js/11.8.0/gauss.min.jsm b/resources/highlight.js/11.9.0/gauss.min.jsm
similarity index 99%
rename from resources/highlight.js/11.8.0/gauss.min.jsm
rename to resources/highlight.js/11.9.0/gauss.min.jsm
index 2c12ba69..0c381ef9 100644
--- a/resources/highlight.js/11.8.0/gauss.min.jsm
+++ b/resources/highlight.js/11.9.0/gauss.min.jsm
@@ -1,4 +1,4 @@
-/*! `gauss` grammar compiled for Highlight.js 11.8.0 */
+/*! `gauss` grammar compiled for Highlight.js 11.9.0 */
(()=>{var e=(()=>{"use strict";return e=>{const t={
keyword:"bool break call callexe checkinterrupt clear clearg closeall cls comlog compile continue create debug declare delete disable dlibrary dllcall do dos ed edit else elseif enable end endfor endif endp endo errorlog errorlogat expr external fn for format goto gosub graph if keyword let lib library line load loadarray loadexe loadf loadk loadm loadp loads loadx local locate loopnextindex lprint lpwidth lshow matrix msym ndpclex new open output outwidth plot plotsym pop prcsn print printdos proc push retp return rndcon rndmod rndmult rndseed run save saveall screen scroll setarray show sparse stop string struct system trace trap threadfor threadendfor threadbegin threadjoin threadstat threadend until use while winprint ne ge le gt lt and xor or not eq eqv",
built_in:"abs acf aconcat aeye amax amean AmericanBinomCall AmericanBinomCall_Greeks AmericanBinomCall_ImpVol AmericanBinomPut AmericanBinomPut_Greeks AmericanBinomPut_ImpVol AmericanBSCall AmericanBSCall_Greeks AmericanBSCall_ImpVol AmericanBSPut AmericanBSPut_Greeks AmericanBSPut_ImpVol amin amult annotationGetDefaults annotationSetBkd annotationSetFont annotationSetLineColor annotationSetLineStyle annotationSetLineThickness annualTradingDays arccos arcsin areshape arrayalloc arrayindex arrayinit arraytomat asciiload asclabel astd astds asum atan atan2 atranspose axmargin balance band bandchol bandcholsol bandltsol bandrv bandsolpd bar base10 begwind besselj bessely beta box boxcox cdfBeta cdfBetaInv cdfBinomial cdfBinomialInv cdfBvn cdfBvn2 cdfBvn2e cdfCauchy cdfCauchyInv cdfChic cdfChii cdfChinc cdfChincInv cdfExp cdfExpInv cdfFc cdfFnc cdfFncInv cdfGam cdfGenPareto cdfHyperGeo cdfLaplace cdfLaplaceInv cdfLogistic cdfLogisticInv cdfmControlCreate cdfMvn cdfMvn2e cdfMvnce cdfMvne cdfMvt2e cdfMvtce cdfMvte cdfN cdfN2 cdfNc cdfNegBinomial cdfNegBinomialInv cdfNi cdfPoisson cdfPoissonInv cdfRayleigh cdfRayleighInv cdfTc cdfTci cdfTnc cdfTvn cdfWeibull cdfWeibullInv cdir ceil ChangeDir chdir chiBarSquare chol choldn cholsol cholup chrs close code cols colsf combinate combinated complex con cond conj cons ConScore contour conv convertsatostr convertstrtosa corrm corrms corrvc corrx corrxs cos cosh counts countwts crossprd crout croutp csrcol csrlin csvReadM csvReadSA cumprodc cumsumc curve cvtos datacreate datacreatecomplex datalist dataload dataloop dataopen datasave date datestr datestring datestrymd dayinyr dayofweek dbAddDatabase dbClose dbCommit dbCreateQuery dbExecQuery dbGetConnectOptions dbGetDatabaseName dbGetDriverName dbGetDrivers dbGetHostName dbGetLastErrorNum dbGetLastErrorText dbGetNumericalPrecPolicy dbGetPassword dbGetPort dbGetTableHeaders dbGetTables dbGetUserName dbHasFeature dbIsDriverAvailable dbIsOpen dbIsOpenError dbOpen dbQueryBindValue dbQueryClear dbQueryCols dbQueryExecPrepared dbQueryFetchAllM dbQueryFetchAllSA dbQueryFetchOneM dbQueryFetchOneSA dbQueryFinish dbQueryGetBoundValue dbQueryGetBoundValues dbQueryGetField dbQueryGetLastErrorNum dbQueryGetLastErrorText dbQueryGetLastInsertID dbQueryGetLastQuery dbQueryGetPosition dbQueryIsActive dbQueryIsForwardOnly dbQueryIsNull dbQueryIsSelect dbQueryIsValid dbQueryPrepare dbQueryRows dbQuerySeek dbQuerySeekFirst dbQuerySeekLast dbQuerySeekNext dbQuerySeekPrevious dbQuerySetForwardOnly dbRemoveDatabase dbRollback dbSetConnectOptions dbSetDatabaseName dbSetHostName dbSetNumericalPrecPolicy dbSetPort dbSetUserName dbTransaction DeleteFile delif delrows denseToSp denseToSpRE denToZero design det detl dfft dffti diag diagrv digamma doswin DOSWinCloseall DOSWinOpen dotfeq dotfeqmt dotfge dotfgemt dotfgt dotfgtmt dotfle dotflemt dotflt dotfltmt dotfne dotfnemt draw drop dsCreate dstat dstatmt dstatmtControlCreate dtdate dtday dttime dttodtv dttostr dttoutc dtvnormal dtvtodt dtvtoutc dummy dummybr dummydn eig eigh eighv eigv elapsedTradingDays endwind envget eof eqSolve eqSolvemt eqSolvemtControlCreate eqSolvemtOutCreate eqSolveset erf erfc erfccplx erfcplx error etdays ethsec etstr EuropeanBinomCall EuropeanBinomCall_Greeks EuropeanBinomCall_ImpVol EuropeanBinomPut EuropeanBinomPut_Greeks EuropeanBinomPut_ImpVol EuropeanBSCall EuropeanBSCall_Greeks EuropeanBSCall_ImpVol EuropeanBSPut EuropeanBSPut_Greeks EuropeanBSPut_ImpVol exctsmpl exec execbg exp extern eye fcheckerr fclearerr feq feqmt fflush fft ffti fftm fftmi fftn fge fgemt fgets fgetsa fgetsat fgetst fgt fgtmt fileinfo filesa fle flemt floor flt fltmt fmod fne fnemt fonts fopen formatcv formatnv fputs fputst fseek fstrerror ftell ftocv ftos ftostrC gamma gammacplx gammaii gausset gdaAppend gdaCreate gdaDStat gdaDStatMat gdaGetIndex gdaGetName gdaGetNames gdaGetOrders gdaGetType gdaGetTypes gdaGetVarInfo gdaIsCplx gdaLoad gdaPack gdaRead gdaReadByIndex gdaReadSome gdaReadSparse gdaReadStruct gdaReportVarInfo gdaSave gdaUpdate gdaUpdateAndPack gdaVars gdaWrite gdaWrite32 gdaWriteSome getarray getdims getf getGAUSShome getmatrix getmatrix4D getname getnamef getNextTradingDay getNextWeekDay getnr getorders getpath getPreviousTradingDay getPreviousWeekDay getRow getscalar3D getscalar4D getTrRow getwind glm gradcplx gradMT gradMTm gradMTT gradMTTm gradp graphprt graphset hasimag header headermt hess hessMT hessMTg hessMTgw hessMTm hessMTmw hessMTT hessMTTg hessMTTgw hessMTTm hessMTw hessp hist histf histp hsec imag indcv indexcat indices indices2 indicesf indicesfn indnv indsav integrate1d integrateControlCreate intgrat2 intgrat3 inthp1 inthp2 inthp3 inthp4 inthpControlCreate intquad1 intquad2 intquad3 intrleav intrleavsa intrsect intsimp inv invpd invswp iscplx iscplxf isden isinfnanmiss ismiss key keyav keyw lag lag1 lagn lapEighb lapEighi lapEighvb lapEighvi lapgEig lapgEigh lapgEighv lapgEigv lapgSchur lapgSvdcst lapgSvds lapgSvdst lapSvdcusv lapSvds lapSvdusv ldlp ldlsol linSolve listwise ln lncdfbvn lncdfbvn2 lncdfmvn lncdfn lncdfn2 lncdfnc lnfact lngammacplx lnpdfmvn lnpdfmvt lnpdfn lnpdft loadd loadstruct loadwind loess loessmt loessmtControlCreate log loglog logx logy lower lowmat lowmat1 ltrisol lu lusol machEpsilon make makevars makewind margin matalloc matinit mattoarray maxbytes maxc maxindc maxv maxvec mbesselei mbesselei0 mbesselei1 mbesseli mbesseli0 mbesseli1 meanc median mergeby mergevar minc minindc minv miss missex missrv moment momentd movingave movingaveExpwgt movingaveWgt nextindex nextn nextnevn nextwind ntos null null1 numCombinations ols olsmt olsmtControlCreate olsqr olsqr2 olsqrmt ones optn optnevn orth outtyp pacf packedToSp packr parse pause pdfCauchy pdfChi pdfExp pdfGenPareto pdfHyperGeo pdfLaplace pdfLogistic pdfn pdfPoisson pdfRayleigh pdfWeibull pi pinv pinvmt plotAddArrow plotAddBar plotAddBox plotAddHist plotAddHistF plotAddHistP plotAddPolar plotAddScatter plotAddShape plotAddTextbox plotAddTS plotAddXY plotArea plotBar plotBox plotClearLayout plotContour plotCustomLayout plotGetDefaults plotHist plotHistF plotHistP plotLayout plotLogLog plotLogX plotLogY plotOpenWindow plotPolar plotSave plotScatter plotSetAxesPen plotSetBar plotSetBarFill plotSetBarStacked plotSetBkdColor plotSetFill plotSetGrid plotSetLegend plotSetLineColor plotSetLineStyle plotSetLineSymbol plotSetLineThickness plotSetNewWindow plotSetTitle plotSetWhichYAxis plotSetXAxisShow plotSetXLabel plotSetXRange plotSetXTicInterval plotSetXTicLabel plotSetYAxisShow plotSetYLabel plotSetYRange plotSetZAxisShow plotSetZLabel plotSurface plotTS plotXY polar polychar polyeval polygamma polyint polymake polymat polymroot polymult polyroot pqgwin previousindex princomp printfm printfmt prodc psi putarray putf putvals pvCreate pvGetIndex pvGetParNames pvGetParVector pvLength pvList pvPack pvPacki pvPackm pvPackmi pvPacks pvPacksi pvPacksm pvPacksmi pvPutParVector pvTest pvUnpack QNewton QNewtonmt QNewtonmtControlCreate QNewtonmtOutCreate QNewtonSet QProg QProgmt QProgmtInCreate qqr qqre qqrep qr qre qrep qrsol qrtsol qtyr qtyre qtyrep quantile quantiled qyr qyre qyrep qz rank rankindx readr real reclassify reclassifyCuts recode recserar recsercp recserrc rerun rescale reshape rets rev rfft rffti rfftip rfftn rfftnp rfftp rndBernoulli rndBeta rndBinomial rndCauchy rndChiSquare rndCon rndCreateState rndExp rndGamma rndGeo rndGumbel rndHyperGeo rndi rndKMbeta rndKMgam rndKMi rndKMn rndKMnb rndKMp rndKMu rndKMvm rndLaplace rndLCbeta rndLCgam rndLCi rndLCn rndLCnb rndLCp rndLCu rndLCvm rndLogNorm rndMTu rndMVn rndMVt rndn rndnb rndNegBinomial rndp rndPoisson rndRayleigh rndStateSkip rndu rndvm rndWeibull rndWishart rotater round rows rowsf rref sampleData satostrC saved saveStruct savewind scale scale3d scalerr scalinfnanmiss scalmiss schtoc schur searchsourcepath seekr select selif seqa seqm setdif setdifsa setvars setvwrmode setwind shell shiftr sin singleindex sinh sleep solpd sortc sortcc sortd sorthc sorthcc sortind sortindc sortmc sortr sortrc spBiconjGradSol spChol spConjGradSol spCreate spDenseSubmat spDiagRvMat spEigv spEye spLDL spline spLU spNumNZE spOnes spreadSheetReadM spreadSheetReadSA spreadSheetWrite spScale spSubmat spToDense spTrTDense spTScalar spZeros sqpSolve sqpSolveMT sqpSolveMTControlCreate sqpSolveMTlagrangeCreate sqpSolveMToutCreate sqpSolveSet sqrt statements stdc stdsc stocv stof strcombine strindx strlen strput strrindx strsect strsplit strsplitPad strtodt strtof strtofcplx strtriml strtrimr strtrunc strtruncl strtruncpad strtruncr submat subscat substute subvec sumc sumr surface svd svd1 svd2 svdcusv svds svdusv sysstate tab tan tanh tempname time timedt timestr timeutc title tkf2eps tkf2ps tocart todaydt toeplitz token topolar trapchk trigamma trimr trunc type typecv typef union unionsa uniqindx uniqindxsa unique uniquesa upmat upmat1 upper utctodt utctodtv utrisol vals varCovMS varCovXS varget vargetl varmall varmares varput varputl vartypef vcm vcms vcx vcxs vec vech vecr vector vget view viewxyz vlist vnamecv volume vput vread vtypecv wait waitc walkindex where window writer xlabel xlsGetSheetCount xlsGetSheetSize xlsGetSheetTypes xlsMakeRange xlsReadM xlsReadSA xlsWrite xlsWriteM xlsWriteSA xpnd xtics xy xyz ylabel ytics zeros zeta zlabel ztics cdfEmpirical dot h5create h5open h5read h5readAttribute h5write h5writeAttribute ldl plotAddErrorBar plotAddSurface plotCDFEmpirical plotSetColormap plotSetContourLabels plotSetLegendFont plotSetTextInterpreter plotSetXTicCount plotSetYTicCount plotSetZLevels powerm strjoin sylvester strtrim",
diff --git a/resources/highlight.js/11.8.0/gcode.min.jsm b/resources/highlight.js/11.9.0/gcode.min.jsm
similarity index 89%
rename from resources/highlight.js/11.8.0/gcode.min.jsm
rename to resources/highlight.js/11.9.0/gcode.min.jsm
index 838ce3d3..568f1d7e 100644
--- a/resources/highlight.js/11.8.0/gcode.min.jsm
+++ b/resources/highlight.js/11.9.0/gcode.min.jsm
@@ -1,4 +1,4 @@
-/*! `gcode` grammar compiled for Highlight.js 11.8.0 */
+/*! `gcode` grammar compiled for Highlight.js 11.9.0 */
(()=>{var e=(()=>{"use strict";return e=>{const a=e.inherit(e.C_NUMBER_MODE,{
begin:"([-+]?((\\.\\d+)|(\\d+)(\\.\\d*)?))|"+e.C_NUMBER_RE
}),n=[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,e.COMMENT(/\(/,/\)/),a,e.inherit(e.APOS_STRING_MODE,{
diff --git a/resources/highlight.js/11.8.0/gherkin.min.jsm b/resources/highlight.js/11.9.0/gherkin.min.jsm
similarity index 84%
rename from resources/highlight.js/11.8.0/gherkin.min.jsm
rename to resources/highlight.js/11.9.0/gherkin.min.jsm
index d434a932..f1628cf9 100644
--- a/resources/highlight.js/11.8.0/gherkin.min.jsm
+++ b/resources/highlight.js/11.9.0/gherkin.min.jsm
@@ -1,4 +1,4 @@
-/*! `gherkin` grammar compiled for Highlight.js 11.8.0 */
+/*! `gherkin` grammar compiled for Highlight.js 11.9.0 */
(()=>{var e=(()=>{"use strict";return e=>({name:"Gherkin",aliases:["feature"],
keywords:"Feature Background Ability Business Need Scenario Scenarios Scenario Outline Scenario Template Examples Given And Then But When",
contains:[{className:"symbol",begin:"\\*",relevance:0},{className:"meta",
diff --git a/resources/highlight.js/11.8.0/github-dark-dimmed.min.css b/resources/highlight.js/11.9.0/github-dark-dimmed.min.css
similarity index 100%
rename from resources/highlight.js/11.8.0/github-dark-dimmed.min.css
rename to resources/highlight.js/11.9.0/github-dark-dimmed.min.css
diff --git a/resources/highlight.js/11.8.0/github-dark.min.css b/resources/highlight.js/11.9.0/github-dark.min.css
similarity index 100%
rename from resources/highlight.js/11.8.0/github-dark.min.css
rename to resources/highlight.js/11.9.0/github-dark.min.css
diff --git a/resources/highlight.js/11.8.0/github.min.css b/resources/highlight.js/11.9.0/github.min.css
similarity index 100%
rename from resources/highlight.js/11.8.0/github.min.css
rename to resources/highlight.js/11.9.0/github.min.css
diff --git a/resources/highlight.js/11.8.0/glsl.min.jsm b/resources/highlight.js/11.9.0/glsl.min.jsm
similarity index 99%
rename from resources/highlight.js/11.8.0/glsl.min.jsm
rename to resources/highlight.js/11.9.0/glsl.min.jsm
index d62c7b44..e5b8ea35 100644
--- a/resources/highlight.js/11.8.0/glsl.min.jsm
+++ b/resources/highlight.js/11.9.0/glsl.min.jsm
@@ -1,4 +1,4 @@
-/*! `glsl` grammar compiled for Highlight.js 11.8.0 */
+/*! `glsl` grammar compiled for Highlight.js 11.9.0 */
(()=>{var e=(()=>{"use strict";return e=>({name:"GLSL",keywords:{
keyword:"break continue discard do else for if return while switch case default attribute binding buffer ccw centroid centroid varying coherent column_major const cw depth_any depth_greater depth_less depth_unchanged early_fragment_tests equal_spacing flat fractional_even_spacing fractional_odd_spacing highp in index inout invariant invocations isolines layout line_strip lines lines_adjacency local_size_x local_size_y local_size_z location lowp max_vertices mediump noperspective offset origin_upper_left out packed patch pixel_center_integer point_mode points precise precision quads r11f_g11f_b10f r16 r16_snorm r16f r16i r16ui r32f r32i r32ui r8 r8_snorm r8i r8ui readonly restrict rg16 rg16_snorm rg16f rg16i rg16ui rg32f rg32i rg32ui rg8 rg8_snorm rg8i rg8ui rgb10_a2 rgb10_a2ui rgba16 rgba16_snorm rgba16f rgba16i rgba16ui rgba32f rgba32i rgba32ui rgba8 rgba8_snorm rgba8i rgba8ui row_major sample shared smooth std140 std430 stream triangle_strip triangles triangles_adjacency uniform varying vertices volatile writeonly",
type:"atomic_uint bool bvec2 bvec3 bvec4 dmat2 dmat2x2 dmat2x3 dmat2x4 dmat3 dmat3x2 dmat3x3 dmat3x4 dmat4 dmat4x2 dmat4x3 dmat4x4 double dvec2 dvec3 dvec4 float iimage1D iimage1DArray iimage2D iimage2DArray iimage2DMS iimage2DMSArray iimage2DRect iimage3D iimageBuffer iimageCube iimageCubeArray image1D image1DArray image2D image2DArray image2DMS image2DMSArray image2DRect image3D imageBuffer imageCube imageCubeArray int isampler1D isampler1DArray isampler2D isampler2DArray isampler2DMS isampler2DMSArray isampler2DRect isampler3D isamplerBuffer isamplerCube isamplerCubeArray ivec2 ivec3 ivec4 mat2 mat2x2 mat2x3 mat2x4 mat3 mat3x2 mat3x3 mat3x4 mat4 mat4x2 mat4x3 mat4x4 sampler1D sampler1DArray sampler1DArrayShadow sampler1DShadow sampler2D sampler2DArray sampler2DArrayShadow sampler2DMS sampler2DMSArray sampler2DRect sampler2DRectShadow sampler2DShadow sampler3D samplerBuffer samplerCube samplerCubeArray samplerCubeArrayShadow samplerCubeShadow image1D uimage1DArray uimage2D uimage2DArray uimage2DMS uimage2DMSArray uimage2DRect uimage3D uimageBuffer uimageCube uimageCubeArray uint usampler1D usampler1DArray usampler2D usampler2DArray usampler2DMS usampler2DMSArray usampler2DRect usampler3D samplerBuffer usamplerCube usamplerCubeArray uvec2 uvec3 uvec4 vec2 vec3 vec4 void",
diff --git a/resources/highlight.js/11.8.0/gml.min.css b/resources/highlight.js/11.9.0/gml.min.css
similarity index 100%
rename from resources/highlight.js/11.8.0/gml.min.css
rename to resources/highlight.js/11.9.0/gml.min.css
diff --git a/resources/highlight.js/11.8.0/gml.min.jsm b/resources/highlight.js/11.9.0/gml.min.jsm
similarity index 99%
rename from resources/highlight.js/11.8.0/gml.min.jsm
rename to resources/highlight.js/11.9.0/gml.min.jsm
index 619140f2..d0dfe195 100644
--- a/resources/highlight.js/11.8.0/gml.min.jsm
+++ b/resources/highlight.js/11.9.0/gml.min.jsm
@@ -1,4 +1,4 @@
-/*! `gml` grammar compiled for Highlight.js 11.8.0 */
+/*! `gml` grammar compiled for Highlight.js 11.9.0 */
(()=>{var e=(()=>{"use strict";return e=>({name:"GML",case_insensitive:!1,
keywords:{
keyword:["#endregion","#macro","#region","and","begin","break","case","constructor","continue","default","delete","div","do","else","end","enum","exit","for","function","globalvar","if","mod","not","or","repeat","return","switch","then","until","var","while","with","xor"],
diff --git a/resources/highlight.js/11.8.0/go.min.jsm b/resources/highlight.js/11.9.0/go.min.jsm
similarity index 92%
rename from resources/highlight.js/11.8.0/go.min.jsm
rename to resources/highlight.js/11.9.0/go.min.jsm
index 8efbcffe..475fb8aa 100644
--- a/resources/highlight.js/11.8.0/go.min.jsm
+++ b/resources/highlight.js/11.9.0/go.min.jsm
@@ -1,4 +1,4 @@
-/*! `go` grammar compiled for Highlight.js 11.8.0 */
+/*! `go` grammar compiled for Highlight.js 11.9.0 */
(()=>{var e=(()=>{"use strict";return e=>{const n={
keyword:["break","case","chan","const","continue","default","defer","else","fallthrough","for","func","go","goto","if","import","interface","map","package","range","return","select","struct","switch","type","var"],
type:["bool","byte","complex64","complex128","error","float32","float64","int8","int16","int32","int64","string","uint8","uint16","uint32","uint64","int","uint","uintptr","rune"],
diff --git a/resources/highlight.js/11.8.0/golo.min.jsm b/resources/highlight.js/11.9.0/golo.min.jsm
similarity index 90%
rename from resources/highlight.js/11.8.0/golo.min.jsm
rename to resources/highlight.js/11.9.0/golo.min.jsm
index b69e5ce2..6398acac 100644
--- a/resources/highlight.js/11.8.0/golo.min.jsm
+++ b/resources/highlight.js/11.9.0/golo.min.jsm
@@ -1,4 +1,4 @@
-/*! `golo` grammar compiled for Highlight.js 11.8.0 */
+/*! `golo` grammar compiled for Highlight.js 11.9.0 */
(()=>{var e=(()=>{"use strict";return e=>({name:"Golo",keywords:{
keyword:["println","readln","print","import","module","function","local","return","let","var","while","for","foreach","times","in","case","when","match","with","break","continue","augment","augmentation","each","find","filter","reduce","if","then","else","otherwise","try","catch","finally","raise","throw","orIfNull","DynamicObject|10","DynamicVariable","struct","Observable","map","set","vector","list","array"],
literal:["true","false","null"]},
diff --git a/resources/highlight.js/11.8.0/googlecode.min.css b/resources/highlight.js/11.9.0/googlecode.min.css
similarity index 100%
rename from resources/highlight.js/11.8.0/googlecode.min.css
rename to resources/highlight.js/11.9.0/googlecode.min.css
diff --git a/resources/highlight.js/11.8.0/gradient-dark.min.css b/resources/highlight.js/11.9.0/gradient-dark.min.css
similarity index 100%
rename from resources/highlight.js/11.8.0/gradient-dark.min.css
rename to resources/highlight.js/11.9.0/gradient-dark.min.css
diff --git a/resources/highlight.js/11.8.0/gradient-light.min.css b/resources/highlight.js/11.9.0/gradient-light.min.css
similarity index 100%
rename from resources/highlight.js/11.8.0/gradient-light.min.css
rename to resources/highlight.js/11.9.0/gradient-light.min.css
diff --git a/resources/highlight.js/11.8.0/gradle.min.jsm b/resources/highlight.js/11.9.0/gradle.min.jsm
similarity index 94%
rename from resources/highlight.js/11.8.0/gradle.min.jsm
rename to resources/highlight.js/11.9.0/gradle.min.jsm
index a96146f6..640c9655 100644
--- a/resources/highlight.js/11.8.0/gradle.min.jsm
+++ b/resources/highlight.js/11.9.0/gradle.min.jsm
@@ -1,4 +1,4 @@
-/*! `gradle` grammar compiled for Highlight.js 11.8.0 */
+/*! `gradle` grammar compiled for Highlight.js 11.9.0 */
(()=>{var e=(()=>{"use strict";return e=>({name:"Gradle",case_insensitive:!0,
keywords:["task","project","allprojects","subprojects","artifacts","buildscript","configurations","dependencies","repositories","sourceSets","description","delete","from","into","include","exclude","source","classpath","destinationDir","includes","options","sourceCompatibility","targetCompatibility","group","flatDir","doLast","doFirst","flatten","todir","fromdir","ant","def","abstract","break","case","catch","continue","default","do","else","extends","final","finally","for","if","implements","instanceof","native","new","private","protected","public","return","static","switch","synchronized","throw","throws","transient","try","volatile","while","strictfp","package","import","false","null","super","this","true","antlrtask","checkstyle","codenarc","copy","boolean","byte","char","class","double","float","int","interface","long","short","void","compile","runTime","file","fileTree","abs","any","append","asList","asWritable","call","collect","compareTo","count","div","dump","each","eachByte","eachFile","eachLine","every","find","findAll","flatten","getAt","getErr","getIn","getOut","getText","grep","immutable","inject","inspect","intersect","invokeMethods","isCase","join","leftShift","minus","multiply","newInputStream","newOutputStream","newPrintWriter","newReader","newWriter","next","plus","pop","power","previous","print","println","push","putAt","read","readBytes","readLines","reverse","reverseEach","round","size","sort","splitEachLine","step","subMap","times","toInteger","toList","tokenize","upto","waitForOrKill","withPrintWriter","withReader","withStream","withWriter","withWriterAppend","write","writeLine"],
contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,e.NUMBER_MODE,e.REGEXP_MODE]
diff --git a/resources/highlight.js/11.8.0/grayscale.min.css b/resources/highlight.js/11.9.0/grayscale.min.css
similarity index 100%
rename from resources/highlight.js/11.8.0/grayscale.min.css
rename to resources/highlight.js/11.9.0/grayscale.min.css
diff --git a/resources/highlight.js/11.8.0/groovy.min.jsm b/resources/highlight.js/11.9.0/groovy.min.jsm
similarity index 85%
rename from resources/highlight.js/11.8.0/groovy.min.jsm
rename to resources/highlight.js/11.9.0/groovy.min.jsm
index 252d886b..d4a092e4 100644
--- a/resources/highlight.js/11.8.0/groovy.min.jsm
+++ b/resources/highlight.js/11.9.0/groovy.min.jsm
@@ -1,4 +1,4 @@
-/*! `groovy` grammar compiled for Highlight.js 11.8.0 */
+/*! `groovy` grammar compiled for Highlight.js 11.9.0 */
(()=>{var e=(()=>{"use strict";function e(e,a={}){return a.variants=e,a}
return a=>{
const n=a.regex,t="[A-Za-z0-9_$]+",r=e([a.C_LINE_COMMENT_MODE,a.C_BLOCK_COMMENT_MODE,a.COMMENT("/\\*\\*","\\*/",{
@@ -8,11 +8,11 @@ contains:[a.BACKSLASH_ESCAPE]
},i=e([a.BINARY_NUMBER_MODE,a.C_NUMBER_MODE]),l=e([{begin:/"""/,end:/"""/},{
begin:/'''/,end:/'''/},{begin:"\\$/",end:"/\\$",relevance:10
},a.APOS_STRING_MODE,a.QUOTE_STRING_MODE],{className:"string"}),c={
-match:[/(class|interface|trait|enum|extends|implements)/,/\s+/,a.UNDERSCORE_IDENT_RE],
+match:[/(class|interface|trait|enum|record|extends|implements)/,/\s+/,a.UNDERSCORE_IDENT_RE],
scope:{1:"keyword",3:"title.class"}};return{name:"Groovy",keywords:{
"variable.language":"this super",literal:"true false null",
type:["byte","short","char","int","long","boolean","float","double","void"],
-keyword:["def","as","in","assert","trait","abstract","static","volatile","transient","public","private","protected","synchronized","final","class","interface","enum","if","else","for","while","switch","case","break","default","continue","throw","throws","try","catch","finally","implements","extends","new","import","package","return","instanceof"]
+keyword:["def","as","in","assert","trait","abstract","static","volatile","transient","public","private","protected","synchronized","final","class","interface","enum","if","else","for","while","switch","case","break","default","continue","throw","throws","try","catch","finally","implements","extends","new","import","package","return","instanceof","var"]
},contains:[a.SHEBANG({binary:"groovy",relevance:10}),r,l,s,i,c,{
className:"meta",begin:"@[A-Za-z]+",relevance:0},{className:"attr",
begin:t+"[ \t]*:",relevance:0},{begin:/\?/,end:/:/,relevance:0,
diff --git a/resources/highlight.js/11.8.0/haml.min.jsm b/resources/highlight.js/11.9.0/haml.min.jsm
similarity index 92%
rename from resources/highlight.js/11.8.0/haml.min.jsm
rename to resources/highlight.js/11.9.0/haml.min.jsm
index 3bee9feb..0f355410 100644
--- a/resources/highlight.js/11.8.0/haml.min.jsm
+++ b/resources/highlight.js/11.9.0/haml.min.jsm
@@ -1,4 +1,4 @@
-/*! `haml` grammar compiled for Highlight.js 11.8.0 */
+/*! `haml` grammar compiled for Highlight.js 11.9.0 */
(()=>{var e=(()=>{"use strict";return e=>({name:"HAML",case_insensitive:!0,
contains:[{className:"meta",
begin:"^!!!( (5|1\\.1|Strict|Frameset|Basic|Mobile|RDFa|XML\\b.*))?$",
diff --git a/resources/highlight.js/11.8.0/handlebars.min.jsm b/resources/highlight.js/11.9.0/handlebars.min.jsm
similarity index 95%
rename from resources/highlight.js/11.8.0/handlebars.min.jsm
rename to resources/highlight.js/11.9.0/handlebars.min.jsm
index 45c0ddcc..27dbe080 100644
--- a/resources/highlight.js/11.8.0/handlebars.min.jsm
+++ b/resources/highlight.js/11.9.0/handlebars.min.jsm
@@ -1,4 +1,4 @@
-/*! `handlebars` grammar compiled for Highlight.js 11.8.0 */
+/*! `handlebars` grammar compiled for Highlight.js 11.9.0 */
(()=>{var e=(()=>{"use strict";return e=>{const a=e.regex,n={
$pattern:/[\w.\/]+/,
built_in:["action","bindattr","collection","component","concat","debugger","each","each-in","get","hash","if","in","input","link-to","loc","log","lookup","mut","outlet","partial","query-params","render","template","textarea","unbound","unless","view","with","yield"]
diff --git a/resources/highlight.js/11.9.0/haskell.min.jsm b/resources/highlight.js/11.9.0/haskell.min.jsm
new file mode 100644
index 00000000..02bf796c
--- /dev/null
+++ b/resources/highlight.js/11.9.0/haskell.min.jsm
@@ -0,0 +1,32 @@
+/*! `haskell` grammar compiled for Highlight.js 11.9.0 */
+(()=>{var e=(()=>{"use strict";return e=>{
+const n="([0-9]_*)+",a="([0-9a-fA-F]_*)+",i="([!#$%&*+.\\/<=>?@\\\\^~-]|(?!([(),;\\[\\]`|{}]|[_:\"']))(\\p{S}|\\p{P}))",s={
+variants:[e.COMMENT("--+","$"),e.COMMENT(/\{-/,/-\}/,{contains:["self"]})]},l={
+className:"meta",begin:/\{-#/,end:/#-\}/},t={className:"meta",begin:"^#",end:"$"
+},c={className:"type",begin:"\\b[A-Z][\\w']*",relevance:0},r={begin:"\\(",
+end:"\\)",illegal:'"',contains:[l,t,{className:"type",
+begin:"\\b[A-Z][\\w]*(\\((\\.\\.|,|\\w+)\\))?"},e.inherit(e.TITLE_MODE,{
+begin:"[_a-z][\\w']*"}),s]},o={className:"number",relevance:0,variants:[{
+match:`\\b(${n})(\\.(${n}))?([eE][+-]?(${n}))?\\b`},{
+match:`\\b0[xX]_*(${a})(\\.(${a}))?([pP][+-]?(${n}))?\\b`},{
+match:"\\b0[oO](([0-7]_*)+)\\b"},{match:"\\b0[bB](([01]_*)+)\\b"}]};return{
+name:"Haskell",aliases:["hs"],
+keywords:"let in if then else case of where do module import hiding qualified type data newtype deriving class instance as default infix infixl infixr foreign export ccall stdcall cplusplus jvm dotnet safe unsafe family forall mdo proc rec",
+unicodeRegex:!0,contains:[{beginKeywords:"module",end:"where",
+keywords:"module where",contains:[r,s],illegal:"\\W\\.|;"},{
+begin:"\\bimport\\b",end:"$",keywords:"import qualified as hiding",
+contains:[r,s],illegal:"\\W\\.|;"},{className:"class",
+begin:"^(\\s*)?(class|instance)\\b",end:"where",
+keywords:"class family instance where",contains:[c,r,s]},{className:"class",
+begin:"\\b(data|(new)?type)\\b",end:"$",
+keywords:"data family type newtype deriving",contains:[l,c,r,{begin:/\{/,
+end:/\}/,contains:r.contains},s]},{beginKeywords:"default",end:"$",
+contains:[c,r,s]},{beginKeywords:"infix infixl infixr",end:"$",
+contains:[e.C_NUMBER_MODE,s]},{begin:"\\bforeign\\b",end:"$",
+keywords:"foreign import export ccall stdcall cplusplus jvm dotnet safe unsafe",
+contains:[c,e.QUOTE_STRING_MODE,s]},{className:"meta",
+begin:"#!\\/usr\\/bin\\/env runhaskell",end:"$"},l,t,{scope:"string",
+begin:/'(?=\\?.')/,end:/'/,contains:[{scope:"char.escape",match:/\\./}]
+},e.QUOTE_STRING_MODE,o,c,e.inherit(e.TITLE_MODE,{begin:"^[_a-z][\\w']*"}),{
+begin:`(?!-)${i}--+|--+(?!-)${i}`},s,{begin:"->|<-"}]}}})()
+;hljs.registerLanguage("haskell",e)})();
\ No newline at end of file
diff --git a/resources/highlight.js/11.9.0/haxe.min.jsm b/resources/highlight.js/11.9.0/haxe.min.jsm
new file mode 100644
index 00000000..506e0867
--- /dev/null
+++ b/resources/highlight.js/11.9.0/haxe.min.jsm
@@ -0,0 +1,29 @@
+/*! `haxe` grammar compiled for Highlight.js 11.9.0 */
+(()=>{var e=(()=>{"use strict";return e=>({name:"Haxe",aliases:["hx"],keywords:{
+keyword:"abstract break case cast catch continue default do dynamic else enum extern final for function here if import in inline is macro never new override package private get set public return static super switch this throw trace try typedef untyped using var while Int Float String Bool Dynamic Void Array ",
+built_in:"trace this",literal:"true false null _"},contains:[{
+className:"string",begin:"'",end:"'",contains:[e.BACKSLASH_ESCAPE,{
+className:"subst",begin:/\$\{/,end:/\}/},{className:"subst",begin:/\$/,
+end:/\W\}/}]},e.QUOTE_STRING_MODE,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,{
+className:"number",
+begin:/(-?)(\b0[xX][a-fA-F0-9_]+|(\b\d+(\.[\d_]*)?|\.[\d_]+)(([eE][-+]?\d+)|i32|u32|i64|f64)?)/,
+relevance:0},{className:"variable",begin:"\\$[a-zA-Z_$][a-zA-Z0-9_$]*"},{
+className:"meta",begin:/@:?/,end:/\(|$/,excludeEnd:!0},{className:"meta",
+begin:"#",end:"$",keywords:{keyword:"if else elseif end error"}},{
+className:"type",begin:/:[ \t]*/,end:/[^A-Za-z0-9_ \t\->]/,excludeBegin:!0,
+excludeEnd:!0,relevance:0},{className:"type",begin:/:[ \t]*/,end:/\W/,
+excludeBegin:!0,excludeEnd:!0},{className:"type",begin:/new */,end:/\W/,
+excludeBegin:!0,excludeEnd:!0},{className:"title.class",beginKeywords:"enum",
+end:/\{/,contains:[e.TITLE_MODE]},{className:"title.class",
+begin:"\\babstract\\b(?=\\s*"+e.IDENT_RE+"\\s*\\()",end:/[\{$]/,contains:[{
+className:"type",begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0},{
+className:"type",begin:/from +/,end:/\W/,excludeBegin:!0,excludeEnd:!0},{
+className:"type",begin:/to +/,end:/\W/,excludeBegin:!0,excludeEnd:!0
+},e.TITLE_MODE],keywords:{keyword:"abstract from to"}},{className:"title.class",
+begin:/\b(class|interface) +/,end:/[\{$]/,excludeEnd:!0,
+keywords:"class interface",contains:[{className:"keyword",
+begin:/\b(extends|implements) +/,keywords:"extends implements",contains:[{
+className:"type",begin:e.IDENT_RE,relevance:0}]},e.TITLE_MODE]},{
+className:"title.function",beginKeywords:"function",end:/\(/,excludeEnd:!0,
+illegal:/\S/,contains:[e.TITLE_MODE]}],illegal:/<\//})})()
+;hljs.registerLanguage("haxe",e)})();
\ No newline at end of file
diff --git a/resources/highlight.js/11.8.0/highlight.min.jsm b/resources/highlight.js/11.9.0/highlight.min.jsm
similarity index 93%
rename from resources/highlight.js/11.8.0/highlight.min.jsm
rename to resources/highlight.js/11.9.0/highlight.min.jsm
index cf572403..5d699ae6 100644
--- a/resources/highlight.js/11.8.0/highlight.min.jsm
+++ b/resources/highlight.js/11.9.0/highlight.min.jsm
@@ -1,5 +1,5 @@
/*!
- Highlight.js v11.8.0 (git: 65687a907b)
+ Highlight.js v11.9.0 (git: f47103d4f1)
(c) 2006-2023 undefined and other contributors
License: BSD-3-Clause
*/
@@ -64,24 +64,24 @@ end:/(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):/,excludeBegin:!0,relevance:0})
;const r=m("I","a","is","so","us","to","at","if","in","it","on",/[A-Za-z]+['](d|ve|re|ll|t|s|n)/,/[A-Za-z]+[-][a-z]+/,/[A-Za-z][a-z]{2,}/)
;return i.contains.push({begin:b(/[ ]+/,"(",r,/[.]?[:]?([.][ ]|[ ])/,"){3}")}),i
},M=x("//","$"),S=x("/\\*","\\*/"),A=x("#","$");var C=Object.freeze({
-__proto__:null,MATCH_NOTHING_RE:/\b\B/,IDENT_RE:f,UNDERSCORE_IDENT_RE:E,
-NUMBER_RE:y,C_NUMBER_RE:N,BINARY_NUMBER_RE:w,
+__proto__:null,APOS_STRING_MODE:O,BACKSLASH_ESCAPE:v,BINARY_NUMBER_MODE:{
+scope:"number",begin:w,relevance:0},BINARY_NUMBER_RE:w,COMMENT:x,
+C_BLOCK_COMMENT_MODE:S,C_LINE_COMMENT_MODE:M,C_NUMBER_MODE:{scope:"number",
+begin:N,relevance:0},C_NUMBER_RE:N,END_SAME_AS_BEGIN:e=>Object.assign(e,{
+"on:begin":(e,n)=>{n.data._beginMatch=e[1]},"on:end":(e,n)=>{
+n.data._beginMatch!==e[1]&&n.ignoreMatch()}}),HASH_COMMENT_MODE:A,IDENT_RE:f,
+MATCH_NOTHING_RE:/\b\B/,METHOD_GUARD:{begin:"\\.\\s*"+E,relevance:0},
+NUMBER_MODE:{scope:"number",begin:y,relevance:0},NUMBER_RE:y,
+PHRASAL_WORDS_MODE:{
+begin:/\b(a|an|the|are|I'm|isn't|don't|doesn't|won't|but|just|should|pretty|simply|enough|gonna|going|wtf|so|such|will|you|your|they|like|more)\b/
+},QUOTE_STRING_MODE:k,REGEXP_MODE:{scope:"regexp",begin:/\/(?=[^/\n]*\/)/,
+end:/\/[gimuy]*/,contains:[v,{begin:/\[/,end:/\]/,relevance:0,contains:[v]}]},
RE_STARTERS_RE:"!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~",
SHEBANG:(e={})=>{const n=/^#![ ]*\//
;return e.binary&&(e.begin=b(n,/.*\b/,e.binary,/\b.*/)),a({scope:"meta",begin:n,
end:/$/,relevance:0,"on:begin":(e,n)=>{0!==e.index&&n.ignoreMatch()}},e)},
-BACKSLASH_ESCAPE:v,APOS_STRING_MODE:O,QUOTE_STRING_MODE:k,PHRASAL_WORDS_MODE:{
-begin:/\b(a|an|the|are|I'm|isn't|don't|doesn't|won't|but|just|should|pretty|simply|enough|gonna|going|wtf|so|such|will|you|your|they|like|more)\b/
-},COMMENT:x,C_LINE_COMMENT_MODE:M,C_BLOCK_COMMENT_MODE:S,HASH_COMMENT_MODE:A,
-NUMBER_MODE:{scope:"number",begin:y,relevance:0},C_NUMBER_MODE:{scope:"number",
-begin:N,relevance:0},BINARY_NUMBER_MODE:{scope:"number",begin:w,relevance:0},
-REGEXP_MODE:{begin:/(?=\/[^/\n]*\/)/,contains:[{scope:"regexp",begin:/\//,
-end:/\/[gimuy]*/,illegal:/\n/,contains:[v,{begin:/\[/,end:/\]/,relevance:0,
-contains:[v]}]}]},TITLE_MODE:{scope:"title",begin:f,relevance:0},
-UNDERSCORE_TITLE_MODE:{scope:"title",begin:E,relevance:0},METHOD_GUARD:{
-begin:"\\.\\s*"+E,relevance:0},END_SAME_AS_BEGIN:e=>Object.assign(e,{
-"on:begin":(e,n)=>{n.data._beginMatch=e[1]},"on:end":(e,n)=>{
-n.data._beginMatch!==e[1]&&n.ignoreMatch()}})});function T(e,n){
+TITLE_MODE:{scope:"title",begin:f,relevance:0},UNDERSCORE_IDENT_RE:E,
+UNDERSCORE_TITLE_MODE:{scope:"title",begin:E,relevance:0}});function T(e,n){
"."===e.input[e.index-1]&&n.ignoreMatch()}function R(e,n){
void 0!==e.className&&(e.scope=e.className,delete e.className)}function D(e,n){
n&&e.beginKeywords&&(e.begin="\\b("+e.beginKeywords.split(" ").join("|")+")(?!\\.)(?=\\b|\\s)",
@@ -104,7 +104,7 @@ Object.assign(a,U(e[t],n,t))})),a;function i(e,t){
n&&(t=t.map((e=>e.toLowerCase()))),t.forEach((n=>{const t=n.split("|")
;a[t[0]]=[e,j(t[0],t[1])]}))}}function j(e,n){
return n?Number(n):(e=>z.includes(e.toLowerCase()))(e)?0:1}const P={},K=e=>{
-console.error(e)},q=(e,...n)=>{console.log("WARN: "+e,...n)},H=(e,n)=>{
+console.error(e)},H=(e,...n)=>{console.log("WARN: "+e,...n)},q=(e,n)=>{
P[`${e}/${n}`]||(console.log(`Deprecated as of ${e}. ${n}`),P[`${e}/${n}`]=!0)
},G=Error();function Z(e,n,{key:t}){let a=0;const i=e[t],r={},s={}
;for(let e=1;e<=n.length;e++)s[e+a]=i[e],r[e+a]=!0,a+=p(n[e-1])
@@ -180,8 +180,8 @@ languageDetectRe:/\blang(?:uage)?-([\w-]+)\b/i,classPrefix:"hljs-",
cssSelector:"pre code",languages:null,__emitter:l};function _(e){
return p.noHighlightRe.test(e)}function h(e,n,t){let a="",i=""
;"object"==typeof n?(a=e,
-t=n.ignoreIllegals,i=n.language):(H("10.7.0","highlight(lang, code, ...args) has been deprecated."),
-H("10.7.0","Please use highlight(code, options) instead.\nhttps://github.com/highlightjs/highlight.js/issues/2277"),
+t=n.ignoreIllegals,i=n.language):(q("10.7.0","highlight(lang, code, ...args) has been deprecated."),
+q("10.7.0","Please use highlight(code, options) instead.\nhttps://github.com/highlightjs/highlight.js/issues/2277"),
i=e,a=n),void 0===t&&(t=!0);const r={code:a,language:i};x("before:highlight",r)
;const s=r.result?r.result:f(r.language,r.code,t)
;return s.code=r.code,x("after:highlight",s),s}function f(e,t,i,r){
@@ -258,16 +258,17 @@ if(e.relevance!==n.relevance)return n.relevance-e.relevance
;return l.secondBest=o,l}function y(e){let n=null;const t=(e=>{
let n=e.className+" ";n+=e.parentNode?e.parentNode.className:""
;const t=p.languageDetectRe.exec(n);if(t){const n=v(t[1])
-;return n||(q(o.replace("{}",t[1])),
-q("Falling back to no-highlight mode for this block.",e)),n?t[1]:"no-highlight"}
+;return n||(H(o.replace("{}",t[1])),
+H("Falling back to no-highlight mode for this block.",e)),n?t[1]:"no-highlight"}
return n.split(/\s+/).find((e=>_(e)||v(e)))})(e);if(_(t))return
;if(x("before:highlightElement",{el:e,language:t
-}),e.children.length>0&&(p.ignoreUnescapedHTML||(console.warn("One of your code blocks includes unescaped HTML. This is a potentially serious security risk."),
+}),e.dataset.highlighted)return void console.log("Element previously highlighted. To highlight again, first unset `dataset.highlighted`.",e)
+;if(e.children.length>0&&(p.ignoreUnescapedHTML||(console.warn("One of your code blocks includes unescaped HTML. This is a potentially serious security risk."),
console.warn("https://github.com/highlightjs/highlight.js/wiki/security"),
console.warn("The element with unescaped HTML:"),
console.warn(e)),p.throwUnescapedHTML))throw new V("One of your code blocks includes unescaped HTML.",e.innerHTML)
;n=e;const a=n.textContent,r=t?h(a,{language:t,ignoreIllegals:!0}):E(a)
-;e.innerHTML=r.value,((e,n,t)=>{const a=n&&i[n]||t
+;e.innerHTML=r.value,e.dataset.highlighted="yes",((e,n,t)=>{const a=n&&i[n]||t
;e.classList.add("hljs"),e.classList.add("language-"+a)
})(e,t,r.language),e.result={language:r.language,re:r.relevance,
relevance:r.relevance},r.secondBest&&(e.secondBest={
@@ -282,12 +283,12 @@ e[t]&&e[t](n)}))}
"undefined"!=typeof window&&window.addEventListener&&window.addEventListener("DOMContentLoaded",(()=>{
N&&w()}),!1),Object.assign(t,{highlight:h,highlightAuto:E,highlightAll:w,
highlightElement:y,
-highlightBlock:e=>(H("10.7.0","highlightBlock will be removed entirely in v12.0"),
-H("10.7.0","Please use highlightElement now."),y(e)),configure:e=>{p=Y(p,e)},
+highlightBlock:e=>(q("10.7.0","highlightBlock will be removed entirely in v12.0"),
+q("10.7.0","Please use highlightElement now."),y(e)),configure:e=>{p=Y(p,e)},
initHighlighting:()=>{
-w(),H("10.6.0","initHighlighting() deprecated. Use highlightAll() now.")},
+w(),q("10.6.0","initHighlighting() deprecated. Use highlightAll() now.")},
initHighlightingOnLoad:()=>{
-w(),H("10.6.0","initHighlightingOnLoad() deprecated. Use highlightAll() now.")
+w(),q("10.6.0","initHighlightingOnLoad() deprecated. Use highlightAll() now.")
},registerLanguage:(e,n)=>{let i=null;try{i=n(t)}catch(n){
if(K("Language definition for '{}' could not be registered.".replace("{}",e)),
!s)throw n;K(n),i=c}
@@ -301,7 +302,7 @@ e["before:highlightBlock"](Object.assign({block:n.el},n))
}),e["after:highlightBlock"]&&!e["after:highlightElement"]&&(e["after:highlightElement"]=n=>{
e["after:highlightBlock"](Object.assign({block:n.el},n))})})(e),r.push(e)},
removePlugin:e=>{const n=r.indexOf(e);-1!==n&&r.splice(n,1)}}),t.debugMode=()=>{
-s=!1},t.safeMode=()=>{s=!0},t.versionString="11.8.0",t.regex={concat:b,
+s=!1},t.safeMode=()=>{s=!0},t.versionString="11.9.0",t.regex={concat:b,
lookahead:d,either:m,optional:u,anyNumberOfTimes:g}
;for(const n in C)"object"==typeof C[n]&&e(C[n]);return Object.assign(t,C),t
},te=ne({});te.newInstance=()=>ne({});var ae=te;const ie=e=>({IMPORTANT:{
@@ -312,7 +313,7 @@ ATTRIBUTE_SELECTOR_MODE:{scope:"selector-attr",begin:/\[/,end:/\]/,illegal:"$",
contains:[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]},CSS_NUMBER_MODE:{
scope:"number",
begin:e.NUMBER_RE+"(%|em|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc|px|deg|grad|rad|turn|s|ms|Hz|kHz|dpi|dpcm|dppx)?",
-relevance:0},CSS_VARIABLE:{className:"attr",begin:/--[A-Za-z][A-Za-z0-9_-]*/}
+relevance:0},CSS_VARIABLE:{className:"attr",begin:/--[A-Za-z_][A-Za-z0-9_-]*/}
}),re=["a","abbr","address","article","aside","audio","b","blockquote","body","button","canvas","caption","cite","code","dd","del","details","dfn","div","dl","dt","em","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","header","hgroup","html","i","iframe","img","input","ins","kbd","label","legend","li","main","mark","menu","nav","object","ol","p","q","quote","samp","section","span","strong","summary","sup","table","tbody","td","textarea","tfoot","th","thead","time","tr","ul","var","video"],se=["any-hover","any-pointer","aspect-ratio","color","color-gamut","color-index","device-aspect-ratio","device-height","device-width","display-mode","forced-colors","grid","height","hover","inverted-colors","monochrome","orientation","overflow-block","overflow-inline","pointer","prefers-color-scheme","prefers-contrast","prefers-reduced-motion","prefers-reduced-transparency","resolution","scan","scripting","update","width","min-width","max-width","min-height","max-height"],oe=["active","any-link","blank","checked","current","default","defined","dir","disabled","drop","empty","enabled","first","first-child","first-of-type","fullscreen","future","focus","focus-visible","focus-within","has","host","host-context","hover","indeterminate","in-range","invalid","is","lang","last-child","last-of-type","left","link","local-link","not","nth-child","nth-col","nth-last-child","nth-last-col","nth-last-of-type","nth-of-type","only-child","only-of-type","optional","out-of-range","past","placeholder-shown","read-only","read-write","required","right","root","scope","target","target-within","user-invalid","valid","visited","where"],le=["after","backdrop","before","cue","cue-region","first-letter","first-line","grammar-error","marker","part","placeholder","selection","slotted","spelling-error"],ce=["align-content","align-items","align-self","all","animation","animation-delay","animation-direction","animation-duration","animation-fill-mode","animation-iteration-count","animation-name","animation-play-state","animation-timing-function","backface-visibility","background","background-attachment","background-blend-mode","background-clip","background-color","background-image","background-origin","background-position","background-repeat","background-size","block-size","border","border-block","border-block-color","border-block-end","border-block-end-color","border-block-end-style","border-block-end-width","border-block-start","border-block-start-color","border-block-start-style","border-block-start-width","border-block-style","border-block-width","border-bottom","border-bottom-color","border-bottom-left-radius","border-bottom-right-radius","border-bottom-style","border-bottom-width","border-collapse","border-color","border-image","border-image-outset","border-image-repeat","border-image-slice","border-image-source","border-image-width","border-inline","border-inline-color","border-inline-end","border-inline-end-color","border-inline-end-style","border-inline-end-width","border-inline-start","border-inline-start-color","border-inline-start-style","border-inline-start-width","border-inline-style","border-inline-width","border-left","border-left-color","border-left-style","border-left-width","border-radius","border-right","border-right-color","border-right-style","border-right-width","border-spacing","border-style","border-top","border-top-color","border-top-left-radius","border-top-right-radius","border-top-style","border-top-width","border-width","bottom","box-decoration-break","box-shadow","box-sizing","break-after","break-before","break-inside","caption-side","caret-color","clear","clip","clip-path","clip-rule","color","column-count","column-fill","column-gap","column-rule","column-rule-color","column-rule-style","column-rule-width","column-span","column-width","columns","contain","content","content-visibility","counter-increment","counter-reset","cue","cue-after","cue-before","cursor","direction","display","empty-cells","filter","flex","flex-basis","flex-direction","flex-flow","flex-grow","flex-shrink","flex-wrap","float","flow","font","font-display","font-family","font-feature-settings","font-kerning","font-language-override","font-size","font-size-adjust","font-smoothing","font-stretch","font-style","font-synthesis","font-variant","font-variant-caps","font-variant-east-asian","font-variant-ligatures","font-variant-numeric","font-variant-position","font-variation-settings","font-weight","gap","glyph-orientation-vertical","grid","grid-area","grid-auto-columns","grid-auto-flow","grid-auto-rows","grid-column","grid-column-end","grid-column-start","grid-gap","grid-row","grid-row-end","grid-row-start","grid-template","grid-template-areas","grid-template-columns","grid-template-rows","hanging-punctuation","height","hyphens","icon","image-orientation","image-rendering","image-resolution","ime-mode","inline-size","isolation","justify-content","left","letter-spacing","line-break","line-height","list-style","list-style-image","list-style-position","list-style-type","margin","margin-block","margin-block-end","margin-block-start","margin-bottom","margin-inline","margin-inline-end","margin-inline-start","margin-left","margin-right","margin-top","marks","mask","mask-border","mask-border-mode","mask-border-outset","mask-border-repeat","mask-border-slice","mask-border-source","mask-border-width","mask-clip","mask-composite","mask-image","mask-mode","mask-origin","mask-position","mask-repeat","mask-size","mask-type","max-block-size","max-height","max-inline-size","max-width","min-block-size","min-height","min-inline-size","min-width","mix-blend-mode","nav-down","nav-index","nav-left","nav-right","nav-up","none","normal","object-fit","object-position","opacity","order","orphans","outline","outline-color","outline-offset","outline-style","outline-width","overflow","overflow-wrap","overflow-x","overflow-y","padding","padding-block","padding-block-end","padding-block-start","padding-bottom","padding-inline","padding-inline-end","padding-inline-start","padding-left","padding-right","padding-top","page-break-after","page-break-before","page-break-inside","pause","pause-after","pause-before","perspective","perspective-origin","pointer-events","position","quotes","resize","rest","rest-after","rest-before","right","row-gap","scroll-margin","scroll-margin-block","scroll-margin-block-end","scroll-margin-block-start","scroll-margin-bottom","scroll-margin-inline","scroll-margin-inline-end","scroll-margin-inline-start","scroll-margin-left","scroll-margin-right","scroll-margin-top","scroll-padding","scroll-padding-block","scroll-padding-block-end","scroll-padding-block-start","scroll-padding-bottom","scroll-padding-inline","scroll-padding-inline-end","scroll-padding-inline-start","scroll-padding-left","scroll-padding-right","scroll-padding-top","scroll-snap-align","scroll-snap-stop","scroll-snap-type","scrollbar-color","scrollbar-gutter","scrollbar-width","shape-image-threshold","shape-margin","shape-outside","speak","speak-as","src","tab-size","table-layout","text-align","text-align-all","text-align-last","text-combine-upright","text-decoration","text-decoration-color","text-decoration-line","text-decoration-style","text-emphasis","text-emphasis-color","text-emphasis-position","text-emphasis-style","text-indent","text-justify","text-orientation","text-overflow","text-rendering","text-shadow","text-transform","text-underline-position","top","transform","transform-box","transform-origin","transform-style","transition","transition-delay","transition-duration","transition-property","transition-timing-function","unicode-bidi","vertical-align","visibility","voice-balance","voice-duration","voice-family","voice-pitch","voice-range","voice-rate","voice-stress","voice-volume","white-space","widows","width","will-change","word-break","word-spacing","word-wrap","writing-mode","z-index"].reverse(),de=oe.concat(le)
;var ge="[0-9](_*[0-9])*",ue=`\\.(${ge})`,be="[0-9a-fA-F](_*[0-9a-fA-F])*",me={
className:"number",variants:[{
@@ -400,7 +401,7 @@ className:"title.function"})]},{match:/\.\.\./,relevance:0},O,{match:"\\$"+t,
relevance:0},{match:[/\bconstructor(?=\s*\()/],className:{1:"title.function"},
contains:[f]},w,{relevance:0,match:/\b[A-Z][A-Z_0-9]+\b/,
className:"variable.constant"},E,k,{match:/\$[(.]/}]}}
-const ke=e=>b(/\b/,e,/\w$/.test(e)?/\b/:/\B/),xe=["Protocol","Type"].map(ke),Me=["init","self"].map(ke),Se=["Any","Self"],Ae=["actor","any","associatedtype","async","await",/as\?/,/as!/,"as","break","case","catch","class","continue","convenience","default","defer","deinit","didSet","distributed","do","dynamic","else","enum","extension","fallthrough",/fileprivate\(set\)/,"fileprivate","final","for","func","get","guard","if","import","indirect","infix",/init\?/,/init!/,"inout",/internal\(set\)/,"internal","in","is","isolated","nonisolated","lazy","let","mutating","nonmutating",/open\(set\)/,"open","operator","optional","override","postfix","precedencegroup","prefix",/private\(set\)/,"private","protocol",/public\(set\)/,"public","repeat","required","rethrows","return","set","some","static","struct","subscript","super","switch","throws","throw",/try\?/,/try!/,"try","typealias",/unowned\(safe\)/,/unowned\(unsafe\)/,"unowned","var","weak","where","while","willSet"],Ce=["false","nil","true"],Te=["assignment","associativity","higherThan","left","lowerThan","none","right"],Re=["#colorLiteral","#column","#dsohandle","#else","#elseif","#endif","#error","#file","#fileID","#fileLiteral","#filePath","#function","#if","#imageLiteral","#keyPath","#line","#selector","#sourceLocation","#warn_unqualified_access","#warning"],De=["abs","all","any","assert","assertionFailure","debugPrint","dump","fatalError","getVaList","isKnownUniquelyReferenced","max","min","numericCast","pointwiseMax","pointwiseMin","precondition","preconditionFailure","print","readLine","repeatElement","sequence","stride","swap","swift_unboxFromSwiftValueWithType","transcode","type","unsafeBitCast","unsafeDowncast","withExtendedLifetime","withUnsafeMutablePointer","withUnsafePointer","withVaList","withoutActuallyEscaping","zip"],Ie=m(/[/=\-+!*%<>&|^~?]/,/[\u00A1-\u00A7]/,/[\u00A9\u00AB]/,/[\u00AC\u00AE]/,/[\u00B0\u00B1]/,/[\u00B6\u00BB\u00BF\u00D7\u00F7]/,/[\u2016-\u2017]/,/[\u2020-\u2027]/,/[\u2030-\u203E]/,/[\u2041-\u2053]/,/[\u2055-\u205E]/,/[\u2190-\u23FF]/,/[\u2500-\u2775]/,/[\u2794-\u2BFF]/,/[\u2E00-\u2E7F]/,/[\u3001-\u3003]/,/[\u3008-\u3020]/,/[\u3030]/),Le=m(Ie,/[\u0300-\u036F]/,/[\u1DC0-\u1DFF]/,/[\u20D0-\u20FF]/,/[\uFE00-\uFE0F]/,/[\uFE20-\uFE2F]/),Be=b(Ie,Le,"*"),$e=m(/[a-zA-Z_]/,/[\u00A8\u00AA\u00AD\u00AF\u00B2-\u00B5\u00B7-\u00BA]/,/[\u00BC-\u00BE\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u00FF]/,/[\u0100-\u02FF\u0370-\u167F\u1681-\u180D\u180F-\u1DBF]/,/[\u1E00-\u1FFF]/,/[\u200B-\u200D\u202A-\u202E\u203F-\u2040\u2054\u2060-\u206F]/,/[\u2070-\u20CF\u2100-\u218F\u2460-\u24FF\u2776-\u2793]/,/[\u2C00-\u2DFF\u2E80-\u2FFF]/,/[\u3004-\u3007\u3021-\u302F\u3031-\u303F\u3040-\uD7FF]/,/[\uF900-\uFD3D\uFD40-\uFDCF\uFDF0-\uFE1F\uFE30-\uFE44]/,/[\uFE47-\uFEFE\uFF00-\uFFFD]/),ze=m($e,/\d/,/[\u0300-\u036F\u1DC0-\u1DFF\u20D0-\u20FF\uFE20-\uFE2F]/),Fe=b($e,ze,"*"),Ue=b(/[A-Z]/,ze,"*"),je=["autoclosure",b(/convention\(/,m("swift","block","c"),/\)/),"discardableResult","dynamicCallable","dynamicMemberLookup","escaping","frozen","GKInspectable","IBAction","IBDesignable","IBInspectable","IBOutlet","IBSegueAction","inlinable","main","nonobjc","NSApplicationMain","NSCopying","NSManaged",b(/objc\(/,Fe,/\)/),"objc","objcMembers","propertyWrapper","requires_stored_property_inits","resultBuilder","testable","UIApplicationMain","unknown","usableFromInline"],Pe=["iOS","iOSApplicationExtension","macOS","macOSApplicationExtension","macCatalyst","macCatalystApplicationExtension","watchOS","watchOSApplicationExtension","tvOS","tvOSApplicationExtension","swift"]
+const ke=e=>b(/\b/,e,/\w$/.test(e)?/\b/:/\B/),xe=["Protocol","Type"].map(ke),Me=["init","self"].map(ke),Se=["Any","Self"],Ae=["actor","any","associatedtype","async","await",/as\?/,/as!/,"as","borrowing","break","case","catch","class","consume","consuming","continue","convenience","copy","default","defer","deinit","didSet","distributed","do","dynamic","each","else","enum","extension","fallthrough",/fileprivate\(set\)/,"fileprivate","final","for","func","get","guard","if","import","indirect","infix",/init\?/,/init!/,"inout",/internal\(set\)/,"internal","in","is","isolated","nonisolated","lazy","let","macro","mutating","nonmutating",/open\(set\)/,"open","operator","optional","override","postfix","precedencegroup","prefix",/private\(set\)/,"private","protocol",/public\(set\)/,"public","repeat","required","rethrows","return","set","some","static","struct","subscript","super","switch","throws","throw",/try\?/,/try!/,"try","typealias",/unowned\(safe\)/,/unowned\(unsafe\)/,"unowned","var","weak","where","while","willSet"],Ce=["false","nil","true"],Te=["assignment","associativity","higherThan","left","lowerThan","none","right"],Re=["#colorLiteral","#column","#dsohandle","#else","#elseif","#endif","#error","#file","#fileID","#fileLiteral","#filePath","#function","#if","#imageLiteral","#keyPath","#line","#selector","#sourceLocation","#warning"],De=["abs","all","any","assert","assertionFailure","debugPrint","dump","fatalError","getVaList","isKnownUniquelyReferenced","max","min","numericCast","pointwiseMax","pointwiseMin","precondition","preconditionFailure","print","readLine","repeatElement","sequence","stride","swap","swift_unboxFromSwiftValueWithType","transcode","type","unsafeBitCast","unsafeDowncast","withExtendedLifetime","withUnsafeMutablePointer","withUnsafePointer","withVaList","withoutActuallyEscaping","zip"],Ie=m(/[/=\-+!*%<>&|^~?]/,/[\u00A1-\u00A7]/,/[\u00A9\u00AB]/,/[\u00AC\u00AE]/,/[\u00B0\u00B1]/,/[\u00B6\u00BB\u00BF\u00D7\u00F7]/,/[\u2016-\u2017]/,/[\u2020-\u2027]/,/[\u2030-\u203E]/,/[\u2041-\u2053]/,/[\u2055-\u205E]/,/[\u2190-\u23FF]/,/[\u2500-\u2775]/,/[\u2794-\u2BFF]/,/[\u2E00-\u2E7F]/,/[\u3001-\u3003]/,/[\u3008-\u3020]/,/[\u3030]/),Le=m(Ie,/[\u0300-\u036F]/,/[\u1DC0-\u1DFF]/,/[\u20D0-\u20FF]/,/[\uFE00-\uFE0F]/,/[\uFE20-\uFE2F]/),Be=b(Ie,Le,"*"),$e=m(/[a-zA-Z_]/,/[\u00A8\u00AA\u00AD\u00AF\u00B2-\u00B5\u00B7-\u00BA]/,/[\u00BC-\u00BE\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u00FF]/,/[\u0100-\u02FF\u0370-\u167F\u1681-\u180D\u180F-\u1DBF]/,/[\u1E00-\u1FFF]/,/[\u200B-\u200D\u202A-\u202E\u203F-\u2040\u2054\u2060-\u206F]/,/[\u2070-\u20CF\u2100-\u218F\u2460-\u24FF\u2776-\u2793]/,/[\u2C00-\u2DFF\u2E80-\u2FFF]/,/[\u3004-\u3007\u3021-\u302F\u3031-\u303F\u3040-\uD7FF]/,/[\uF900-\uFD3D\uFD40-\uFDCF\uFDF0-\uFE1F\uFE30-\uFE44]/,/[\uFE47-\uFEFE\uFF00-\uFFFD]/),ze=m($e,/\d/,/[\u0300-\u036F\u1DC0-\u1DFF\u20D0-\u20FF\uFE20-\uFE2F]/),Fe=b($e,ze,"*"),Ue=b(/[A-Z]/,ze,"*"),je=["attached","autoclosure",b(/convention\(/,m("swift","block","c"),/\)/),"discardableResult","dynamicCallable","dynamicMemberLookup","escaping","freestanding","frozen","GKInspectable","IBAction","IBDesignable","IBInspectable","IBOutlet","IBSegueAction","inlinable","main","nonobjc","NSApplicationMain","NSCopying","NSManaged",b(/objc\(/,Fe,/\)/),"objc","objcMembers","propertyWrapper","requires_stored_property_inits","resultBuilder","Sendable","testable","UIApplicationMain","unchecked","unknown","usableFromInline","warn_unqualified_access"],Pe=["iOS","iOSApplicationExtension","macOS","macOSApplicationExtension","macCatalyst","macCatalystApplicationExtension","watchOS","watchOSApplicationExtension","tvOS","tvOSApplicationExtension","swift"]
;var Ke=Object.freeze({__proto__:null,grmr_bash:e=>{const n=e.regex,t={},a={
begin:/\$\{/,end:/\}/,contains:["self",{begin:/:-/,contains:[t]}]}
;Object.assign(t,{className:"variable",variants:[{
@@ -418,7 +419,7 @@ keyword:["if","then","else","elif","fi","for","while","until","in","do","done","
literal:["true","false"],
built_in:["break","cd","continue","eval","exec","exit","export","getopts","hash","pwd","readonly","return","shift","test","times","trap","umask","unset","alias","bind","builtin","caller","command","declare","echo","enable","help","let","local","logout","mapfile","printf","read","readarray","source","type","typeset","ulimit","unalias","set","shopt","autoload","bg","bindkey","bye","cap","chdir","clone","comparguments","compcall","compctl","compdescribe","compfiles","compgroups","compquote","comptags","comptry","compvalues","dirs","disable","disown","echotc","echoti","emulate","fc","fg","float","functions","getcap","getln","history","integer","jobs","kill","limit","log","noglob","popd","print","pushd","pushln","rehash","sched","setcap","setopt","stat","suspend","ttyctl","unfunction","unhash","unlimit","unsetopt","vared","wait","whence","where","which","zcompile","zformat","zftp","zle","zmodload","zparseopts","zprof","zpty","zregexparse","zsocket","zstyle","ztcp","chcon","chgrp","chown","chmod","cp","dd","df","dir","dircolors","ln","ls","mkdir","mkfifo","mknod","mktemp","mv","realpath","rm","rmdir","shred","sync","touch","truncate","vdir","b2sum","base32","base64","cat","cksum","comm","csplit","cut","expand","fmt","fold","head","join","md5sum","nl","numfmt","od","paste","ptx","pr","sha1sum","sha224sum","sha256sum","sha384sum","sha512sum","shuf","sort","split","sum","tac","tail","tr","tsort","unexpand","uniq","wc","arch","basename","chroot","date","dirname","du","echo","env","expr","factor","groups","hostid","id","link","logname","nice","nohup","nproc","pathchk","pinky","printenv","printf","pwd","readlink","runcon","seq","sleep","stat","stdbuf","stty","tee","test","timeout","tty","uname","unlink","uptime","users","who","whoami","yes"]
},contains:[l,e.SHEBANG(),c,o,e.HASH_COMMENT_MODE,r,{match:/(\/[a-z._-]+)+/},s,{
-className:"",begin:/\\"/},{className:"string",begin:/'/,end:/'/},t]}},
+match:/\\"/},{className:"string",begin:/'/,end:/'/},{match:/\\'/},t]}},
grmr_c:e=>{const n=e.regex,t=e.COMMENT("//","$",{contains:[{begin:/\\\n/}]
}),a="decltype\\(auto\\)",i="[a-zA-Z_]\\w*::",r="("+a+"|"+n.optional(i)+"[a-zA-Z_]\\w*"+n.optional("<[^<>]+>")+")",s={
className:"type",variants:[{begin:"\\b[a-z\\d_]*_t\\b"},{
@@ -726,35 +727,9 @@ className:"section",begin:/^[^\s]+:/,end:/$/,contains:[n]};return{
name:"Makefile",aliases:["mk","mak","make"],keywords:{$pattern:/[\w-]+/,
keyword:"define endef undefine ifdef ifndef ifeq ifneq else endif include -include sinclude override export unexport private vpath"
},contains:[e.HASH_COMMENT_MODE,n,t,a,i,{className:"meta",begin:/^\.PHONY:/,
-end:/$/,keywords:{$pattern:/[\.\w]+/,keyword:".PHONY"}},r]}},grmr_xml:e=>{
-const n=e.regex,t=n.concat(/[\p{L}_]/u,n.optional(/[\p{L}0-9_.-]*:/u),/[\p{L}0-9_.-]*/u),a={
-className:"symbol",begin:/&[a-z]+;|[0-9]+;|[a-f0-9]+;/},i={begin:/\s/,
-contains:[{className:"keyword",begin:/#?[a-z_][a-z1-9_-]+/,illegal:/\n/}]
-},r=e.inherit(i,{begin:/\(/,end:/\)/}),s=e.inherit(e.APOS_STRING_MODE,{
-className:"string"}),o=e.inherit(e.QUOTE_STRING_MODE,{className:"string"}),l={
-endsWithParent:!0,illegal:/,relevance:0,contains:[{className:"attr",
-begin:/[\p{L}0-9._:-]+/u,relevance:0},{begin:/=\s*/,relevance:0,contains:[{
-className:"string",endsParent:!0,variants:[{begin:/"/,end:/"/,contains:[a]},{
-begin:/'/,end:/'/,contains:[a]},{begin:/[^\s"'=<>`]+/}]}]}]};return{
-name:"HTML, XML",
-aliases:["html","xhtml","rss","atom","xjb","xsd","xsl","plist","wsf","svg"],
-case_insensitive:!0,unicodeRegex:!0,contains:[{className:"meta",begin://,relevance:10,contains:[i,o,s,r,{begin:/\[/,end:/\]/,contains:[{
-className:"meta",begin://,contains:[i,r,o,s]}]}]
-},e.COMMENT(//,{relevance:10}),{begin://,
-relevance:10},a,{className:"meta",end:/\?>/,variants:[{begin:/<\?xml/,
-relevance:10,contains:[o]},{begin:/<\?[a-z][a-z0-9]+/}]},{className:"tag",
-begin:/