@kubed.io/cdn 0.0.4 → 0.0.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (430) hide show
  1. package/README.md +11 -0
  2. package/dist/chunks/1c-Cg7z75RR.js +94 -0
  3. package/dist/chunks/1c-Cg7z75RR.js.map +1 -0
  4. package/dist/chunks/abnf-DjOFdYyB.js +59 -0
  5. package/dist/chunks/abnf-DjOFdYyB.js.map +1 -0
  6. package/dist/chunks/accesslog-CT59MCIO.js +72 -0
  7. package/dist/chunks/accesslog-CT59MCIO.js.map +1 -0
  8. package/dist/chunks/actionscript-BF7IWfId.js +85 -0
  9. package/dist/chunks/actionscript-BF7IWfId.js.map +1 -0
  10. package/dist/chunks/ada-BW8u8CRX.js +107 -0
  11. package/dist/chunks/ada-BW8u8CRX.js.map +1 -0
  12. package/dist/chunks/angelscript-2l-XM2Vw.js +91 -0
  13. package/dist/chunks/angelscript-2l-XM2Vw.js.map +1 -0
  14. package/dist/chunks/apache-ClDRwhlj.js +87 -0
  15. package/dist/chunks/apache-ClDRwhlj.js.map +1 -0
  16. package/dist/chunks/applescript-BnCdU8ml.js +57 -0
  17. package/dist/chunks/applescript-BnCdU8ml.js.map +1 -0
  18. package/dist/chunks/arcade-BtIJZuSq.js +157 -0
  19. package/dist/chunks/arcade-BtIJZuSq.js.map +1 -0
  20. package/dist/chunks/arduino-xB3NbW4M.js +272 -0
  21. package/dist/chunks/arduino-xB3NbW4M.js.map +1 -0
  22. package/dist/chunks/armasm-Dg5wPE4N.js +66 -0
  23. package/dist/chunks/armasm-Dg5wPE4N.js.map +1 -0
  24. package/dist/chunks/asciidoc-ZAddoC6x.js +178 -0
  25. package/dist/chunks/asciidoc-ZAddoC6x.js.map +1 -0
  26. package/dist/chunks/aspectj-Dfd0IA-3.js +126 -0
  27. package/dist/chunks/aspectj-Dfd0IA-3.js.map +1 -0
  28. package/dist/chunks/autohotkey-tKEhIrY9.js +55 -0
  29. package/dist/chunks/autohotkey-tKEhIrY9.js.map +1 -0
  30. package/dist/chunks/autoit-BPoYFiDT.js +123 -0
  31. package/dist/chunks/autoit-BPoYFiDT.js.map +1 -0
  32. package/dist/chunks/avrasm-DcwC__J5.js +47 -0
  33. package/dist/chunks/avrasm-DcwC__J5.js.map +1 -0
  34. package/dist/chunks/awk-B0eiS31p.js +56 -0
  35. package/dist/chunks/awk-B0eiS31p.js.map +1 -0
  36. package/dist/chunks/axapta-BZnaEvVa.js +65 -0
  37. package/dist/chunks/axapta-BZnaEvVa.js.map +1 -0
  38. package/dist/chunks/bash-SfqkqXwO.js +171 -0
  39. package/dist/chunks/bash-SfqkqXwO.js.map +1 -0
  40. package/dist/chunks/basic-hK9i76TR.js +44 -0
  41. package/dist/chunks/basic-hK9i76TR.js.map +1 -0
  42. package/dist/chunks/bnf-CT5PE87o.js +28 -0
  43. package/dist/chunks/bnf-CT5PE87o.js.map +1 -0
  44. package/dist/chunks/brainfuck-Cix81oQc.js +41 -0
  45. package/dist/chunks/brainfuck-Cix81oQc.js.map +1 -0
  46. package/dist/chunks/c-DqpMY-rp.js +189 -0
  47. package/dist/chunks/c-DqpMY-rp.js.map +1 -0
  48. package/dist/chunks/cal-C-xic9Tn.js +91 -0
  49. package/dist/chunks/cal-C-xic9Tn.js.map +1 -0
  50. package/dist/chunks/capnproto-Bte6wB8g.js +84 -0
  51. package/dist/chunks/capnproto-Bte6wB8g.js.map +1 -0
  52. package/dist/chunks/ceylon-B5xM3rkd.js +77 -0
  53. package/dist/chunks/ceylon-B5xM3rkd.js.map +1 -0
  54. package/dist/chunks/clean-58wPfVlT.js +24 -0
  55. package/dist/chunks/clean-58wPfVlT.js.map +1 -0
  56. package/dist/chunks/clojure-DnooNAlk.js +114 -0
  57. package/dist/chunks/clojure-DnooNAlk.js.map +1 -0
  58. package/dist/chunks/clojure-repl-BOwc5f8V.js +18 -0
  59. package/dist/chunks/clojure-repl-BOwc5f8V.js.map +1 -0
  60. package/dist/chunks/cmake-CmXecy9B.js +28 -0
  61. package/dist/chunks/cmake-CmXecy9B.js.map +1 -0
  62. package/dist/chunks/coffeescript-BxFWPVxK.js +199 -0
  63. package/dist/chunks/coffeescript-BxFWPVxK.js.map +1 -0
  64. package/dist/chunks/coq-q80xvjL8.js +26 -0
  65. package/dist/chunks/coq-q80xvjL8.js.map +1 -0
  66. package/dist/chunks/core-BSQzrNYA.js +853 -0
  67. package/dist/chunks/core-BSQzrNYA.js.map +1 -0
  68. package/dist/chunks/cos-DiRYB57M.js +78 -0
  69. package/dist/chunks/cos-DiRYB57M.js.map +1 -0
  70. package/dist/chunks/cpp-BvOt3G_R.js +238 -0
  71. package/dist/chunks/cpp-BvOt3G_R.js.map +1 -0
  72. package/dist/chunks/crmsh-h8TY8H79.js +80 -0
  73. package/dist/chunks/crmsh-h8TY8H79.js.map +1 -0
  74. package/dist/chunks/crystal-Cn8iNhTZ.js +247 -0
  75. package/dist/chunks/crystal-Cn8iNhTZ.js.map +1 -0
  76. package/dist/chunks/csharp-BUAiXZio.js +262 -0
  77. package/dist/chunks/csharp-BUAiXZio.js.map +1 -0
  78. package/dist/chunks/csp-BP06y0Ba.js +25 -0
  79. package/dist/chunks/csp-BP06y0Ba.js.map +1 -0
  80. package/dist/chunks/css-CuP2L3Vg.js +147 -0
  81. package/dist/chunks/css-CuP2L3Vg.js.map +1 -0
  82. package/dist/chunks/d-C0cOEHlZ.js +87 -0
  83. package/dist/chunks/d-C0cOEHlZ.js.map +1 -0
  84. package/dist/chunks/dart-DOyn4FWh.js +136 -0
  85. package/dist/chunks/dart-DOyn4FWh.js.map +1 -0
  86. package/dist/chunks/{define-XzEniRJH.js → define-DqUpowD9.js} +3 -3
  87. package/dist/chunks/{define-XzEniRJH.js.map → define-DqUpowD9.js.map} +1 -1
  88. package/dist/chunks/delphi-BL8QbVUL.js +95 -0
  89. package/dist/chunks/delphi-BL8QbVUL.js.map +1 -0
  90. package/dist/chunks/diff-DMbO7OaS.js +41 -0
  91. package/dist/chunks/diff-DMbO7OaS.js.map +1 -0
  92. package/dist/chunks/django-CnvXUSpm.js +44 -0
  93. package/dist/chunks/django-CnvXUSpm.js.map +1 -0
  94. package/dist/chunks/dns-DpaEqlb1.js +73 -0
  95. package/dist/chunks/dns-DpaEqlb1.js.map +1 -0
  96. package/dist/chunks/dockerfile-D9WngOli.js +36 -0
  97. package/dist/chunks/dockerfile-D9WngOli.js.map +1 -0
  98. package/dist/chunks/dos-w6Vxr4_L.js +59 -0
  99. package/dist/chunks/dos-w6Vxr4_L.js.map +1 -0
  100. package/dist/chunks/dsconfig-Dq_NzMQE.js +56 -0
  101. package/dist/chunks/dsconfig-Dq_NzMQE.js.map +1 -0
  102. package/dist/chunks/dts-CpWaLhGr.js +117 -0
  103. package/dist/chunks/dts-CpWaLhGr.js.map +1 -0
  104. package/dist/chunks/dust-C4uDg2L0.js +34 -0
  105. package/dist/chunks/dust-C4uDg2L0.js.map +1 -0
  106. package/dist/chunks/ebnf-ByjV7C32.js +41 -0
  107. package/dist/chunks/ebnf-ByjV7C32.js.map +1 -0
  108. package/dist/chunks/{element-ChNBLJ5X.js → element-CaN9ZVoe.js} +60 -60
  109. package/dist/chunks/element-CaN9ZVoe.js.map +1 -0
  110. package/dist/chunks/elixir-DkdYO0Vr.js +191 -0
  111. package/dist/chunks/elixir-DkdYO0Vr.js.map +1 -0
  112. package/dist/chunks/elm-Clms-iZw.js +101 -0
  113. package/dist/chunks/elm-Clms-iZw.js.map +1 -0
  114. package/dist/chunks/erb-BC3HNNgp.js +18 -0
  115. package/dist/chunks/erb-BC3HNNgp.js.map +1 -0
  116. package/dist/chunks/erlang-Cu0IlQov.js +220 -0
  117. package/dist/chunks/erlang-Cu0IlQov.js.map +1 -0
  118. package/dist/chunks/erlang-repl-5hCt0uhz.js +42 -0
  119. package/dist/chunks/erlang-repl-5hCt0uhz.js.map +1 -0
  120. package/dist/chunks/excel-BIDJpxSu.js +49 -0
  121. package/dist/chunks/excel-BIDJpxSu.js.map +1 -0
  122. package/dist/chunks/fix-C0h50qaq.js +31 -0
  123. package/dist/chunks/fix-C0h50qaq.js.map +1 -0
  124. package/dist/chunks/flix-BCyKzKuw.js +61 -0
  125. package/dist/chunks/flix-BCyKzKuw.js.map +1 -0
  126. package/dist/chunks/fortran-DJ9If3VL.js +55 -0
  127. package/dist/chunks/fortran-DJ9If3VL.js.map +1 -0
  128. package/dist/chunks/freedesktop-DY5X71dr.js +88 -0
  129. package/dist/chunks/freedesktop-DY5X71dr.js.map +1 -0
  130. package/dist/chunks/fsharp-B-zxwYyG.js +243 -0
  131. package/dist/chunks/fsharp-B-zxwYyG.js.map +1 -0
  132. package/dist/chunks/gams-Bk-CWpk3.js +128 -0
  133. package/dist/chunks/gams-Bk-CWpk3.js.map +1 -0
  134. package/dist/chunks/gauss-DoDOans8.js +154 -0
  135. package/dist/chunks/gauss-DoDOans8.js.map +1 -0
  136. package/dist/chunks/gcode-BUHWwtTe.js +123 -0
  137. package/dist/chunks/gcode-BUHWwtTe.js.map +1 -0
  138. package/dist/chunks/gherkin-Wzf9M781.js +70 -0
  139. package/dist/chunks/gherkin-Wzf9M781.js.map +1 -0
  140. package/dist/chunks/glsl-CUb3B_sB.js +27 -0
  141. package/dist/chunks/glsl-CUb3B_sB.js.map +1 -0
  142. package/dist/chunks/gml-BS5lKjIV.js +24 -0
  143. package/dist/chunks/gml-BS5lKjIV.js.map +1 -0
  144. package/dist/chunks/go-BUD6D8kx.js +146 -0
  145. package/dist/chunks/go-BUD6D8kx.js.map +1 -0
  146. package/dist/chunks/golo-CeWwUkIr.js +27 -0
  147. package/dist/chunks/golo-CeWwUkIr.js.map +1 -0
  148. package/dist/chunks/gradle-BoqM74sD.js +20 -0
  149. package/dist/chunks/gradle-BoqM74sD.js.map +1 -0
  150. package/dist/chunks/graphql-j3kf95P9.js +69 -0
  151. package/dist/chunks/graphql-j3kf95P9.js.map +1 -0
  152. package/dist/chunks/groovy-B3DHxrmD.js +129 -0
  153. package/dist/chunks/groovy-B3DHxrmD.js.map +1 -0
  154. package/dist/chunks/haml-CgF67t0s.js +98 -0
  155. package/dist/chunks/haml-CgF67t0s.js.map +1 -0
  156. package/dist/chunks/handlebars-Bp8_IuhA.js +146 -0
  157. package/dist/chunks/handlebars-Bp8_IuhA.js.map +1 -0
  158. package/dist/chunks/haskell-2oFXwht3.js +140 -0
  159. package/dist/chunks/haskell-2oFXwht3.js.map +1 -0
  160. package/dist/chunks/haxe-BWUFK1R1.js +144 -0
  161. package/dist/chunks/haxe-BWUFK1R1.js.map +1 -0
  162. package/dist/chunks/highlight-D54M45bZ.js +328 -0
  163. package/dist/chunks/highlight-D54M45bZ.js.map +1 -0
  164. package/dist/chunks/hsp-YaLnMBmw.js +47 -0
  165. package/dist/chunks/hsp-YaLnMBmw.js.map +1 -0
  166. package/dist/chunks/http-D1Jx4NCy.js +76 -0
  167. package/dist/chunks/http-D1Jx4NCy.js.map +1 -0
  168. package/dist/chunks/hy-W6RLRSst.js +75 -0
  169. package/dist/chunks/hy-W6RLRSst.js.map +1 -0
  170. package/dist/chunks/inform7-Cqmf6Xxi.js +45 -0
  171. package/dist/chunks/inform7-Cqmf6Xxi.js.map +1 -0
  172. package/dist/chunks/ini-C_A9yUHA.js +90 -0
  173. package/dist/chunks/ini-C_A9yUHA.js.map +1 -0
  174. package/dist/chunks/irpf90-CFKe0d2G.js +49 -0
  175. package/dist/chunks/irpf90-CFKe0d2G.js.map +1 -0
  176. package/dist/chunks/isbl-DRZZfDZN.js +98 -0
  177. package/dist/chunks/isbl-DRZZfDZN.js.map +1 -0
  178. package/dist/chunks/java-DH7DXQTB.js +176 -0
  179. package/dist/chunks/java-DH7DXQTB.js.map +1 -0
  180. package/dist/chunks/javascript-D-ispHLP.js +433 -0
  181. package/dist/chunks/javascript-D-ispHLP.js.map +1 -0
  182. package/dist/chunks/jboss-cli-DwoEMfEn.js +48 -0
  183. package/dist/chunks/jboss-cli-DwoEMfEn.js.map +1 -0
  184. package/dist/chunks/json-BrJhaXJI.js +44 -0
  185. package/dist/chunks/json-BrJhaXJI.js.map +1 -0
  186. package/dist/chunks/julia-DUM4uO0n.js +82 -0
  187. package/dist/chunks/julia-DUM4uO0n.js.map +1 -0
  188. package/dist/chunks/julia-repl-DkEOqH-L.js +20 -0
  189. package/dist/chunks/julia-repl-DkEOqH-L.js.map +1 -0
  190. package/dist/chunks/kd-B0BcpOG_.js +2662 -0
  191. package/dist/chunks/kd-B0BcpOG_.js.map +1 -0
  192. package/dist/chunks/kotlin-BvSvL3hH.js +208 -0
  193. package/dist/chunks/kotlin-BvSvL3hH.js.map +1 -0
  194. package/dist/chunks/lasso-BixBtX3R.js +122 -0
  195. package/dist/chunks/lasso-BixBtX3R.js.map +1 -0
  196. package/dist/chunks/latex-BNm-5qSt.js +188 -0
  197. package/dist/chunks/latex-BNm-5qSt.js.map +1 -0
  198. package/dist/chunks/ldif-D2VChYy1.js +26 -0
  199. package/dist/chunks/ldif-D2VChYy1.js.map +1 -0
  200. package/dist/chunks/leaf-DZ17MVc2.js +67 -0
  201. package/dist/chunks/leaf-DZ17MVc2.js.map +1 -0
  202. package/dist/chunks/less-Cj7NvTiz.js +198 -0
  203. package/dist/chunks/less-Cj7NvTiz.js.map +1 -0
  204. package/dist/chunks/lisp-0CHBhNkP.js +105 -0
  205. package/dist/chunks/lisp-0CHBhNkP.js.map +1 -0
  206. package/dist/chunks/livecodeserver-f04_o5o0.js +85 -0
  207. package/dist/chunks/livecodeserver-f04_o5o0.js.map +1 -0
  208. package/dist/chunks/livescript-DnaWcjJC.js +192 -0
  209. package/dist/chunks/livescript-DnaWcjJC.js.map +1 -0
  210. package/dist/chunks/llvm-CD_EQmwW.js +71 -0
  211. package/dist/chunks/llvm-CD_EQmwW.js.map +1 -0
  212. package/dist/chunks/lsl-BjbA45DV.js +56 -0
  213. package/dist/chunks/lsl-BjbA45DV.js.map +1 -0
  214. package/dist/chunks/lua-C8cmPpDf.js +48 -0
  215. package/dist/chunks/lua-C8cmPpDf.js.map +1 -0
  216. package/dist/chunks/makefile-vKf6Crs_.js +59 -0
  217. package/dist/chunks/makefile-vKf6Crs_.js.map +1 -0
  218. package/dist/chunks/markdown-D1MbcAo6.js +180 -0
  219. package/dist/chunks/markdown-D1MbcAo6.js.map +1 -0
  220. package/dist/chunks/marked.esm-BrPimSW6.js +1494 -0
  221. package/dist/chunks/marked.esm-BrPimSW6.js.map +1 -0
  222. package/dist/chunks/mathematica-BAI0dr8P.js +71 -0
  223. package/dist/chunks/mathematica-BAI0dr8P.js.map +1 -0
  224. package/dist/chunks/matlab-tHkexNRr.js +72 -0
  225. package/dist/chunks/matlab-tHkexNRr.js.map +1 -0
  226. package/dist/chunks/maxima-DBb1On73.js +40 -0
  227. package/dist/chunks/maxima-DBb1On73.js.map +1 -0
  228. package/dist/chunks/mel-DQ2XEeJZ.js +26 -0
  229. package/dist/chunks/mel-DQ2XEeJZ.js.map +1 -0
  230. package/dist/chunks/mercury-DB7FwEBk.js +57 -0
  231. package/dist/chunks/mercury-DB7FwEBk.js.map +1 -0
  232. package/dist/chunks/mipsasm-Bnw9lQ6-.js +55 -0
  233. package/dist/chunks/mipsasm-Bnw9lQ6-.js.map +1 -0
  234. package/dist/chunks/mizar-CKEtvqV9.js +12 -0
  235. package/dist/chunks/mizar-CKEtvqV9.js.map +1 -0
  236. package/dist/chunks/mojolicious-FvfVuUnD.js +29 -0
  237. package/dist/chunks/mojolicious-FvfVuUnD.js.map +1 -0
  238. package/dist/chunks/monkey-DaGzblyK.js +73 -0
  239. package/dist/chunks/monkey-DaGzblyK.js.map +1 -0
  240. package/dist/chunks/moonscript-B9xmaKDF.js +99 -0
  241. package/dist/chunks/moonscript-B9xmaKDF.js.map +1 -0
  242. package/dist/chunks/n1ql-h7HuiOG_.js +47 -0
  243. package/dist/chunks/n1ql-h7HuiOG_.js.map +1 -0
  244. package/dist/chunks/nestedtext-z3hOUdBb.js +67 -0
  245. package/dist/chunks/nestedtext-z3hOUdBb.js.map +1 -0
  246. package/dist/chunks/nginx-Cscn9g8k.js +126 -0
  247. package/dist/chunks/nginx-Cscn9g8k.js.map +1 -0
  248. package/dist/chunks/nim-DuEHXsfI.js +57 -0
  249. package/dist/chunks/nim-DuEHXsfI.js.map +1 -0
  250. package/dist/chunks/nix-CK-JoV_w.js +176 -0
  251. package/dist/chunks/nix-CK-JoV_w.js.map +1 -0
  252. package/dist/chunks/node-repl-YPgIlFR4.js +21 -0
  253. package/dist/chunks/node-repl-YPgIlFR4.js.map +1 -0
  254. package/dist/chunks/nsis-C2knGE1f.js +103 -0
  255. package/dist/chunks/nsis-C2knGE1f.js.map +1 -0
  256. package/dist/chunks/objectivec-CUvPbZB7.js +119 -0
  257. package/dist/chunks/objectivec-CUvPbZB7.js.map +1 -0
  258. package/dist/chunks/ocaml-CJnlG7MK.js +54 -0
  259. package/dist/chunks/ocaml-CJnlG7MK.js.map +1 -0
  260. package/dist/chunks/openscad-B7xqzB_t.js +61 -0
  261. package/dist/chunks/openscad-B7xqzB_t.js.map +1 -0
  262. package/dist/chunks/oxygene-y7G7cOvu.js +55 -0
  263. package/dist/chunks/oxygene-y7G7cOvu.js.map +1 -0
  264. package/dist/chunks/parser3-BO1P2QTe.js +42 -0
  265. package/dist/chunks/parser3-BO1P2QTe.js.map +1 -0
  266. package/dist/chunks/perl-CIZiAqA2.js +194 -0
  267. package/dist/chunks/perl-CIZiAqA2.js.map +1 -0
  268. package/dist/chunks/pf-DtIBAeXH.js +32 -0
  269. package/dist/chunks/pf-DtIBAeXH.js.map +1 -0
  270. package/dist/chunks/pgsql-DhvwSgY7.js +193 -0
  271. package/dist/chunks/pgsql-DhvwSgY7.js.map +1 -0
  272. package/dist/chunks/php-Df419x2P.js +302 -0
  273. package/dist/chunks/php-Df419x2P.js.map +1 -0
  274. package/dist/chunks/php-template-NGWDJ4ZL.js +45 -0
  275. package/dist/chunks/php-template-NGWDJ4ZL.js.map +1 -0
  276. package/dist/chunks/plaintext-DI9-6uUK.js +12 -0
  277. package/dist/chunks/plaintext-DI9-6uUK.js.map +1 -0
  278. package/dist/chunks/pony-DWRlzIm6.js +52 -0
  279. package/dist/chunks/pony-DWRlzIm6.js.map +1 -0
  280. package/dist/chunks/powershell-Bi81KJvX.js +190 -0
  281. package/dist/chunks/powershell-Bi81KJvX.js.map +1 -0
  282. package/dist/chunks/processing-NRILzl6W.js +100 -0
  283. package/dist/chunks/processing-NRILzl6W.js.map +1 -0
  284. package/dist/chunks/profile-C5HdUz2O.js +40 -0
  285. package/dist/chunks/profile-C5HdUz2O.js.map +1 -0
  286. package/dist/chunks/prolog-CSxvOOUl.js +56 -0
  287. package/dist/chunks/prolog-CSxvOOUl.js.map +1 -0
  288. package/dist/chunks/properties-DVff9GiD.js +40 -0
  289. package/dist/chunks/properties-DVff9GiD.js.map +1 -0
  290. package/dist/chunks/protobuf-CwPeazJT.js +63 -0
  291. package/dist/chunks/protobuf-CwPeazJT.js.map +1 -0
  292. package/dist/chunks/puppet-wWT6-WaD.js +84 -0
  293. package/dist/chunks/puppet-wWT6-WaD.js.map +1 -0
  294. package/dist/chunks/purebasic-HWZkxa8e.js +44 -0
  295. package/dist/chunks/purebasic-HWZkxa8e.js.map +1 -0
  296. package/dist/chunks/purify.es-C_X9UTsz.js +846 -0
  297. package/dist/chunks/purify.es-C_X9UTsz.js.map +1 -0
  298. package/dist/chunks/python-B3xOtrtl.js +240 -0
  299. package/dist/chunks/python-B3xOtrtl.js.map +1 -0
  300. package/dist/chunks/python-repl-DFMVj5e5.js +21 -0
  301. package/dist/chunks/python-repl-DFMVj5e5.js.map +1 -0
  302. package/dist/chunks/q-DOHmm85f.js +23 -0
  303. package/dist/chunks/q-DOHmm85f.js.map +1 -0
  304. package/dist/chunks/qml-LsukXoE-.js +129 -0
  305. package/dist/chunks/qml-LsukXoE-.js.map +1 -0
  306. package/dist/chunks/r-qBqOPbmv.js +142 -0
  307. package/dist/chunks/r-qBqOPbmv.js.map +1 -0
  308. package/dist/chunks/reasonml-D25FoGuQ.js +80 -0
  309. package/dist/chunks/reasonml-D25FoGuQ.js.map +1 -0
  310. package/dist/chunks/rib-C3T5JisO.js +18 -0
  311. package/dist/chunks/rib-C3T5JisO.js.map +1 -0
  312. package/dist/chunks/roboconf-Ckycnnun.js +55 -0
  313. package/dist/chunks/roboconf-Ckycnnun.js.map +1 -0
  314. package/dist/chunks/routeros-DIBiqeDi.js +104 -0
  315. package/dist/chunks/routeros-DIBiqeDi.js.map +1 -0
  316. package/dist/chunks/rsl-C2V3vKIN.js +61 -0
  317. package/dist/chunks/rsl-C2V3vKIN.js.map +1 -0
  318. package/dist/chunks/ruby-C7c-uCk8.js +264 -0
  319. package/dist/chunks/ruby-C7c-uCk8.js.map +1 -0
  320. package/dist/chunks/ruleslanguage-IlptjHhp.js +28 -0
  321. package/dist/chunks/ruleslanguage-IlptjHhp.js.map +1 -0
  322. package/dist/chunks/rust-D-q21Dm6.js +184 -0
  323. package/dist/chunks/rust-D-q21Dm6.js.map +1 -0
  324. package/dist/chunks/sas-ObguUuPf.js +80 -0
  325. package/dist/chunks/sas-ObguUuPf.js.map +1 -0
  326. package/dist/chunks/scala-DVAYHay6.js +164 -0
  327. package/dist/chunks/scala-DVAYHay6.js.map +1 -0
  328. package/dist/chunks/scheme-DIcGbflN.js +106 -0
  329. package/dist/chunks/scheme-DIcGbflN.js.map +1 -0
  330. package/dist/chunks/scilab-ilneDJJS.js +47 -0
  331. package/dist/chunks/scilab-ilneDJJS.js.map +1 -0
  332. package/dist/chunks/scss-BP8UD0nN.js +157 -0
  333. package/dist/chunks/scss-BP8UD0nN.js.map +1 -0
  334. package/dist/chunks/shell-DBkgOY0Y.js +19 -0
  335. package/dist/chunks/shell-DBkgOY0Y.js.map +1 -0
  336. package/dist/chunks/smali-De20QX07.js +85 -0
  337. package/dist/chunks/smali-De20QX07.js.map +1 -0
  338. package/dist/chunks/smalltalk-DWMPo-qT.js +59 -0
  339. package/dist/chunks/smalltalk-DWMPo-qT.js.map +1 -0
  340. package/dist/chunks/sml-yOrArwoc.js +51 -0
  341. package/dist/chunks/sml-yOrArwoc.js.map +1 -0
  342. package/dist/chunks/sqf-BCN5uwk_.js +78 -0
  343. package/dist/chunks/sqf-BCN5uwk_.js.map +1 -0
  344. package/dist/chunks/sql-CmVzGP4w.js +120 -0
  345. package/dist/chunks/sql-CmVzGP4w.js.map +1 -0
  346. package/dist/chunks/stan-BSt7sG8M.js +142 -0
  347. package/dist/chunks/stan-BSt7sG8M.js.map +1 -0
  348. package/dist/chunks/stata-sbG438-7.js +35 -0
  349. package/dist/chunks/stata-sbG438-7.js.map +1 -0
  350. package/dist/chunks/step21-Cfi2MQDZ.js +55 -0
  351. package/dist/chunks/step21-Cfi2MQDZ.js.map +1 -0
  352. package/dist/chunks/stylus-CiBDFhBN.js +185 -0
  353. package/dist/chunks/stylus-CiBDFhBN.js.map +1 -0
  354. package/dist/chunks/subunit-DWjzVCiA.js +36 -0
  355. package/dist/chunks/subunit-DWjzVCiA.js.map +1 -0
  356. package/dist/chunks/swift-Qo_eIir5.js +577 -0
  357. package/dist/chunks/swift-Qo_eIir5.js.map +1 -0
  358. package/dist/chunks/taggerscript-BvuLYKHz.js +39 -0
  359. package/dist/chunks/taggerscript-BvuLYKHz.js.map +1 -0
  360. package/dist/chunks/tap-uMi8uF_X.js +32 -0
  361. package/dist/chunks/tap-uMi8uF_X.js.map +1 -0
  362. package/dist/chunks/tcl-DMPG3T59.js +46 -0
  363. package/dist/chunks/tcl-DMPG3T59.js.map +1 -0
  364. package/dist/chunks/thrift-DAA8HOe8.js +67 -0
  365. package/dist/chunks/thrift-DAA8HOe8.js.map +1 -0
  366. package/dist/chunks/tp-46SXlDZT.js +87 -0
  367. package/dist/chunks/tp-46SXlDZT.js.map +1 -0
  368. package/dist/chunks/twig-Cf_tZ_wH.js +84 -0
  369. package/dist/chunks/twig-Cf_tZ_wH.js.map +1 -0
  370. package/dist/chunks/typescript-Dc6pBLOZ.js +518 -0
  371. package/dist/chunks/typescript-Dc6pBLOZ.js.map +1 -0
  372. package/dist/chunks/vala-C2GHqzgV.js +41 -0
  373. package/dist/chunks/vala-C2GHqzgV.js.map +1 -0
  374. package/dist/chunks/vbnet-DgQ7B7yi.js +71 -0
  375. package/dist/chunks/vbnet-DgQ7B7yi.js.map +1 -0
  376. package/dist/chunks/vbscript-Bid2w6kd.js +43 -0
  377. package/dist/chunks/vbscript-Bid2w6kd.js.map +1 -0
  378. package/dist/chunks/vbscript-html-DznzJpE3.js +16 -0
  379. package/dist/chunks/vbscript-html-DznzJpE3.js.map +1 -0
  380. package/dist/chunks/verilog-Cfn8vMNy.js +58 -0
  381. package/dist/chunks/verilog-Cfn8vMNy.js.map +1 -0
  382. package/dist/chunks/vhdl-DjBWCsn1.js +48 -0
  383. package/dist/chunks/vhdl-DjBWCsn1.js.map +1 -0
  384. package/dist/chunks/vim-DtRU07HQ.js +56 -0
  385. package/dist/chunks/vim-DtRU07HQ.js.map +1 -0
  386. package/dist/chunks/wasm-CavVFuAK.js +65 -0
  387. package/dist/chunks/wasm-CavVFuAK.js.map +1 -0
  388. package/dist/chunks/wren-BKTRrWxW.js +210 -0
  389. package/dist/chunks/wren-BKTRrWxW.js.map +1 -0
  390. package/dist/chunks/x86asm-D3FT8ZrX.js +66 -0
  391. package/dist/chunks/x86asm-D3FT8ZrX.js.map +1 -0
  392. package/dist/chunks/xl-O8DviBwg.js +85 -0
  393. package/dist/chunks/xl-O8DviBwg.js.map +1 -0
  394. package/dist/chunks/xml-UTtAqziF.js +164 -0
  395. package/dist/chunks/xml-UTtAqziF.js.map +1 -0
  396. package/dist/chunks/xquery-Ybt8-gzE.js +149 -0
  397. package/dist/chunks/xquery-Ybt8-gzE.js.map +1 -0
  398. package/dist/chunks/yaml-DT7UV549.js +146 -0
  399. package/dist/chunks/yaml-DT7UV549.js.map +1 -0
  400. package/dist/chunks/zephir-Dsfqs5td.js +72 -0
  401. package/dist/chunks/zephir-Dsfqs5td.js.map +1 -0
  402. package/dist/github/activity.d.ts +49 -0
  403. package/dist/github/hash.d.ts +8 -0
  404. package/dist/github/index.d.ts +10 -0
  405. package/dist/github/tree.d.ts +26 -0
  406. package/dist/github/urls.d.ts +34 -0
  407. package/dist/github.js +253 -0
  408. package/dist/github.js.map +1 -0
  409. package/dist/k8s.js +6 -6
  410. package/dist/k8s.js.map +1 -1
  411. package/dist/kd/elements/code.d.ts +53 -0
  412. package/dist/kd/elements/markdown.d.ts +55 -0
  413. package/dist/kd/feed.d.ts +31 -0
  414. package/dist/kd/files/explorer.d.ts +88 -0
  415. package/dist/kd/files/file.d.ts +84 -0
  416. package/dist/kd/files/index.d.ts +6 -0
  417. package/dist/kd/files/static.d.ts +12 -0
  418. package/dist/kd/files/types.d.ts +51 -0
  419. package/dist/kd/highlight.d.ts +26 -0
  420. package/dist/kd/index.d.ts +8 -0
  421. package/dist/kd.js +5 -5
  422. package/dist/n8n/config.d.ts +3 -2
  423. package/dist/n8n.js +4 -4
  424. package/dist/n8n.js.map +1 -1
  425. package/dist/openapi.js +4 -4
  426. package/dist/openapi.js.map +1 -1
  427. package/package.json +18 -3
  428. package/dist/chunks/element-ChNBLJ5X.js.map +0 -1
  429. package/dist/chunks/kd-Bbw0GeQ5.js +0 -1149
  430. package/dist/chunks/kd-Bbw0GeQ5.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"purify.es-C_X9UTsz.js","names":["_OverloadYield","d","_arrayLikeToArray","a","r","e","n","_arrayWithHoles","_iterableToArrayLimit","t","i","u","f","o","l","_nonIterableRest","_slicedToArray","_unsupportedIterableToArray","AsyncGenerator","resume","settle","entries","setPrototypeOf","isFrozen","getPrototypeOf","getOwnPropertyDescriptor","freeze","seal","create","_ref","apply","construct","x","args","func","thisArg","Func","arrayForEach","unapply","arrayLastIndexOf","arrayPop","arrayPush","arraySplice","arrayIsArray","stringToLowerCase","stringToString","stringMatch","stringReplace","stringIndexOf","stringTrim","numberToString","booleanToString","bigintToString","symbolToString","objectHasOwnProperty","objectToString","regExpTest","typeErrorCreate","unconstruct","addToSet","transformCaseFunc","set","array","element","lcElement","cleanArray","index","clone","newObject","_ref2","object","_ref3","property","value","stringifyValue","valueAsRecord","valueToString","lookupGetter","stringified","desc","prop","fallbackValue","isRegex","html$1","svg$1","svgFilters","svgDisallowed","mathMl$1","mathMlDisallowed","text","html","svg","mathMl","xml","MUSTACHE_EXPR","ERB_EXPR","TMPLIT_EXPR","DATA_ATTR","ARIA_ATTR","IS_ALLOWED_URI","IS_SCRIPT_OR_DATA","ATTR_WHITESPACE","DOCTYPE_NAME","CUSTOM_ELEMENT","ELEMENT_MARKUP_PROBE","COMMENT_MARKUP_PROBE","FALLBACK_TAG_CLOSE","SELF_CLOSING_TAG","NODE_TYPE","LITERAL_TEXT_ELEMENT_NAMES","LITERAL_TEXT_ELEMENTS","LITERAL_TEXT_CLOSE","map","name","getGlobal","_createTrustedTypesPolicy","trustedTypes","suffix","ATTR_NAME","purifyHostElement","policyName","scriptUrl","_createHooksMap","_resolveSetOption","cfg","key","options","fallback","_resolveObjectOption","makeFallback","createDOMPurify","window","DOMPurify","root","document","originalDocument","currentScript","HTMLTemplateElement","Node","Element","NodeFilter","DOMParser","ElementPrototype","cloneNode","remove","removeAttributeNode","getNextSibling","getChildNodes","getParentNode","getShadowRoot","getAttributes","getNodeType","getNodeName","getOwnerDocument","_readNodeType","node","_readNodeName","template","trustedTypesPolicy","emptyHTML","defaultTrustedTypesPolicy","defaultTrustedTypesPolicyResolved","IN_TRUSTED_TYPES_POLICY","_assertNotInTrustedTypesPolicy","_createTrustedHTML","_createTrustedScriptURL","_getDefaultTrustedTypesPolicy","_document","implementation","createNodeIterator","createDocumentFragment","getElementsByTagName","importNode","hooks","MUSTACHE_EXPR$1","ERB_EXPR$1","TMPLIT_EXPR$1","DATA_ATTR$1","ARIA_ATTR$1","IS_SCRIPT_OR_DATA$1","ATTR_WHITESPACE$1","CUSTOM_ELEMENT$1","IS_ALLOWED_URI$1","ALLOWED_TAGS","DEFAULT_ALLOWED_TAGS","ALLOWED_ATTR","DEFAULT_ALLOWED_ATTR","CUSTOM_ELEMENT_HANDLING","FORBID_TAGS","FORBID_ATTR","EXTRA_ELEMENT_HANDLING","ALLOW_ARIA_ATTR","ALLOW_DATA_ATTR","ALLOW_UNKNOWN_PROTOCOLS","ALLOW_SELF_CLOSE_IN_ATTR","SAFE_FOR_TEMPLATES","SAFE_FOR_XML","WHOLE_DOCUMENT","SET_CONFIG","SET_CONFIG_ALLOWED_TAGS","SET_CONFIG_ALLOWED_ATTR","FORCE_BODY","RETURN_DOM","RETURN_DOM_FRAGMENT","RETURN_TRUSTED_TYPE","SANITIZE_DOM","SANITIZE_NAMED_PROPS","SANITIZE_NAMED_PROPS_PREFIX","KEEP_CONTENT","IN_PLACE","USE_PROFILES","FORBID_CONTENTS","DEFAULT_FORBID_CONTENTS","DATA_URI_TAGS","DEFAULT_DATA_URI_TAGS","URI_SAFE_ATTRIBUTES","DEFAULT_URI_SAFE_ATTRIBUTES","MATHML_NAMESPACE","SVG_NAMESPACE","HTML_NAMESPACE","NAMESPACE","IS_EMPTY_INPUT","ALLOWED_NAMESPACES","DEFAULT_ALLOWED_NAMESPACES","DEFAULT_MATHML_TEXT_INTEGRATION_POINTS","MATHML_TEXT_INTEGRATION_POINTS","DEFAULT_HTML_INTEGRATION_POINTS","HTML_INTEGRATION_POINTS","COMMON_SVG_AND_HTML_ELEMENTS","PARSER_MEDIA_TYPE","SUPPORTED_PARSER_MEDIA_TYPES","CONFIG","formElement","isRegexOrFunction","testValue","_parseConfig","customElementHandling","previousTrustedTypesPolicy","error","ALL_SVG_TAGS","ALL_MATHML_TAGS","_checkSvgNamespace","parent","tagName","parentTagName","_checkMathMlNamespace","_checkHtmlNamespace","_checkValidNamespace","_forceRemove","_stripAttributeNode","attribute","_neutralizeRoot","childNodes","snapshot","child","attributes","_removeAttribute","attr","_stripDisallowedAttributes","_neutralizeSubtree","stack","_isPatchLinkageAttribute","lcName","lcTag","_neutralizePatchLinkage","nodeType","_initDocument","doc","leadingWhitespace","dirty","matches","dirtyPayload","body","_createNodeIterator","_stripTemplateExpressions","_scrubTemplateExpressions2","walker","currentNode","templates","_isDocumentFragment","tmpl","_isClobbered","realTagName","_isNode","_executeHooks","data","_isUnsafeNode","_matchesNameCheck","check","_sanitizeDisallowedNode","_isBasicCustomElement","parentNode","childCount","hoisted","_forkSharedAllowlist","hookList","defaultSet","setConfigSet","_handleHookDetachedNode","_sanitizeElements","removed","content","_isValidAttribute","nameIsPermitted","RESERVED_CUSTOM_ELEMENT_NAMES","_applyTrustedTypesToAttribute","namespaceURI","_setAttributeValue","_sanitizeAttributes","hookEvent","attrValue","initValue","recreatedNamedProp","_sanitizeShadowDOM2","shadowNode","shadowIterator","fragment","innerSr","_sanitizeAttachedShadowRoots","item","isElement","rootName","sr","importedNode","returnNode","inPlace","nn","walkRoot","nodeIterator","entry","rootWasRemoved","serializedHTML","tag","hookFunction","entryPoint","purify_default"],"sources":["../../node_modules/dompurify/dist/purify.es.mjs"],"sourcesContent":["/*! @license DOMPurify 3.4.16 | (c) Cure53 and other contributors | Released under the Apache license 2.0 and Mozilla Public License 2.0 | github.com/cure53/DOMPurify/blob/3.4.16/LICENSE */\nfunction _OverloadYield(e, d) {\n\tthis.v = e, this.k = d;\n}\nfunction _arrayLikeToArray(r, a) {\n\t(null == a || a > r.length) && (a = r.length);\n\tfor (var e = 0, n = Array(a); e < a; e++) n[e] = r[e];\n\treturn n;\n}\nfunction _arrayWithHoles(r) {\n\tif (Array.isArray(r)) return r;\n}\nfunction _iterableToArrayLimit(r, l) {\n\tvar t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"];\n\tif (null != t) {\n\t\tvar e, n, i, u, a = [], f = !0, o = !1;\n\t\ttry {\n\t\t\tif (i = (t = t.call(r)).next, 0 === l) {\n\t\t\t\tif (Object(t) !== t) return;\n\t\t\t\tf = !1;\n\t\t\t} else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0);\n\t\t} catch (r) {\n\t\t\to = !0, n = r;\n\t\t} finally {\n\t\t\ttry {\n\t\t\t\tif (!f && null != t.return && (u = t.return(), Object(u) !== u)) return;\n\t\t\t} finally {\n\t\t\t\tif (o) throw n;\n\t\t\t}\n\t\t}\n\t\treturn a;\n\t}\n}\nfunction _nonIterableRest() {\n\tthrow new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n/*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */\nfunction _slicedToArray(r, e) {\n\treturn _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest();\n}\nfunction _unsupportedIterableToArray(r, a) {\n\tif (r) {\n\t\tif (\"string\" == typeof r) return _arrayLikeToArray(r, a);\n\t\tvar t = {}.toString.call(r).slice(8, -1);\n\t\treturn \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0;\n\t}\n}\nfunction AsyncGenerator(e) {\n\tvar t, n;\n\tfunction resume(t, n) {\n\t\ttry {\n\t\t\tvar r = e[t](n), o = r.value, u = o instanceof _OverloadYield;\n\t\t\tPromise.resolve(u ? o.v : o).then(function(n) {\n\t\t\t\tif (u) {\n\t\t\t\t\tvar i = \"return\" === t && o.k ? t : \"next\";\n\t\t\t\t\tif (!o.k || n.done) return resume(i, n);\n\t\t\t\t\tn = e[i](n).value;\n\t\t\t\t}\n\t\t\t\tsettle(!!r.done, n);\n\t\t\t}, function(e) {\n\t\t\t\tresume(\"throw\", e);\n\t\t\t});\n\t\t} catch (e) {\n\t\t\tsettle(2, e);\n\t\t}\n\t}\n\tfunction settle(e, r) {\n\t\t2 === e ? t.reject(r) : t.resolve({\n\t\t\tvalue: r,\n\t\t\tdone: e\n\t\t}), (t = t.next) ? resume(t.key, t.arg) : n = null;\n\t}\n\tthis._invoke = function(e, r) {\n\t\treturn new Promise(function(o, u) {\n\t\t\tvar i = {\n\t\t\t\tkey: e,\n\t\t\t\targ: r,\n\t\t\t\tresolve: o,\n\t\t\t\treject: u,\n\t\t\t\tnext: null\n\t\t\t};\n\t\t\tn ? n = n.next = i : (t = n = i, resume(e, r));\n\t\t});\n\t}, \"function\" != typeof e.return && (this.return = void 0);\n}\nAsyncGenerator.prototype[\"function\" == typeof Symbol && Symbol.asyncIterator || \"@@asyncIterator\"] = function() {\n\treturn this;\n}, AsyncGenerator.prototype.next = function(e) {\n\treturn this._invoke(\"next\", e);\n}, AsyncGenerator.prototype.throw = function(e) {\n\treturn this._invoke(\"throw\", e);\n}, AsyncGenerator.prototype.return = function(e) {\n\treturn this._invoke(\"return\", e);\n};\nconst entries = Object.entries;\nconst setPrototypeOf = Object.setPrototypeOf;\nconst isFrozen = Object.isFrozen;\nconst getPrototypeOf = Object.getPrototypeOf;\nconst getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nlet freeze = Object.freeze;\nlet seal = Object.seal;\nlet create = Object.create;\nlet _ref = typeof Reflect !== \"undefined\" && Reflect;\nlet apply = _ref.apply;\nlet construct = _ref.construct;\nif (!freeze) freeze = function freeze(x) {\n\treturn x;\n};\nif (!seal) seal = function seal(x) {\n\treturn x;\n};\nif (!apply) apply = function apply(func, thisArg) {\n\tfor (var _len = arguments.length, args = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) args[_key - 2] = arguments[_key];\n\treturn func.apply(thisArg, args);\n};\nif (!construct) construct = function construct(Func) {\n\tfor (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) args[_key2 - 1] = arguments[_key2];\n\treturn new Func(...args);\n};\nconst arrayForEach = unapply(Array.prototype.forEach);\nArray.prototype.indexOf;\nconst arrayLastIndexOf = unapply(Array.prototype.lastIndexOf);\nconst arrayPop = unapply(Array.prototype.pop);\nconst arrayPush = unapply(Array.prototype.push);\nArray.prototype.slice;\nconst arraySplice = unapply(Array.prototype.splice);\nconst arrayIsArray = Array.isArray;\nconst stringToLowerCase = unapply(String.prototype.toLowerCase);\nconst stringToString = unapply(String.prototype.toString);\nconst stringMatch = unapply(String.prototype.match);\nconst stringReplace = unapply(String.prototype.replace);\nconst stringIndexOf = unapply(String.prototype.indexOf);\nconst stringTrim = unapply(String.prototype.trim);\nconst numberToString = unapply(Number.prototype.toString);\nconst booleanToString = unapply(Boolean.prototype.toString);\nconst bigintToString = typeof BigInt === \"undefined\" ? null : unapply(BigInt.prototype.toString);\nconst symbolToString = typeof Symbol === \"undefined\" ? null : unapply(Symbol.prototype.toString);\nconst objectHasOwnProperty = unapply(Object.prototype.hasOwnProperty);\nconst objectToString = unapply(Object.prototype.toString);\nconst regExpTest = unapply(RegExp.prototype.test);\nconst typeErrorCreate = unconstruct(TypeError);\n/**\n* Creates a new function that calls the given function with a specified thisArg and arguments.\n*\n* @param func - The function to be wrapped and called.\n* @returns A new function that calls the given function with a specified thisArg and arguments.\n*/\nfunction unapply(func) {\n\treturn function(thisArg) {\n\t\tif (thisArg instanceof RegExp) thisArg.lastIndex = 0;\n\t\tfor (var _len3 = arguments.length, args = new Array(_len3 > 1 ? _len3 - 1 : 0), _key3 = 1; _key3 < _len3; _key3++) args[_key3 - 1] = arguments[_key3];\n\t\treturn apply(func, thisArg, args);\n\t};\n}\n/**\n* Creates a new function that constructs an instance of the given constructor function with the provided arguments.\n*\n* @param func - The constructor function to be wrapped and called.\n* @returns A new function that constructs an instance of the given constructor function with the provided arguments.\n*/\nfunction unconstruct(Func) {\n\treturn function() {\n\t\tfor (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) args[_key4] = arguments[_key4];\n\t\treturn construct(Func, args);\n\t};\n}\n/**\n* Add properties to a lookup table\n*\n* @param set - The set to which elements will be added.\n* @param array - The array containing elements to be added to the set.\n* @param transformCaseFunc - An optional function to transform the case of each element before adding to the set.\n* @returns The modified set with added elements.\n*/\nfunction addToSet(set, array) {\n\tlet transformCaseFunc = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : stringToLowerCase;\n\tif (setPrototypeOf) setPrototypeOf(set, null);\n\tif (!arrayIsArray(array)) return set;\n\tlet l = array.length;\n\twhile (l--) {\n\t\tlet element = array[l];\n\t\tif (typeof element === \"string\") {\n\t\t\tconst lcElement = transformCaseFunc(element);\n\t\t\tif (lcElement !== element) {\n\t\t\t\tif (!isFrozen(array)) array[l] = lcElement;\n\t\t\t\telement = lcElement;\n\t\t\t}\n\t\t}\n\t\tset[element] = true;\n\t}\n\treturn set;\n}\n/**\n* Clean up an array to harden against CSPP\n*\n* @param array - The array to be cleaned.\n* @returns The cleaned version of the array\n*/\nfunction cleanArray(array) {\n\tfor (let index = 0; index < array.length; index++) if (!objectHasOwnProperty(array, index)) array[index] = null;\n\treturn array;\n}\n/**\n* Shallow clone an object\n*\n* @param object - The object to be cloned.\n* @returns A new object that copies the original.\n*/\nfunction clone(object) {\n\tconst newObject = create(null);\n\tfor (const _ref2 of entries(object)) {\n\t\tvar _ref3 = _slicedToArray(_ref2, 2);\n\t\tconst property = _ref3[0];\n\t\tconst value = _ref3[1];\n\t\tif (objectHasOwnProperty(object, property)) {\n\t\t\tif (arrayIsArray(value)) newObject[property] = cleanArray(value);\n\t\t\telse if (value && typeof value === \"object\" && value.constructor === Object) newObject[property] = clone(value);\n\t\t\telse newObject[property] = value;\n\t\t}\n\t}\n\treturn newObject;\n}\n/**\n* Convert non-node values into strings without depending on direct property access.\n*\n* @param value - The value to stringify.\n* @returns A string representation of the provided value.\n*/\nfunction stringifyValue(value) {\n\tswitch (typeof value) {\n\t\tcase \"string\": return value;\n\t\tcase \"number\": return numberToString(value);\n\t\tcase \"boolean\": return booleanToString(value);\n\t\tcase \"bigint\": return bigintToString ? bigintToString(value) : \"0\";\n\t\tcase \"symbol\": return symbolToString ? symbolToString(value) : \"Symbol()\";\n\t\tcase \"undefined\": return objectToString(value);\n\t\tcase \"function\":\n\t\tcase \"object\": {\n\t\t\tif (value === null) return objectToString(value);\n\t\t\tconst valueAsRecord = value;\n\t\t\tconst valueToString = lookupGetter(valueAsRecord, \"toString\");\n\t\t\tif (typeof valueToString === \"function\") {\n\t\t\t\tconst stringified = valueToString(valueAsRecord);\n\t\t\t\treturn typeof stringified === \"string\" ? stringified : objectToString(stringified);\n\t\t\t}\n\t\t\treturn objectToString(value);\n\t\t}\n\t\tdefault: return objectToString(value);\n\t}\n}\n/**\n* This method automatically checks if the prop is function or getter and behaves accordingly.\n*\n* @param object - The object to look up the getter function in its prototype chain.\n* @param prop - The property name for which to find the getter function.\n* @returns The getter function found in the prototype chain or a fallback function.\n*/\nfunction lookupGetter(object, prop) {\n\twhile (object !== null) {\n\t\tconst desc = getOwnPropertyDescriptor(object, prop);\n\t\tif (desc) {\n\t\t\tif (desc.get) return unapply(desc.get);\n\t\t\tif (typeof desc.value === \"function\") return unapply(desc.value);\n\t\t}\n\t\tobject = getPrototypeOf(object);\n\t}\n\tfunction fallbackValue() {\n\t\treturn null;\n\t}\n\treturn fallbackValue;\n}\nfunction isRegex(value) {\n\ttry {\n\t\tregExpTest(value, \"\");\n\t\treturn true;\n\t} catch (_unused) {\n\t\treturn false;\n\t}\n}\nconst html$1 = freeze([\n\t\"a\",\n\t\"abbr\",\n\t\"acronym\",\n\t\"address\",\n\t\"area\",\n\t\"article\",\n\t\"aside\",\n\t\"audio\",\n\t\"b\",\n\t\"bdi\",\n\t\"bdo\",\n\t\"big\",\n\t\"blink\",\n\t\"blockquote\",\n\t\"body\",\n\t\"br\",\n\t\"button\",\n\t\"canvas\",\n\t\"caption\",\n\t\"center\",\n\t\"cite\",\n\t\"code\",\n\t\"col\",\n\t\"colgroup\",\n\t\"content\",\n\t\"data\",\n\t\"datalist\",\n\t\"dd\",\n\t\"decorator\",\n\t\"del\",\n\t\"details\",\n\t\"dfn\",\n\t\"dialog\",\n\t\"dir\",\n\t\"div\",\n\t\"dl\",\n\t\"dt\",\n\t\"element\",\n\t\"em\",\n\t\"fieldset\",\n\t\"figcaption\",\n\t\"figure\",\n\t\"font\",\n\t\"footer\",\n\t\"form\",\n\t\"h1\",\n\t\"h2\",\n\t\"h3\",\n\t\"h4\",\n\t\"h5\",\n\t\"h6\",\n\t\"head\",\n\t\"header\",\n\t\"hgroup\",\n\t\"hr\",\n\t\"html\",\n\t\"i\",\n\t\"img\",\n\t\"input\",\n\t\"ins\",\n\t\"kbd\",\n\t\"label\",\n\t\"legend\",\n\t\"li\",\n\t\"main\",\n\t\"map\",\n\t\"mark\",\n\t\"marquee\",\n\t\"menu\",\n\t\"menuitem\",\n\t\"meter\",\n\t\"nav\",\n\t\"nobr\",\n\t\"ol\",\n\t\"optgroup\",\n\t\"option\",\n\t\"output\",\n\t\"p\",\n\t\"picture\",\n\t\"pre\",\n\t\"progress\",\n\t\"q\",\n\t\"rp\",\n\t\"rt\",\n\t\"ruby\",\n\t\"s\",\n\t\"samp\",\n\t\"search\",\n\t\"section\",\n\t\"select\",\n\t\"shadow\",\n\t\"slot\",\n\t\"small\",\n\t\"source\",\n\t\"spacer\",\n\t\"span\",\n\t\"strike\",\n\t\"strong\",\n\t\"style\",\n\t\"sub\",\n\t\"summary\",\n\t\"sup\",\n\t\"table\",\n\t\"tbody\",\n\t\"td\",\n\t\"template\",\n\t\"textarea\",\n\t\"tfoot\",\n\t\"th\",\n\t\"thead\",\n\t\"time\",\n\t\"tr\",\n\t\"track\",\n\t\"tt\",\n\t\"u\",\n\t\"ul\",\n\t\"var\",\n\t\"video\",\n\t\"wbr\"\n]);\nconst svg$1 = freeze([\n\t\"svg\",\n\t\"a\",\n\t\"altglyph\",\n\t\"altglyphdef\",\n\t\"altglyphitem\",\n\t\"animatecolor\",\n\t\"animatemotion\",\n\t\"animatetransform\",\n\t\"circle\",\n\t\"clippath\",\n\t\"defs\",\n\t\"desc\",\n\t\"ellipse\",\n\t\"enterkeyhint\",\n\t\"exportparts\",\n\t\"filter\",\n\t\"font\",\n\t\"g\",\n\t\"glyph\",\n\t\"glyphref\",\n\t\"hkern\",\n\t\"image\",\n\t\"inputmode\",\n\t\"line\",\n\t\"lineargradient\",\n\t\"marker\",\n\t\"mask\",\n\t\"metadata\",\n\t\"mpath\",\n\t\"part\",\n\t\"path\",\n\t\"pattern\",\n\t\"polygon\",\n\t\"polyline\",\n\t\"radialgradient\",\n\t\"rect\",\n\t\"stop\",\n\t\"style\",\n\t\"switch\",\n\t\"symbol\",\n\t\"text\",\n\t\"textpath\",\n\t\"title\",\n\t\"tref\",\n\t\"tspan\",\n\t\"view\",\n\t\"vkern\"\n]);\nconst svgFilters = freeze([\n\t\"feBlend\",\n\t\"feColorMatrix\",\n\t\"feComponentTransfer\",\n\t\"feComposite\",\n\t\"feConvolveMatrix\",\n\t\"feDiffuseLighting\",\n\t\"feDisplacementMap\",\n\t\"feDistantLight\",\n\t\"feDropShadow\",\n\t\"feFlood\",\n\t\"feFuncA\",\n\t\"feFuncB\",\n\t\"feFuncG\",\n\t\"feFuncR\",\n\t\"feGaussianBlur\",\n\t\"feImage\",\n\t\"feMerge\",\n\t\"feMergeNode\",\n\t\"feMorphology\",\n\t\"feOffset\",\n\t\"fePointLight\",\n\t\"feSpecularLighting\",\n\t\"feSpotLight\",\n\t\"feTile\",\n\t\"feTurbulence\"\n]);\nconst svgDisallowed = freeze([\n\t\"animate\",\n\t\"color-profile\",\n\t\"cursor\",\n\t\"discard\",\n\t\"font-face\",\n\t\"font-face-format\",\n\t\"font-face-name\",\n\t\"font-face-src\",\n\t\"font-face-uri\",\n\t\"foreignobject\",\n\t\"hatch\",\n\t\"hatchpath\",\n\t\"mesh\",\n\t\"meshgradient\",\n\t\"meshpatch\",\n\t\"meshrow\",\n\t\"missing-glyph\",\n\t\"script\",\n\t\"set\",\n\t\"solidcolor\",\n\t\"unknown\",\n\t\"use\"\n]);\nconst mathMl$1 = freeze([\n\t\"math\",\n\t\"menclose\",\n\t\"merror\",\n\t\"mfenced\",\n\t\"mfrac\",\n\t\"mglyph\",\n\t\"mi\",\n\t\"mlabeledtr\",\n\t\"mmultiscripts\",\n\t\"mn\",\n\t\"mo\",\n\t\"mover\",\n\t\"mpadded\",\n\t\"mphantom\",\n\t\"mroot\",\n\t\"mrow\",\n\t\"ms\",\n\t\"mspace\",\n\t\"msqrt\",\n\t\"mstyle\",\n\t\"msub\",\n\t\"msup\",\n\t\"msubsup\",\n\t\"mtable\",\n\t\"mtd\",\n\t\"mtext\",\n\t\"mtr\",\n\t\"munder\",\n\t\"munderover\",\n\t\"mprescripts\"\n]);\nconst mathMlDisallowed = freeze([\n\t\"maction\",\n\t\"maligngroup\",\n\t\"malignmark\",\n\t\"mlongdiv\",\n\t\"mscarries\",\n\t\"mscarry\",\n\t\"msgroup\",\n\t\"mstack\",\n\t\"msline\",\n\t\"msrow\",\n\t\"semantics\",\n\t\"annotation\",\n\t\"annotation-xml\",\n\t\"mprescripts\",\n\t\"none\"\n]);\nconst text = freeze([\"#text\"]);\nconst html = freeze([\n\t\"accept\",\n\t\"action\",\n\t\"align\",\n\t\"alt\",\n\t\"autocapitalize\",\n\t\"autocomplete\",\n\t\"autopictureinpicture\",\n\t\"autoplay\",\n\t\"background\",\n\t\"bgcolor\",\n\t\"border\",\n\t\"capture\",\n\t\"cellpadding\",\n\t\"cellspacing\",\n\t\"checked\",\n\t\"cite\",\n\t\"class\",\n\t\"clear\",\n\t\"color\",\n\t\"cols\",\n\t\"colspan\",\n\t\"command\",\n\t\"commandfor\",\n\t\"controls\",\n\t\"controlslist\",\n\t\"coords\",\n\t\"crossorigin\",\n\t\"datetime\",\n\t\"decoding\",\n\t\"default\",\n\t\"dir\",\n\t\"disabled\",\n\t\"disablepictureinpicture\",\n\t\"disableremoteplayback\",\n\t\"download\",\n\t\"draggable\",\n\t\"enctype\",\n\t\"enterkeyhint\",\n\t\"exportparts\",\n\t\"face\",\n\t\"for\",\n\t\"headers\",\n\t\"height\",\n\t\"hidden\",\n\t\"high\",\n\t\"href\",\n\t\"hreflang\",\n\t\"id\",\n\t\"inert\",\n\t\"inputmode\",\n\t\"integrity\",\n\t\"ismap\",\n\t\"kind\",\n\t\"label\",\n\t\"lang\",\n\t\"list\",\n\t\"loading\",\n\t\"loop\",\n\t\"low\",\n\t\"max\",\n\t\"maxlength\",\n\t\"media\",\n\t\"method\",\n\t\"min\",\n\t\"minlength\",\n\t\"multiple\",\n\t\"muted\",\n\t\"name\",\n\t\"nonce\",\n\t\"noshade\",\n\t\"novalidate\",\n\t\"nowrap\",\n\t\"open\",\n\t\"optimum\",\n\t\"part\",\n\t\"pattern\",\n\t\"placeholder\",\n\t\"playsinline\",\n\t\"popover\",\n\t\"popovertarget\",\n\t\"popovertargetaction\",\n\t\"poster\",\n\t\"preload\",\n\t\"pubdate\",\n\t\"radiogroup\",\n\t\"readonly\",\n\t\"rel\",\n\t\"required\",\n\t\"rev\",\n\t\"reversed\",\n\t\"role\",\n\t\"rows\",\n\t\"rowspan\",\n\t\"spellcheck\",\n\t\"scope\",\n\t\"selected\",\n\t\"shape\",\n\t\"size\",\n\t\"sizes\",\n\t\"slot\",\n\t\"span\",\n\t\"srclang\",\n\t\"start\",\n\t\"src\",\n\t\"srcset\",\n\t\"step\",\n\t\"style\",\n\t\"summary\",\n\t\"tabindex\",\n\t\"title\",\n\t\"translate\",\n\t\"type\",\n\t\"usemap\",\n\t\"valign\",\n\t\"value\",\n\t\"width\",\n\t\"wrap\",\n\t\"xmlns\"\n]);\nconst svg = freeze([\n\t\"accent-height\",\n\t\"accumulate\",\n\t\"additive\",\n\t\"alignment-baseline\",\n\t\"amplitude\",\n\t\"ascent\",\n\t\"attributename\",\n\t\"attributetype\",\n\t\"azimuth\",\n\t\"basefrequency\",\n\t\"baseline-shift\",\n\t\"begin\",\n\t\"bias\",\n\t\"by\",\n\t\"class\",\n\t\"clip\",\n\t\"clippathunits\",\n\t\"clip-path\",\n\t\"clip-rule\",\n\t\"color\",\n\t\"color-interpolation\",\n\t\"color-interpolation-filters\",\n\t\"color-profile\",\n\t\"color-rendering\",\n\t\"cx\",\n\t\"cy\",\n\t\"d\",\n\t\"dx\",\n\t\"dy\",\n\t\"diffuseconstant\",\n\t\"direction\",\n\t\"display\",\n\t\"divisor\",\n\t\"dominant-baseline\",\n\t\"dur\",\n\t\"edgemode\",\n\t\"elevation\",\n\t\"end\",\n\t\"exponent\",\n\t\"fill\",\n\t\"fill-opacity\",\n\t\"fill-rule\",\n\t\"filter\",\n\t\"filterunits\",\n\t\"flood-color\",\n\t\"flood-opacity\",\n\t\"font-family\",\n\t\"font-size\",\n\t\"font-size-adjust\",\n\t\"font-stretch\",\n\t\"font-style\",\n\t\"font-variant\",\n\t\"font-weight\",\n\t\"fx\",\n\t\"fy\",\n\t\"g1\",\n\t\"g2\",\n\t\"glyph-name\",\n\t\"glyphref\",\n\t\"gradientunits\",\n\t\"gradienttransform\",\n\t\"height\",\n\t\"href\",\n\t\"id\",\n\t\"image-rendering\",\n\t\"in\",\n\t\"in2\",\n\t\"intercept\",\n\t\"k\",\n\t\"k1\",\n\t\"k2\",\n\t\"k3\",\n\t\"k4\",\n\t\"kerning\",\n\t\"keypoints\",\n\t\"keysplines\",\n\t\"keytimes\",\n\t\"lang\",\n\t\"lengthadjust\",\n\t\"letter-spacing\",\n\t\"kernelmatrix\",\n\t\"kernelunitlength\",\n\t\"lighting-color\",\n\t\"local\",\n\t\"marker-end\",\n\t\"marker-mid\",\n\t\"marker-start\",\n\t\"markerheight\",\n\t\"markerunits\",\n\t\"markerwidth\",\n\t\"maskcontentunits\",\n\t\"maskunits\",\n\t\"max\",\n\t\"mask\",\n\t\"mask-type\",\n\t\"media\",\n\t\"method\",\n\t\"mode\",\n\t\"min\",\n\t\"name\",\n\t\"numoctaves\",\n\t\"offset\",\n\t\"operator\",\n\t\"opacity\",\n\t\"order\",\n\t\"orient\",\n\t\"orientation\",\n\t\"origin\",\n\t\"overflow\",\n\t\"paint-order\",\n\t\"path\",\n\t\"pathlength\",\n\t\"patterncontentunits\",\n\t\"patterntransform\",\n\t\"patternunits\",\n\t\"pointer-events\",\n\t\"points\",\n\t\"preservealpha\",\n\t\"preserveaspectratio\",\n\t\"primitiveunits\",\n\t\"r\",\n\t\"rx\",\n\t\"ry\",\n\t\"radius\",\n\t\"refx\",\n\t\"refy\",\n\t\"repeatcount\",\n\t\"repeatdur\",\n\t\"restart\",\n\t\"result\",\n\t\"rotate\",\n\t\"scale\",\n\t\"seed\",\n\t\"shape-rendering\",\n\t\"slope\",\n\t\"specularconstant\",\n\t\"specularexponent\",\n\t\"spreadmethod\",\n\t\"startoffset\",\n\t\"stddeviation\",\n\t\"stitchtiles\",\n\t\"stop-color\",\n\t\"stop-opacity\",\n\t\"stroke-dasharray\",\n\t\"stroke-dashoffset\",\n\t\"stroke-linecap\",\n\t\"stroke-linejoin\",\n\t\"stroke-miterlimit\",\n\t\"stroke-opacity\",\n\t\"stroke\",\n\t\"stroke-width\",\n\t\"style\",\n\t\"surfacescale\",\n\t\"systemlanguage\",\n\t\"tabindex\",\n\t\"tablevalues\",\n\t\"targetx\",\n\t\"targety\",\n\t\"transform\",\n\t\"transform-origin\",\n\t\"text-anchor\",\n\t\"text-decoration\",\n\t\"text-orientation\",\n\t\"text-rendering\",\n\t\"textlength\",\n\t\"type\",\n\t\"u1\",\n\t\"u2\",\n\t\"unicode\",\n\t\"values\",\n\t\"vector-effect\",\n\t\"viewbox\",\n\t\"visibility\",\n\t\"version\",\n\t\"vert-adv-y\",\n\t\"vert-origin-x\",\n\t\"vert-origin-y\",\n\t\"width\",\n\t\"word-spacing\",\n\t\"wrap\",\n\t\"writing-mode\",\n\t\"xchannelselector\",\n\t\"ychannelselector\",\n\t\"x\",\n\t\"x1\",\n\t\"x2\",\n\t\"xmlns\",\n\t\"y\",\n\t\"y1\",\n\t\"y2\",\n\t\"z\",\n\t\"zoomandpan\"\n]);\nconst mathMl = freeze([\n\t\"accent\",\n\t\"accentunder\",\n\t\"align\",\n\t\"bevelled\",\n\t\"close\",\n\t\"columnalign\",\n\t\"columnlines\",\n\t\"columnspacing\",\n\t\"columnspan\",\n\t\"denomalign\",\n\t\"depth\",\n\t\"dir\",\n\t\"display\",\n\t\"displaystyle\",\n\t\"encoding\",\n\t\"fence\",\n\t\"frame\",\n\t\"height\",\n\t\"href\",\n\t\"id\",\n\t\"largeop\",\n\t\"length\",\n\t\"linethickness\",\n\t\"lquote\",\n\t\"lspace\",\n\t\"mathbackground\",\n\t\"mathcolor\",\n\t\"mathsize\",\n\t\"mathvariant\",\n\t\"maxsize\",\n\t\"minsize\",\n\t\"movablelimits\",\n\t\"notation\",\n\t\"numalign\",\n\t\"open\",\n\t\"rowalign\",\n\t\"rowlines\",\n\t\"rowspacing\",\n\t\"rowspan\",\n\t\"rspace\",\n\t\"rquote\",\n\t\"scriptlevel\",\n\t\"scriptminsize\",\n\t\"scriptsizemultiplier\",\n\t\"selection\",\n\t\"separator\",\n\t\"separators\",\n\t\"stretchy\",\n\t\"subscriptshift\",\n\t\"supscriptshift\",\n\t\"symmetric\",\n\t\"voffset\",\n\t\"width\",\n\t\"xmlns\"\n]);\nconst xml = freeze([\n\t\"xlink:href\",\n\t\"xml:id\",\n\t\"xlink:title\",\n\t\"xml:space\",\n\t\"xmlns:xlink\"\n]);\nconst MUSTACHE_EXPR = seal(/{{[\\w\\W]*|^[\\w\\W]*}}/g);\nconst ERB_EXPR = seal(/<%[\\w\\W]*|^[\\w\\W]*%>/g);\nconst TMPLIT_EXPR = seal(/\\${[\\w\\W]*/g);\nconst DATA_ATTR = seal(/^data-[\\-\\w.\\u00B7-\\uFFFF]+$/);\nconst ARIA_ATTR = seal(/^aria-[\\-\\w]+$/);\nconst IS_ALLOWED_URI = seal(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp|matrix):|[^a-z]|[a-z+.\\-]+(?:[^a-z+.\\-:]|$))/i);\nconst IS_SCRIPT_OR_DATA = seal(/^(?:\\w+script|data):/i);\nconst ATTR_WHITESPACE = seal(/[\\u0000-\\u0020\\u00A0\\u1680\\u180E\\u2000-\\u2029\\u205F\\u3000]/g);\nconst DOCTYPE_NAME = seal(/^html$/i);\nconst CUSTOM_ELEMENT = seal(/^[a-z][.\\w]*(-[.\\w]+)+$/i);\nconst ELEMENT_MARKUP_PROBE = seal(/<[/\\w!]/g);\nconst COMMENT_MARKUP_PROBE = seal(/<[/\\w]/g);\nconst FALLBACK_TAG_CLOSE = seal(/<\\/no(script|embed|frames)/i);\nconst SELF_CLOSING_TAG = seal(/\\/>/i);\nconst NODE_TYPE = {\n\telement: 1,\n\tattribute: 2,\n\ttext: 3,\n\tcdataSection: 4,\n\tentityReference: 5,\n\tentityNode: 6,\n\tprocessingInstruction: 7,\n\tcomment: 8,\n\tdocument: 9,\n\tdocumentType: 10,\n\tdocumentFragment: 11,\n\tnotation: 12\n};\nconst LITERAL_TEXT_ELEMENT_NAMES = [\n\t\"style\",\n\t\"script\",\n\t\"xmp\",\n\t\"iframe\",\n\t\"noembed\",\n\t\"noframes\",\n\t\"plaintext\",\n\t\"noscript\"\n];\nconst LITERAL_TEXT_ELEMENTS = freeze(addToSet({}, LITERAL_TEXT_ELEMENT_NAMES));\nconst LITERAL_TEXT_CLOSE = function() {\n\tconst map = {};\n\tarrayForEach(LITERAL_TEXT_ELEMENT_NAMES, (name) => {\n\t\tmap[name] = seal(new RegExp(\"</\" + name + \"(?=[\\\\t\\\\n\\\\f\\\\r />])\", \"i\"));\n\t});\n\treturn freeze(map);\n}();\nconst getGlobal = function getGlobal() {\n\treturn typeof window === \"undefined\" ? null : window;\n};\n/**\n* Creates a no-op policy for internal use only.\n* Don't export this function outside this module!\n* @param trustedTypes The policy factory.\n* @param purifyHostElement The Script element used to load DOMPurify (to determine policy name suffix).\n* @return The policy created (or null, if Trusted Types\n* are not supported or creating the policy failed).\n*/\nconst _createTrustedTypesPolicy = function _createTrustedTypesPolicy(trustedTypes, purifyHostElement) {\n\tif (typeof trustedTypes !== \"object\" || typeof trustedTypes.createPolicy !== \"function\") return null;\n\tlet suffix = null;\n\tconst ATTR_NAME = \"data-tt-policy-suffix\";\n\tif (purifyHostElement && purifyHostElement.hasAttribute(ATTR_NAME)) suffix = purifyHostElement.getAttribute(ATTR_NAME);\n\tconst policyName = \"dompurify\" + (suffix ? \"#\" + suffix : \"\");\n\ttry {\n\t\treturn trustedTypes.createPolicy(policyName, {\n\t\t\tcreateHTML(html) {\n\t\t\t\treturn html;\n\t\t\t},\n\t\t\tcreateScriptURL(scriptUrl) {\n\t\t\t\treturn scriptUrl;\n\t\t\t}\n\t\t});\n\t} catch (_) {\n\t\tconsole.warn(\"TrustedTypes policy \" + policyName + \" could not be created.\");\n\t\treturn null;\n\t}\n};\nconst _createHooksMap = function _createHooksMap() {\n\treturn {\n\t\tafterSanitizeAttributes: [],\n\t\tafterSanitizeElements: [],\n\t\tafterSanitizeShadowDOM: [],\n\t\tbeforeSanitizeAttributes: [],\n\t\tbeforeSanitizeElements: [],\n\t\tbeforeSanitizeShadowDOM: [],\n\t\tuponSanitizeAttribute: [],\n\t\tuponSanitizeElement: [],\n\t\tuponSanitizeShadowNode: []\n\t};\n};\n/**\n* Resolve a set-valued configuration option: a fresh set built from\n* cfg[key] when it is an own array property (seeded with a clone of\n* options.base when given, case-normalized via options.transform),\n* the fallback set otherwise.\n*\n* @param cfg the cloned, prototype-free configuration object\n* @param key the configuration property to read\n* @param fallback the set to use when the option is absent or not an array\n* @param options transform and optional base set to merge into\n* @returns the resolved set\n*/\nconst _resolveSetOption = function _resolveSetOption(cfg, key, fallback, options) {\n\treturn objectHasOwnProperty(cfg, key) && arrayIsArray(cfg[key]) ? addToSet(options.base ? clone(options.base) : {}, cfg[key], options.transform) : fallback;\n};\n/**\n* Resolve an object-valued configuration option: a prototype-free clone\n* of cfg[key] when it is an own, truthy object property, else a fresh\n* fallback built by makeFallback (fresh on every parse, so a previous\n* parse can never leak state into the next one).\n*\n* @param cfg the cloned, prototype-free configuration object\n* @param key the configuration property to read\n* @param makeFallback builds the fallback value when the option is absent\n* @returns the resolved object\n*/\nconst _resolveObjectOption = function _resolveObjectOption(cfg, key, makeFallback) {\n\tconst value = objectHasOwnProperty(cfg, key) ? cfg[key] : void 0;\n\treturn value && typeof value === \"object\" ? clone(value) : makeFallback();\n};\nfunction createDOMPurify() {\n\tlet window = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : getGlobal();\n\tconst DOMPurify = (root) => createDOMPurify(root);\n\tDOMPurify.version = \"3.4.16\";\n\tDOMPurify.removed = [];\n\tif (!window || !window.document || window.document.nodeType !== NODE_TYPE.document || !window.Element) {\n\t\tDOMPurify.isSupported = false;\n\t\treturn DOMPurify;\n\t}\n\tlet document = window.document;\n\tconst originalDocument = document;\n\tconst currentScript = originalDocument.currentScript;\n\twindow.DocumentFragment;\n\tconst HTMLTemplateElement = window.HTMLTemplateElement, Node = window.Node, Element = window.Element, NodeFilter = window.NodeFilter;\n\twindow.NamedNodeMap === void 0 && (window.NamedNodeMap || window.MozNamedAttrMap);\n\twindow.HTMLFormElement;\n\tconst DOMParser = window.DOMParser, trustedTypes = window.trustedTypes;\n\tconst ElementPrototype = Element.prototype;\n\tconst cloneNode = lookupGetter(ElementPrototype, \"cloneNode\");\n\tconst remove = lookupGetter(ElementPrototype, \"remove\");\n\tconst removeAttributeNode = lookupGetter(ElementPrototype, \"removeAttributeNode\");\n\tconst getNextSibling = lookupGetter(ElementPrototype, \"nextSibling\");\n\tconst getChildNodes = lookupGetter(ElementPrototype, \"childNodes\");\n\tconst getParentNode = lookupGetter(ElementPrototype, \"parentNode\");\n\tconst getShadowRoot = lookupGetter(ElementPrototype, \"shadowRoot\");\n\tconst getAttributes = lookupGetter(ElementPrototype, \"attributes\");\n\tconst getNodeType = Node && Node.prototype ? lookupGetter(Node.prototype, \"nodeType\") : null;\n\tconst getNodeName = Node && Node.prototype ? lookupGetter(Node.prototype, \"nodeName\") : null;\n\tconst getOwnerDocument = Node && Node.prototype ? lookupGetter(Node.prototype, \"ownerDocument\") : null;\n\tconst _readNodeType = function _readNodeType(node) {\n\t\treturn getNodeType ? getNodeType(node) : node.nodeType;\n\t};\n\tconst _readNodeName = function _readNodeName(node) {\n\t\treturn getNodeName ? getNodeName(node) : node.nodeName;\n\t};\n\tif (typeof HTMLTemplateElement === \"function\") {\n\t\tconst template = document.createElement(\"template\");\n\t\tif (template.content && template.content.ownerDocument) document = template.content.ownerDocument;\n\t}\n\tlet trustedTypesPolicy;\n\tlet emptyHTML = \"\";\n\tlet defaultTrustedTypesPolicy;\n\tlet defaultTrustedTypesPolicyResolved = false;\n\tlet IN_TRUSTED_TYPES_POLICY = 0;\n\tconst _assertNotInTrustedTypesPolicy = function _assertNotInTrustedTypesPolicy() {\n\t\tif (IN_TRUSTED_TYPES_POLICY > 0) throw typeErrorCreate(\"A configured TRUSTED_TYPES_POLICY callback (createHTML or createScriptURL) must not call DOMPurify.sanitize, as that causes infinite recursion. Do not pass a policy whose callbacks wrap DOMPurify as TRUSTED_TYPES_POLICY; see the \\\"DOMPurify and Trusted Types\\\" section of the README.\");\n\t};\n\tconst _createTrustedHTML = function _createTrustedHTML(html) {\n\t\t_assertNotInTrustedTypesPolicy();\n\t\tIN_TRUSTED_TYPES_POLICY++;\n\t\ttry {\n\t\t\treturn trustedTypesPolicy.createHTML(html);\n\t\t} finally {\n\t\t\tIN_TRUSTED_TYPES_POLICY--;\n\t\t}\n\t};\n\tconst _createTrustedScriptURL = function _createTrustedScriptURL(scriptUrl) {\n\t\t_assertNotInTrustedTypesPolicy();\n\t\tIN_TRUSTED_TYPES_POLICY++;\n\t\ttry {\n\t\t\treturn trustedTypesPolicy.createScriptURL(scriptUrl);\n\t\t} finally {\n\t\t\tIN_TRUSTED_TYPES_POLICY--;\n\t\t}\n\t};\n\tconst _getDefaultTrustedTypesPolicy = function _getDefaultTrustedTypesPolicy() {\n\t\tif (!defaultTrustedTypesPolicyResolved) {\n\t\t\tdefaultTrustedTypesPolicy = _createTrustedTypesPolicy(trustedTypes, currentScript);\n\t\t\tdefaultTrustedTypesPolicyResolved = true;\n\t\t}\n\t\treturn defaultTrustedTypesPolicy;\n\t};\n\tconst _document = document, implementation = _document.implementation, createNodeIterator = _document.createNodeIterator, createDocumentFragment = _document.createDocumentFragment, getElementsByTagName = _document.getElementsByTagName;\n\tconst importNode = originalDocument.importNode;\n\tlet hooks = _createHooksMap();\n\t/**\n\t* Expose whether this browser supports running the full DOMPurify.\n\t*/\n\tDOMPurify.isSupported = typeof entries === \"function\" && typeof getParentNode === \"function\" && implementation && implementation.createHTMLDocument !== void 0;\n\tconst MUSTACHE_EXPR$1 = MUSTACHE_EXPR, ERB_EXPR$1 = ERB_EXPR, TMPLIT_EXPR$1 = TMPLIT_EXPR, DATA_ATTR$1 = DATA_ATTR, ARIA_ATTR$1 = ARIA_ATTR, IS_SCRIPT_OR_DATA$1 = IS_SCRIPT_OR_DATA, ATTR_WHITESPACE$1 = ATTR_WHITESPACE, CUSTOM_ELEMENT$1 = CUSTOM_ELEMENT;\n\tlet IS_ALLOWED_URI$1 = IS_ALLOWED_URI;\n\t/**\n\t* We consider the elements and attributes below to be safe. Ideally\n\t* don't add any new ones but feel free to remove unwanted ones.\n\t*/\n\tlet ALLOWED_TAGS = null;\n\tconst DEFAULT_ALLOWED_TAGS = addToSet({}, [\n\t\t...html$1,\n\t\t...svg$1,\n\t\t...svgFilters,\n\t\t...mathMl$1,\n\t\t...text\n\t]);\n\tlet ALLOWED_ATTR = null;\n\tconst DEFAULT_ALLOWED_ATTR = addToSet({}, [\n\t\t...html,\n\t\t...svg,\n\t\t...mathMl,\n\t\t...xml\n\t]);\n\tlet CUSTOM_ELEMENT_HANDLING = Object.seal(create(null, {\n\t\ttagNameCheck: {\n\t\t\twritable: true,\n\t\t\tconfigurable: false,\n\t\t\tenumerable: true,\n\t\t\tvalue: null\n\t\t},\n\t\tattributeNameCheck: {\n\t\t\twritable: true,\n\t\t\tconfigurable: false,\n\t\t\tenumerable: true,\n\t\t\tvalue: null\n\t\t},\n\t\tallowCustomizedBuiltInElements: {\n\t\t\twritable: true,\n\t\t\tconfigurable: false,\n\t\t\tenumerable: true,\n\t\t\tvalue: false\n\t\t}\n\t}));\n\tlet FORBID_TAGS = null;\n\tlet FORBID_ATTR = null;\n\tconst EXTRA_ELEMENT_HANDLING = Object.seal(create(null, {\n\t\ttagCheck: {\n\t\t\twritable: true,\n\t\t\tconfigurable: false,\n\t\t\tenumerable: true,\n\t\t\tvalue: null\n\t\t},\n\t\tattributeCheck: {\n\t\t\twritable: true,\n\t\t\tconfigurable: false,\n\t\t\tenumerable: true,\n\t\t\tvalue: null\n\t\t}\n\t}));\n\tlet ALLOW_ARIA_ATTR = true;\n\tlet ALLOW_DATA_ATTR = true;\n\tlet ALLOW_UNKNOWN_PROTOCOLS = false;\n\tlet ALLOW_SELF_CLOSE_IN_ATTR = true;\n\tlet SAFE_FOR_TEMPLATES = false;\n\tlet SAFE_FOR_XML = true;\n\tlet WHOLE_DOCUMENT = false;\n\tlet SET_CONFIG = false;\n\tlet SET_CONFIG_ALLOWED_TAGS = null;\n\tlet SET_CONFIG_ALLOWED_ATTR = null;\n\tlet FORCE_BODY = false;\n\tlet RETURN_DOM = false;\n\tlet RETURN_DOM_FRAGMENT = false;\n\tlet RETURN_TRUSTED_TYPE = false;\n\tlet SANITIZE_DOM = true;\n\tlet SANITIZE_NAMED_PROPS = false;\n\tconst SANITIZE_NAMED_PROPS_PREFIX = \"user-content-\";\n\tlet KEEP_CONTENT = true;\n\tlet IN_PLACE = false;\n\tlet USE_PROFILES = {};\n\tlet FORBID_CONTENTS = null;\n\tconst DEFAULT_FORBID_CONTENTS = addToSet({}, [\n\t\t\"annotation-xml\",\n\t\t\"audio\",\n\t\t\"colgroup\",\n\t\t\"desc\",\n\t\t\"foreignobject\",\n\t\t\"head\",\n\t\t\"iframe\",\n\t\t\"math\",\n\t\t\"mi\",\n\t\t\"mn\",\n\t\t\"mo\",\n\t\t\"ms\",\n\t\t\"mtext\",\n\t\t\"noembed\",\n\t\t\"noframes\",\n\t\t\"noscript\",\n\t\t\"plaintext\",\n\t\t\"script\",\n\t\t\"selectedcontent\",\n\t\t\"style\",\n\t\t\"svg\",\n\t\t\"template\",\n\t\t\"thead\",\n\t\t\"title\",\n\t\t\"video\",\n\t\t\"xmp\"\n\t]);\n\tlet DATA_URI_TAGS = null;\n\tconst DEFAULT_DATA_URI_TAGS = addToSet({}, [\n\t\t\"audio\",\n\t\t\"video\",\n\t\t\"img\",\n\t\t\"source\",\n\t\t\"image\",\n\t\t\"track\"\n\t]);\n\tlet URI_SAFE_ATTRIBUTES = null;\n\tconst DEFAULT_URI_SAFE_ATTRIBUTES = addToSet({}, [\n\t\t\"alt\",\n\t\t\"class\",\n\t\t\"for\",\n\t\t\"id\",\n\t\t\"label\",\n\t\t\"name\",\n\t\t\"pattern\",\n\t\t\"placeholder\",\n\t\t\"role\",\n\t\t\"summary\",\n\t\t\"title\",\n\t\t\"value\",\n\t\t\"style\",\n\t\t\"xmlns\"\n\t]);\n\tconst MATHML_NAMESPACE = \"http://www.w3.org/1998/Math/MathML\";\n\tconst SVG_NAMESPACE = \"http://www.w3.org/2000/svg\";\n\tconst HTML_NAMESPACE = \"http://www.w3.org/1999/xhtml\";\n\tlet NAMESPACE = HTML_NAMESPACE;\n\tlet IS_EMPTY_INPUT = false;\n\tlet ALLOWED_NAMESPACES = null;\n\tconst DEFAULT_ALLOWED_NAMESPACES = addToSet({}, [\n\t\tMATHML_NAMESPACE,\n\t\tSVG_NAMESPACE,\n\t\tHTML_NAMESPACE\n\t], stringToString);\n\tconst DEFAULT_MATHML_TEXT_INTEGRATION_POINTS = freeze([\n\t\t\"mi\",\n\t\t\"mo\",\n\t\t\"mn\",\n\t\t\"ms\",\n\t\t\"mtext\"\n\t]);\n\tlet MATHML_TEXT_INTEGRATION_POINTS = addToSet({}, DEFAULT_MATHML_TEXT_INTEGRATION_POINTS);\n\tconst DEFAULT_HTML_INTEGRATION_POINTS = freeze([\"annotation-xml\"]);\n\tlet HTML_INTEGRATION_POINTS = addToSet({}, DEFAULT_HTML_INTEGRATION_POINTS);\n\tconst COMMON_SVG_AND_HTML_ELEMENTS = addToSet({}, [\n\t\t\"title\",\n\t\t\"style\",\n\t\t\"font\",\n\t\t\"a\",\n\t\t\"script\"\n\t]);\n\tlet PARSER_MEDIA_TYPE = null;\n\tconst SUPPORTED_PARSER_MEDIA_TYPES = [\"application/xhtml+xml\", \"text/html\"];\n\tconst DEFAULT_PARSER_MEDIA_TYPE = \"text/html\";\n\tlet transformCaseFunc = null;\n\tlet CONFIG = null;\n\tconst formElement = document.createElement(\"form\");\n\tconst isRegexOrFunction = function isRegexOrFunction(testValue) {\n\t\treturn testValue instanceof RegExp || testValue instanceof Function;\n\t};\n\t/**\n\t* _parseConfig\n\t*\n\t* @param cfg optional config literal\n\t*/\n\tconst _parseConfig = function _parseConfig() {\n\t\tlet cfg = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {};\n\t\tif (CONFIG && CONFIG === cfg) return;\n\t\tif (!cfg || typeof cfg !== \"object\") cfg = {};\n\t\tcfg = clone(cfg);\n\t\tPARSER_MEDIA_TYPE = SUPPORTED_PARSER_MEDIA_TYPES.indexOf(cfg.PARSER_MEDIA_TYPE) === -1 ? DEFAULT_PARSER_MEDIA_TYPE : cfg.PARSER_MEDIA_TYPE;\n\t\ttransformCaseFunc = PARSER_MEDIA_TYPE === \"application/xhtml+xml\" ? stringToString : stringToLowerCase;\n\t\tALLOWED_TAGS = _resolveSetOption(cfg, \"ALLOWED_TAGS\", DEFAULT_ALLOWED_TAGS, { transform: transformCaseFunc });\n\t\tALLOWED_ATTR = _resolveSetOption(cfg, \"ALLOWED_ATTR\", DEFAULT_ALLOWED_ATTR, { transform: transformCaseFunc });\n\t\tALLOWED_NAMESPACES = _resolveSetOption(cfg, \"ALLOWED_NAMESPACES\", DEFAULT_ALLOWED_NAMESPACES, { transform: stringToString });\n\t\tURI_SAFE_ATTRIBUTES = _resolveSetOption(cfg, \"ADD_URI_SAFE_ATTR\", DEFAULT_URI_SAFE_ATTRIBUTES, {\n\t\t\ttransform: transformCaseFunc,\n\t\t\tbase: DEFAULT_URI_SAFE_ATTRIBUTES\n\t\t});\n\t\tDATA_URI_TAGS = _resolveSetOption(cfg, \"ADD_DATA_URI_TAGS\", DEFAULT_DATA_URI_TAGS, {\n\t\t\ttransform: transformCaseFunc,\n\t\t\tbase: DEFAULT_DATA_URI_TAGS\n\t\t});\n\t\tFORBID_CONTENTS = _resolveSetOption(cfg, \"FORBID_CONTENTS\", DEFAULT_FORBID_CONTENTS, { transform: transformCaseFunc });\n\t\tFORBID_TAGS = _resolveSetOption(cfg, \"FORBID_TAGS\", clone({}), { transform: transformCaseFunc });\n\t\tFORBID_ATTR = _resolveSetOption(cfg, \"FORBID_ATTR\", clone({}), { transform: transformCaseFunc });\n\t\tUSE_PROFILES = objectHasOwnProperty(cfg, \"USE_PROFILES\") ? cfg.USE_PROFILES && typeof cfg.USE_PROFILES === \"object\" ? clone(cfg.USE_PROFILES) : cfg.USE_PROFILES : false;\n\t\tALLOW_ARIA_ATTR = cfg.ALLOW_ARIA_ATTR !== false;\n\t\tALLOW_DATA_ATTR = cfg.ALLOW_DATA_ATTR !== false;\n\t\tALLOW_UNKNOWN_PROTOCOLS = cfg.ALLOW_UNKNOWN_PROTOCOLS || false;\n\t\tALLOW_SELF_CLOSE_IN_ATTR = cfg.ALLOW_SELF_CLOSE_IN_ATTR !== false;\n\t\tSAFE_FOR_TEMPLATES = cfg.SAFE_FOR_TEMPLATES || false;\n\t\tSAFE_FOR_XML = cfg.SAFE_FOR_XML !== false;\n\t\tWHOLE_DOCUMENT = cfg.WHOLE_DOCUMENT || false;\n\t\tRETURN_DOM = cfg.RETURN_DOM || false;\n\t\tRETURN_DOM_FRAGMENT = cfg.RETURN_DOM_FRAGMENT || false;\n\t\tRETURN_TRUSTED_TYPE = cfg.RETURN_TRUSTED_TYPE || false;\n\t\tFORCE_BODY = cfg.FORCE_BODY || false;\n\t\tSANITIZE_DOM = cfg.SANITIZE_DOM !== false;\n\t\tSANITIZE_NAMED_PROPS = cfg.SANITIZE_NAMED_PROPS || false;\n\t\tKEEP_CONTENT = cfg.KEEP_CONTENT !== false;\n\t\tIN_PLACE = cfg.IN_PLACE || false;\n\t\tIS_ALLOWED_URI$1 = isRegex(cfg.ALLOWED_URI_REGEXP) ? cfg.ALLOWED_URI_REGEXP : IS_ALLOWED_URI;\n\t\tNAMESPACE = typeof cfg.NAMESPACE === \"string\" ? cfg.NAMESPACE : HTML_NAMESPACE;\n\t\tMATHML_TEXT_INTEGRATION_POINTS = _resolveObjectOption(cfg, \"MATHML_TEXT_INTEGRATION_POINTS\", () => addToSet({}, DEFAULT_MATHML_TEXT_INTEGRATION_POINTS));\n\t\tHTML_INTEGRATION_POINTS = _resolveObjectOption(cfg, \"HTML_INTEGRATION_POINTS\", () => addToSet({}, DEFAULT_HTML_INTEGRATION_POINTS));\n\t\tconst customElementHandling = _resolveObjectOption(cfg, \"CUSTOM_ELEMENT_HANDLING\", () => create(null));\n\t\tCUSTOM_ELEMENT_HANDLING = create(null);\n\t\tif (objectHasOwnProperty(customElementHandling, \"tagNameCheck\") && isRegexOrFunction(customElementHandling.tagNameCheck)) CUSTOM_ELEMENT_HANDLING.tagNameCheck = customElementHandling.tagNameCheck;\n\t\tif (objectHasOwnProperty(customElementHandling, \"attributeNameCheck\") && isRegexOrFunction(customElementHandling.attributeNameCheck)) CUSTOM_ELEMENT_HANDLING.attributeNameCheck = customElementHandling.attributeNameCheck;\n\t\tif (objectHasOwnProperty(customElementHandling, \"allowCustomizedBuiltInElements\") && typeof customElementHandling.allowCustomizedBuiltInElements === \"boolean\") CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements = customElementHandling.allowCustomizedBuiltInElements;\n\t\tseal(CUSTOM_ELEMENT_HANDLING);\n\t\tif (SAFE_FOR_TEMPLATES) ALLOW_DATA_ATTR = false;\n\t\tif (RETURN_DOM_FRAGMENT) RETURN_DOM = true;\n\t\tif (USE_PROFILES) {\n\t\t\tALLOWED_TAGS = addToSet({}, text);\n\t\t\tALLOWED_ATTR = create(null);\n\t\t\tif (USE_PROFILES.html === true) {\n\t\t\t\taddToSet(ALLOWED_TAGS, html$1);\n\t\t\t\taddToSet(ALLOWED_ATTR, html);\n\t\t\t}\n\t\t\tif (USE_PROFILES.svg === true) {\n\t\t\t\taddToSet(ALLOWED_TAGS, svg$1);\n\t\t\t\taddToSet(ALLOWED_ATTR, svg);\n\t\t\t\taddToSet(ALLOWED_ATTR, xml);\n\t\t\t}\n\t\t\tif (USE_PROFILES.svgFilters === true) {\n\t\t\t\taddToSet(ALLOWED_TAGS, svgFilters);\n\t\t\t\taddToSet(ALLOWED_ATTR, svg);\n\t\t\t\taddToSet(ALLOWED_ATTR, xml);\n\t\t\t}\n\t\t\tif (USE_PROFILES.mathMl === true) {\n\t\t\t\taddToSet(ALLOWED_TAGS, mathMl$1);\n\t\t\t\taddToSet(ALLOWED_ATTR, mathMl);\n\t\t\t\taddToSet(ALLOWED_ATTR, xml);\n\t\t\t}\n\t\t}\n\t\tEXTRA_ELEMENT_HANDLING.tagCheck = null;\n\t\tEXTRA_ELEMENT_HANDLING.attributeCheck = null;\n\t\tif (objectHasOwnProperty(cfg, \"ADD_TAGS\")) {\n\t\t\tif (typeof cfg.ADD_TAGS === \"function\") EXTRA_ELEMENT_HANDLING.tagCheck = cfg.ADD_TAGS;\n\t\t\telse if (arrayIsArray(cfg.ADD_TAGS)) {\n\t\t\t\tif (ALLOWED_TAGS === DEFAULT_ALLOWED_TAGS) ALLOWED_TAGS = clone(ALLOWED_TAGS);\n\t\t\t\taddToSet(ALLOWED_TAGS, cfg.ADD_TAGS, transformCaseFunc);\n\t\t\t}\n\t\t}\n\t\tif (objectHasOwnProperty(cfg, \"ADD_ATTR\")) {\n\t\t\tif (typeof cfg.ADD_ATTR === \"function\") EXTRA_ELEMENT_HANDLING.attributeCheck = cfg.ADD_ATTR;\n\t\t\telse if (arrayIsArray(cfg.ADD_ATTR)) {\n\t\t\t\tif (ALLOWED_ATTR === DEFAULT_ALLOWED_ATTR) ALLOWED_ATTR = clone(ALLOWED_ATTR);\n\t\t\t\taddToSet(ALLOWED_ATTR, cfg.ADD_ATTR, transformCaseFunc);\n\t\t\t}\n\t\t}\n\t\tif (objectHasOwnProperty(cfg, \"ADD_FORBID_CONTENTS\") && arrayIsArray(cfg.ADD_FORBID_CONTENTS)) {\n\t\t\tif (FORBID_CONTENTS === DEFAULT_FORBID_CONTENTS) FORBID_CONTENTS = clone(FORBID_CONTENTS);\n\t\t\taddToSet(FORBID_CONTENTS, cfg.ADD_FORBID_CONTENTS, transformCaseFunc);\n\t\t}\n\t\tif (KEEP_CONTENT) ALLOWED_TAGS[\"#text\"] = true;\n\t\tif (WHOLE_DOCUMENT) addToSet(ALLOWED_TAGS, [\n\t\t\t\"html\",\n\t\t\t\"head\",\n\t\t\t\"body\"\n\t\t]);\n\t\tif (ALLOWED_TAGS.table) {\n\t\t\taddToSet(ALLOWED_TAGS, [\"tbody\"]);\n\t\t\tdelete FORBID_TAGS.tbody;\n\t\t}\n\t\tif (cfg.TRUSTED_TYPES_POLICY) {\n\t\t\tif (typeof cfg.TRUSTED_TYPES_POLICY.createHTML !== \"function\") throw typeErrorCreate(\"TRUSTED_TYPES_POLICY configuration option must provide a \\\"createHTML\\\" hook.\");\n\t\t\tif (typeof cfg.TRUSTED_TYPES_POLICY.createScriptURL !== \"function\") throw typeErrorCreate(\"TRUSTED_TYPES_POLICY configuration option must provide a \\\"createScriptURL\\\" hook.\");\n\t\t\tconst previousTrustedTypesPolicy = trustedTypesPolicy;\n\t\t\ttrustedTypesPolicy = cfg.TRUSTED_TYPES_POLICY;\n\t\t\ttry {\n\t\t\t\temptyHTML = _createTrustedHTML(\"\");\n\t\t\t} catch (error) {\n\t\t\t\ttrustedTypesPolicy = previousTrustedTypesPolicy;\n\t\t\t\tthrow error;\n\t\t\t}\n\t\t} else if (cfg.TRUSTED_TYPES_POLICY === null) {\n\t\t\ttrustedTypesPolicy = void 0;\n\t\t\temptyHTML = \"\";\n\t\t} else {\n\t\t\tif (trustedTypesPolicy === void 0) trustedTypesPolicy = _getDefaultTrustedTypesPolicy();\n\t\t\tif (trustedTypesPolicy && typeof emptyHTML === \"string\") emptyHTML = _createTrustedHTML(\"\");\n\t\t}\n\t\tif (freeze) freeze(cfg);\n\t\tCONFIG = cfg;\n\t};\n\tconst ALL_SVG_TAGS = addToSet({}, [\n\t\t...svg$1,\n\t\t...svgFilters,\n\t\t...svgDisallowed\n\t]);\n\tconst ALL_MATHML_TAGS = addToSet({}, [...mathMl$1, ...mathMlDisallowed]);\n\t/**\n\t* Namespace rules for an element in the SVG namespace.\n\t*\n\t* @param tagName the element's lowercase tag name\n\t* @param parent the (possibly simulated) parent node\n\t* @param parentTagName the parent's lowercase tag name\n\t* @returns true if a spec-compliant parser could produce this element\n\t*/\n\tconst _checkSvgNamespace = function _checkSvgNamespace(tagName, parent, parentTagName) {\n\t\tif (parent.namespaceURI === HTML_NAMESPACE) return tagName === \"svg\";\n\t\tif (parent.namespaceURI === MATHML_NAMESPACE) return tagName === \"svg\" && (parentTagName === \"annotation-xml\" || MATHML_TEXT_INTEGRATION_POINTS[parentTagName]);\n\t\treturn Boolean(ALL_SVG_TAGS[tagName]);\n\t};\n\t/**\n\t* Namespace rules for an element in the MathML namespace.\n\t*\n\t* @param tagName the element's lowercase tag name\n\t* @param parent the (possibly simulated) parent node\n\t* @param parentTagName the parent's lowercase tag name\n\t* @returns true if a spec-compliant parser could produce this element\n\t*/\n\tconst _checkMathMlNamespace = function _checkMathMlNamespace(tagName, parent, parentTagName) {\n\t\tif (parent.namespaceURI === HTML_NAMESPACE) return tagName === \"math\";\n\t\tif (parent.namespaceURI === SVG_NAMESPACE) return tagName === \"math\" && HTML_INTEGRATION_POINTS[parentTagName];\n\t\treturn Boolean(ALL_MATHML_TAGS[tagName]);\n\t};\n\t/**\n\t* Namespace rules for an element in the HTML namespace.\n\t*\n\t* @param tagName the element's lowercase tag name\n\t* @param parent the (possibly simulated) parent node\n\t* @param parentTagName the parent's lowercase tag name\n\t* @returns true if a spec-compliant parser could produce this element\n\t*/\n\tconst _checkHtmlNamespace = function _checkHtmlNamespace(tagName, parent, parentTagName) {\n\t\tif (parent.namespaceURI === SVG_NAMESPACE && !HTML_INTEGRATION_POINTS[parentTagName]) return false;\n\t\tif (parent.namespaceURI === MATHML_NAMESPACE && !MATHML_TEXT_INTEGRATION_POINTS[parentTagName]) return false;\n\t\treturn !ALL_MATHML_TAGS[tagName] && (COMMON_SVG_AND_HTML_ELEMENTS[tagName] || !ALL_SVG_TAGS[tagName]);\n\t};\n\t/**\n\t* @param element a DOM element whose namespace is being checked\n\t* @returns Return false if the element has a\n\t* namespace that a spec-compliant parser would never\n\t* return. Return true otherwise.\n\t*/\n\tconst _checkValidNamespace = function _checkValidNamespace(element) {\n\t\tlet parent = getParentNode(element);\n\t\tif (!parent || !parent.tagName) parent = {\n\t\t\tnamespaceURI: NAMESPACE,\n\t\t\ttagName: \"template\"\n\t\t};\n\t\tconst tagName = stringToLowerCase(element.tagName);\n\t\tconst parentTagName = stringToLowerCase(parent.tagName);\n\t\tif (!ALLOWED_NAMESPACES[element.namespaceURI]) return false;\n\t\tif (element.namespaceURI === SVG_NAMESPACE) return _checkSvgNamespace(tagName, parent, parentTagName);\n\t\tif (element.namespaceURI === MATHML_NAMESPACE) return _checkMathMlNamespace(tagName, parent, parentTagName);\n\t\tif (element.namespaceURI === HTML_NAMESPACE) return _checkHtmlNamespace(tagName, parent, parentTagName);\n\t\tif (PARSER_MEDIA_TYPE === \"application/xhtml+xml\" && ALLOWED_NAMESPACES[element.namespaceURI]) return true;\n\t\treturn false;\n\t};\n\t/**\n\t* _forceRemove\n\t*\n\t* @param node a DOM node\n\t*/\n\tconst _forceRemove = function _forceRemove(node) {\n\t\tarrayPush(DOMPurify.removed, { element: node });\n\t\ttry {\n\t\t\tgetParentNode(node).removeChild(node);\n\t\t} catch (_) {\n\t\t\tremove(node);\n\t\t\tif (!getParentNode(node)) throw typeErrorCreate(\"a node selected for removal could not be detached from its tree and cannot be safely returned; refusing to sanitize in place\");\n\t\t}\n\t};\n\t/**\n\t* _stripAttributeNode\n\t*\n\t* Remove a single Attr node case/namespace-exactly on an attribute-teardown\n\t* path. Name-based removeAttribute() ASCII-lowercases its lookup key for an\n\t* HTML element in an HTML document and so silently misses a case-preserved\n\t* handler (e.g. `ONERROR` off an XML/XHTML import) - the same defect\n\t* _removeAttribute() was fixed for, which a name-based call would reintroduce\n\t* on these IN_PLACE teardown paths. Unlike _removeAttribute this does not\n\t* record into DOMPurify.removed: the neutralize passes intentionally do not\n\t* book-keep. A clobbered/detached node falls back to best-effort name-based\n\t* removal.\n\t*\n\t* @param element the element to strip the attribute from\n\t* @param attribute the Attr node to remove\n\t* @param name the attribute's name, for the fallback path\n\t*/\n\tconst _stripAttributeNode = function _stripAttributeNode(element, attribute, name) {\n\t\ttry {\n\t\t\tremoveAttributeNode(element, attribute);\n\t\t} catch (_) {\n\t\t\ttry {\n\t\t\t\telement.removeAttribute(name);\n\t\t\t} catch (_) {}\n\t\t}\n\t};\n\t/**\n\t* _neutralizeRoot\n\t*\n\t* Fail-closed teardown of an in-place root after the sanitize walk aborts\n\t* (campaign-3 F2). An internal throw mid-walk — e.g. a page-registered\n\t* custom element's reaction detaches a node so `_forceRemove`'s deliberate\n\t* parentless guard throws, or any other re-entrant engine mutation — would\n\t* otherwise leave the caller's *live* tree half-sanitized, with everything\n\t* after the abort point still carrying its handlers. There is no safe way\n\t* to resume the walk (the tree mutated under us), so we strip the root bare:\n\t* remove every child and every attribute, then let the caller's catch see\n\t* the original error. Clobber-safe (cached `remove`/`childNodes`/`attributes`\n\t* getters; the root was already clobber-pre-flighted at the IN_PLACE entry).\n\t*\n\t* @param root the in-place root to empty\n\t*/\n\tconst _neutralizeRoot = function _neutralizeRoot(root) {\n\t\t_neutralizeSubtree(root);\n\t\tconst childNodes = getChildNodes(root);\n\t\tif (childNodes) {\n\t\t\tconst snapshot = [];\n\t\t\tarrayForEach(childNodes, (child) => {\n\t\t\t\tarrayPush(snapshot, child);\n\t\t\t});\n\t\t\tarrayForEach(snapshot, (child) => {\n\t\t\t\ttry {\n\t\t\t\t\tremove(child);\n\t\t\t\t} catch (_) {}\n\t\t\t});\n\t\t}\n\t\tconst attributes = getAttributes(root);\n\t\tif (attributes) for (let i = attributes.length - 1; i >= 0; --i) {\n\t\t\tconst attribute = attributes[i];\n\t\t\tconst name = attribute && attribute.name;\n\t\t\tif (typeof name === \"string\") _stripAttributeNode(root, attribute, name);\n\t\t}\n\t};\n\t/**\n\t* _removeAttribute\n\t*\n\t* Name-based getAttributeNode()/removeAttribute() ASCII-lowercase their\n\t* lookup key for HTML elements in an HTML document, so they silently miss an\n\t* attribute whose stored qualified name still contains uppercase ASCII\n\t* letters. That happens when the node came from a case-preserving source\n\t* (an XML/XHTML document imported via importNode(), or createAttributeNS()),\n\t* where e.g. `ONERROR` survives the walk: the policy check lowercases to\n\t* `onerror` and rejects it, but `removeAttribute('ONERROR')` looks up\n\t* `onerror` and finds nothing. Remove the exact Attr node instead, which is\n\t* case- and namespace-exact, and fall back to name-based removal only when\n\t* the caller could not supply the node.\n\t*\n\t* @param name an Attribute name\n\t* @param element a DOM node\n\t* @param attr the exact Attr node to remove, when the caller has it\n\t*/\n\tconst _removeAttribute = function _removeAttribute(name, element, attr) {\n\t\tif (!attr) try {\n\t\t\tattr = element.getAttributeNode(name);\n\t\t} catch (_) {\n\t\t\tattr = null;\n\t\t}\n\t\tarrayPush(DOMPurify.removed, {\n\t\t\tattribute: attr || null,\n\t\t\tfrom: element\n\t\t});\n\t\ttry {\n\t\t\tif (attr) removeAttributeNode(element, attr);\n\t\t\telse element.removeAttribute(name);\n\t\t} catch (_) {\n\t\t\ttry {\n\t\t\t\telement.removeAttribute(name);\n\t\t\t} catch (_) {}\n\t\t}\n\t\tif (name === \"is\") {\n\t\t\tif (RETURN_DOM || RETURN_DOM_FRAGMENT) try {\n\t\t\t\t_forceRemove(element);\n\t\t\t} catch (_) {}\n\t\t\telse try {\n\t\t\t\telement.setAttribute(name, \"\");\n\t\t\t} catch (_) {}\n\t\t}\n\t};\n\t/**\n\t* _stripDisallowedAttributes\n\t*\n\t* Removes every attribute the active configuration does not allow from a\n\t* single element, using the same allowlist as the main attribute pass (so\n\t* `on*` handlers go, but no `/^on/` blocklist is introduced). Used only to\n\t* neutralise nodes that are being discarded from an in-place tree.\n\t*\n\t* @param element the element to strip\n\t*/\n\tconst _stripDisallowedAttributes = function _stripDisallowedAttributes(element) {\n\t\tconst attributes = getAttributes(element);\n\t\tif (!attributes) return;\n\t\tfor (let i = attributes.length - 1; i >= 0; --i) {\n\t\t\tconst attribute = attributes[i];\n\t\t\tconst name = attribute && attribute.name;\n\t\t\tif (typeof name !== \"string\" || ALLOWED_ATTR[transformCaseFunc(name)]) continue;\n\t\t\t_stripAttributeNode(element, attribute, name);\n\t\t}\n\t};\n\t/**\n\t* _neutralizeSubtree\n\t*\n\t* Completes the audit-5 F1 fix across every removal path. The KEEP_CONTENT\n\t* move-hoist neutralises only disallowed-tag removals; clobber, mXSS-canary,\n\t* namespace, comment, processing-instruction and KEEP_CONTENT:false removals\n\t* all drop their subtree wholesale via `_forceRemove`. On the IN_PLACE path\n\t* those dropped nodes are detached from the caller's LIVE tree but a\n\t* handler-bearing original among them (an `<img onerror>`/`<video>` that was\n\t* loading) keeps its queued resource event, which fires in page scope after\n\t* sanitize returns. This walks a removed subtree and strips every attribute\n\t* the active configuration does not allow — so `on*` handlers are cancelled\n\t* through the SAME allowlist that governs kept nodes, not a separate `/^on/`\n\t* blocklist. Run synchronously before sanitize returns, i.e. before any\n\t* queued event can fire. Hook-free by design: these nodes leave the output,\n\t* so firing attribute hooks for them would be surprising. Clobber-safe reads;\n\t* a doomed clobbered node may shadow `removeAttribute` (its own attributes are\n\t* irrelevant — it is discarded — while its non-clobbered descendants, e.g.\n\t* the `<img>`, are reached and scrubbed).\n\t*\n\t* @param root the root of a removed subtree to neutralise\n\t*/\n\tconst _neutralizeSubtree = function _neutralizeSubtree(root) {\n\t\tconst stack = [root];\n\t\twhile (stack.length > 0) {\n\t\t\tconst node = stack.pop();\n\t\t\tif (_readNodeType(node) === NODE_TYPE.element) _stripDisallowedAttributes(node);\n\t\t\tconst childNodes = getChildNodes(node);\n\t\t\tif (childNodes) for (let i = childNodes.length - 1; i >= 0; --i) stack.push(childNodes[i]);\n\t\t}\n\t};\n\t/**\n\t* _neutralizePatchLinkage\n\t*\n\t* IN_PLACE entry pre-pass (declarative-partial-updates / streaming\n\t* hardening, https://github.com/WICG/declarative-partial-updates).\n\t*\n\t* The main walk strips patch linkage (`for`/`patchsrc`) and removes range\n\t* markers (PIs / markup comments) node-by-node, in document order, AS it\n\t* reaches each node. On a live in-place root that leaves a window: from the\n\t* moment the root is connected until the walk arrives at a given node, that\n\t* node's linkage is live. A patch applied on connection/stream can fire as\n\t* a microtask during the walk and inject or teleport an unsanitized DOM\n\t* range into a region the iterator has already passed and will not revisit,\n\t* so the post-return \"tree is sanitized\" contract is violated. Sweep the\n\t* whole tree once up front and sever every linkage before the walk begins,\n\t* closing that window.\n\t*\n\t* This CANNOT undo a patch that already fired before sanitize ran — that is\n\t* the irreducible \"do not IN_PLACE a live-connected attacker tree\" caveat —\n\t* but it closes everything from sanitize-start onward. Gated on SAFE_FOR_XML\n\t* to group with the rest of the declarative-partial-updates handling and\n\t* stay overridable, consistent with the codebase.\n\t*\n\t* Clobber-safe traversal (cached childNodes getter); per-node try/catch so a\n\t* clobbered root cannot defeat the sweep of its non-clobbered descendants.\n\t*\n\t* NOTE (pending real-Chrome confirmation, see test/declarative-patch-probe\n\t* .html Q1): this mirrors the existing policy of keeping `for` on\n\t* <label>/<output>. If the shipping feature can drive a patch through a\n\t* surviving `for`-on-label/output + `id` pair, this pre-pass and the\n\t* attribute check at _isBasicCustomElement's caller must additionally drop\n\t* that pair on the IN_PLACE path. Left as-is until the taxonomy is verified.\n\t*\n\t* @param root the in-place root to sweep\n\t*/\n\t/**\n\t* Central policy for declarative-partial-updates patch-linkage attributes,\n\t* shared by the _neutralizePatchLinkage pre-pass and _isValidAttribute so\n\t* the two sites cannot drift: `patchsrc` always links, `for` links\n\t* everywhere except on <label>/<output>, and the whole policy is gated on\n\t* SAFE_FOR_XML (see the rationale block in _isValidAttribute).\n\t*\n\t* @param lcName the transformCaseFunc'd attribute name\n\t* @param lcTag the transformCaseFunc'd tag name of the carrying element\n\t* @return true if the attribute is patch linkage and must be dropped\n\t*/\n\tconst _isPatchLinkageAttribute = function _isPatchLinkageAttribute(lcName, lcTag) {\n\t\tif (!SAFE_FOR_XML) return false;\n\t\tif (lcName === \"patchsrc\") return true;\n\t\treturn lcName === \"for\" && lcTag !== \"label\" && lcTag !== \"output\";\n\t};\n\tconst _neutralizePatchLinkage = function _neutralizePatchLinkage(root) {\n\t\tif (!SAFE_FOR_XML) return;\n\t\tconst stack = [root];\n\t\twhile (stack.length > 0) {\n\t\t\tconst node = stack.pop();\n\t\t\tconst nodeType = _readNodeType(node);\n\t\t\tif (nodeType === NODE_TYPE.processingInstruction || nodeType === NODE_TYPE.comment && regExpTest(COMMENT_MARKUP_PROBE, node.data)) {\n\t\t\t\ttry {\n\t\t\t\t\tremove(node);\n\t\t\t\t} catch (_) {}\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tif (nodeType === NODE_TYPE.element) {\n\t\t\t\tconst element = node;\n\t\t\t\tconst lcTag = transformCaseFunc(_readNodeName(node));\n\t\t\t\ttry {\n\t\t\t\t\tif (element.hasAttribute && element.hasAttribute(\"patchsrc\")) element.removeAttribute(\"patchsrc\");\n\t\t\t\t\tif (element.hasAttribute && element.hasAttribute(\"for\") && _isPatchLinkageAttribute(\"for\", lcTag)) element.removeAttribute(\"for\");\n\t\t\t\t} catch (_) {}\n\t\t\t}\n\t\t\tconst childNodes = getChildNodes(node);\n\t\t\tif (childNodes) for (let i = childNodes.length - 1; i >= 0; --i) stack.push(childNodes[i]);\n\t\t}\n\t};\n\t/**\n\t* _initDocument\n\t*\n\t* @param dirty - a string of dirty markup\n\t* @return a DOM, filled with the dirty markup\n\t*/\n\tconst _initDocument = function _initDocument(dirty) {\n\t\tlet doc = null;\n\t\tlet leadingWhitespace = null;\n\t\tif (FORCE_BODY) dirty = \"<remove></remove>\" + dirty;\n\t\telse {\n\t\t\tconst matches = stringMatch(dirty, /^[\\r\\n\\t ]+/);\n\t\t\tleadingWhitespace = matches && matches[0];\n\t\t}\n\t\tif (PARSER_MEDIA_TYPE === \"application/xhtml+xml\" && NAMESPACE === HTML_NAMESPACE) dirty = \"<html xmlns=\\\"http://www.w3.org/1999/xhtml\\\"><head></head><body>\" + dirty + \"</body></html>\";\n\t\tconst dirtyPayload = trustedTypesPolicy ? _createTrustedHTML(dirty) : dirty;\n\t\tif (NAMESPACE === HTML_NAMESPACE) try {\n\t\t\tdoc = new DOMParser().parseFromString(dirtyPayload, PARSER_MEDIA_TYPE);\n\t\t} catch (_) {}\n\t\tif (!doc || !doc.documentElement) {\n\t\t\tdoc = implementation.createDocument(NAMESPACE, \"template\", null);\n\t\t\ttry {\n\t\t\t\tdoc.documentElement.innerHTML = IS_EMPTY_INPUT ? emptyHTML : dirtyPayload;\n\t\t\t} catch (_) {}\n\t\t}\n\t\tconst body = doc.body || doc.documentElement;\n\t\tif (dirty && leadingWhitespace) body.insertBefore(document.createTextNode(leadingWhitespace), body.childNodes[0] || null);\n\t\tif (NAMESPACE === HTML_NAMESPACE) return getElementsByTagName.call(doc, WHOLE_DOCUMENT ? \"html\" : \"body\")[0];\n\t\treturn WHOLE_DOCUMENT ? doc.documentElement : body;\n\t};\n\t/**\n\t* Creates a NodeIterator object that you can use to traverse filtered lists of nodes or elements in a document.\n\t*\n\t* @param root The root element or node to start traversing on.\n\t* @return The created NodeIterator\n\t*/\n\tconst _createNodeIterator = function _createNodeIterator(root) {\n\t\tconst doc = getOwnerDocument ? getOwnerDocument(root) : root.ownerDocument;\n\t\treturn createNodeIterator.call(doc || root, root, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_COMMENT | NodeFilter.SHOW_TEXT | NodeFilter.SHOW_PROCESSING_INSTRUCTION | NodeFilter.SHOW_CDATA_SECTION, null);\n\t};\n\t/**\n\t* Replace template expression syntax (mustache, ERB, template\n\t* literal) with a space; shared by all SAFE_FOR_TEMPLATES scrub\n\t* sites. Order matters: mustache, then ERB, then template literal.\n\t*\n\t* @param value the string to scrub\n\t* @returns the scrubbed string\n\t*/\n\tconst _stripTemplateExpressions = function _stripTemplateExpressions(value) {\n\t\tvalue = stringReplace(value, MUSTACHE_EXPR$1, \" \");\n\t\tvalue = stringReplace(value, ERB_EXPR$1, \" \");\n\t\tvalue = stringReplace(value, TMPLIT_EXPR$1, \" \");\n\t\treturn value;\n\t};\n\t/**\n\t* Strip template-engine expressions ({{...}}, ${...}, <%...%>) from the\n\t* character data of an element subtree. Used as the final safety net for\n\t* SAFE_FOR_TEMPLATES on every DOM-returning code path so that expressions\n\t* which only form after text-node normalization (e.g. fragments split across\n\t* stripped elements) cannot survive into a template-evaluating framework.\n\t*\n\t* Walks text/comment/CDATA/processing-instruction nodes and mutates `.data`\n\t* in place rather than round-tripping through innerHTML. This preserves\n\t* descendant node references (important for IN_PLACE callers), avoids a\n\t* serialize/reparse cycle, and reads literal character data — which means\n\t* `<%...%>` in text content matches the ERB regex against its real bytes\n\t* instead of the HTML-entity-escaped form innerHTML would produce.\n\t*\n\t* Attribute values are not visited here; SAFE_FOR_TEMPLATES handling for\n\t* attributes is performed during the per-node `_sanitizeAttributes` pass.\n\t*\n\t* @param node The root element whose character data should be scrubbed.\n\t*/\n\tconst _scrubTemplateExpressions2 = function _scrubTemplateExpressions(node) {\n\t\tvar _node$querySelectorAl;\n\t\tnode.normalize();\n\t\tconst doc = getOwnerDocument ? getOwnerDocument(node) : node.ownerDocument;\n\t\tconst walker = createNodeIterator.call(doc || node, node, NodeFilter.SHOW_TEXT | NodeFilter.SHOW_COMMENT | NodeFilter.SHOW_CDATA_SECTION | NodeFilter.SHOW_PROCESSING_INSTRUCTION, null);\n\t\tlet currentNode = walker.nextNode();\n\t\twhile (currentNode) {\n\t\t\tcurrentNode.data = _stripTemplateExpressions(currentNode.data);\n\t\t\tcurrentNode = walker.nextNode();\n\t\t}\n\t\tconst templates = (_node$querySelectorAl = node.querySelectorAll) === null || _node$querySelectorAl === void 0 ? void 0 : _node$querySelectorAl.call(node, \"template\");\n\t\tif (templates) arrayForEach(templates, (tmpl) => {\n\t\t\tif (_isDocumentFragment(tmpl.content)) _scrubTemplateExpressions2(tmpl.content);\n\t\t});\n\t};\n\t/**\n\t* _isClobbered\n\t*\n\t* Detect DOM-clobbering on HTMLFormElement nodes. Form is the only HTML\n\t* interface with [LegacyOverrideBuiltIns]; a descendant element with a\n\t* `name` attribute matching a prototype property shadows that property\n\t* on direct reads. We use this check at the IN_PLACE entry-point and\n\t* during attribute sanitization to refuse clobbered forms.\n\t*\n\t* @param element element to check for clobbering attacks\n\t* @return true if clobbered, false if safe\n\t*/\n\tconst _isClobbered = function _isClobbered(element) {\n\t\tconst realTagName = getNodeName ? getNodeName(element) : null;\n\t\tif (typeof realTagName !== \"string\") return false;\n\t\tif (transformCaseFunc(realTagName) !== \"form\") return false;\n\t\treturn typeof element.nodeName !== \"string\" || typeof element.textContent !== \"string\" || typeof element.removeChild !== \"function\" || element.attributes !== getAttributes(element) || typeof element.removeAttribute !== \"function\" || typeof element.removeAttributeNode !== \"function\" || typeof element.getAttributeNode !== \"function\" || typeof element.setAttribute !== \"function\" || typeof element.namespaceURI !== \"string\" || typeof element.insertBefore !== \"function\" || typeof element.hasChildNodes !== \"function\" || element.nodeType !== getNodeType(element) || element.childNodes !== getChildNodes(element);\n\t};\n\t/**\n\t* Checks whether the given value is a DocumentFragment from any realm.\n\t*\n\t* The realm-independent replacement reads `nodeType` through the cached\n\t* Node.prototype getter and compares to the DOCUMENT_FRAGMENT_NODE\n\t* constant (11). nodeType is a numeric value resolved from the node's\n\t* internal slot, identical across realms for the same kind of node.\n\t*\n\t* @param value object to check\n\t* @return true if value is a DocumentFragment-shaped node from any realm\n\t*/\n\tconst _isDocumentFragment = function _isDocumentFragment(value) {\n\t\tif (!getNodeType || typeof value !== \"object\" || value === null) return false;\n\t\ttry {\n\t\t\treturn getNodeType(value) === NODE_TYPE.documentFragment;\n\t\t} catch (_) {\n\t\t\treturn false;\n\t\t}\n\t};\n\t/**\n\t* Checks whether the given object is a DOM node, including nodes that\n\t* originate from a different window/realm (e.g. an iframe's\n\t* contentDocument). The previous `value instanceof Node` check was\n\t* realm-bound: nodes from a different window failed it, causing\n\t* sanitize() to silently stringify them and reset IN_PLACE to false,\n\t* returning the original node unsanitized. See GHSA-4w3q-35jp-p934.\n\t*\n\t* @param value object to check whether it's a DOM node\n\t* @return true if value is a DOM node from any realm\n\t*/\n\tconst _isNode = function _isNode(value) {\n\t\tif (!getNodeType || typeof value !== \"object\" || value === null) return false;\n\t\ttry {\n\t\t\treturn typeof getNodeType(value) === \"number\";\n\t\t} catch (_) {\n\t\t\treturn false;\n\t\t}\n\t};\n\tfunction _executeHooks(hooks, currentNode, data) {\n\t\tif (hooks.length === 0) return;\n\t\tarrayForEach(hooks, (hook) => {\n\t\t\thook.call(DOMPurify, currentNode, data, CONFIG);\n\t\t});\n\t}\n\t/**\n\t* Structural-threat checks that condemn a node regardless of the\n\t* allowlists: mXSS via namespace confusion, risky CSS construction,\n\t* processing instructions, markup-bearing comments. Pure predicate;\n\t* the caller removes. Check order is load-bearing.\n\t*\n\t* @param currentNode the node to inspect\n\t* @param tagName the node's transformCaseFunc'd tag name\n\t* @return true if the node must be removed\n\t*/\n\tconst _isUnsafeNode = function _isUnsafeNode(currentNode, tagName) {\n\t\tif (SAFE_FOR_XML && currentNode.hasChildNodes() && !_isNode(currentNode.firstElementChild) && regExpTest(ELEMENT_MARKUP_PROBE, currentNode.textContent) && regExpTest(ELEMENT_MARKUP_PROBE, currentNode.innerHTML)) return true;\n\t\tif (SAFE_FOR_XML && currentNode.namespaceURI === HTML_NAMESPACE && LITERAL_TEXT_ELEMENTS[tagName] && (_isNode(currentNode.firstElementChild) || typeof currentNode.textContent === \"string\" && regExpTest(LITERAL_TEXT_CLOSE[tagName], currentNode.textContent))) return true;\n\t\tif (currentNode.nodeType === NODE_TYPE.processingInstruction) return true;\n\t\tif (SAFE_FOR_XML && currentNode.nodeType === NODE_TYPE.comment && regExpTest(COMMENT_MARKUP_PROBE, currentNode.data)) return true;\n\t\treturn false;\n\t};\n\t/**\n\t* Evaluate a CUSTOM_ELEMENT_HANDLING check (a RegExp or a predicate\n\t* function, per the validation in _parseConfig) against a name.\n\t* Additional arguments are forwarded to predicate functions - the\n\t* attributeNameCheck predicate receives the tag name as its second\n\t* argument. A null/absent check never matches.\n\t*\n\t* @param check the configured tagNameCheck / attributeNameCheck value\n\t* @param name the name to test\n\t* @param args extra arguments forwarded to a predicate function\n\t* @return true if the check matches the name\n\t*/\n\tconst _matchesNameCheck = function _matchesNameCheck(check, name) {\n\t\tif (check instanceof RegExp) return regExpTest(check, name);\n\t\tif (check instanceof Function) {\n\t\t\tfor (var _len = arguments.length, args = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) args[_key - 2] = arguments[_key];\n\t\t\treturn Boolean(check(name, ...args));\n\t\t}\n\t\treturn false;\n\t};\n\t/**\n\t* Handle a node whose tag is forbidden or not allowlisted: keep\n\t* allowed custom elements (false return exits _sanitizeElements\n\t* early - the namespace and fallback-tag removal checks are\n\t* intentionally skipped for kept custom elements), else hoist\n\t* content per KEEP_CONTENT and remove.\n\t*\n\t* A kept custom element is the ONLY case in which this function\n\t* returns false, so the caller uses that return value to run the\n\t* afterSanitizeElements hook on the kept element and keep the\n\t* element-hook lifecycle consistent with normal allowlisted\n\t* elements (GHSA-c2j3-45gr-mqc4).\n\t*\n\t* @param currentNode the disallowed node\n\t* @param tagName the node's transformCaseFunc'd tag name\n\t* @return true if the node was removed, false if kept\n\t*/\n\tconst _sanitizeDisallowedNode = function _sanitizeDisallowedNode(currentNode, tagName, root) {\n\t\tif (!FORBID_TAGS[tagName] && _isBasicCustomElement(tagName) && _matchesNameCheck(CUSTOM_ELEMENT_HANDLING.tagNameCheck, tagName)) return false;\n\t\tif (KEEP_CONTENT && !FORBID_CONTENTS[tagName]) {\n\t\t\tconst parentNode = getParentNode(currentNode);\n\t\t\tconst childNodes = getChildNodes(currentNode);\n\t\t\tif (childNodes && parentNode) {\n\t\t\t\tconst childCount = childNodes.length;\n\t\t\t\tfor (let i = childCount - 1; i >= 0; --i) {\n\t\t\t\t\tconst hoisted = currentNode === root ? cloneNode(childNodes[i], true) : childNodes[i];\n\t\t\t\t\tparentNode.insertBefore(hoisted, getNextSibling(currentNode));\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t_forceRemove(currentNode);\n\t\treturn true;\n\t};\n\t/**\n\t* Fork a hook-mutable allowlist off its shared binding the first time a\n\t* (possibly lazily-installed) uponSanitize* hook is about to see it, so the\n\t* hook cannot widen the per-instance default or the setConfig binding by\n\t* reference and leak past the call. Returns the set unchanged once it is\n\t* already call-local, so repeated calls across elements are idempotent.\n\t*\n\t* @param hookList the uponSanitize* hook array for this event\n\t* @param set the current ALLOWED_TAGS / ALLOWED_ATTR binding\n\t* @param defaultSet the per-instance DEFAULT_ALLOWED_* constant\n\t* @param setConfigSet the captured setConfig() binding, or null\n\t* @return a call-local clone if a hook is present and set is still shared,\n\t* else set unchanged\n\t*/\n\tconst _forkSharedAllowlist = function _forkSharedAllowlist(hookList, set, defaultSet, setConfigSet) {\n\t\tif (hookList.length === 0) return set;\n\t\treturn set === defaultSet || set === setConfigSet ? clone(set) : set;\n\t};\n\t/**\n\t* Shared guard for a node that a hook has detached from the walk tree,\n\t* used after each element-hook site in _sanitizeElements. Detaching is a\n\t* long-standing user pattern (issue #469; draw.io-style foreignObject\n\t* filtering). Per the cached, unclobberable parentNode getter the node is\n\t* genuinely out of the tree, so it can reach neither the serialized\n\t* output nor an IN_PLACE live tree; treat it as removed and stop\n\t* processing it. Without this guard, the unsafe-node / namespace checks\n\t* would call _forceRemove on a parentless node and hit the REPORT-3\n\t* fail-closed throw — which exists for nodes DOMPurify wants gone but\n\t* *cannot* detach (clobbered / parentless roots), the opposite of a node\n\t* that is already safely gone. The walk root is exempt: a detached\n\t* IN_PLACE root is legitimate input and must still be fully sanitized,\n\t* and a kill-decision on it must keep hitting the REPORT-3 throw.\n\t*\n\t* Nodes detached by hooks stay the hook's responsibility for placement:\n\t* they are not recorded in DOMPurify.removed, so the post-walk IN_PLACE\n\t* pass (which iterates DOMPurify.removed) does not reach them. But a\n\t* hook-detached subtree can still hold a queued resource-event handler -\n\t* e.g. an <img onload> that began loading when the caller built the live\n\t* tree - which fires in page scope after sanitize returns even though the\n\t* handler never reached the returned tree. That is the audit-5 F1 hazard,\n\t* and the documented node.remove() hook pattern walks straight into it.\n\t* So on the IN_PLACE path we neutralize the detached subtree inline,\n\t* stripping its non-allow-listed attributes before returning, exactly as\n\t* the post-walk pass does for _forceRemove'd subtrees.\n\t*\n\t* @param currentNode the node a hook may have detached\n\t* @param root the current walk root\n\t* @return true if the node is detached and now handled, false otherwise\n\t*/\n\tconst _handleHookDetachedNode = function _handleHookDetachedNode(currentNode, root) {\n\t\tif (currentNode === root || getParentNode(currentNode) !== null) return false;\n\t\tif (IN_PLACE) _neutralizeSubtree(currentNode);\n\t\treturn true;\n\t};\n\t/**\n\t* _sanitizeElements\n\t*\n\t* @protect nodeName\n\t* @protect textContent\n\t* @protect removeChild\n\t* @param currentNode to check for permission to exist\n\t* @return true if node was killed, false if left alive\n\t*/\n\tconst _sanitizeElements = function _sanitizeElements(currentNode, root) {\n\t\t_executeHooks(hooks.beforeSanitizeElements, currentNode, null);\n\t\tif (_handleHookDetachedNode(currentNode, root)) return true;\n\t\tif (_isClobbered(currentNode)) {\n\t\t\t_forceRemove(currentNode);\n\t\t\treturn true;\n\t\t}\n\t\tconst tagName = transformCaseFunc(_readNodeName(currentNode));\n\t\tALLOWED_TAGS = _forkSharedAllowlist(hooks.uponSanitizeElement, ALLOWED_TAGS, DEFAULT_ALLOWED_TAGS, SET_CONFIG_ALLOWED_TAGS);\n\t\t_executeHooks(hooks.uponSanitizeElement, currentNode, {\n\t\t\ttagName,\n\t\t\tallowedTags: ALLOWED_TAGS\n\t\t});\n\t\tif (_handleHookDetachedNode(currentNode, root)) return true;\n\t\tif (_isUnsafeNode(currentNode, tagName)) {\n\t\t\t_forceRemove(currentNode);\n\t\t\treturn true;\n\t\t}\n\t\tif (FORBID_TAGS[tagName] || !(EXTRA_ELEMENT_HANDLING.tagCheck instanceof Function && EXTRA_ELEMENT_HANDLING.tagCheck(tagName)) && !ALLOWED_TAGS[tagName]) {\n\t\t\tconst removed = _sanitizeDisallowedNode(currentNode, tagName, root);\n\t\t\tif (removed === false) {\n\t\t\t\t_executeHooks(hooks.afterSanitizeElements, currentNode, null);\n\t\t\t\tif (_handleHookDetachedNode(currentNode, root)) return true;\n\t\t\t}\n\t\t\treturn removed;\n\t\t}\n\t\tif (_readNodeType(currentNode) === NODE_TYPE.element && !_checkValidNamespace(currentNode)) {\n\t\t\t_forceRemove(currentNode);\n\t\t\treturn true;\n\t\t}\n\t\tif ((tagName === \"noscript\" || tagName === \"noembed\" || tagName === \"noframes\") && regExpTest(FALLBACK_TAG_CLOSE, currentNode.innerHTML)) {\n\t\t\t_forceRemove(currentNode);\n\t\t\treturn true;\n\t\t}\n\t\tif (SAFE_FOR_TEMPLATES && currentNode.nodeType === NODE_TYPE.text) {\n\t\t\tconst content = _stripTemplateExpressions(currentNode.textContent);\n\t\t\tif (currentNode.textContent !== content) {\n\t\t\t\tarrayPush(DOMPurify.removed, { element: currentNode.cloneNode() });\n\t\t\t\tcurrentNode.textContent = content;\n\t\t\t}\n\t\t}\n\t\t_executeHooks(hooks.afterSanitizeElements, currentNode, null);\n\t\treturn _handleHookDetachedNode(currentNode, root);\n\t};\n\t/**\n\t* _isValidAttribute\n\t*\n\t* @param lcTag Lowercase tag name of containing element.\n\t* @param lcName Lowercase attribute name.\n\t* @param value Attribute value.\n\t* @return Returns true if `value` is valid, otherwise false.\n\t*/\n\tconst _isValidAttribute = function _isValidAttribute(lcTag, lcName, value) {\n\t\tif (FORBID_ATTR[lcName]) return false;\n\t\tif (_isPatchLinkageAttribute(lcName, lcTag)) return false;\n\t\tif (SANITIZE_DOM && (lcName === \"id\" || lcName === \"name\") && (value in document || value in formElement)) return false;\n\t\tconst nameIsPermitted = ALLOWED_ATTR[lcName] || EXTRA_ELEMENT_HANDLING.attributeCheck instanceof Function && EXTRA_ELEMENT_HANDLING.attributeCheck(lcName, lcTag);\n\t\tif (ALLOW_DATA_ATTR && regExpTest(DATA_ATTR$1, lcName)) return true;\n\t\tif (ALLOW_ARIA_ATTR && regExpTest(ARIA_ATTR$1, lcName)) return true;\n\t\tif (!nameIsPermitted) return _isBasicCustomElement(lcTag) && _matchesNameCheck(CUSTOM_ELEMENT_HANDLING.tagNameCheck, lcTag) && _matchesNameCheck(CUSTOM_ELEMENT_HANDLING.attributeNameCheck, lcName, lcTag) || lcName === \"is\" && CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements && _matchesNameCheck(CUSTOM_ELEMENT_HANDLING.tagNameCheck, value);\n\t\tif (URI_SAFE_ATTRIBUTES[lcName]) return true;\n\t\tif (regExpTest(IS_ALLOWED_URI$1, stringReplace(value, ATTR_WHITESPACE$1, \"\"))) return true;\n\t\tif ((lcName === \"src\" || lcName === \"xlink:href\" || lcName === \"href\") && lcTag !== \"script\" && stringIndexOf(value, \"data:\") === 0 && DATA_URI_TAGS[lcTag]) return true;\n\t\tif (ALLOW_UNKNOWN_PROTOCOLS && !regExpTest(IS_SCRIPT_OR_DATA$1, stringReplace(value, ATTR_WHITESPACE$1, \"\"))) return true;\n\t\treturn !value;\n\t};\n\tconst RESERVED_CUSTOM_ELEMENT_NAMES = addToSet({}, [\n\t\t\"annotation-xml\",\n\t\t\"color-profile\",\n\t\t\"font-face\",\n\t\t\"font-face-format\",\n\t\t\"font-face-name\",\n\t\t\"font-face-src\",\n\t\t\"font-face-uri\",\n\t\t\"missing-glyph\"\n\t]);\n\t/**\n\t* _isBasicCustomElement\n\t* checks if at least one dash is included in tagName, and it's not the first char\n\t* for more sophisticated checking see https://github.com/sindresorhus/validate-element-name\n\t*\n\t* @param tagName name of the tag of the node to sanitize\n\t* @returns Returns true if the tag name meets the basic criteria for a custom element, otherwise false.\n\t*/\n\tconst _isBasicCustomElement = function _isBasicCustomElement(tagName) {\n\t\treturn !RESERVED_CUSTOM_ELEMENT_NAMES[stringToLowerCase(tagName)] && regExpTest(CUSTOM_ELEMENT$1, tagName);\n\t};\n\t/**\n\t* Wrap an attribute value in the matching Trusted Types object when\n\t* the active policy requires it. Namespaced attributes pass through\n\t* unchanged (no TT support yet, see\n\t* https://bugs.chromium.org/p/chromium/issues/detail?id=1305293).\n\t*\n\t* @param lcTag lowercase tag name of the containing element\n\t* @param lcName lowercase attribute name\n\t* @param namespaceURI the attribute's namespace, if any\n\t* @param value the attribute value to wrap\n\t* @return the value, wrapped when Trusted Types demand it\n\t*/\n\tconst _applyTrustedTypesToAttribute = function _applyTrustedTypesToAttribute(lcTag, lcName, namespaceURI, value) {\n\t\tif (trustedTypesPolicy && typeof trustedTypes === \"object\" && typeof trustedTypes.getAttributeType === \"function\" && !namespaceURI) switch (trustedTypes.getAttributeType(lcTag, lcName)) {\n\t\t\tcase \"TrustedHTML\": return _createTrustedHTML(value);\n\t\t\tcase \"TrustedScriptURL\": return _createTrustedScriptURL(value);\n\t\t}\n\t\treturn value;\n\t};\n\t/**\n\t* Write a modified attribute value back onto the element. On\n\t* success, re-probe for clobbering introduced by the new value and\n\t* remove the element when found; otherwise, when this writeback is the\n\t* recreate half of the SANITIZE_NAMED_PROPS remove-and-recreate, pop the\n\t* removal entry that path recorded so it does not show as removed. On\n\t* failure, remove the attribute instead.\n\t*\n\t* Returns true only on a clean write (the value was set and the new value\n\t* introduced no clobbering). The caller uses that, together with its own\n\t* knowledge of whether this attribute pushed a DOMPurify.removed record, to\n\t* decide whether to pop that record. The pop must happen ONLY for the\n\t* named-prop remove-and-recreate; popping on any other value change (trim,\n\t* template scrubbing, Trusted Types) would consume an unrelated _forceRemove\n\t* subtree-cleanup record and let that detached subtree keep a live event\n\t* handler through the IN_PLACE neutralization pass (SO-001).\n\t*\n\t* @param currentNode the element carrying the attribute\n\t* @param name the attribute name as present on the element\n\t* @param namespaceURI the attribute's namespace, if any\n\t* @param value the new attribute value\n\t* @return true if the value was written without introducing clobbering\n\t*/\n\tconst _setAttributeValue = function _setAttributeValue(currentNode, name, namespaceURI, value) {\n\t\ttry {\n\t\t\tif (namespaceURI) currentNode.setAttributeNS(namespaceURI, name, value);\n\t\t\telse currentNode.setAttribute(name, value);\n\t\t\tif (_isClobbered(currentNode)) {\n\t\t\t\t_forceRemove(currentNode);\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\treturn true;\n\t\t} catch (_) {\n\t\t\t_removeAttribute(name, currentNode);\n\t\t\treturn false;\n\t\t}\n\t};\n\t/**\n\t* _sanitizeAttributes\n\t*\n\t* @protect attributes\n\t* @protect nodeName\n\t* @protect removeAttribute\n\t* @protect setAttribute\n\t*\n\t* @param currentNode to sanitize\n\t* @param root the current walk root\n\t*/\n\tconst _sanitizeAttributes = function _sanitizeAttributes(currentNode, root) {\n\t\t_executeHooks(hooks.beforeSanitizeAttributes, currentNode, null);\n\t\tif (_handleHookDetachedNode(currentNode, root)) return;\n\t\tconst attributes = currentNode.attributes;\n\t\tif (!attributes || _isClobbered(currentNode)) return;\n\t\tALLOWED_ATTR = _forkSharedAllowlist(hooks.uponSanitizeAttribute, ALLOWED_ATTR, DEFAULT_ALLOWED_ATTR, SET_CONFIG_ALLOWED_ATTR);\n\t\tconst hookEvent = {\n\t\t\tattrName: \"\",\n\t\t\tattrValue: \"\",\n\t\t\tkeepAttr: true,\n\t\t\tallowedAttributes: ALLOWED_ATTR,\n\t\t\tforceKeepAttr: void 0\n\t\t};\n\t\tlet l = attributes.length;\n\t\tconst lcTag = transformCaseFunc(currentNode.nodeName);\n\t\twhile (l--) {\n\t\t\tconst attr = attributes[l];\n\t\t\tconst name = attr.name, namespaceURI = attr.namespaceURI, attrValue = attr.value;\n\t\t\tconst lcName = transformCaseFunc(name);\n\t\t\tconst initValue = attrValue;\n\t\t\tlet value = name === \"value\" ? initValue : stringTrim(initValue);\n\t\t\tlet recreatedNamedProp = false;\n\t\t\thookEvent.attrName = lcName;\n\t\t\thookEvent.attrValue = value;\n\t\t\thookEvent.keepAttr = true;\n\t\t\thookEvent.forceKeepAttr = void 0;\n\t\t\t_executeHooks(hooks.uponSanitizeAttribute, currentNode, hookEvent);\n\t\t\tvalue = hookEvent.attrValue;\n\t\t\tif (SANITIZE_NAMED_PROPS && (lcName === \"id\" || lcName === \"name\") && stringIndexOf(value, SANITIZE_NAMED_PROPS_PREFIX) !== 0) {\n\t\t\t\t_removeAttribute(name, currentNode, attr);\n\t\t\t\tvalue = SANITIZE_NAMED_PROPS_PREFIX + value;\n\t\t\t\trecreatedNamedProp = true;\n\t\t\t}\n\t\t\tif (SAFE_FOR_XML && regExpTest(/((--!?|])>)|<\\/(style|script|title|xmp|textarea|noscript|iframe|noembed|noframes)/i, value)) {\n\t\t\t\t_removeAttribute(name, currentNode, attr);\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tif (lcName === \"attributename\" && stringMatch(value, \"href\")) {\n\t\t\t\t_removeAttribute(name, currentNode, attr);\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tif (hookEvent.forceKeepAttr) continue;\n\t\t\tif (!hookEvent.keepAttr) {\n\t\t\t\t_removeAttribute(name, currentNode, attr);\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tif (!ALLOW_SELF_CLOSE_IN_ATTR && regExpTest(SELF_CLOSING_TAG, value)) {\n\t\t\t\t_removeAttribute(name, currentNode, attr);\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tif (SAFE_FOR_TEMPLATES) value = _stripTemplateExpressions(value);\n\t\t\tif (!_isValidAttribute(lcTag, lcName, value)) {\n\t\t\t\t_removeAttribute(name, currentNode, attr);\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tvalue = _applyTrustedTypesToAttribute(lcTag, lcName, namespaceURI, value);\n\t\t\tif (value !== initValue) {\n\t\t\t\tif (_setAttributeValue(currentNode, name, namespaceURI, value) && recreatedNamedProp) arrayPop(DOMPurify.removed);\n\t\t\t}\n\t\t}\n\t\t_executeHooks(hooks.afterSanitizeAttributes, currentNode, null);\n\t\t_handleHookDetachedNode(currentNode, root);\n\t};\n\t/**\n\t* _sanitizeShadowDOM\n\t*\n\t* @param fragment to iterate over recursively\n\t*/\n\tconst _sanitizeShadowDOM2 = function _sanitizeShadowDOM(fragment) {\n\t\tlet shadowNode = null;\n\t\tconst shadowIterator = _createNodeIterator(fragment);\n\t\t_executeHooks(hooks.beforeSanitizeShadowDOM, fragment, null);\n\t\twhile (shadowNode = shadowIterator.nextNode()) {\n\t\t\t_executeHooks(hooks.uponSanitizeShadowNode, shadowNode, null);\n\t\t\t_sanitizeElements(shadowNode, fragment);\n\t\t\t_sanitizeAttributes(shadowNode, fragment);\n\t\t\tif (_isDocumentFragment(shadowNode.content)) _sanitizeShadowDOM2(shadowNode.content);\n\t\t\tif (_readNodeType(shadowNode) === NODE_TYPE.element) {\n\t\t\t\tconst innerSr = getShadowRoot(shadowNode);\n\t\t\t\tif (_isDocumentFragment(innerSr)) {\n\t\t\t\t\t_sanitizeAttachedShadowRoots(innerSr);\n\t\t\t\t\t_sanitizeShadowDOM2(innerSr);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t_executeHooks(hooks.afterSanitizeShadowDOM, fragment, null);\n\t};\n\t/**\n\t* _sanitizeAttachedShadowRoots\n\t*\n\t* Walks `root` and feeds every attached shadow root we encounter into\n\t* the existing _sanitizeShadowDOM pipeline. The default node iterator\n\t* does not descend into shadow trees, so nodes inside an attached\n\t* shadow root would otherwise be skipped entirely.\n\t*\n\t* Two real input paths put attached shadow roots in front of us:\n\t* 1. IN_PLACE on a DOM node that already has shadow roots attached.\n\t* 2. DOM-node input where importNode(dirty, true) deep-clones the\n\t* shadow root because it was created with `clonable: true`.\n\t*\n\t* This pass runs once, up front, so the main iteration loop (and the\n\t* existing _sanitizeShadowDOM template-content recursion) stay\n\t* untouched — string-input paths are not affected.\n\t*\n\t* @param root the subtree root to walk for attached shadow roots\n\t*/\n\tconst _sanitizeAttachedShadowRoots = function _sanitizeAttachedShadowRoots(root) {\n\t\tconst stack = [{\n\t\t\tnode: root,\n\t\t\tshadow: null\n\t\t}];\n\t\twhile (stack.length > 0) {\n\t\t\tconst item = stack.pop();\n\t\t\tif (item.shadow) {\n\t\t\t\t_sanitizeShadowDOM2(item.shadow);\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tconst node = item.node;\n\t\t\tconst isElement = _readNodeType(node) === NODE_TYPE.element;\n\t\t\tconst childNodes = getChildNodes(node);\n\t\t\tif (childNodes) for (let i = childNodes.length - 1; i >= 0; --i) stack.push({\n\t\t\t\tnode: childNodes[i],\n\t\t\t\tshadow: null\n\t\t\t});\n\t\t\tif (isElement) {\n\t\t\t\tconst rootName = getNodeName ? getNodeName(node) : null;\n\t\t\t\tif (typeof rootName === \"string\" && transformCaseFunc(rootName) === \"template\") {\n\t\t\t\t\tconst content = node.content;\n\t\t\t\t\tif (_isDocumentFragment(content)) stack.push({\n\t\t\t\t\t\tnode: content,\n\t\t\t\t\t\tshadow: null\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (isElement) {\n\t\t\t\tconst sr = getShadowRoot(node);\n\t\t\t\tif (_isDocumentFragment(sr)) stack.push({\n\t\t\t\t\tnode: null,\n\t\t\t\t\tshadow: sr\n\t\t\t\t}, {\n\t\t\t\t\tnode: sr,\n\t\t\t\t\tshadow: null\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t};\n\tDOMPurify.sanitize = function(dirty) {\n\t\tlet cfg = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {};\n\t\tlet body = null;\n\t\tlet importedNode = null;\n\t\tlet currentNode = null;\n\t\tlet returnNode = null;\n\t\tIS_EMPTY_INPUT = !dirty;\n\t\tif (IS_EMPTY_INPUT) dirty = \"<!-->\";\n\t\tif (typeof dirty !== \"string\" && !_isNode(dirty)) {\n\t\t\tdirty = stringifyValue(dirty);\n\t\t\tif (typeof dirty !== \"string\") throw typeErrorCreate(\"dirty is not a string, aborting\");\n\t\t}\n\t\tif (!DOMPurify.isSupported) return dirty;\n\t\tif (SET_CONFIG) {\n\t\t\tALLOWED_TAGS = SET_CONFIG_ALLOWED_TAGS;\n\t\t\tALLOWED_ATTR = SET_CONFIG_ALLOWED_ATTR;\n\t\t} else _parseConfig(cfg);\n\t\tif (hooks.uponSanitizeElement.length > 0 || hooks.uponSanitizeAttribute.length > 0) ALLOWED_TAGS = clone(ALLOWED_TAGS);\n\t\tif (hooks.uponSanitizeAttribute.length > 0) ALLOWED_ATTR = clone(ALLOWED_ATTR);\n\t\tDOMPurify.removed = [];\n\t\tconst inPlace = IN_PLACE && typeof dirty !== \"string\" && _isNode(dirty);\n\t\tif (inPlace) {\n\t\t\t_neutralizePatchLinkage(dirty);\n\t\t\tconst nn = _readNodeName(dirty);\n\t\t\tif (typeof nn === \"string\") {\n\t\t\t\tconst tagName = transformCaseFunc(nn);\n\t\t\t\tif (!ALLOWED_TAGS[tagName] || FORBID_TAGS[tagName]) {\n\t\t\t\t\t_neutralizeRoot(dirty);\n\t\t\t\t\tthrow typeErrorCreate(\"root node is forbidden and cannot be sanitized in-place\");\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (_isClobbered(dirty)) {\n\t\t\t\t_neutralizeRoot(dirty);\n\t\t\t\tthrow typeErrorCreate(\"root node is clobbered and cannot be sanitized in-place\");\n\t\t\t}\n\t\t\ttry {\n\t\t\t\t_sanitizeAttachedShadowRoots(dirty);\n\t\t\t} catch (error) {\n\t\t\t\t_neutralizeRoot(dirty);\n\t\t\t\tthrow error;\n\t\t\t}\n\t\t} else if (_isNode(dirty)) {\n\t\t\tbody = _initDocument(\"<!---->\");\n\t\t\timportedNode = body.ownerDocument.importNode(dirty, true);\n\t\t\tif (importedNode.nodeType === NODE_TYPE.element && importedNode.nodeName === \"BODY\") body = importedNode;\n\t\t\telse if (importedNode.nodeName === \"HTML\") body = importedNode;\n\t\t\telse body.appendChild(importedNode);\n\t\t\t_sanitizeAttachedShadowRoots(body);\n\t\t} else {\n\t\t\tif (!RETURN_DOM && !SAFE_FOR_TEMPLATES && !WHOLE_DOCUMENT && dirty.indexOf(\"<\") === -1) return trustedTypesPolicy && RETURN_TRUSTED_TYPE ? _createTrustedHTML(dirty) : dirty;\n\t\t\tbody = _initDocument(dirty);\n\t\t\tif (!body) return RETURN_DOM ? null : RETURN_TRUSTED_TYPE ? emptyHTML : \"\";\n\t\t}\n\t\tif (body && FORCE_BODY) _forceRemove(body.firstChild);\n\t\tconst walkRoot = inPlace ? dirty : body;\n\t\ttry {\n\t\t\tconst nodeIterator = _createNodeIterator(walkRoot);\n\t\t\twhile (currentNode = nodeIterator.nextNode()) {\n\t\t\t\t_sanitizeElements(currentNode, walkRoot);\n\t\t\t\t_sanitizeAttributes(currentNode, walkRoot);\n\t\t\t\tif (_isDocumentFragment(currentNode.content)) _sanitizeShadowDOM2(currentNode.content);\n\t\t\t}\n\t\t} catch (error) {\n\t\t\tif (inPlace) {\n\t\t\t\t_neutralizeRoot(dirty);\n\t\t\t\tarrayForEach(DOMPurify.removed, (entry) => {\n\t\t\t\t\tif (entry.element) _neutralizeSubtree(entry.element);\n\t\t\t\t});\n\t\t\t}\n\t\t\tthrow error;\n\t\t}\n\t\tif (inPlace) {\n\t\t\tlet rootWasRemoved = false;\n\t\t\tarrayForEach(DOMPurify.removed, (entry) => {\n\t\t\t\tif (entry.element) {\n\t\t\t\t\tif (entry.element === dirty) rootWasRemoved = true;\n\t\t\t\t\t_neutralizeSubtree(entry.element);\n\t\t\t\t}\n\t\t\t});\n\t\t\tif (rootWasRemoved) throw typeErrorCreate(\"a node selected for removal could not be safely returned; refusing to sanitize in place\");\n\t\t\tif (SAFE_FOR_TEMPLATES) _scrubTemplateExpressions2(dirty);\n\t\t\treturn dirty;\n\t\t}\n\t\tif (RETURN_DOM) {\n\t\t\tif (SAFE_FOR_TEMPLATES) _scrubTemplateExpressions2(body);\n\t\t\tif (RETURN_DOM_FRAGMENT) {\n\t\t\t\treturnNode = createDocumentFragment.call(body.ownerDocument);\n\t\t\t\twhile (body.firstChild) returnNode.appendChild(body.firstChild);\n\t\t\t} else returnNode = body;\n\t\t\tif (ALLOWED_ATTR.shadowroot || ALLOWED_ATTR.shadowrootmode) returnNode = importNode.call(originalDocument, returnNode, true);\n\t\t\treturn returnNode;\n\t\t}\n\t\tlet serializedHTML = WHOLE_DOCUMENT ? body.outerHTML : body.innerHTML;\n\t\tif (WHOLE_DOCUMENT && ALLOWED_TAGS[\"!doctype\"] && body.ownerDocument && body.ownerDocument.doctype && body.ownerDocument.doctype.name && regExpTest(DOCTYPE_NAME, body.ownerDocument.doctype.name)) serializedHTML = \"<!DOCTYPE \" + body.ownerDocument.doctype.name + \">\\n\" + serializedHTML;\n\t\tif (SAFE_FOR_TEMPLATES) serializedHTML = _stripTemplateExpressions(serializedHTML);\n\t\treturn trustedTypesPolicy && RETURN_TRUSTED_TYPE ? _createTrustedHTML(serializedHTML) : serializedHTML;\n\t};\n\tDOMPurify.setConfig = function() {\n\t\tlet cfg = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {};\n\t\t_parseConfig(cfg);\n\t\tSET_CONFIG = true;\n\t\tSET_CONFIG_ALLOWED_TAGS = ALLOWED_TAGS;\n\t\tSET_CONFIG_ALLOWED_ATTR = ALLOWED_ATTR;\n\t};\n\tDOMPurify.clearConfig = function() {\n\t\tCONFIG = null;\n\t\tSET_CONFIG = false;\n\t\tSET_CONFIG_ALLOWED_TAGS = null;\n\t\tSET_CONFIG_ALLOWED_ATTR = null;\n\t\ttrustedTypesPolicy = defaultTrustedTypesPolicy;\n\t\temptyHTML = \"\";\n\t};\n\tDOMPurify.isValidAttribute = function(tag, attr, value) {\n\t\tif (!CONFIG) _parseConfig({});\n\t\tconst lcTag = transformCaseFunc(tag);\n\t\tconst lcName = transformCaseFunc(attr);\n\t\treturn _isValidAttribute(lcTag, lcName, value);\n\t};\n\tDOMPurify.addHook = function(entryPoint, hookFunction) {\n\t\tif (typeof hookFunction !== \"function\") return;\n\t\tif (!objectHasOwnProperty(hooks, entryPoint)) return;\n\t\tarrayPush(hooks[entryPoint], hookFunction);\n\t};\n\tDOMPurify.removeHook = function(entryPoint, hookFunction) {\n\t\tif (!objectHasOwnProperty(hooks, entryPoint)) return;\n\t\tif (hookFunction !== void 0) {\n\t\t\tconst index = arrayLastIndexOf(hooks[entryPoint], hookFunction);\n\t\t\treturn index === -1 ? void 0 : arraySplice(hooks[entryPoint], index, 1)[0];\n\t\t}\n\t\treturn arrayPop(hooks[entryPoint]);\n\t};\n\tDOMPurify.removeHooks = function(entryPoint) {\n\t\tif (!objectHasOwnProperty(hooks, entryPoint)) return;\n\t\thooks[entryPoint] = [];\n\t};\n\tDOMPurify.removeAllHooks = function() {\n\t\thooks = _createHooksMap();\n\t};\n\treturn DOMPurify;\n}\nvar purify_default = createDOMPurify();\nexport { purify_default as default };\n\n//# sourceMappingURL=purify.es.mjs.map"],"ignoreList":[0],"mappings":"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"}
@@ -0,0 +1,240 @@
1
+ //#region node_modules/highlight.js/es/languages/python.js
2
+ function e(e) {
3
+ let t = e.regex, n = /[\p{XID_Start}_]\p{XID_Continue}*/u, r = /* @__PURE__ */ "and.as.assert.async.await.break.case.class.continue.def.del.elif.else.except.finally.for.from.global.if.import.in.is.lambda.lazy.match.nonlocal|10.not.or.pass.raise.return.try.while.with.yield".split("."), i = {
4
+ $pattern: /[A-Za-z]\w+|__\w+__/,
5
+ keyword: r,
6
+ built_in: /* @__PURE__ */ "__import__.abs.aiter.all.anext.any.ascii.bin.bool.breakpoint.bytearray.bytes.callable.chr.classmethod.compile.complex.delattr.dict.dir.divmod.enumerate.eval.exec.filter.float.format.frozendict.frozenset.getattr.globals.hasattr.hash.help.hex.id.input.int.isinstance.issubclass.iter.len.list.locals.map.max.memoryview.min.next.object.oct.open.ord.pow.print.property.range.repr.reversed.round.sentinel.set.setattr.slice.sorted.staticmethod.str.sum.super.tuple.type.vars.zip".split("."),
7
+ literal: [
8
+ "__debug__",
9
+ "Ellipsis",
10
+ "False",
11
+ "None",
12
+ "NotImplemented",
13
+ "True"
14
+ ],
15
+ type: [
16
+ "Any",
17
+ "Callable",
18
+ "Coroutine",
19
+ "Dict",
20
+ "List",
21
+ "Literal",
22
+ "Generic",
23
+ "Optional",
24
+ "Sequence",
25
+ "Set",
26
+ "Tuple",
27
+ "Type",
28
+ "Union"
29
+ ]
30
+ }, a = {
31
+ className: "meta",
32
+ begin: /^(>>>|\.\.\.) /
33
+ }, o = {
34
+ className: "subst",
35
+ begin: /\{/,
36
+ end: /\}/,
37
+ keywords: i,
38
+ illegal: /#/
39
+ }, s = {
40
+ begin: /\{\{/,
41
+ relevance: 0
42
+ }, c = {
43
+ className: "string",
44
+ contains: [e.BACKSLASH_ESCAPE],
45
+ variants: [
46
+ {
47
+ begin: /([uU]|[bB]|[rR]|[bB][rR]|[rR][bB])?'''/,
48
+ end: /'''/,
49
+ contains: [e.BACKSLASH_ESCAPE, a],
50
+ relevance: 10
51
+ },
52
+ {
53
+ begin: /([uU]|[bB]|[rR]|[bB][rR]|[rR][bB])?"""/,
54
+ end: /"""/,
55
+ contains: [e.BACKSLASH_ESCAPE, a],
56
+ relevance: 10
57
+ },
58
+ {
59
+ begin: /([fFtT][rR]|[rR][fFtT]|[fFtT])'''/,
60
+ end: /'''/,
61
+ contains: [
62
+ e.BACKSLASH_ESCAPE,
63
+ a,
64
+ s,
65
+ o
66
+ ]
67
+ },
68
+ {
69
+ begin: /([fFtT][rR]|[rR][fFtT]|[fFtT])"""/,
70
+ end: /"""/,
71
+ contains: [
72
+ e.BACKSLASH_ESCAPE,
73
+ a,
74
+ s,
75
+ o
76
+ ]
77
+ },
78
+ {
79
+ begin: /([uU]|[rR])'/,
80
+ end: /'/,
81
+ relevance: 10
82
+ },
83
+ {
84
+ begin: /([uU]|[rR])"/,
85
+ end: /"/,
86
+ relevance: 10
87
+ },
88
+ {
89
+ begin: /([bB]|[bB][rR]|[rR][bB])'/,
90
+ end: /'/
91
+ },
92
+ {
93
+ begin: /([bB]|[bB][rR]|[rR][bB])"/,
94
+ end: /"/
95
+ },
96
+ {
97
+ begin: /([fFtT][rR]|[rR][fFtT]|[fFtT])'/,
98
+ end: /'/,
99
+ contains: [
100
+ e.BACKSLASH_ESCAPE,
101
+ s,
102
+ o
103
+ ]
104
+ },
105
+ {
106
+ begin: /([fFtT][rR]|[rR][fFtT]|[fFtT])"/,
107
+ end: /"/,
108
+ contains: [
109
+ e.BACKSLASH_ESCAPE,
110
+ s,
111
+ o
112
+ ]
113
+ },
114
+ e.APOS_STRING_MODE,
115
+ e.QUOTE_STRING_MODE
116
+ ]
117
+ }, l = "[0-9](_?[0-9])*", u = `(\\b(${l}))?\\.(${l})|\\b(${l})\\.`, d = `\\b|${r.join("|")}`, f = {
118
+ className: "number",
119
+ relevance: 0,
120
+ variants: [
121
+ { begin: `(\\b(${l})|(${u}))[eE][+-]?(${l})[jJ]?(?=${d})` },
122
+ { begin: `(${u})[jJ]?` },
123
+ { begin: `\\b([1-9](_?[0-9])*|0+(_?0)*)[lLjJ]?(?=${d})` },
124
+ { begin: `\\b0[bB](_?[01])+[lL]?(?=${d})` },
125
+ { begin: `\\b0[oO](_?[0-7])+[lL]?(?=${d})` },
126
+ { begin: `\\b0[xX](_?[0-9a-fA-F])+[lL]?(?=${d})` },
127
+ { begin: `\\b(${l})[jJ](?=${d})` }
128
+ ]
129
+ }, p = {
130
+ className: "comment",
131
+ begin: t.lookahead(/# type:/),
132
+ end: /$/,
133
+ keywords: i,
134
+ contains: [{ begin: /# type:/ }, {
135
+ begin: /#/,
136
+ end: /\b\B/,
137
+ endsWithParent: !0
138
+ }]
139
+ }, m = {
140
+ className: "params",
141
+ variants: [{
142
+ className: "",
143
+ begin: /\(\s*\)/,
144
+ skip: !0
145
+ }, {
146
+ begin: /\(/,
147
+ end: /\)/,
148
+ excludeBegin: !0,
149
+ excludeEnd: !0,
150
+ keywords: i,
151
+ contains: [
152
+ "self",
153
+ a,
154
+ f,
155
+ c,
156
+ e.HASH_COMMENT_MODE
157
+ ]
158
+ }]
159
+ };
160
+ return o.contains = [
161
+ c,
162
+ f,
163
+ a
164
+ ], {
165
+ name: "Python",
166
+ aliases: [
167
+ "py",
168
+ "gyp",
169
+ "ipython"
170
+ ],
171
+ unicodeRegex: !0,
172
+ keywords: i,
173
+ illegal: /(<\/|\?)|=>/,
174
+ contains: [
175
+ a,
176
+ f,
177
+ {
178
+ scope: "variable.language",
179
+ match: /\bself\b/
180
+ },
181
+ {
182
+ beginKeywords: "if",
183
+ relevance: 0
184
+ },
185
+ {
186
+ match: /\bor\b/,
187
+ scope: "keyword"
188
+ },
189
+ c,
190
+ p,
191
+ e.HASH_COMMENT_MODE,
192
+ {
193
+ match: [
194
+ /\bdef/,
195
+ /\s+/,
196
+ n
197
+ ],
198
+ scope: {
199
+ 1: "keyword",
200
+ 3: "title.function"
201
+ },
202
+ contains: [m]
203
+ },
204
+ {
205
+ variants: [{ match: [
206
+ /\bclass/,
207
+ /\s+/,
208
+ n,
209
+ /\s*/,
210
+ /\(\s*/,
211
+ n,
212
+ /\s*\)/
213
+ ] }, { match: [
214
+ /\bclass/,
215
+ /\s+/,
216
+ n
217
+ ] }],
218
+ scope: {
219
+ 1: "keyword",
220
+ 3: "title.class",
221
+ 6: "title.class.inherited"
222
+ }
223
+ },
224
+ {
225
+ className: "meta",
226
+ begin: /^[\t ]*@/,
227
+ end: /(?=#)|$/,
228
+ contains: [
229
+ f,
230
+ m,
231
+ c
232
+ ]
233
+ }
234
+ ]
235
+ };
236
+ }
237
+ //#endregion
238
+ export { e as default };
239
+
240
+ //# sourceMappingURL=python-B3xOtrtl.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"python-B3xOtrtl.js","names":["python","regex","hljs","IDENT_RE","RESERVED_WORDS","KEYWORDS","PROMPT","SUBST","LITERAL_BRACKET","STRING","digitpart","pointfloat","lookahead","NUMBER","COMMENT_TYPE","PARAMS"],"sources":["../../node_modules/highlight.js/es/languages/python.js"],"sourcesContent":["/*\nLanguage: Python\nDescription: Python is an interpreted, object-oriented, high-level programming language with dynamic semantics.\nWebsite: https://www.python.org\nCategory: common\n*/\n\nfunction python(hljs) {\n const regex = hljs.regex;\n const IDENT_RE = /[\\p{XID_Start}_]\\p{XID_Continue}*/u;\n const RESERVED_WORDS = [\n 'and',\n 'as',\n 'assert',\n 'async',\n 'await',\n 'break',\n 'case',\n 'class',\n 'continue',\n 'def',\n 'del',\n 'elif',\n 'else',\n 'except',\n 'finally',\n 'for',\n 'from',\n 'global',\n 'if',\n 'import',\n 'in',\n 'is',\n 'lambda',\n 'lazy',\n 'match',\n 'nonlocal|10',\n 'not',\n 'or',\n 'pass',\n 'raise',\n 'return',\n 'try',\n 'while',\n 'with',\n 'yield'\n ];\n\n const BUILT_INS = [\n '__import__',\n 'abs',\n 'aiter',\n 'all',\n 'anext',\n 'any',\n 'ascii',\n 'bin',\n 'bool',\n 'breakpoint',\n 'bytearray',\n 'bytes',\n 'callable',\n 'chr',\n 'classmethod',\n 'compile',\n 'complex',\n 'delattr',\n 'dict',\n 'dir',\n 'divmod',\n 'enumerate',\n 'eval',\n 'exec',\n 'filter',\n 'float',\n 'format',\n 'frozendict',\n 'frozenset',\n 'getattr',\n 'globals',\n 'hasattr',\n 'hash',\n 'help',\n 'hex',\n 'id',\n 'input',\n 'int',\n 'isinstance',\n 'issubclass',\n 'iter',\n 'len',\n 'list',\n 'locals',\n 'map',\n 'max',\n 'memoryview',\n 'min',\n 'next',\n 'object',\n 'oct',\n 'open',\n 'ord',\n 'pow',\n 'print',\n 'property',\n 'range',\n 'repr',\n 'reversed',\n 'round',\n 'sentinel',\n 'set',\n 'setattr',\n 'slice',\n 'sorted',\n 'staticmethod',\n 'str',\n 'sum',\n 'super',\n 'tuple',\n 'type',\n 'vars',\n 'zip'\n ];\n\n const LITERALS = [\n '__debug__',\n 'Ellipsis',\n 'False',\n 'None',\n 'NotImplemented',\n 'True'\n ];\n\n // https://docs.python.org/3/library/typing.html\n // TODO: Could these be supplemented by a CamelCase matcher in certain\n // contexts, leaving these remaining only for relevance hinting?\n const TYPES = [\n \"Any\",\n \"Callable\",\n \"Coroutine\",\n \"Dict\",\n \"List\",\n \"Literal\",\n \"Generic\",\n \"Optional\",\n \"Sequence\",\n \"Set\",\n \"Tuple\",\n \"Type\",\n \"Union\"\n ];\n\n const KEYWORDS = {\n $pattern: /[A-Za-z]\\w+|__\\w+__/,\n keyword: RESERVED_WORDS,\n built_in: BUILT_INS,\n literal: LITERALS,\n type: TYPES\n };\n\n const PROMPT = {\n className: 'meta',\n begin: /^(>>>|\\.\\.\\.) /\n };\n\n const SUBST = {\n className: 'subst',\n begin: /\\{/,\n end: /\\}/,\n keywords: KEYWORDS,\n illegal: /#/\n };\n\n const LITERAL_BRACKET = {\n begin: /\\{\\{/,\n relevance: 0\n };\n\n const STRING = {\n className: 'string',\n contains: [ hljs.BACKSLASH_ESCAPE ],\n variants: [\n {\n begin: /([uU]|[bB]|[rR]|[bB][rR]|[rR][bB])?'''/,\n end: /'''/,\n contains: [\n hljs.BACKSLASH_ESCAPE,\n PROMPT\n ],\n relevance: 10\n },\n {\n begin: /([uU]|[bB]|[rR]|[bB][rR]|[rR][bB])?\"\"\"/,\n end: /\"\"\"/,\n contains: [\n hljs.BACKSLASH_ESCAPE,\n PROMPT\n ],\n relevance: 10\n },\n {\n begin: /([fFtT][rR]|[rR][fFtT]|[fFtT])'''/,\n end: /'''/,\n contains: [\n hljs.BACKSLASH_ESCAPE,\n PROMPT,\n LITERAL_BRACKET,\n SUBST\n ]\n },\n {\n begin: /([fFtT][rR]|[rR][fFtT]|[fFtT])\"\"\"/,\n end: /\"\"\"/,\n contains: [\n hljs.BACKSLASH_ESCAPE,\n PROMPT,\n LITERAL_BRACKET,\n SUBST\n ]\n },\n {\n begin: /([uU]|[rR])'/,\n end: /'/,\n relevance: 10\n },\n {\n begin: /([uU]|[rR])\"/,\n end: /\"/,\n relevance: 10\n },\n {\n begin: /([bB]|[bB][rR]|[rR][bB])'/,\n end: /'/\n },\n {\n begin: /([bB]|[bB][rR]|[rR][bB])\"/,\n end: /\"/\n },\n {\n begin: /([fFtT][rR]|[rR][fFtT]|[fFtT])'/,\n end: /'/,\n contains: [\n hljs.BACKSLASH_ESCAPE,\n LITERAL_BRACKET,\n SUBST\n ]\n },\n {\n begin: /([fFtT][rR]|[rR][fFtT]|[fFtT])\"/,\n end: /\"/,\n contains: [\n hljs.BACKSLASH_ESCAPE,\n LITERAL_BRACKET,\n SUBST\n ]\n },\n hljs.APOS_STRING_MODE,\n hljs.QUOTE_STRING_MODE\n ]\n };\n\n // https://docs.python.org/3.9/reference/lexical_analysis.html#numeric-literals\n const digitpart = '[0-9](_?[0-9])*';\n const pointfloat = `(\\\\b(${digitpart}))?\\\\.(${digitpart})|\\\\b(${digitpart})\\\\.`;\n // Whitespace after a number (or any lexical token) is needed only if its absence\n // would change the tokenization\n // https://docs.python.org/3.9/reference/lexical_analysis.html#whitespace-between-tokens\n // We deviate slightly, requiring a word boundary or a keyword\n // to avoid accidentally recognizing *prefixes* (e.g., `0` in `0x41` or `08` or `0__1`)\n const lookahead = `\\\\b|${RESERVED_WORDS.join('|')}`;\n const NUMBER = {\n className: 'number',\n relevance: 0,\n variants: [\n // exponentfloat, pointfloat\n // https://docs.python.org/3.9/reference/lexical_analysis.html#floating-point-literals\n // optionally imaginary\n // https://docs.python.org/3.9/reference/lexical_analysis.html#imaginary-literals\n // Note: no leading \\b because floats can start with a decimal point\n // and we don't want to mishandle e.g. `fn(.5)`,\n // no trailing \\b for pointfloat because it can end with a decimal point\n // and we don't want to mishandle e.g. `0..hex()`; this should be safe\n // because both MUST contain a decimal point and so cannot be confused with\n // the interior part of an identifier\n {\n begin: `(\\\\b(${digitpart})|(${pointfloat}))[eE][+-]?(${digitpart})[jJ]?(?=${lookahead})`\n },\n {\n begin: `(${pointfloat})[jJ]?`\n },\n\n // decinteger, bininteger, octinteger, hexinteger\n // https://docs.python.org/3.9/reference/lexical_analysis.html#integer-literals\n // optionally \"long\" in Python 2\n // https://docs.python.org/2.7/reference/lexical_analysis.html#integer-and-long-integer-literals\n // decinteger is optionally imaginary\n // https://docs.python.org/3.9/reference/lexical_analysis.html#imaginary-literals\n {\n begin: `\\\\b([1-9](_?[0-9])*|0+(_?0)*)[lLjJ]?(?=${lookahead})`\n },\n {\n begin: `\\\\b0[bB](_?[01])+[lL]?(?=${lookahead})`\n },\n {\n begin: `\\\\b0[oO](_?[0-7])+[lL]?(?=${lookahead})`\n },\n {\n begin: `\\\\b0[xX](_?[0-9a-fA-F])+[lL]?(?=${lookahead})`\n },\n\n // imagnumber (digitpart-based)\n // https://docs.python.org/3.9/reference/lexical_analysis.html#imaginary-literals\n {\n begin: `\\\\b(${digitpart})[jJ](?=${lookahead})`\n }\n ]\n };\n const COMMENT_TYPE = {\n className: \"comment\",\n begin: regex.lookahead(/# type:/),\n end: /$/,\n keywords: KEYWORDS,\n contains: [\n { // prevent keywords from coloring `type`\n begin: /# type:/\n },\n // comment within a datatype comment includes no keywords\n {\n begin: /#/,\n end: /\\b\\B/,\n endsWithParent: true\n }\n ]\n };\n const PARAMS = {\n className: 'params',\n variants: [\n // Exclude params in functions without params\n {\n className: \"\",\n begin: /\\(\\s*\\)/,\n skip: true\n },\n {\n begin: /\\(/,\n end: /\\)/,\n excludeBegin: true,\n excludeEnd: true,\n keywords: KEYWORDS,\n contains: [\n 'self',\n PROMPT,\n NUMBER,\n STRING,\n hljs.HASH_COMMENT_MODE\n ]\n }\n ]\n };\n SUBST.contains = [\n STRING,\n NUMBER,\n PROMPT\n ];\n\n return {\n name: 'Python',\n aliases: [\n 'py',\n 'gyp',\n 'ipython'\n ],\n unicodeRegex: true,\n keywords: KEYWORDS,\n illegal: /(<\\/|\\?)|=>/,\n contains: [\n PROMPT,\n NUMBER,\n {\n // very common convention\n scope: 'variable.language',\n match: /\\bself\\b/\n },\n {\n // eat \"if\" prior to string so that it won't accidentally be\n // labeled as an f-string\n beginKeywords: \"if\",\n relevance: 0\n },\n { match: /\\bor\\b/, scope: \"keyword\" },\n STRING,\n COMMENT_TYPE,\n hljs.HASH_COMMENT_MODE,\n {\n match: [\n /\\bdef/, /\\s+/,\n IDENT_RE,\n ],\n scope: {\n 1: \"keyword\",\n 3: \"title.function\"\n },\n contains: [ PARAMS ]\n },\n {\n variants: [\n {\n match: [\n /\\bclass/, /\\s+/,\n IDENT_RE, /\\s*/,\n /\\(\\s*/, IDENT_RE,/\\s*\\)/\n ],\n },\n {\n match: [\n /\\bclass/, /\\s+/,\n IDENT_RE\n ],\n }\n ],\n scope: {\n 1: \"keyword\",\n 3: \"title.class\",\n 6: \"title.class.inherited\",\n }\n },\n {\n className: 'meta',\n begin: /^[\\t ]*@/,\n end: /(?=#)|$/,\n contains: [\n NUMBER,\n PARAMS,\n STRING\n ]\n }\n ]\n };\n}\n\nexport { python as default };\n"],"ignoreList":[0],"mappings":";AAOA,SAASA,EAAO,GAAM;CACpB,IAAMC,IAAQC,EAAK,OACbC,IAAW,sCACXC,IAAiB,4NAoCvB,GA0GMC,IAAW;EACf,UAAU;EACV,SAASD;EACT,UAAU,kfAAQ;EAClB,SAAS;GA/BT;GACA;GACA;GACA;GACA;GACA;EA0BgB;EAChB,MAAM;GApBN;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;EAQU;CACZ,GAEME,IAAS;EACb,WAAW;EACX,OAAO;CACT,GAEMC,IAAQ;EACZ,WAAW;EACX,OAAO;EACP,KAAK;EACL,UAAUF;EACV,SAAS;CACX,GAEMG,IAAkB;EACtB,OAAO;EACP,WAAW;CACb,GAEMC,IAAS;EACb,WAAW;EACX,UAAU,CAAEP,EAAK,gBAAiB;EAClC,UAAU;GACR;IACE,OAAO;IACP,KAAK;IACL,UAAU,CACRA,EAAK,kBACLI,CACF;IACA,WAAW;GACb;GACA;IACE,OAAO;IACP,KAAK;IACL,UAAU,CACRJ,EAAK,kBACLI,CACF;IACA,WAAW;GACb;GACA;IACE,OAAO;IACP,KAAK;IACL,UAAU;KACRJ,EAAK;KACLI;KACAE;KACAD;IACF;GACF;GACA;IACE,OAAO;IACP,KAAK;IACL,UAAU;KACRL,EAAK;KACLI;KACAE;KACAD;IACF;GACF;GACA;IACE,OAAO;IACP,KAAK;IACL,WAAW;GACb;GACA;IACE,OAAO;IACP,KAAK;IACL,WAAW;GACb;GACA;IACE,OAAO;IACP,KAAK;GACP;GACA;IACE,OAAO;IACP,KAAK;GACP;GACA;IACE,OAAO;IACP,KAAK;IACL,UAAU;KACRL,EAAK;KACLM;KACAD;IACF;GACF;GACA;IACE,OAAO;IACP,KAAK;IACL,UAAU;KACRL,EAAK;KACLM;KACAD;IACF;GACF;GACAL,EAAK;GACLA,EAAK;EACP;CACF,GAGMQ,IAAY,mBACZC,IAAa,QAAQD,EAAU,SAASA,EAAU,QAAQA,EAAU,OAMpEE,IAAY,OAAOR,EAAe,KAAK,GAAG,KAC1CS,IAAS;EACb,WAAW;EACX,WAAW;EACX,UAAU;GAWR,EACE,OAAO,QAAQH,EAAU,KAAKC,EAAW,cAAcD,EAAU,WAAWE,EAAU,GACxF;GACA,EACE,OAAO,IAAID,EAAW,QACxB;GAQA,EACE,OAAO,0CAA0CC,EAAU,GAC7D;GACA,EACE,OAAO,4BAA4BA,EAAU,GAC/C;GACA,EACE,OAAO,6BAA6BA,EAAU,GAChD;GACA,EACE,OAAO,mCAAmCA,EAAU,GACtD;GAIA,EACE,OAAO,OAAOF,EAAU,UAAUE,EAAU,GAC9C;EACF;CACF,GACME,IAAe;EACnB,WAAW;EACX,OAAOb,EAAM,UAAU,SAAS;EAChC,KAAK;EACL,UAAUI;EACV,UAAU,CACR,EACE,OAAO,UACT,GAEA;GACE,OAAO;GACP,KAAK;GACL,gBAAgB;EAClB,CACF;CACF,GACMU,IAAS;EACb,WAAW;EACX,UAAU,CAER;GACE,WAAW;GACX,OAAO;GACP,MAAM;EACR,GACA;GACE,OAAO;GACP,KAAK;GACL,cAAc;GACd,YAAY;GACZ,UAAUV;GACV,UAAU;IACR;IACAC;IACAO;IACAJ;IACAP,EAAK;GACP;EACF,CACF;CACF;CAOA,OANA,EAAM,WAAW;EACfO;EACAI;EACAP;CACF,GAEO;EACL,MAAM;EACN,SAAS;GACP;GACA;GACA;EACF;EACA,cAAc;EACd,UAAUD;EACV,SAAS;EACT,UAAU;GACRC;GACAO;GACA;IAEE,OAAO;IACP,OAAO;GACT;GACA;IAGE,eAAe;IACf,WAAW;GACb;GACA;IAAE,OAAO;IAAU,OAAO;GAAU;GACpCJ;GACAK;GACAZ,EAAK;GACL;IACE,OAAO;KACL;KAAS;KACTC;IACF;IACA,OAAO;KACL,GAAG;KACH,GAAG;IACL;IACA,UAAU,CAAEY,CAAO;GACrB;GACA;IACE,UAAU,CACR,EACE,OAAO;KACL;KAAW;KACXZ;KAAU;KACV;KAASA;KAAS;IACpB,EACF,GACA,EACE,OAAO;KACL;KAAW;KACXA;IACF,EACF,CACF;IACA,OAAO;KACL,GAAG;KACH,GAAG;KACH,GAAG;IACL;GACF;GACA;IACE,WAAW;IACX,OAAO;IACP,KAAK;IACL,UAAU;KACRU;KACAE;KACAN;IACF;GACF;EACF;CACF;AACF"}
@@ -0,0 +1,21 @@
1
+ //#region node_modules/highlight.js/es/languages/python-repl.js
2
+ function e(e) {
3
+ return {
4
+ aliases: ["pycon"],
5
+ contains: [{
6
+ className: "meta.prompt",
7
+ starts: {
8
+ end: / |$/,
9
+ starts: {
10
+ end: "$",
11
+ subLanguage: "python"
12
+ }
13
+ },
14
+ variants: [{ begin: /^>>>(?=[ ]|$)/ }, { begin: /^\.\.\.(?=[ ]|$)/ }]
15
+ }]
16
+ };
17
+ }
18
+ //#endregion
19
+ export { e as default };
20
+
21
+ //# sourceMappingURL=python-repl-DFMVj5e5.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"python-repl-DFMVj5e5.js","names":["pythonRepl"],"sources":["../../node_modules/highlight.js/es/languages/python-repl.js"],"sourcesContent":["/*\nLanguage: Python REPL\nRequires: python.js\nAuthor: Josh Goebel <hello@joshgoebel.com>\nCategory: common\n*/\n\nfunction pythonRepl(hljs) {\n return {\n aliases: [ 'pycon' ],\n contains: [\n {\n className: 'meta.prompt',\n starts: {\n // a space separates the REPL prefix from the actual code\n // this is purely for cleaner HTML output\n end: / |$/,\n starts: {\n end: '$',\n subLanguage: 'python'\n }\n },\n variants: [\n { begin: /^>>>(?=[ ]|$)/ },\n { begin: /^\\.\\.\\.(?=[ ]|$)/ }\n ]\n }\n ]\n };\n}\n\nexport { pythonRepl as default };\n"],"ignoreList":[0],"mappings":";AAOA,SAASA,EAAW,GAAM;CACxB,OAAO;EACL,SAAS,CAAE,OAAQ;EACnB,UAAU,CACR;GACE,WAAW;GACX,QAAQ;IAGN,KAAK;IACL,QAAQ;KACN,KAAK;KACL,aAAa;IACf;GACF;GACA,UAAU,CACR,EAAE,OAAO,gBAAgB,GACzB,EAAE,OAAO,mBAAmB,CAC9B;EACF,CACF;CACF;AACF"}