@visulima/html 1.0.9 → 1.0.11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,3 +1,7 @@
1
+ ## @visulima/html [1.0.11](https://github.com/visulima/visulima/compare/@visulima/html@1.0.10...@visulima/html@1.0.11) (2026-09-07)
2
+
3
+ ## @visulima/html [1.0.10](https://github.com/visulima/visulima/compare/@visulima/html@1.0.9...@visulima/html@1.0.10) (2026-09-06)
4
+
1
5
  ## @visulima/html [1.0.9](https://github.com/visulima/visulima/compare/@visulima/html@1.0.8...@visulima/html@1.0.9) (2026-09-03)
2
6
 
3
7
  ## @visulima/html [1.0.8](https://github.com/visulima/visulima/compare/@visulima/html@1.0.7...@visulima/html@1.0.8) (2026-08-19)
package/LICENSE.md CHANGED
@@ -53,6 +53,36 @@ MIT
53
53
 
54
54
  ---------------------------------------
55
55
 
56
+ ## codsen-format-diagnostic-value
57
+ License: MIT
58
+ By: Roy Revelt
59
+ Repository: git+https://github.com/codsen/codsen.git
60
+
61
+ > MIT License
62
+ >
63
+ > Copyright © 2010-2026 Roy Revelt and other contributors
64
+ >
65
+ > Permission is hereby granted, free of charge, to any person obtaining
66
+ > a copy of this software and associated documentation files (the
67
+ > "Software"), to deal in the Software without restriction, including
68
+ > without limitation the rights to use, copy, modify, merge, publish,
69
+ > distribute, sublicense, and/or sell copies of the Software, and to
70
+ > permit persons to whom the Software is furnished to do so, subject to
71
+ > the following conditions:
72
+ >
73
+ > The above copyright notice and this permission notice shall be
74
+ > included in all copies or substantial portions of the Software.
75
+ >
76
+ > THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
77
+ > EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
78
+ > MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
79
+ > NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
80
+ > LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
81
+ > OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
82
+ > WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
83
+
84
+ ---------------------------------------
85
+
56
86
  ## codsen-utils
57
87
  License: MIT
58
88
  By: Roy Revelt
@@ -60,7 +90,7 @@ Repository: git+https://github.com/codsen/codsen.git
60
90
 
61
91
  > MIT License
62
92
  >
63
- > Copyright © 2010-2025 Roy Revelt and other contributors
93
+ > Copyright © 2010-2026 Roy Revelt and other contributors
64
94
  >
65
95
  > Permission is hereby granted, free of charge, to any person obtaining
66
96
  > a copy of this software and associated documentation files (the
@@ -110,27 +140,40 @@ Repository: https://github.com/mdevils/html-entities.git
110
140
 
111
141
  ---------------------------------------
112
142
 
113
- ## html-tags
143
+ ## html-entity-codec
114
144
  License: MIT
115
- By: Sindre Sorhus
116
- Repository: sindresorhus/html-tags
145
+ By: Roy Revelt
146
+ Repository: git+https://github.com/codsen/codsen.git
117
147
 
118
148
  > MIT License
119
149
  >
120
- > Copyright (c) Sindre Sorhus <sindresorhus@gmail.com> (https://sindresorhus.com)
150
+ > Copyright © 2010-2026 Roy Revelt and other contributors
121
151
  >
122
- > Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
152
+ > Permission is hereby granted, free of charge, to any person obtaining
153
+ > a copy of this software and associated documentation files (the
154
+ > "Software"), to deal in the Software without restriction, including
155
+ > without limitation the rights to use, copy, modify, merge, publish,
156
+ > distribute, sublicense, and/or sell copies of the Software, and to
157
+ > permit persons to whom the Software is furnished to do so, subject to
158
+ > the following conditions:
123
159
  >
124
- > The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
160
+ > The above copyright notice and this permission notice shall be
161
+ > included in all copies or substantial portions of the Software.
125
162
  >
126
- > THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
163
+ > THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
164
+ > EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
165
+ > MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
166
+ > NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
167
+ > LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
168
+ > OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
169
+ > WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
127
170
 
128
171
  ---------------------------------------
129
172
 
130
- ## is-html
173
+ ## html-tags
131
174
  License: MIT
132
175
  By: Sindre Sorhus
133
- Repository: sindresorhus/is-html
176
+ Repository: sindresorhus/html-tags
134
177
 
135
178
  > MIT License
136
179
  >
@@ -144,58 +187,20 @@ Repository: sindresorhus/is-html
144
187
 
145
188
  ---------------------------------------
146
189
 
147
- ## lodash-es
190
+ ## is-html
148
191
  License: MIT
149
- By: John-David Dalton, Mathias Bynens
150
- Repository: lodash/lodash
192
+ By: Sindre Sorhus
193
+ Repository: sindresorhus/is-html
151
194
 
152
- > Copyright OpenJS Foundation and other contributors <https://openjsf.org/>
153
- >
154
- > Based on Underscore.js, copyright Jeremy Ashkenas,
155
- > DocumentCloud and Investigative Reporters & Editors <http://underscorejs.org/>
156
- >
157
- > This software consists of voluntary contributions made by many
158
- > individuals. For exact contribution history, see the revision history
159
- > available at https://github.com/lodash/lodash
160
- >
161
- > The following license applies to all parts of this software except as
162
- > documented below:
163
- >
164
- > ====
165
- >
166
- > Permission is hereby granted, free of charge, to any person obtaining
167
- > a copy of this software and associated documentation files (the
168
- > "Software"), to deal in the Software without restriction, including
169
- > without limitation the rights to use, copy, modify, merge, publish,
170
- > distribute, sublicense, and/or sell copies of the Software, and to
171
- > permit persons to whom the Software is furnished to do so, subject to
172
- > the following conditions:
173
- >
174
- > The above copyright notice and this permission notice shall be
175
- > included in all copies or substantial portions of the Software.
176
- >
177
- > THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
178
- > EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
179
- > MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
180
- > NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
181
- > LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
182
- > OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
183
- > WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
184
- >
185
- > ====
195
+ > MIT License
186
196
  >
187
- > Copyright and related rights for sample code are waived via CC0. Sample
188
- > code is defined as all source code displayed within the prose of the
189
- > documentation.
197
+ > Copyright (c) Sindre Sorhus <sindresorhus@gmail.com> (https://sindresorhus.com)
190
198
  >
191
- > CC0: http://creativecommons.org/publicdomain/zero/1.0/
199
+ > Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
192
200
  >
193
- > ====
201
+ > The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
194
202
  >
195
- > Files located in the node_modules and vendor directories are externally
196
- > maintained libraries used by this software which have their own
197
- > licenses; we recommend you read them, as their terms may differ from the
198
- > terms above.
203
+ > THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
199
204
 
200
205
  ---------------------------------------
201
206
 
@@ -206,7 +211,7 @@ Repository: git+https://github.com/codsen/codsen.git
206
211
 
207
212
  > MIT License
208
213
  >
209
- > Copyright © 2010-2025 Roy Revelt and other contributors
214
+ > Copyright © 2010-2026 Roy Revelt and other contributors
210
215
  >
211
216
  > Permission is hereby granted, free of charge, to any person obtaining
212
217
  > a copy of this software and associated documentation files (the
@@ -236,7 +241,7 @@ Repository: git+https://github.com/codsen/codsen.git
236
241
 
237
242
  > MIT License
238
243
  >
239
- > Copyright © 2010-2025 Roy Revelt and other contributors
244
+ > Copyright © 2010-2026 Roy Revelt and other contributors
240
245
  >
241
246
  > Permission is hereby granted, free of charge, to any person obtaining
242
247
  > a copy of this software and associated documentation files (the
@@ -266,7 +271,7 @@ Repository: git+https://github.com/codsen/codsen.git
266
271
 
267
272
  > MIT License
268
273
  >
269
- > Copyright © 2010-2025 Roy Revelt and other contributors
274
+ > Copyright © 2010-2026 Roy Revelt and other contributors
270
275
  >
271
276
  > Permission is hereby granted, free of charge, to any person obtaining
272
277
  > a copy of this software and associated documentation files (the
@@ -296,7 +301,7 @@ Repository: git+https://github.com/codsen/codsen.git
296
301
 
297
302
  > MIT License
298
303
  >
299
- > Copyright © 2010-2025 Roy Revelt and other contributors
304
+ > Copyright © 2010-2026 Roy Revelt and other contributors
300
305
  >
301
306
  > Permission is hereby granted, free of charge, to any person obtaining
302
307
  > a copy of this software and associated documentation files (the
@@ -319,29 +324,6 @@ Repository: git+https://github.com/codsen/codsen.git
319
324
 
320
325
  ---------------------------------------
321
326
 
322
- ## rfdc
323
- License: MIT
324
- By: David Mark Clements
325
- Repository: git+https://github.com/davidmarkclements/rfdc.git
326
-
327
- > Copyright 2019 "David Mark Clements <david.mark.clements@gmail.com>"
328
- >
329
- > Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated
330
- > documentation files (the "Software"), to deal in the Software without restriction, including without limitation
331
- > the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and
332
- > to permit persons to whom the Software is furnished to do so, subject to the following conditions:
333
- >
334
- > The above copyright notice and this permission notice shall be included in all copies or substantial portions
335
- > of the Software.
336
- >
337
- > THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED
338
- > TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
339
- > THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
340
- > CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
341
- > IN THE SOFTWARE.
342
-
343
- ---------------------------------------
344
-
345
327
  ## string-collapse-leading-whitespace
346
328
  License: MIT
347
329
  By: Roy Revelt
@@ -349,7 +331,7 @@ Repository: git+https://github.com/codsen/codsen.git
349
331
 
350
332
  > MIT License
351
333
  >
352
- > Copyright © 2010-2025 Roy Revelt and other contributors
334
+ > Copyright © 2010-2026 Roy Revelt and other contributors
353
335
  >
354
336
  > Permission is hereby granted, free of charge, to any person obtaining
355
337
  > a copy of this software and associated documentation files (the
@@ -379,7 +361,7 @@ Repository: git+https://github.com/codsen/codsen.git
379
361
 
380
362
  > MIT License
381
363
  >
382
- > Copyright © 2010-2025 Roy Revelt and other contributors
364
+ > Copyright © 2010-2026 Roy Revelt and other contributors
383
365
  >
384
366
  > Permission is hereby granted, free of charge, to any person obtaining
385
367
  > a copy of this software and associated documentation files (the
@@ -409,7 +391,7 @@ Repository: git+https://github.com/codsen/codsen.git
409
391
 
410
392
  > MIT License
411
393
  >
412
- > Copyright © 2010-2025 Roy Revelt and other contributors
394
+ > Copyright © 2010-2026 Roy Revelt and other contributors
413
395
  >
414
396
  > Permission is hereby granted, free of charge, to any person obtaining
415
397
  > a copy of this software and associated documentation files (the
@@ -430,35 +412,6 @@ Repository: git+https://github.com/codsen/codsen.git
430
412
  > OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
431
413
  > WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
432
414
 
433
- ---------------------------------------
434
-
435
- ## tiny-invariant
436
- License: MIT
437
- By: Alex Reardon
438
- Repository: https://github.com/alexreardon/tiny-invariant.git
439
-
440
- > MIT License
441
- >
442
- > Copyright (c) 2019 Alexander Reardon
443
- >
444
- > Permission is hereby granted, free of charge, to any person obtaining a copy
445
- > of this software and associated documentation files (the "Software"), to deal
446
- > in the Software without restriction, including without limitation the rights
447
- > to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
448
- > copies of the Software, and to permit persons to whom the Software is
449
- > furnished to do so, subject to the following conditions:
450
- >
451
- > The above copyright notice and this permission notice shall be included in all
452
- > copies or substantial portions of the Software.
453
- >
454
- > THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
455
- > IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
456
- > FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
457
- > AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
458
- > LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
459
- > OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
460
- > SOFTWARE.
461
-
462
415
  <!-- /DEPENDENCIES -->
463
416
 
464
417
  <!-- TYPE_DEPENDENCIES -->
@@ -536,7 +489,7 @@ Repository: git+https://github.com/codsen/codsen.git
536
489
 
537
490
  > MIT License
538
491
  >
539
- > Copyright © 2010-2025 Roy Revelt and other contributors
492
+ > Copyright © 2010-2026 Roy Revelt and other contributors
540
493
  >
541
494
  > Permission is hereby granted, free of charge, to any person obtaining
542
495
  > a copy of this software and associated documentation files (the
package/dist/index.js CHANGED
@@ -1 +1 @@
1
- import{default as s}from"./css.js";import{default as o}from"./packem_shared/escapeHtml-DdDA6jFA.js";import{default as r,isRawHtml as l}from"./html.js";import{escapeCss as p,escapeJs as d,isValidCustomElementName as i}from"./packem_shared/escapeCss-ConRqRhX.js";import{decode as x,decodeEntity as c,encode as H}from"./packem_shared/decode-DCH9idAU.js";import{default as g}from"./packem_shared/isHtml-CGcABjbZ.js";import{default as C}from"sanitize-html";import{stripHtml as T,defaults as v}from"./packem_shared/stripHtml-BuSkjEyH.js";import{default as y}from"./packem_shared/htmlTags-UYjNTyAz.js";import{default as D}from"./packem_shared/voidHtmlTags-CXk_Wk2G.js";export{s as css,x as decode,c as decodeEntity,H as encode,p as escapeCss,o as escapeHtml,d as escapeJs,r as html,y as htmlTags,g as isHtml,l as isRawHtml,i as isValidCustomElementName,C as sanitizeHtml,T as stripHtml,v as stripHtmlDefaultOptions,D as voidHtmlTags};
1
+ import{default as s}from"./css.js";import{default as o}from"./packem_shared/escapeHtml-DdDA6jFA.js";import{default as r,isRawHtml as l}from"./html.js";import{escapeCss as p,escapeJs as d,isValidCustomElementName as i}from"./packem_shared/escapeCss-ConRqRhX.js";import{decode as x,decodeEntity as c,encode as H}from"./packem_shared/decode-DCH9idAU.js";import{default as g}from"./packem_shared/isHtml-CGcABjbZ.js";import{default as C}from"sanitize-html";import{stripHtml as T,defaults as v}from"./packem_shared/stripHtml-DQfmQ2o_.js";import{default as y}from"./packem_shared/htmlTags-UYjNTyAz.js";import{default as D}from"./packem_shared/voidHtmlTags-CXk_Wk2G.js";export{s as css,x as decode,c as decodeEntity,H as encode,p as escapeCss,o as escapeHtml,d as escapeJs,r as html,y as htmlTags,g as isHtml,l as isRawHtml,i as isValidCustomElementName,C as sanitizeHtml,T as stripHtml,v as stripHtmlDefaultOptions,D as voidHtmlTags};
@@ -0,0 +1,64 @@
1
+ /**
2
+ * @name codsen-format-diagnostic-value
3
+ * @fileoverview Safely format untrusted JavaScript values for diagnostics
4
+ * @version 1.1.1
5
+ * @author Roy Revelt
6
+ * @license MIT
7
+ * {@link https://codsen.com/os/codsen-format-diagnostic-value/}
8
+ */function Sr(){let e=[],t=0,n=!1;return{append(s){return n?!1:t+s.length>1999?(e.push("…"),t+=1,n=!0,!1):(e.push(s),t+=s.length,!0)},result(){return e.join("")},stopped(){return n}}}function Lr(e){return`\\u${e.toString(16).padStart(4,"0")}`}function be(e,t){if(e.append('"')){for(let n=0;n<t.length&&!e.stopped();n+=1){let s=t.charCodeAt(n);s===34?e.append('\\"'):s===92?e.append("\\\\"):s===8?e.append("\\b"):s===9?e.append("\\t"):s===10?e.append("\\n"):s===12?e.append("\\f"):s===13?e.append("\\r"):s<32||s===8232||s===8233||s>=55296&&s<=57343?e.append(Lr(s)):e.append(t[n])}e.append('"')}}function $r(e){return e.get&&e.set?"[Getter/Setter]":e.get?"[Getter]":e.set?"[Setter]":"[Accessor]"}function vr(e,t){e.append("Symbol(");let n=String(t);n.length>8&&be(e,n.slice(7,-1)),e.append(")")}function sr(e,t){typeof t=="symbol"?vr(e,t):be(e,String(t))}function w(e,t=0){let n=Sr(),s=t===4?4:0,l=new WeakSet,i=0;function r(f){s&&n.append(" ".repeat(f*s))}function o(f,u){f&&n.append(","),s&&(n.append(`
9
+ `),r(u+1))}function c(f,u,k){s&&u&&(n.append(`
10
+ `),r(k)),n.append(f)}function m(f,u){Object.prototype.hasOwnProperty.call(f,"value")?q(f.value,u):n.append($r(f))}function p(f,u){let k;try{k=Reflect.getOwnPropertyDescriptor(f,"length")}catch{n.append("[Uninspectable]");return}let O=k?.value;if(!Number.isSafeInteger(O)||O<0){n.append("[Uninspectable]");return}n.append("[");let D=!1;for(let S=0;S<O&&!n.stopped();S+=1){if(o(D,u),D=!0,i>=50){n.append("[MaxEntries]");break}i+=1;let R;try{R=Reflect.getOwnPropertyDescriptor(f,String(S))}catch{n.append("[Uninspectable]");continue}R?.enumerable?m(R,u+1):n.append("[Empty]")}c("]",D,u)}function A(f,u){let k;try{k=Reflect.ownKeys(f)}catch{n.append("[Uninspectable]");return}n.append("{");let O=!1;for(let D of k){if(n.stopped())break;if(i>=50){o(O,u),O=!0,be(n,"…"),n.append(s?": ":":"),n.append("[MaxEntries]");break}i+=1;let S;try{S=Reflect.getOwnPropertyDescriptor(f,D)}catch{o(O,u),O=!0,sr(n,D),n.append(s?": ":":"),n.append("[Uninspectable]");continue}S?.enumerable&&(o(O,u),O=!0,sr(n,D),n.append(s?": ":":"),m(S,u+1))}c("}",O,u)}function T(f,u){if(l.has(f)){n.append("[Circular]");return}if(u>=5){n.append("[MaxDepth]");return}let k;try{k=Array.isArray(f)}catch{n.append("[Uninspectable]");return}l.add(f);try{k?p(f,u):A(f,u)}finally{l.delete(f)}}function q(f,u){f===null?n.append("null"):typeof f=="string"?be(n,f):typeof f=="number"?n.append(Object.is(f,-0)?"-0":String(f)):typeof f=="boolean"?n.append(f?"true":"false"):typeof f>"u"?n.append("undefined"):typeof f=="bigint"?n.append(`${f}n`):typeof f=="symbol"?vr(n,f):typeof f=="function"?n.append("[Function]"):T(f,u)}try{return q(e,0),n.result()}catch{return"[Uninspectable]"}}var Dr=["_16_0_a_0_4_0_5_m_1_u_1_cp_4_b_e_4_7_0_1_0_3l_4_1_1_2_3_1_0_6_0_1_2_1_0_1_j_1_2a_1_3u_8_4l_1_11_2_0_","6_14_1z_q_4_3_19_16_z_1_1_2q_1_0_f_1_7_1_a_2_2_0_g_0_1_t_t_2g_b_0_o_w_9_1_4_0_5_l_4_0_9_0_3_0_n_o_7_","a_5_n_1_6_g_15_1m_1h_3_0_i_0_7_9_f_f_4_7_2_1_2_l_1_6_1_0_3_3_3_0_g_0_d_1_1_2_e_1_a_0_8_5_4_1_2_l_1_6","_1_1_1_1_1_1_v_3_1_0_j_2_g_8_1_2_1_l_1_6_1_1_1_4_3_0_i_0_f_1_n_0_b_7_2_1_2_l_1_6_1_1_1_4_3_0_u_1_1_2","_f_0_h_0_1_5_3_2_1_3_3_1_1_0_1_1_3_1_3_2_3_b_m_0_1g_7_1_2_1_m_1_f_3_0_q_2_1_1_2_1_u_0_4_7_1_2_1_m_1_","9_1_4_3_0_u_2_1_1_f_1_h_8_1_2_1_14_2_0_g_0_5_2_8_2_o_5_5_h_3_n_1_8_1_0_2_6_1m_1b_1_1_c_6_1m_1_1_0_1_","4_1_n_1_0_1_9_1_1_9_0_2_4_1_0_l_3_w_0_1r_7_1_z_r_4_37_16_k_0_g_5_4_3_3_0_3_1_7_2_4_c_c_0_h_11_1_0_5_","0_2_16_1_98_1_3_2_6_1_0_1_3_2_14_1_3_2_w_1_3_2_6_1_0_1_3_2_e_1_1k_1_3_2_1u_11_f_g_2d_2_5_3_h7_2_g_1_","p_5_22_6_7_7_h_d_i_e_h_e_c_1_2_f_1f_z_0_4_0_1v_2g_7_4_2_x_1_0_5_1x_a_u_1d_t_2_4_b_17_4_p_1i_m_9_1g_2","a_0_2l_1a_h_7_1i_t_d_1_a_17_q_z_15_2_a_z_2_a_5_16_2_2_15_3_1_5_1_1_3_0_5_5b_1s_7p_2_5_2_11_2_5_2_7_1","_0_1_0_1_0_1_u_2_1g_1_6_1_0_3_2_1_6_3_3_2_5_4_c_5_2_1_6_38_0_d_0_g_c_2t_0_4_0_2_9_1_0_3_4_6_0_1_0_1_","0_1_3_1_a_2_3_5_4_4_0_1g_1_22j_6c_6_3_3_1_c_11_1_0_5_0_2_1j_7_0_g_m_9_6_1_6_1_6_1_6_1_6_1_6_1_6_1_6_","28_0_d1_1_16_4_5_1_4_2d_6_2_1_2h_1_3_5_16_1_2l_h_v_1c_f_e8_533_1s_h3g_1v_19_2_7g_3_f_a_1_k_1a_g_u_2_","1x_1d_8_2_2u_2_29_k_g_1_2_1_3_1_m_t_1f_e_1d_1q_5_3_0_1_1_b_r_a_m_p_s_7_1a_s_0_g_4_1_9_a_4_1_14_n_2_1","_7_k_m_3_0_3_1d_1_0_3_1_2_4_2_0_1_0_o_2_2_a_7_2_c_5_2_5_2_5_9_6_1_6_1_16_1_d_6_36_t_8mb_c_m_4_1c_6is","_a5_2_2x_12_6_c_4_5_0_1_9_1_c_1_4_1_0_1_1_1_1_1_2z_x_a2_i_1r_2_1h_14_b_38_4_1_3q_10_p_6_p_b_2g_3_5_2","_5_2_5_2_2_z_b_1_p_1_i_1_1_1_e_2_d_y_3e_at_s_3_1c_1b_v_d_j_1_7_6_11_a_t_2_z_4_7_1c_4d_i_z_4_z_4_13_8","_1f_c_a_1_e_1_6_1_1_1_a_1_e_1_6_1_1_3_1f_c_8m_9_l_a_7_o_5_1_15_1_8_1x_5_2_0_1_17_1_1_3_0_2_m_a_m_9_u","_1t_i_1_1_a_l_a_p_6_p_12_1j_6_1_1s_0_f_3_1_2_1_s_16_s_3_s_z_7_1_r_r_1h_a_l_a_i_d_h_32_20_1j_1e_d_1e_","d_z_12_r_9_m_6y_15_6_1_g_5_1k_s_a_0_8_l_16_h_1a_k_r_m_c_1g_1l_1_2_0_d_18_w_o_q_z_t_0_2_0_8_y_3_0_c_1","b_e_3_l_0_1_0_z_h_1_o_j_1_1r_6_1_0_1_3_1_e_1_9_7_1a_12_7_2_1_2_l_1_6_1_1_1_4_3_0_i_0_c_4_u_9_1_0_2_0","_1_11_1_0_p_0_1_0_18_1g_i_3_k_2_u_1b_k_1_1_0_54_1a_15_3_10_1b_k_0_1n_16_d_0_1z_q_11_6_55_17_38_1r_v_","7_2_0_2_7_1_1_1_n_f_0_1_0_2m_7_2_12_g_0_1_0_s_0_a_13_7_0_l_0_b_19_j_0_i_20_5j_w_v_8_1_10_h_0_1d_t_34","_6_1_1_1_11_l_0_p_5_1_1_1_v_e_0_n_17_78_i_f_0_1_c_1_x_3g_0_27_pl_6e_5f_218_2o_f_tr_h_5_p_32y_5_g6_5a","1_t_1cy_fs_7_u_h_26_h_t_i_1b_g_3_v_k_5_i_c0_18_5v_1r_w_o_2_o_18_22_5_0_1u_c_1s_1_1_0_e_1_c_5p1_15_v_","2p_36_6pp_3_1_6_1_1_1_82_f_0_t_2_2_0_e_3_8_az_1s4_2y_5_c_3_8_7_9_4me_2c_1_1y_1_1_2_0_2_1_2_3_1_b_1_0","_1_6_1_1s_1_3_2_7_1_6_1_r_1_3_1_4_1_0_3_6_1_9f_2_o_1_o_1_u_1_o_1_u_1_o_1_u_1_o_1_u_1_o_1_7_1f8_u_6_5","_79_1p_42_18_a_6_g_0_8x_t_i_17_dg_r_6c_t_2_0_5r_u_1_2_1_1_1_6_2_4_9_1_68_6_1_3_1_1_1_e_1_5g_1n_1v_7_","0_xg_3_1_q_1_1_1_0_2_0_1_9_1_3_1_0_1_0_6_0_4_0_1_0_1_0_1_2_1_1_1_0_2_0_1_0_1_0_1_0_1_0_1_1_1_0_2_3_1","_6_1_3_1_3_1_0_1_9_1_g_5_2_1_4_1_g_3es_wyn_w_3dp_2_4gd_2_5rk_f_h9_1wi_f1_15u_3t6_5_6jt"].join(""),Ie=Dr.slice(1).split("_"),ir=127;for(let e=0;e<Ie.length;e+=2)ir=ir+1+Number.parseInt(Ie[e],36)+Number.parseInt(Ie[e+1],36);var Rr=Object.prototype.hasOwnProperty,wr=Function.prototype.toString,Br=wr.call(Object);Object.getOwnPropertyDescriptor(ArrayBuffer.prototype,"byteLength")?.get;Object.getOwnPropertyDescriptor(RegExp.prototype,"flags")?.get;Object.getOwnPropertyDescriptor(RegExp.prototype,"global")?.get;Object.getOwnPropertyDescriptor(RegExp.prototype,"source")?.get;function pe(e){if(e==null||typeof e!="object")return!1;let t=Object.getPrototypeOf(e);if(t===null||t===Object.prototype)return!0;let n=Object.getOwnPropertyDescriptor(t,"constructor");return!n||!("value"in n)||typeof n.value!="function"?!1:Object.getOwnPropertyDescriptor(n.value,"prototype")?.value===t&&wr.call(n.value)===Br}function Z(e){return typeof e=="string"}function Ar(e){return Number.isFinite(e)}function ve(e){return Number.isSafeInteger(e)&&e>=0}function lr(e,t){if(!e||!t)return e;let n=!0;for(let o=t.length;o--;)if(t.charCodeAt(o)>127){n=!1;break}if(n){let o=0,c=e.length;if(t.length===1){let m=t.charCodeAt(0);for(;o<c&&e.charCodeAt(o)===m;)o++;for(;c>o&&e.charCodeAt(c-1)===m;)c--}else{for(;o<c&&t.includes(e[o]);)o++;for(;c>o&&t.includes(e[c-1]);)c--}return o===0&&c===e.length?e:e.slice(o,c)}let s=Array.from(e),l=new Set(t),i=0,r=s.length;for(;i<r&&l.has(s[i]);)i++;for(;r>i&&l.has(s[r-1]);)r--;return i===0&&r===s.length?e:s.slice(i,r).join("")}function Nr(e=[],t=[]){if(!e||!Array.isArray(e)||!e.length)return[];if(!t||!Array.isArray(t)||!t.length)return e.slice();if(e.length*t.length<400)return e.filter(s=>!t.includes(s));let n=new Set(t);return e.filter(s=>!n.has(s))}function Me(e){return e!=null}function Ir(e,t){return e!=null&&Rr.call(e,t)}var or={AElig:"Æ","AElig;":"Æ",AMP:"&","AMP;":"&",Aacute:"Á","Aacute;":"Á","Abreve;":"Ă",Acirc:"Â","Acirc;":"Â","Acy;":"А","Afr;":"𝔄",Agrave:"À","Agrave;":"À","Alpha;":"Α","Amacr;":"Ā","And;":"⩓","Aogon;":"Ą","Aopf;":"𝔸","ApplyFunction;":"⁡",Aring:"Å","Aring;":"Å","Ascr;":"𝒜","Assign;":"≔",Atilde:"Ã","Atilde;":"Ã",Auml:"Ä","Auml;":"Ä","Backslash;":"∖","Barv;":"⫧","Barwed;":"⌆","Bcy;":"Б","Because;":"∵","Bernoullis;":"ℬ","Beta;":"Β","Bfr;":"𝔅","Bopf;":"𝔹","Breve;":"˘","Bscr;":"ℬ","Bumpeq;":"≎","CHcy;":"Ч",COPY:"©","COPY;":"©","Cacute;":"Ć","Cap;":"⋒","CapitalDifferentialD;":"ⅅ","Cayleys;":"ℭ","Ccaron;":"Č",Ccedil:"Ç","Ccedil;":"Ç","Ccirc;":"Ĉ","Cconint;":"∰","Cdot;":"Ċ","Cedilla;":"¸","CenterDot;":"·","Cfr;":"ℭ","Chi;":"Χ","CircleDot;":"⊙","CircleMinus;":"⊖","CirclePlus;":"⊕","CircleTimes;":"⊗","ClockwiseContourIntegral;":"∲","CloseCurlyDoubleQuote;":"”","CloseCurlyQuote;":"’","Colon;":"∷","Colone;":"⩴","Congruent;":"≡","Conint;":"∯","ContourIntegral;":"∮","Copf;":"ℂ","Coproduct;":"∐","CounterClockwiseContourIntegral;":"∳","Cross;":"⨯","Cscr;":"𝒞","Cup;":"⋓","CupCap;":"≍","DD;":"ⅅ","DDotrahd;":"⤑","DJcy;":"Ђ","DScy;":"Ѕ","DZcy;":"Џ","Dagger;":"‡","Darr;":"↡","Dashv;":"⫤","Dcaron;":"Ď","Dcy;":"Д","Del;":"∇","Delta;":"Δ","Dfr;":"𝔇","DiacriticalAcute;":"´","DiacriticalDot;":"˙","DiacriticalDoubleAcute;":"˝","DiacriticalGrave;":"`","DiacriticalTilde;":"˜","Diamond;":"⋄","DifferentialD;":"ⅆ","Dopf;":"𝔻","Dot;":"¨","DotDot;":"⃜","DotEqual;":"≐","DoubleContourIntegral;":"∯","DoubleDot;":"¨","DoubleDownArrow;":"⇓","DoubleLeftArrow;":"⇐","DoubleLeftRightArrow;":"⇔","DoubleLeftTee;":"⫤","DoubleLongLeftArrow;":"⟸","DoubleLongLeftRightArrow;":"⟺","DoubleLongRightArrow;":"⟹","DoubleRightArrow;":"⇒","DoubleRightTee;":"⊨","DoubleUpArrow;":"⇑","DoubleUpDownArrow;":"⇕","DoubleVerticalBar;":"∥","DownArrow;":"↓","DownArrowBar;":"⤓","DownArrowUpArrow;":"⇵","DownBreve;":"̑","DownLeftRightVector;":"⥐","DownLeftTeeVector;":"⥞","DownLeftVector;":"↽","DownLeftVectorBar;":"⥖","DownRightTeeVector;":"⥟","DownRightVector;":"⇁","DownRightVectorBar;":"⥗","DownTee;":"⊤","DownTeeArrow;":"↧","Downarrow;":"⇓","Dscr;":"𝒟","Dstrok;":"Đ","ENG;":"Ŋ",ETH:"Ð","ETH;":"Ð",Eacute:"É","Eacute;":"É","Ecaron;":"Ě",Ecirc:"Ê","Ecirc;":"Ê","Ecy;":"Э","Edot;":"Ė","Efr;":"𝔈",Egrave:"È","Egrave;":"È","Element;":"∈","Emacr;":"Ē","EmptySmallSquare;":"◻","EmptyVerySmallSquare;":"▫","Eogon;":"Ę","Eopf;":"𝔼","Epsilon;":"Ε","Equal;":"⩵","EqualTilde;":"≂","Equilibrium;":"⇌","Escr;":"ℰ","Esim;":"⩳","Eta;":"Η",Euml:"Ë","Euml;":"Ë","Exists;":"∃","ExponentialE;":"ⅇ","Fcy;":"Ф","Ffr;":"𝔉","FilledSmallSquare;":"◼","FilledVerySmallSquare;":"▪","Fopf;":"𝔽","ForAll;":"∀","Fouriertrf;":"ℱ","Fscr;":"ℱ","GJcy;":"Ѓ",GT:">","GT;":">","Gamma;":"Γ","Gammad;":"Ϝ","Gbreve;":"Ğ","Gcedil;":"Ģ","Gcirc;":"Ĝ","Gcy;":"Г","Gdot;":"Ġ","Gfr;":"𝔊","Gg;":"⋙","Gopf;":"𝔾","GreaterEqual;":"≥","GreaterEqualLess;":"⋛","GreaterFullEqual;":"≧","GreaterGreater;":"⪢","GreaterLess;":"≷","GreaterSlantEqual;":"⩾","GreaterTilde;":"≳","Gscr;":"𝒢","Gt;":"≫","HARDcy;":"Ъ","Hacek;":"ˇ","Hat;":"^","Hcirc;":"Ĥ","Hfr;":"ℌ","HilbertSpace;":"ℋ","Hopf;":"ℍ","HorizontalLine;":"─","Hscr;":"ℋ","Hstrok;":"Ħ","HumpDownHump;":"≎","HumpEqual;":"≏","IEcy;":"Е","IJlig;":"IJ","IOcy;":"Ё",Iacute:"Í","Iacute;":"Í",Icirc:"Î","Icirc;":"Î","Icy;":"И","Idot;":"İ","Ifr;":"ℑ",Igrave:"Ì","Igrave;":"Ì","Im;":"ℑ","Imacr;":"Ī","ImaginaryI;":"ⅈ","Implies;":"⇒","Int;":"∬","Integral;":"∫","Intersection;":"⋂","InvisibleComma;":"⁣","InvisibleTimes;":"⁢","Iogon;":"Į","Iopf;":"𝕀","Iota;":"Ι","Iscr;":"ℐ","Itilde;":"Ĩ","Iukcy;":"І",Iuml:"Ï","Iuml;":"Ï","Jcirc;":"Ĵ","Jcy;":"Й","Jfr;":"𝔍","Jopf;":"𝕁","Jscr;":"𝒥","Jsercy;":"Ј","Jukcy;":"Є","KHcy;":"Х","KJcy;":"Ќ","Kappa;":"Κ","Kcedil;":"Ķ","Kcy;":"К","Kfr;":"𝔎","Kopf;":"𝕂","Kscr;":"𝒦","LJcy;":"Љ",LT:"<","LT;":"<","Lacute;":"Ĺ","Lambda;":"Λ","Lang;":"⟪","Laplacetrf;":"ℒ","Larr;":"↞","Lcaron;":"Ľ","Lcedil;":"Ļ","Lcy;":"Л","LeftAngleBracket;":"⟨","LeftArrow;":"←","LeftArrowBar;":"⇤","LeftArrowRightArrow;":"⇆","LeftCeiling;":"⌈","LeftDoubleBracket;":"⟦","LeftDownTeeVector;":"⥡","LeftDownVector;":"⇃","LeftDownVectorBar;":"⥙","LeftFloor;":"⌊","LeftRightArrow;":"↔","LeftRightVector;":"⥎","LeftTee;":"⊣","LeftTeeArrow;":"↤","LeftTeeVector;":"⥚","LeftTriangle;":"⊲","LeftTriangleBar;":"⧏","LeftTriangleEqual;":"⊴","LeftUpDownVector;":"⥑","LeftUpTeeVector;":"⥠","LeftUpVector;":"↿","LeftUpVectorBar;":"⥘","LeftVector;":"↼","LeftVectorBar;":"⥒","Leftarrow;":"⇐","Leftrightarrow;":"⇔","LessEqualGreater;":"⋚","LessFullEqual;":"≦","LessGreater;":"≶","LessLess;":"⪡","LessSlantEqual;":"⩽","LessTilde;":"≲","Lfr;":"𝔏","Ll;":"⋘","Lleftarrow;":"⇚","Lmidot;":"Ŀ","LongLeftArrow;":"⟵","LongLeftRightArrow;":"⟷","LongRightArrow;":"⟶","Longleftarrow;":"⟸","Longleftrightarrow;":"⟺","Longrightarrow;":"⟹","Lopf;":"𝕃","LowerLeftArrow;":"↙","LowerRightArrow;":"↘","Lscr;":"ℒ","Lsh;":"↰","Lstrok;":"Ł","Lt;":"≪","Map;":"⤅","Mcy;":"М","MediumSpace;":" ","Mellintrf;":"ℳ","Mfr;":"𝔐","MinusPlus;":"∓","Mopf;":"𝕄","Mscr;":"ℳ","Mu;":"Μ","NJcy;":"Њ","Nacute;":"Ń","Ncaron;":"Ň","Ncedil;":"Ņ","Ncy;":"Н","NegativeMediumSpace;":"​","NegativeThickSpace;":"​","NegativeThinSpace;":"​","NegativeVeryThinSpace;":"​","NestedGreaterGreater;":"≫","NestedLessLess;":"≪","NewLine;":`
11
+ `,"Nfr;":"𝔑","NoBreak;":"⁠","NonBreakingSpace;":" ","Nopf;":"ℕ","Not;":"⫬","NotCongruent;":"≢","NotCupCap;":"≭","NotDoubleVerticalBar;":"∦","NotElement;":"∉","NotEqual;":"≠","NotEqualTilde;":"≂̸","NotExists;":"∄","NotGreater;":"≯","NotGreaterEqual;":"≱","NotGreaterFullEqual;":"≧̸","NotGreaterGreater;":"≫̸","NotGreaterLess;":"≹","NotGreaterSlantEqual;":"⩾̸","NotGreaterTilde;":"≵","NotHumpDownHump;":"≎̸","NotHumpEqual;":"≏̸","NotLeftTriangle;":"⋪","NotLeftTriangleBar;":"⧏̸","NotLeftTriangleEqual;":"⋬","NotLess;":"≮","NotLessEqual;":"≰","NotLessGreater;":"≸","NotLessLess;":"≪̸","NotLessSlantEqual;":"⩽̸","NotLessTilde;":"≴","NotNestedGreaterGreater;":"⪢̸","NotNestedLessLess;":"⪡̸","NotPrecedes;":"⊀","NotPrecedesEqual;":"⪯̸","NotPrecedesSlantEqual;":"⋠","NotReverseElement;":"∌","NotRightTriangle;":"⋫","NotRightTriangleBar;":"⧐̸","NotRightTriangleEqual;":"⋭","NotSquareSubset;":"⊏̸","NotSquareSubsetEqual;":"⋢","NotSquareSuperset;":"⊐̸","NotSquareSupersetEqual;":"⋣","NotSubset;":"⊂⃒","NotSubsetEqual;":"⊈","NotSucceeds;":"⊁","NotSucceedsEqual;":"⪰̸","NotSucceedsSlantEqual;":"⋡","NotSucceedsTilde;":"≿̸","NotSuperset;":"⊃⃒","NotSupersetEqual;":"⊉","NotTilde;":"≁","NotTildeEqual;":"≄","NotTildeFullEqual;":"≇","NotTildeTilde;":"≉","NotVerticalBar;":"∤","Nscr;":"𝒩",Ntilde:"Ñ","Ntilde;":"Ñ","Nu;":"Ν","OElig;":"Œ",Oacute:"Ó","Oacute;":"Ó",Ocirc:"Ô","Ocirc;":"Ô","Ocy;":"О","Odblac;":"Ő","Ofr;":"𝔒",Ograve:"Ò","Ograve;":"Ò","Omacr;":"Ō","Omega;":"Ω","Omicron;":"Ο","Oopf;":"𝕆","OpenCurlyDoubleQuote;":"“","OpenCurlyQuote;":"‘","Or;":"⩔","Oscr;":"𝒪",Oslash:"Ø","Oslash;":"Ø",Otilde:"Õ","Otilde;":"Õ","Otimes;":"⨷",Ouml:"Ö","Ouml;":"Ö","OverBar;":"‾","OverBrace;":"⏞","OverBracket;":"⎴","OverParenthesis;":"⏜","PartialD;":"∂","Pcy;":"П","Pfr;":"𝔓","Phi;":"Φ","Pi;":"Π","PlusMinus;":"±","Poincareplane;":"ℌ","Popf;":"ℙ","Pr;":"⪻","Precedes;":"≺","PrecedesEqual;":"⪯","PrecedesSlantEqual;":"≼","PrecedesTilde;":"≾","Prime;":"″","Product;":"∏","Proportion;":"∷","Proportional;":"∝","Pscr;":"𝒫","Psi;":"Ψ",QUOT:'"',"QUOT;":'"',"Qfr;":"𝔔","Qopf;":"ℚ","Qscr;":"𝒬","RBarr;":"⤐",REG:"®","REG;":"®","Racute;":"Ŕ","Rang;":"⟫","Rarr;":"↠","Rarrtl;":"⤖","Rcaron;":"Ř","Rcedil;":"Ŗ","Rcy;":"Р","Re;":"ℜ","ReverseElement;":"∋","ReverseEquilibrium;":"⇋","ReverseUpEquilibrium;":"⥯","Rfr;":"ℜ","Rho;":"Ρ","RightAngleBracket;":"⟩","RightArrow;":"→","RightArrowBar;":"⇥","RightArrowLeftArrow;":"⇄","RightCeiling;":"⌉","RightDoubleBracket;":"⟧","RightDownTeeVector;":"⥝","RightDownVector;":"⇂","RightDownVectorBar;":"⥕","RightFloor;":"⌋","RightTee;":"⊢","RightTeeArrow;":"↦","RightTeeVector;":"⥛","RightTriangle;":"⊳","RightTriangleBar;":"⧐","RightTriangleEqual;":"⊵","RightUpDownVector;":"⥏","RightUpTeeVector;":"⥜","RightUpVector;":"↾","RightUpVectorBar;":"⥔","RightVector;":"⇀","RightVectorBar;":"⥓","Rightarrow;":"⇒","Ropf;":"ℝ","RoundImplies;":"⥰","Rrightarrow;":"⇛","Rscr;":"ℛ","Rsh;":"↱","RuleDelayed;":"⧴","SHCHcy;":"Щ","SHcy;":"Ш","SOFTcy;":"Ь","Sacute;":"Ś","Sc;":"⪼","Scaron;":"Š","Scedil;":"Ş","Scirc;":"Ŝ","Scy;":"С","Sfr;":"𝔖","ShortDownArrow;":"↓","ShortLeftArrow;":"←","ShortRightArrow;":"→","ShortUpArrow;":"↑","Sigma;":"Σ","SmallCircle;":"∘","Sopf;":"𝕊","Sqrt;":"√","Square;":"□","SquareIntersection;":"⊓","SquareSubset;":"⊏","SquareSubsetEqual;":"⊑","SquareSuperset;":"⊐","SquareSupersetEqual;":"⊒","SquareUnion;":"⊔","Sscr;":"𝒮","Star;":"⋆","Sub;":"⋐","Subset;":"⋐","SubsetEqual;":"⊆","Succeeds;":"≻","SucceedsEqual;":"⪰","SucceedsSlantEqual;":"≽","SucceedsTilde;":"≿","SuchThat;":"∋","Sum;":"∑","Sup;":"⋑","Superset;":"⊃","SupersetEqual;":"⊇","Supset;":"⋑",THORN:"Þ","THORN;":"Þ","TRADE;":"™","TSHcy;":"Ћ","TScy;":"Ц","Tab;":" ","Tau;":"Τ","Tcaron;":"Ť","Tcedil;":"Ţ","Tcy;":"Т","Tfr;":"𝔗","Therefore;":"∴","Theta;":"Θ","ThickSpace;":"  ","ThinSpace;":" ","Tilde;":"∼","TildeEqual;":"≃","TildeFullEqual;":"≅","TildeTilde;":"≈","Topf;":"𝕋","TripleDot;":"⃛","Tscr;":"𝒯","Tstrok;":"Ŧ",Uacute:"Ú","Uacute;":"Ú","Uarr;":"↟","Uarrocir;":"⥉","Ubrcy;":"Ў","Ubreve;":"Ŭ",Ucirc:"Û","Ucirc;":"Û","Ucy;":"У","Udblac;":"Ű","Ufr;":"𝔘",Ugrave:"Ù","Ugrave;":"Ù","Umacr;":"Ū","UnderBar;":"_","UnderBrace;":"⏟","UnderBracket;":"⎵","UnderParenthesis;":"⏝","Union;":"⋃","UnionPlus;":"⊎","Uogon;":"Ų","Uopf;":"𝕌","UpArrow;":"↑","UpArrowBar;":"⤒","UpArrowDownArrow;":"⇅","UpDownArrow;":"↕","UpEquilibrium;":"⥮","UpTee;":"⊥","UpTeeArrow;":"↥","Uparrow;":"⇑","Updownarrow;":"⇕","UpperLeftArrow;":"↖","UpperRightArrow;":"↗","Upsi;":"ϒ","Upsilon;":"Υ","Uring;":"Ů","Uscr;":"𝒰","Utilde;":"Ũ",Uuml:"Ü","Uuml;":"Ü","VDash;":"⊫","Vbar;":"⫫","Vcy;":"В","Vdash;":"⊩","Vdashl;":"⫦","Vee;":"⋁","Verbar;":"‖","Vert;":"‖","VerticalBar;":"∣","VerticalLine;":"|","VerticalSeparator;":"❘","VerticalTilde;":"≀","VeryThinSpace;":" ","Vfr;":"𝔙","Vopf;":"𝕍","Vscr;":"𝒱","Vvdash;":"⊪","Wcirc;":"Ŵ","Wedge;":"⋀","Wfr;":"𝔚","Wopf;":"𝕎","Wscr;":"𝒲","Xfr;":"𝔛","Xi;":"Ξ","Xopf;":"𝕏","Xscr;":"𝒳","YAcy;":"Я","YIcy;":"Ї","YUcy;":"Ю",Yacute:"Ý","Yacute;":"Ý","Ycirc;":"Ŷ","Ycy;":"Ы","Yfr;":"𝔜","Yopf;":"𝕐","Yscr;":"𝒴","Yuml;":"Ÿ","ZHcy;":"Ж","Zacute;":"Ź","Zcaron;":"Ž","Zcy;":"З","Zdot;":"Ż","ZeroWidthSpace;":"​","Zeta;":"Ζ","Zfr;":"ℨ","Zopf;":"ℤ","Zscr;":"𝒵",aacute:"á","aacute;":"á","abreve;":"ă","ac;":"∾","acE;":"∾̳","acd;":"∿",acirc:"â","acirc;":"â",acute:"´","acute;":"´","acy;":"а",aelig:"æ","aelig;":"æ","af;":"⁡","afr;":"𝔞",agrave:"à","agrave;":"à","alefsym;":"ℵ","aleph;":"ℵ","alpha;":"α","amacr;":"ā","amalg;":"⨿",amp:"&","amp;":"&","and;":"∧","andand;":"⩕","andd;":"⩜","andslope;":"⩘","andv;":"⩚","ang;":"∠","ange;":"⦤","angle;":"∠","angmsd;":"∡","angmsdaa;":"⦨","angmsdab;":"⦩","angmsdac;":"⦪","angmsdad;":"⦫","angmsdae;":"⦬","angmsdaf;":"⦭","angmsdag;":"⦮","angmsdah;":"⦯","angrt;":"∟","angrtvb;":"⊾","angrtvbd;":"⦝","angsph;":"∢","angst;":"Å","angzarr;":"⍼","aogon;":"ą","aopf;":"𝕒","ap;":"≈","apE;":"⩰","apacir;":"⩯","ape;":"≊","apid;":"≋","apos;":"'","approx;":"≈","approxeq;":"≊",aring:"å","aring;":"å","ascr;":"𝒶","ast;":"*","asymp;":"≈","asympeq;":"≍",atilde:"ã","atilde;":"ã",auml:"ä","auml;":"ä","awconint;":"∳","awint;":"⨑","bNot;":"⫭","backcong;":"≌","backepsilon;":"϶","backprime;":"‵","backsim;":"∽","backsimeq;":"⋍","barvee;":"⊽","barwed;":"⌅","barwedge;":"⌅","bbrk;":"⎵","bbrktbrk;":"⎶","bcong;":"≌","bcy;":"б","bdquo;":"„","becaus;":"∵","because;":"∵","bemptyv;":"⦰","bepsi;":"϶","bernou;":"ℬ","beta;":"β","beth;":"ℶ","between;":"≬","bfr;":"𝔟","bigcap;":"⋂","bigcirc;":"◯","bigcup;":"⋃","bigodot;":"⨀","bigoplus;":"⨁","bigotimes;":"⨂","bigsqcup;":"⨆","bigstar;":"★","bigtriangledown;":"▽","bigtriangleup;":"△","biguplus;":"⨄","bigvee;":"⋁","bigwedge;":"⋀","bkarow;":"⤍","blacklozenge;":"⧫","blacksquare;":"▪","blacktriangle;":"▴","blacktriangledown;":"▾","blacktriangleleft;":"◂","blacktriangleright;":"▸","blank;":"␣","blk12;":"▒","blk14;":"░","blk34;":"▓","block;":"█","bne;":"=⃥","bnequiv;":"≡⃥","bnot;":"⌐","bopf;":"𝕓","bot;":"⊥","bottom;":"⊥","bowtie;":"⋈","boxDL;":"╗","boxDR;":"╔","boxDl;":"╖","boxDr;":"╓","boxH;":"═","boxHD;":"╦","boxHU;":"╩","boxHd;":"╤","boxHu;":"╧","boxUL;":"╝","boxUR;":"╚","boxUl;":"╜","boxUr;":"╙","boxV;":"║","boxVH;":"╬","boxVL;":"╣","boxVR;":"╠","boxVh;":"╫","boxVl;":"╢","boxVr;":"╟","boxbox;":"⧉","boxdL;":"╕","boxdR;":"╒","boxdl;":"┐","boxdr;":"┌","boxh;":"─","boxhD;":"╥","boxhU;":"╨","boxhd;":"┬","boxhu;":"┴","boxminus;":"⊟","boxplus;":"⊞","boxtimes;":"⊠","boxuL;":"╛","boxuR;":"╘","boxul;":"┘","boxur;":"└","boxv;":"│","boxvH;":"╪","boxvL;":"╡","boxvR;":"╞","boxvh;":"┼","boxvl;":"┤","boxvr;":"├","bprime;":"‵","breve;":"˘",brvbar:"¦","brvbar;":"¦","bscr;":"𝒷","bsemi;":"⁏","bsim;":"∽","bsime;":"⋍","bsol;":"\\","bsolb;":"⧅","bsolhsub;":"⟈","bull;":"•","bullet;":"•","bump;":"≎","bumpE;":"⪮","bumpe;":"≏","bumpeq;":"≏","cacute;":"ć","cap;":"∩","capand;":"⩄","capbrcup;":"⩉","capcap;":"⩋","capcup;":"⩇","capdot;":"⩀","caps;":"∩︀","caret;":"⁁","caron;":"ˇ","ccaps;":"⩍","ccaron;":"č",ccedil:"ç","ccedil;":"ç","ccirc;":"ĉ","ccups;":"⩌","ccupssm;":"⩐","cdot;":"ċ",cedil:"¸","cedil;":"¸","cemptyv;":"⦲",cent:"¢","cent;":"¢","centerdot;":"·","cfr;":"𝔠","chcy;":"ч","check;":"✓","checkmark;":"✓","chi;":"χ","cir;":"○","cirE;":"⧃","circ;":"ˆ","circeq;":"≗","circlearrowleft;":"↺","circlearrowright;":"↻","circledR;":"®","circledS;":"Ⓢ","circledast;":"⊛","circledcirc;":"⊚","circleddash;":"⊝","cire;":"≗","cirfnint;":"⨐","cirmid;":"⫯","cirscir;":"⧂","clubs;":"♣","clubsuit;":"♣","colon;":":","colone;":"≔","coloneq;":"≔","comma;":",","commat;":"@","comp;":"∁","compfn;":"∘","complement;":"∁","complexes;":"ℂ","cong;":"≅","congdot;":"⩭","conint;":"∮","copf;":"𝕔","coprod;":"∐",copy:"©","copy;":"©","copysr;":"℗","crarr;":"↵","cross;":"✗","cscr;":"𝒸","csub;":"⫏","csube;":"⫑","csup;":"⫐","csupe;":"⫒","ctdot;":"⋯","cudarrl;":"⤸","cudarrr;":"⤵","cuepr;":"⋞","cuesc;":"⋟","cularr;":"↶","cularrp;":"⤽","cup;":"∪","cupbrcap;":"⩈","cupcap;":"⩆","cupcup;":"⩊","cupdot;":"⊍","cupor;":"⩅","cups;":"∪︀","curarr;":"↷","curarrm;":"⤼","curlyeqprec;":"⋞","curlyeqsucc;":"⋟","curlyvee;":"⋎","curlywedge;":"⋏",curren:"¤","curren;":"¤","curvearrowleft;":"↶","curvearrowright;":"↷","cuvee;":"⋎","cuwed;":"⋏","cwconint;":"∲","cwint;":"∱","cylcty;":"⌭","dArr;":"⇓","dHar;":"⥥","dagger;":"†","daleth;":"ℸ","darr;":"↓","dash;":"‐","dashv;":"⊣","dbkarow;":"⤏","dblac;":"˝","dcaron;":"ď","dcy;":"д","dd;":"ⅆ","ddagger;":"‡","ddarr;":"⇊","ddotseq;":"⩷",deg:"°","deg;":"°","delta;":"δ","demptyv;":"⦱","dfisht;":"⥿","dfr;":"𝔡","dharl;":"⇃","dharr;":"⇂","diam;":"⋄","diamond;":"⋄","diamondsuit;":"♦","diams;":"♦","die;":"¨","digamma;":"ϝ","disin;":"⋲","div;":"÷",divide:"÷","divide;":"÷","divideontimes;":"⋇","divonx;":"⋇","djcy;":"ђ","dlcorn;":"⌞","dlcrop;":"⌍","dollar;":"$","dopf;":"𝕕","dot;":"˙","doteq;":"≐","doteqdot;":"≑","dotminus;":"∸","dotplus;":"∔","dotsquare;":"⊡","doublebarwedge;":"⌆","downarrow;":"↓","downdownarrows;":"⇊","downharpoonleft;":"⇃","downharpoonright;":"⇂","drbkarow;":"⤐","drcorn;":"⌟","drcrop;":"⌌","dscr;":"𝒹","dscy;":"ѕ","dsol;":"⧶","dstrok;":"đ","dtdot;":"⋱","dtri;":"▿","dtrif;":"▾","duarr;":"⇵","duhar;":"⥯","dwangle;":"⦦","dzcy;":"џ","dzigrarr;":"⟿","eDDot;":"⩷","eDot;":"≑",eacute:"é","eacute;":"é","easter;":"⩮","ecaron;":"ě","ecir;":"≖",ecirc:"ê","ecirc;":"ê","ecolon;":"≕","ecy;":"э","edot;":"ė","ee;":"ⅇ","efDot;":"≒","efr;":"𝔢","eg;":"⪚",egrave:"è","egrave;":"è","egs;":"⪖","egsdot;":"⪘","el;":"⪙","elinters;":"⏧","ell;":"ℓ","els;":"⪕","elsdot;":"⪗","emacr;":"ē","empty;":"∅","emptyset;":"∅","emptyv;":"∅","emsp13;":" ","emsp14;":" ","emsp;":" ","eng;":"ŋ","ensp;":" ","eogon;":"ę","eopf;":"𝕖","epar;":"⋕","eparsl;":"⧣","eplus;":"⩱","epsi;":"ε","epsilon;":"ε","epsiv;":"ϵ","eqcirc;":"≖","eqcolon;":"≕","eqsim;":"≂","eqslantgtr;":"⪖","eqslantless;":"⪕","equals;":"=","equest;":"≟","equiv;":"≡","equivDD;":"⩸","eqvparsl;":"⧥","erDot;":"≓","erarr;":"⥱","escr;":"ℯ","esdot;":"≐","esim;":"≂","eta;":"η",eth:"ð","eth;":"ð",euml:"ë","euml;":"ë","euro;":"€","excl;":"!","exist;":"∃","expectation;":"ℰ","exponentiale;":"ⅇ","fallingdotseq;":"≒","fcy;":"ф","female;":"♀","ffilig;":"ffi","fflig;":"ff","ffllig;":"ffl","ffr;":"𝔣","filig;":"fi","fjlig;":"fj","flat;":"♭","fllig;":"fl","fltns;":"▱","fnof;":"ƒ","fopf;":"𝕗","forall;":"∀","fork;":"⋔","forkv;":"⫙","fpartint;":"⨍",frac12:"½","frac12;":"½","frac13;":"⅓",frac14:"¼","frac14;":"¼","frac15;":"⅕","frac16;":"⅙","frac18;":"⅛","frac23;":"⅔","frac25;":"⅖",frac34:"¾","frac34;":"¾","frac35;":"⅗","frac38;":"⅜","frac45;":"⅘","frac56;":"⅚","frac58;":"⅝","frac78;":"⅞","frasl;":"⁄","frown;":"⌢","fscr;":"𝒻","gE;":"≧","gEl;":"⪌","gacute;":"ǵ","gamma;":"γ","gammad;":"ϝ","gap;":"⪆","gbreve;":"ğ","gcirc;":"ĝ","gcy;":"г","gdot;":"ġ","ge;":"≥","gel;":"⋛","geq;":"≥","geqq;":"≧","geqslant;":"⩾","ges;":"⩾","gescc;":"⪩","gesdot;":"⪀","gesdoto;":"⪂","gesdotol;":"⪄","gesl;":"⋛︀","gesles;":"⪔","gfr;":"𝔤","gg;":"≫","ggg;":"⋙","gimel;":"ℷ","gjcy;":"ѓ","gl;":"≷","glE;":"⪒","gla;":"⪥","glj;":"⪤","gnE;":"≩","gnap;":"⪊","gnapprox;":"⪊","gne;":"⪈","gneq;":"⪈","gneqq;":"≩","gnsim;":"⋧","gopf;":"𝕘","grave;":"`","gscr;":"ℊ","gsim;":"≳","gsime;":"⪎","gsiml;":"⪐",gt:">","gt;":">","gtcc;":"⪧","gtcir;":"⩺","gtdot;":"⋗","gtlPar;":"⦕","gtquest;":"⩼","gtrapprox;":"⪆","gtrarr;":"⥸","gtrdot;":"⋗","gtreqless;":"⋛","gtreqqless;":"⪌","gtrless;":"≷","gtrsim;":"≳","gvertneqq;":"≩︀","gvnE;":"≩︀","hArr;":"⇔","hairsp;":" ","half;":"½","hamilt;":"ℋ","hardcy;":"ъ","harr;":"↔","harrcir;":"⥈","harrw;":"↭","hbar;":"ℏ","hcirc;":"ĥ","hearts;":"♥","heartsuit;":"♥","hellip;":"…","hercon;":"⊹","hfr;":"𝔥","hksearow;":"⤥","hkswarow;":"⤦","hoarr;":"⇿","homtht;":"∻","hookleftarrow;":"↩","hookrightarrow;":"↪","hopf;":"𝕙","horbar;":"―","hscr;":"𝒽","hslash;":"ℏ","hstrok;":"ħ","hybull;":"⁃","hyphen;":"‐",iacute:"í","iacute;":"í","ic;":"⁣",icirc:"î","icirc;":"î","icy;":"и","iecy;":"е",iexcl:"¡","iexcl;":"¡","iff;":"⇔","ifr;":"𝔦",igrave:"ì","igrave;":"ì","ii;":"ⅈ","iiiint;":"⨌","iiint;":"∭","iinfin;":"⧜","iiota;":"℩","ijlig;":"ij","imacr;":"ī","image;":"ℑ","imagline;":"ℐ","imagpart;":"ℑ","imath;":"ı","imof;":"⊷","imped;":"Ƶ","in;":"∈","incare;":"℅","infin;":"∞","infintie;":"⧝","inodot;":"ı","int;":"∫","intcal;":"⊺","integers;":"ℤ","intercal;":"⊺","intlarhk;":"⨗","intprod;":"⨼","iocy;":"ё","iogon;":"į","iopf;":"𝕚","iota;":"ι","iprod;":"⨼",iquest:"¿","iquest;":"¿","iscr;":"𝒾","isin;":"∈","isinE;":"⋹","isindot;":"⋵","isins;":"⋴","isinsv;":"⋳","isinv;":"∈","it;":"⁢","itilde;":"ĩ","iukcy;":"і",iuml:"ï","iuml;":"ï","jcirc;":"ĵ","jcy;":"й","jfr;":"𝔧","jmath;":"ȷ","jopf;":"𝕛","jscr;":"𝒿","jsercy;":"ј","jukcy;":"є","kappa;":"κ","kappav;":"ϰ","kcedil;":"ķ","kcy;":"к","kfr;":"𝔨","kgreen;":"ĸ","khcy;":"х","kjcy;":"ќ","kopf;":"𝕜","kscr;":"𝓀","lAarr;":"⇚","lArr;":"⇐","lAtail;":"⤛","lBarr;":"⤎","lE;":"≦","lEg;":"⪋","lHar;":"⥢","lacute;":"ĺ","laemptyv;":"⦴","lagran;":"ℒ","lambda;":"λ","lang;":"⟨","langd;":"⦑","langle;":"⟨","lap;":"⪅",laquo:"«","laquo;":"«","larr;":"←","larrb;":"⇤","larrbfs;":"⤟","larrfs;":"⤝","larrhk;":"↩","larrlp;":"↫","larrpl;":"⤹","larrsim;":"⥳","larrtl;":"↢","lat;":"⪫","latail;":"⤙","late;":"⪭","lates;":"⪭︀","lbarr;":"⤌","lbbrk;":"❲","lbrace;":"{","lbrack;":"[","lbrke;":"⦋","lbrksld;":"⦏","lbrkslu;":"⦍","lcaron;":"ľ","lcedil;":"ļ","lceil;":"⌈","lcub;":"{","lcy;":"л","ldca;":"⤶","ldquo;":"“","ldquor;":"„","ldrdhar;":"⥧","ldrushar;":"⥋","ldsh;":"↲","le;":"≤","leftarrow;":"←","leftarrowtail;":"↢","leftharpoondown;":"↽","leftharpoonup;":"↼","leftleftarrows;":"⇇","leftrightarrow;":"↔","leftrightarrows;":"⇆","leftrightharpoons;":"⇋","leftrightsquigarrow;":"↭","leftthreetimes;":"⋋","leg;":"⋚","leq;":"≤","leqq;":"≦","leqslant;":"⩽","les;":"⩽","lescc;":"⪨","lesdot;":"⩿","lesdoto;":"⪁","lesdotor;":"⪃","lesg;":"⋚︀","lesges;":"⪓","lessapprox;":"⪅","lessdot;":"⋖","lesseqgtr;":"⋚","lesseqqgtr;":"⪋","lessgtr;":"≶","lesssim;":"≲","lfisht;":"⥼","lfloor;":"⌊","lfr;":"𝔩","lg;":"≶","lgE;":"⪑","lhard;":"↽","lharu;":"↼","lharul;":"⥪","lhblk;":"▄","ljcy;":"љ","ll;":"≪","llarr;":"⇇","llcorner;":"⌞","llhard;":"⥫","lltri;":"◺","lmidot;":"ŀ","lmoust;":"⎰","lmoustache;":"⎰","lnE;":"≨","lnap;":"⪉","lnapprox;":"⪉","lne;":"⪇","lneq;":"⪇","lneqq;":"≨","lnsim;":"⋦","loang;":"⟬","loarr;":"⇽","lobrk;":"⟦","longleftarrow;":"⟵","longleftrightarrow;":"⟷","longmapsto;":"⟼","longrightarrow;":"⟶","looparrowleft;":"↫","looparrowright;":"↬","lopar;":"⦅","lopf;":"𝕝","loplus;":"⨭","lotimes;":"⨴","lowast;":"∗","lowbar;":"_","loz;":"◊","lozenge;":"◊","lozf;":"⧫","lpar;":"(","lparlt;":"⦓","lrarr;":"⇆","lrcorner;":"⌟","lrhar;":"⇋","lrhard;":"⥭","lrm;":"‎","lrtri;":"⊿","lsaquo;":"‹","lscr;":"𝓁","lsh;":"↰","lsim;":"≲","lsime;":"⪍","lsimg;":"⪏","lsqb;":"[","lsquo;":"‘","lsquor;":"‚","lstrok;":"ł",lt:"<","lt;":"<","ltcc;":"⪦","ltcir;":"⩹","ltdot;":"⋖","lthree;":"⋋","ltimes;":"⋉","ltlarr;":"⥶","ltquest;":"⩻","ltrPar;":"⦖","ltri;":"◃","ltrie;":"⊴","ltrif;":"◂","lurdshar;":"⥊","luruhar;":"⥦","lvertneqq;":"≨︀","lvnE;":"≨︀","mDDot;":"∺",macr:"¯","macr;":"¯","male;":"♂","malt;":"✠","maltese;":"✠","map;":"↦","mapsto;":"↦","mapstodown;":"↧","mapstoleft;":"↤","mapstoup;":"↥","marker;":"▮","mcomma;":"⨩","mcy;":"м","mdash;":"—","measuredangle;":"∡","mfr;":"𝔪","mho;":"℧",micro:"µ","micro;":"µ","mid;":"∣","midast;":"*","midcir;":"⫰",middot:"·","middot;":"·","minus;":"−","minusb;":"⊟","minusd;":"∸","minusdu;":"⨪","mlcp;":"⫛","mldr;":"…","mnplus;":"∓","models;":"⊧","mopf;":"𝕞","mp;":"∓","mscr;":"𝓂","mstpos;":"∾","mu;":"μ","multimap;":"⊸","mumap;":"⊸","nGg;":"⋙̸","nGt;":"≫⃒","nGtv;":"≫̸","nLeftarrow;":"⇍","nLeftrightarrow;":"⇎","nLl;":"⋘̸","nLt;":"≪⃒","nLtv;":"≪̸","nRightarrow;":"⇏","nVDash;":"⊯","nVdash;":"⊮","nabla;":"∇","nacute;":"ń","nang;":"∠⃒","nap;":"≉","napE;":"⩰̸","napid;":"≋̸","napos;":"ʼn","napprox;":"≉","natur;":"♮","natural;":"♮","naturals;":"ℕ",nbsp:" ","nbsp;":" ","nbump;":"≎̸","nbumpe;":"≏̸","ncap;":"⩃","ncaron;":"ň","ncedil;":"ņ","ncong;":"≇","ncongdot;":"⩭̸","ncup;":"⩂","ncy;":"н","ndash;":"–","ne;":"≠","neArr;":"⇗","nearhk;":"⤤","nearr;":"↗","nearrow;":"↗","nedot;":"≐̸","nequiv;":"≢","nesear;":"⤨","nesim;":"≂̸","nexist;":"∄","nexists;":"∄","nfr;":"𝔫","ngE;":"≧̸","nge;":"≱","ngeq;":"≱","ngeqq;":"≧̸","ngeqslant;":"⩾̸","nges;":"⩾̸","ngsim;":"≵","ngt;":"≯","ngtr;":"≯","nhArr;":"⇎","nharr;":"↮","nhpar;":"⫲","ni;":"∋","nis;":"⋼","nisd;":"⋺","niv;":"∋","njcy;":"њ","nlArr;":"⇍","nlE;":"≦̸","nlarr;":"↚","nldr;":"‥","nle;":"≰","nleftarrow;":"↚","nleftrightarrow;":"↮","nleq;":"≰","nleqq;":"≦̸","nleqslant;":"⩽̸","nles;":"⩽̸","nless;":"≮","nlsim;":"≴","nlt;":"≮","nltri;":"⋪","nltrie;":"⋬","nmid;":"∤","nopf;":"𝕟",not:"¬","not;":"¬","notin;":"∉","notinE;":"⋹̸","notindot;":"⋵̸","notinva;":"∉","notinvb;":"⋷","notinvc;":"⋶","notni;":"∌","notniva;":"∌","notnivb;":"⋾","notnivc;":"⋽","npar;":"∦","nparallel;":"∦","nparsl;":"⫽⃥","npart;":"∂̸","npolint;":"⨔","npr;":"⊀","nprcue;":"⋠","npre;":"⪯̸","nprec;":"⊀","npreceq;":"⪯̸","nrArr;":"⇏","nrarr;":"↛","nrarrc;":"⤳̸","nrarrw;":"↝̸","nrightarrow;":"↛","nrtri;":"⋫","nrtrie;":"⋭","nsc;":"⊁","nsccue;":"⋡","nsce;":"⪰̸","nscr;":"𝓃","nshortmid;":"∤","nshortparallel;":"∦","nsim;":"≁","nsime;":"≄","nsimeq;":"≄","nsmid;":"∤","nspar;":"∦","nsqsube;":"⋢","nsqsupe;":"⋣","nsub;":"⊄","nsubE;":"⫅̸","nsube;":"⊈","nsubset;":"⊂⃒","nsubseteq;":"⊈","nsubseteqq;":"⫅̸","nsucc;":"⊁","nsucceq;":"⪰̸","nsup;":"⊅","nsupE;":"⫆̸","nsupe;":"⊉","nsupset;":"⊃⃒","nsupseteq;":"⊉","nsupseteqq;":"⫆̸","ntgl;":"≹",ntilde:"ñ","ntilde;":"ñ","ntlg;":"≸","ntriangleleft;":"⋪","ntrianglelefteq;":"⋬","ntriangleright;":"⋫","ntrianglerighteq;":"⋭","nu;":"ν","num;":"#","numero;":"№","numsp;":" ","nvDash;":"⊭","nvHarr;":"⤄","nvap;":"≍⃒","nvdash;":"⊬","nvge;":"≥⃒","nvgt;":">⃒","nvinfin;":"⧞","nvlArr;":"⤂","nvle;":"≤⃒","nvlt;":"<⃒","nvltrie;":"⊴⃒","nvrArr;":"⤃","nvrtrie;":"⊵⃒","nvsim;":"∼⃒","nwArr;":"⇖","nwarhk;":"⤣","nwarr;":"↖","nwarrow;":"↖","nwnear;":"⤧","oS;":"Ⓢ",oacute:"ó","oacute;":"ó","oast;":"⊛","ocir;":"⊚",ocirc:"ô","ocirc;":"ô","ocy;":"о","odash;":"⊝","odblac;":"ő","odiv;":"⨸","odot;":"⊙","odsold;":"⦼","oelig;":"œ","ofcir;":"⦿","ofr;":"𝔬","ogon;":"˛",ograve:"ò","ograve;":"ò","ogt;":"⧁","ohbar;":"⦵","ohm;":"Ω","oint;":"∮","olarr;":"↺","olcir;":"⦾","olcross;":"⦻","oline;":"‾","olt;":"⧀","omacr;":"ō","omega;":"ω","omicron;":"ο","omid;":"⦶","ominus;":"⊖","oopf;":"𝕠","opar;":"⦷","operp;":"⦹","oplus;":"⊕","or;":"∨","orarr;":"↻","ord;":"⩝","order;":"ℴ","orderof;":"ℴ",ordf:"ª","ordf;":"ª",ordm:"º","ordm;":"º","origof;":"⊶","oror;":"⩖","orslope;":"⩗","orv;":"⩛","oscr;":"ℴ",oslash:"ø","oslash;":"ø","osol;":"⊘",otilde:"õ","otilde;":"õ","otimes;":"⊗","otimesas;":"⨶",ouml:"ö","ouml;":"ö","ovbar;":"⌽","par;":"∥",para:"¶","para;":"¶","parallel;":"∥","parsim;":"⫳","parsl;":"⫽","part;":"∂","pcy;":"п","percnt;":"%","period;":".","permil;":"‰","perp;":"⊥","pertenk;":"‱","pfr;":"𝔭","phi;":"φ","phiv;":"ϕ","phmmat;":"ℳ","phone;":"☎","pi;":"π","pitchfork;":"⋔","piv;":"ϖ","planck;":"ℏ","planckh;":"ℎ","plankv;":"ℏ","plus;":"+","plusacir;":"⨣","plusb;":"⊞","pluscir;":"⨢","plusdo;":"∔","plusdu;":"⨥","pluse;":"⩲",plusmn:"±","plusmn;":"±","plussim;":"⨦","plustwo;":"⨧","pm;":"±","pointint;":"⨕","popf;":"𝕡",pound:"£","pound;":"£","pr;":"≺","prE;":"⪳","prap;":"⪷","prcue;":"≼","pre;":"⪯","prec;":"≺","precapprox;":"⪷","preccurlyeq;":"≼","preceq;":"⪯","precnapprox;":"⪹","precneqq;":"⪵","precnsim;":"⋨","precsim;":"≾","prime;":"′","primes;":"ℙ","prnE;":"⪵","prnap;":"⪹","prnsim;":"⋨","prod;":"∏","profalar;":"⌮","profline;":"⌒","profsurf;":"⌓","prop;":"∝","propto;":"∝","prsim;":"≾","prurel;":"⊰","pscr;":"𝓅","psi;":"ψ","puncsp;":" ","qfr;":"𝔮","qint;":"⨌","qopf;":"𝕢","qprime;":"⁗","qscr;":"𝓆","quaternions;":"ℍ","quatint;":"⨖","quest;":"?","questeq;":"≟",quot:'"',"quot;":'"',"rAarr;":"⇛","rArr;":"⇒","rAtail;":"⤜","rBarr;":"⤏","rHar;":"⥤","race;":"∽̱","racute;":"ŕ","radic;":"√","raemptyv;":"⦳","rang;":"⟩","rangd;":"⦒","range;":"⦥","rangle;":"⟩",raquo:"»","raquo;":"»","rarr;":"→","rarrap;":"⥵","rarrb;":"⇥","rarrbfs;":"⤠","rarrc;":"⤳","rarrfs;":"⤞","rarrhk;":"↪","rarrlp;":"↬","rarrpl;":"⥅","rarrsim;":"⥴","rarrtl;":"↣","rarrw;":"↝","ratail;":"⤚","ratio;":"∶","rationals;":"ℚ","rbarr;":"⤍","rbbrk;":"❳","rbrace;":"}","rbrack;":"]","rbrke;":"⦌","rbrksld;":"⦎","rbrkslu;":"⦐","rcaron;":"ř","rcedil;":"ŗ","rceil;":"⌉","rcub;":"}","rcy;":"р","rdca;":"⤷","rdldhar;":"⥩","rdquo;":"”","rdquor;":"”","rdsh;":"↳","real;":"ℜ","realine;":"ℛ","realpart;":"ℜ","reals;":"ℝ","rect;":"▭",reg:"®","reg;":"®","rfisht;":"⥽","rfloor;":"⌋","rfr;":"𝔯","rhard;":"⇁","rharu;":"⇀","rharul;":"⥬","rho;":"ρ","rhov;":"ϱ","rightarrow;":"→","rightarrowtail;":"↣","rightharpoondown;":"⇁","rightharpoonup;":"⇀","rightleftarrows;":"⇄","rightleftharpoons;":"⇌","rightrightarrows;":"⇉","rightsquigarrow;":"↝","rightthreetimes;":"⋌","ring;":"˚","risingdotseq;":"≓","rlarr;":"⇄","rlhar;":"⇌","rlm;":"‏","rmoust;":"⎱","rmoustache;":"⎱","rnmid;":"⫮","roang;":"⟭","roarr;":"⇾","robrk;":"⟧","ropar;":"⦆","ropf;":"𝕣","roplus;":"⨮","rotimes;":"⨵","rpar;":")","rpargt;":"⦔","rppolint;":"⨒","rrarr;":"⇉","rsaquo;":"›","rscr;":"𝓇","rsh;":"↱","rsqb;":"]","rsquo;":"’","rsquor;":"’","rthree;":"⋌","rtimes;":"⋊","rtri;":"▹","rtrie;":"⊵","rtrif;":"▸","rtriltri;":"⧎","ruluhar;":"⥨","rx;":"℞","sacute;":"ś","sbquo;":"‚","sc;":"≻","scE;":"⪴","scap;":"⪸","scaron;":"š","sccue;":"≽","sce;":"⪰","scedil;":"ş","scirc;":"ŝ","scnE;":"⪶","scnap;":"⪺","scnsim;":"⋩","scpolint;":"⨓","scsim;":"≿","scy;":"с","sdot;":"⋅","sdotb;":"⊡","sdote;":"⩦","seArr;":"⇘","searhk;":"⤥","searr;":"↘","searrow;":"↘",sect:"§","sect;":"§","semi;":";","seswar;":"⤩","setminus;":"∖","setmn;":"∖","sext;":"✶","sfr;":"𝔰","sfrown;":"⌢","sharp;":"♯","shchcy;":"щ","shcy;":"ш","shortmid;":"∣","shortparallel;":"∥",shy:"­","shy;":"­","sigma;":"σ","sigmaf;":"ς","sigmav;":"ς","sim;":"∼","simdot;":"⩪","sime;":"≃","simeq;":"≃","simg;":"⪞","simgE;":"⪠","siml;":"⪝","simlE;":"⪟","simne;":"≆","simplus;":"⨤","simrarr;":"⥲","slarr;":"←","smallsetminus;":"∖","smashp;":"⨳","smeparsl;":"⧤","smid;":"∣","smile;":"⌣","smt;":"⪪","smte;":"⪬","smtes;":"⪬︀","softcy;":"ь","sol;":"/","solb;":"⧄","solbar;":"⌿","sopf;":"𝕤","spades;":"♠","spadesuit;":"♠","spar;":"∥","sqcap;":"⊓","sqcaps;":"⊓︀","sqcup;":"⊔","sqcups;":"⊔︀","sqsub;":"⊏","sqsube;":"⊑","sqsubset;":"⊏","sqsubseteq;":"⊑","sqsup;":"⊐","sqsupe;":"⊒","sqsupset;":"⊐","sqsupseteq;":"⊒","squ;":"□","square;":"□","squarf;":"▪","squf;":"▪","srarr;":"→","sscr;":"𝓈","ssetmn;":"∖","ssmile;":"⌣","sstarf;":"⋆","star;":"☆","starf;":"★","straightepsilon;":"ϵ","straightphi;":"ϕ","strns;":"¯","sub;":"⊂","subE;":"⫅","subdot;":"⪽","sube;":"⊆","subedot;":"⫃","submult;":"⫁","subnE;":"⫋","subne;":"⊊","subplus;":"⪿","subrarr;":"⥹","subset;":"⊂","subseteq;":"⊆","subseteqq;":"⫅","subsetneq;":"⊊","subsetneqq;":"⫋","subsim;":"⫇","subsub;":"⫕","subsup;":"⫓","succ;":"≻","succapprox;":"⪸","succcurlyeq;":"≽","succeq;":"⪰","succnapprox;":"⪺","succneqq;":"⪶","succnsim;":"⋩","succsim;":"≿","sum;":"∑","sung;":"♪",sup1:"¹","sup1;":"¹",sup2:"²","sup2;":"²",sup3:"³","sup3;":"³","sup;":"⊃","supE;":"⫆","supdot;":"⪾","supdsub;":"⫘","supe;":"⊇","supedot;":"⫄","suphsol;":"⟉","suphsub;":"⫗","suplarr;":"⥻","supmult;":"⫂","supnE;":"⫌","supne;":"⊋","supplus;":"⫀","supset;":"⊃","supseteq;":"⊇","supseteqq;":"⫆","supsetneq;":"⊋","supsetneqq;":"⫌","supsim;":"⫈","supsub;":"⫔","supsup;":"⫖","swArr;":"⇙","swarhk;":"⤦","swarr;":"↙","swarrow;":"↙","swnwar;":"⤪",szlig:"ß","szlig;":"ß","target;":"⌖","tau;":"τ","tbrk;":"⎴","tcaron;":"ť","tcedil;":"ţ","tcy;":"т","tdot;":"⃛","telrec;":"⌕","tfr;":"𝔱","there4;":"∴","therefore;":"∴","theta;":"θ","thetasym;":"ϑ","thetav;":"ϑ","thickapprox;":"≈","thicksim;":"∼","thinsp;":" ","thkap;":"≈","thksim;":"∼",thorn:"þ","thorn;":"þ","tilde;":"˜",times:"×","times;":"×","timesb;":"⊠","timesbar;":"⨱","timesd;":"⨰","tint;":"∭","toea;":"⤨","top;":"⊤","topbot;":"⌶","topcir;":"⫱","topf;":"𝕥","topfork;":"⫚","tosa;":"⤩","tprime;":"‴","trade;":"™","triangle;":"▵","triangledown;":"▿","triangleleft;":"◃","trianglelefteq;":"⊴","triangleq;":"≜","triangleright;":"▹","trianglerighteq;":"⊵","tridot;":"◬","trie;":"≜","triminus;":"⨺","triplus;":"⨹","trisb;":"⧍","tritime;":"⨻","trpezium;":"⏢","tscr;":"𝓉","tscy;":"ц","tshcy;":"ћ","tstrok;":"ŧ","twixt;":"≬","twoheadleftarrow;":"↞","twoheadrightarrow;":"↠","uArr;":"⇑","uHar;":"⥣",uacute:"ú","uacute;":"ú","uarr;":"↑","ubrcy;":"ў","ubreve;":"ŭ",ucirc:"û","ucirc;":"û","ucy;":"у","udarr;":"⇅","udblac;":"ű","udhar;":"⥮","ufisht;":"⥾","ufr;":"𝔲",ugrave:"ù","ugrave;":"ù","uharl;":"↿","uharr;":"↾","uhblk;":"▀","ulcorn;":"⌜","ulcorner;":"⌜","ulcrop;":"⌏","ultri;":"◸","umacr;":"ū",uml:"¨","uml;":"¨","uogon;":"ų","uopf;":"𝕦","uparrow;":"↑","updownarrow;":"↕","upharpoonleft;":"↿","upharpoonright;":"↾","uplus;":"⊎","upsi;":"υ","upsih;":"ϒ","upsilon;":"υ","upuparrows;":"⇈","urcorn;":"⌝","urcorner;":"⌝","urcrop;":"⌎","uring;":"ů","urtri;":"◹","uscr;":"𝓊","utdot;":"⋰","utilde;":"ũ","utri;":"▵","utrif;":"▴","uuarr;":"⇈",uuml:"ü","uuml;":"ü","uwangle;":"⦧","vArr;":"⇕","vBar;":"⫨","vBarv;":"⫩","vDash;":"⊨","vangrt;":"⦜","varepsilon;":"ϵ","varkappa;":"ϰ","varnothing;":"∅","varphi;":"ϕ","varpi;":"ϖ","varpropto;":"∝","varr;":"↕","varrho;":"ϱ","varsigma;":"ς","varsubsetneq;":"⊊︀","varsubsetneqq;":"⫋︀","varsupsetneq;":"⊋︀","varsupsetneqq;":"⫌︀","vartheta;":"ϑ","vartriangleleft;":"⊲","vartriangleright;":"⊳","vcy;":"в","vdash;":"⊢","vee;":"∨","veebar;":"⊻","veeeq;":"≚","vellip;":"⋮","verbar;":"|","vert;":"|","vfr;":"𝔳","vltri;":"⊲","vnsub;":"⊂⃒","vnsup;":"⊃⃒","vopf;":"𝕧","vprop;":"∝","vrtri;":"⊳","vscr;":"𝓋","vsubnE;":"⫋︀","vsubne;":"⊊︀","vsupnE;":"⫌︀","vsupne;":"⊋︀","vzigzag;":"⦚","wcirc;":"ŵ","wedbar;":"⩟","wedge;":"∧","wedgeq;":"≙","weierp;":"℘","wfr;":"𝔴","wopf;":"𝕨","wp;":"℘","wr;":"≀","wreath;":"≀","wscr;":"𝓌","xcap;":"⋂","xcirc;":"◯","xcup;":"⋃","xdtri;":"▽","xfr;":"𝔵","xhArr;":"⟺","xharr;":"⟷","xi;":"ξ","xlArr;":"⟸","xlarr;":"⟵","xmap;":"⟼","xnis;":"⋻","xodot;":"⨀","xopf;":"𝕩","xoplus;":"⨁","xotime;":"⨂","xrArr;":"⟹","xrarr;":"⟶","xscr;":"𝓍","xsqcup;":"⨆","xuplus;":"⨄","xutri;":"△","xvee;":"⋁","xwedge;":"⋀",yacute:"ý","yacute;":"ý","yacy;":"я","ycirc;":"ŷ","ycy;":"ы",yen:"¥","yen;":"¥","yfr;":"𝔶","yicy;":"ї","yopf;":"𝕪","yscr;":"𝓎","yucy;":"ю",yuml:"ÿ","yuml;":"ÿ","zacute;":"ź","zcaron;":"ž","zcy;":"з","zdot;":"ż","zeetrf;":"ℨ","zeta;":"ζ","zfr;":"𝔷","zhcy;":"ж","zigrarr;":"⇝","zopf;":"𝕫","zscr;":"𝓏","zwj;":"‍","zwnj;":"‌"},Hr=32,Pr={AE:["AElig"],AM:["AMP"],Aa:["Aacute"],Ab:[],Ac:["Acirc"],Af:[],Ag:["Agrave"],Al:[],Am:[],An:[],Ao:[],Ap:[],Ar:["Aring"],As:[],At:["Atilde"],Au:["Auml"],Ba:[],Bc:[],Be:[],Bf:[],Bo:[],Br:[],Bs:[],Bu:[],CH:[],CO:["COPY"],Ca:[],Cc:["Ccedil"],Cd:[],Ce:[],Cf:[],Ch:[],Ci:[],Cl:[],Co:[],Cr:[],Cs:[],Cu:[],DD:[],DJ:[],DS:[],DZ:[],Da:[],Dc:[],De:[],Df:[],Di:[],Do:[],Ds:[],EN:[],ET:["ETH"],Ea:["Eacute"],Ec:["Ecirc"],Ed:[],Ef:[],Eg:["Egrave"],El:[],Em:[],Eo:[],Ep:[],Eq:[],Es:[],Et:[],Eu:["Euml"],Ex:[],Fc:[],Ff:[],Fi:[],Fo:[],Fs:[],GJ:[],GT:["GT"],Ga:[],Gb:[],Gc:[],Gd:[],Gf:[],Gg:[],Go:[],Gr:[],Gs:[],Gt:[],HA:[],Ha:[],Hc:[],Hf:[],Hi:[],Ho:[],Hs:[],Hu:[],IE:[],IJ:[],IO:[],Ia:["Iacute"],Ic:["Icirc"],Id:[],If:[],Ig:["Igrave"],Im:[],In:[],Io:[],Is:[],It:[],Iu:["Iuml"],Jc:[],Jf:[],Jo:[],Js:[],Ju:[],KH:[],KJ:[],Ka:[],Kc:[],Kf:[],Ko:[],Ks:[],LJ:[],LT:["LT"],La:[],Lc:[],Le:[],Lf:[],Ll:[],Lm:[],Lo:[],Ls:[],Lt:[],Ma:[],Mc:[],Me:[],Mf:[],Mi:[],Mo:[],Ms:[],Mu:[],NJ:[],Na:[],Nc:[],Ne:[],Nf:[],No:[],Ns:[],Nt:["Ntilde"],Nu:[],OE:[],Oa:["Oacute"],Oc:["Ocirc"],Od:[],Of:[],Og:["Ograve"],Om:[],Oo:[],Op:[],Or:[],Os:["Oslash"],Ot:["Otilde"],Ou:["Ouml"],Ov:[],Pa:[],Pc:[],Pf:[],Ph:[],Pi:[],Pl:[],Po:[],Pr:[],Ps:[],QU:["QUOT"],Qf:[],Qo:[],Qs:[],RB:[],RE:["REG"],Ra:[],Rc:[],Re:[],Rf:[],Rh:[],Ri:[],Ro:[],Rr:[],Rs:[],Ru:[],SH:[],SO:[],Sa:[],Sc:[],Sf:[],Sh:[],Si:[],Sm:[],So:[],Sq:[],Ss:[],St:[],Su:[],TH:["THORN"],TR:[],TS:[],Ta:[],Tc:[],Tf:[],Th:[],Ti:[],To:[],Tr:[],Ts:[],Ua:["Uacute"],Ub:[],Uc:["Ucirc"],Ud:[],Uf:[],Ug:["Ugrave"],Um:[],Un:[],Uo:[],Up:[],Ur:[],Us:[],Ut:[],Uu:["Uuml"],VD:[],Vb:[],Vc:[],Vd:[],Ve:[],Vf:[],Vo:[],Vs:[],Vv:[],Wc:[],We:[],Wf:[],Wo:[],Ws:[],Xf:[],Xi:[],Xo:[],Xs:[],YA:[],YI:[],YU:[],Ya:["Yacute"],Yc:[],Yf:[],Yo:[],Ys:[],Yu:[],ZH:[],Za:[],Zc:[],Zd:[],Ze:[],Zf:[],Zo:[],Zs:[],aa:["aacute"],ab:[],ac:["acirc","acute"],ae:["aelig"],af:[],ag:["agrave"],al:[],am:["amp"],an:[],ao:[],ap:[],ar:["aring"],as:[],at:["atilde"],au:["auml"],aw:[],bN:[],ba:[],bb:[],bc:[],bd:[],be:[],bf:[],bi:[],bk:[],bl:[],bn:[],bo:[],bp:[],br:["brvbar"],bs:[],bu:[],ca:[],cc:["ccedil"],cd:[],ce:["cedil","cent"],cf:[],ch:[],ci:[],cl:[],co:["copy"],cr:[],cs:[],ct:[],cu:["curren"],cw:[],cy:[],dA:[],dH:[],da:[],db:[],dc:[],dd:[],de:["deg"],df:[],dh:[],di:["divide"],dj:[],dl:[],do:[],dr:[],ds:[],dt:[],du:[],dw:[],dz:[],eD:[],ea:["eacute"],ec:["ecirc"],ed:[],ee:[],ef:[],eg:["egrave"],el:[],em:[],en:[],eo:[],ep:[],eq:[],er:[],es:[],et:["eth"],eu:["euml"],ex:[],fa:[],fc:[],fe:[],ff:[],fi:[],fj:[],fl:[],fn:[],fo:[],fp:[],fr:["frac12","frac14","frac34"],fs:[],gE:[],ga:[],gb:[],gc:[],gd:[],ge:[],gf:[],gg:[],gi:[],gj:[],gl:[],gn:[],go:[],gr:[],gs:[],gt:["gt"],gv:[],hA:[],ha:[],hb:[],hc:[],he:[],hf:[],hk:[],ho:[],hs:[],hy:[],ia:["iacute"],ic:["icirc"],ie:["iexcl"],if:[],ig:["igrave"],ii:[],ij:[],im:[],in:[],io:[],ip:[],iq:["iquest"],is:[],it:[],iu:["iuml"],jc:[],jf:[],jm:[],jo:[],js:[],ju:[],ka:[],kc:[],kf:[],kg:[],kh:[],kj:[],ko:[],ks:[],lA:[],lB:[],lE:[],lH:[],la:["laquo"],lb:[],lc:[],ld:[],le:[],lf:[],lg:[],lh:[],lj:[],ll:[],lm:[],ln:[],lo:[],lp:[],lr:[],ls:[],lt:["lt"],lu:[],lv:[],mD:[],ma:["macr"],mc:[],md:[],me:[],mf:[],mh:[],mi:["middot","micro"],ml:[],mn:[],mo:[],mp:[],ms:[],mu:[],nG:[],nL:[],nR:[],nV:[],na:[],nb:["nbsp"],nc:[],nd:[],ne:[],nf:[],ng:[],nh:[],ni:[],nj:[],nl:[],nm:[],no:["not"],np:[],nr:[],ns:[],nt:["ntilde"],nu:[],nv:[],nw:[],oS:[],oa:["oacute"],oc:["ocirc"],od:[],oe:[],of:[],og:["ograve"],oh:[],oi:[],ol:[],om:[],oo:[],op:[],or:["ordf","ordm"],os:["oslash"],ot:["otilde"],ou:["ouml"],ov:[],pa:["para"],pc:[],pe:[],pf:[],ph:[],pi:[],pl:["plusmn"],pm:[],po:["pound"],pr:[],ps:[],pu:[],qf:[],qi:[],qo:[],qp:[],qs:[],qu:["quot"],rA:[],rB:[],rH:[],ra:["raquo"],rb:[],rc:[],rd:[],re:["reg"],rf:[],rh:[],ri:[],rl:[],rm:[],rn:[],ro:[],rp:[],rr:[],rs:[],rt:[],ru:[],rx:[],sa:[],sb:[],sc:[],sd:[],se:["sect"],sf:[],sh:["shy"],si:[],sl:[],sm:[],so:[],sp:[],sq:[],sr:[],ss:[],st:[],su:["sup1","sup2","sup3"],sw:[],sz:["szlig"],ta:[],tb:[],tc:[],td:[],te:[],tf:[],th:["thorn"],ti:["times"],to:[],tp:[],tr:[],ts:[],tw:[],uA:[],uH:[],ua:["uacute"],ub:[],uc:["ucirc"],ud:[],uf:[],ug:["ugrave"],uh:[],ul:[],um:["uml"],uo:[],up:[],ur:[],us:[],ut:[],uu:["uuml"],uw:[],vA:[],vB:[],vD:[],va:[],vc:[],vd:[],ve:[],vf:[],vl:[],vn:[],vo:[],vp:[],vr:[],vs:[],vz:[],wc:[],we:[],wf:[],wo:[],wp:[],wr:[],ws:[],xc:[],xd:[],xf:[],xh:[],xi:[],xl:[],xm:[],xn:[],xo:[],xr:[],xs:[],xu:[],xv:[],xw:[],ya:["yacute"],yc:[],ye:["yen"],yf:[],yi:[],yo:[],ys:[],yu:["yuml"],za:[],zc:[],zd:[],ze:[],zf:[],zh:[],zi:[],zo:[],zs:[],zw:[]};function Wr(e,t){let n=t.reportProgressFunc,s=t.reportCompletionFunc,l=s?Date.now():0,i=0;return n?.(0),{advance:n?r=>{let o=Math.min(99,Math.floor(r*100/e.length));o>i&&(i=o,n(o))}:void 0,finish(r,o){return n?.(100),s?.({inputLength:e.length,outputLength:r.length,replacements:o,timeTakenInMilliseconds:Date.now()-l}),r}}}function Fr(e,t){if(typeof e!="string")throw new TypeError(`html-entity-codec/${t}(): [THROW_ID_01] The input must be a string.`)}var jr=[8364,129,8218,402,8222,8230,8224,8225,710,8240,352,8249,338,141,381,143,144,8216,8217,8220,8221,8226,8211,8212,732,8482,353,8250,339,157,382,376],Ur=/[0-9]+/y,Vr=/[0-9a-fA-F]+/y,zr=/0*([0-9]*)/y,Gr=/0*([0-9a-fA-F]*)/y;function Mr(e,t,n,s){if(s<=1114111){let i=n===10?zr:Gr;i.lastIndex=t;let r=i.exec(e);return{end:i.lastIndex,code:Number.parseInt(r[1].slice(0,8),n)||0}}let l=n===10?Ur:Vr;return l.lastIndex=t,l.test(e),{end:l.lastIndex,code:s}}function He(e){return e>=48&&e<=57||e>=65&&e<=90||e>=97&&e<=122}function se(e){throw new SyntaxError(`Parse error: ${e}`)}function Jr(e,t,n,s){if(e.charCodeAt(t)!==38)return null;let l=t+1;if(e.charCodeAt(l)===35){l++;let c=10;(e[l]==="x"||e[l]==="X")&&(c=16,l++);let m=l,p=0;for(;l<e.length;l++){let A=e.charCodeAt(l),T=-1;if(A>=48&&A<=57?T=A-48:c===16&&A>=65&&A<=70?T=A-55:c===16&&A>=97&&A<=102&&(T=A-87),T<0)break;if(p<=1114111&&(p=p*c+T),l-m===32&&!s){let q=Mr(e,m,c,p);l=q.end,p=q.code;break}s&&!(l%16384)&&s(l)}if(l===m)return n.strict&&se("absence-of-digits-in-numeric-character-reference"),null;if(e[l]===";")l++;else if(n.strict&&se("missing-semicolon-after-character-reference"),n.requireSemicolon)return null;return!p||p>1114111||p>=55296&&p<=57343?(n.strict&&se("invalid-numeric-character-reference"),p=65533):(p>=64976&&p<=65007||(p&65535)>=65534||p===13||p<32&&p!==9&&p!==10&&p!==12||p>=127&&p<=159)&&n.strict&&se("disallowed-numeric-character-reference"),p>=128&&p<=159&&(p=jr[p-128]),{end:l,value:String.fromCodePoint(p)}}let i=Pr[e.slice(l,l+2)],r=0,o="";if(i){let c=e.slice(l,l+Hr),m=c.indexOf(";");if(m!==-1){let p=or[c.slice(0,m+1)];if(typeof p=="string")return{end:l+m+1,value:p}}if(n.requireSemicolon&&!n.strict)return null;for(let p of i)if(e.startsWith(p,l)){r=l+p.length,o=or[p];break}}if(!r){if(n.strict&&He(e.charCodeAt(t+1))){for(;He(e.charCodeAt(l));)l++;e[l]===";"&&se("unknown-named-character-reference")}return null}return n.context==="attribute"&&(e[r]==="="||He(e.charCodeAt(r)))||(n.strict&&se("missing-semicolon-after-character-reference"),n.requireSemicolon)?null:{end:r,value:o}}function ur(e,t={}){Fr(e,"decode");let n={context:t.context,requireSemicolon:t.requireSemicolon,strict:t.strict},s=t.reportProgressFunc||t.reportCompletionFunc?Wr(e,t):void 0,l=e.indexOf("&"),i=0,r="",o=0;for(;l!==-1;){s?.advance?.(l);let c=Jr(e,l,n,s?.advance);c&&(r+=e.slice(i,l)+c.value,i=c.end,o++),l=e.indexOf("&",c?c.end:l+1)}return r=o?r+e.slice(i):e,s?s.finish(r,o):r}/*!
12
+ * Generated from WHATWG HTML entities.json (2026-09-05).
13
+ * Source: https://html.spec.whatwg.org/entities.json
14
+ * SHA-256: d741d877ac77c4194c4ad526b5b4a19aef8dfe411ab840a466891cdbb9f362e6
15
+ * Copyright © WHATWG (Apple, Google, Mozilla, Microsoft).
16
+ * BSD 3-Clause License
17
+ *
18
+ * Redistribution and use in source and binary forms, with or without
19
+ * modification, are permitted provided that the following conditions are met:
20
+ *
21
+ * 1. Redistributions of source code must retain the above copyright notice, this
22
+ * list of conditions and the following disclaimer.
23
+ *
24
+ * 2. Redistributions in binary form must reproduce the above copyright notice,
25
+ * this list of conditions and the following disclaimer in the documentation
26
+ * and/or other materials provided with the distribution.
27
+ *
28
+ * 3. Neither the name of the copyright holder nor the names of its
29
+ * contributors may be used to endorse or promote products derived from
30
+ * this software without specific prior written permission.
31
+ *
32
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
33
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
34
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
35
+ * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
36
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
37
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
38
+ * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
39
+ * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
40
+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
41
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
42
+ */var cr={progressFn:null};function Yr(e,t){let n,s=0;for(;s<e.length;){let l=s+1;for(;l<e.length&&e[s][0]===e[l][0]&&e[s][1]===e[l][1];)l+=1;if(l-s>1){n||(n=new Map(t.map((o,c)=>[o,c])));let i=n,r=e.slice(s,l).sort((o,c)=>i.get(o)-i.get(c));e.splice(s,r.length,...r)}s=l}return e}function we(e,t){if(!Array.isArray(e)||!e.length)return e;let n=t===void 0?!0:pe(t);if(t!==void 0&&n&&t?.strictlyTwoElementsInRangeArrays===!0)for(let o=0;o<e.length;o+=1){let c=e[o];if(!Array.isArray(c)||c.length!==2)throw new TypeError(`ranges-sort/rSort(): [THROW_ID_01] The first argument should be an array and must consist of arrays which are natural number indexes representing TWO string index ranges. However, range at index ${o} (${w(c,4)}) is ${Array.isArray(c)?`an array with ${c.length} elements`:"not an array"}!`);if(!Number.isInteger(c[0])||c[0]<0||!Number.isInteger(c[1])||c[1]<0)throw new TypeError(`ranges-sort/rSort(): [THROW_ID_02] The first argument should be an array and must consist of arrays which are natural number indexes representing string index ranges. However, range at index ${o} (${w(c,4)}) does not consist of only natural numbers!`)}else for(let o=0;o<e.length;o+=1){let c=e[o];if(!Array.isArray(c)||!Number.isInteger(c[0])||c[0]<0||!Number.isInteger(c[1])||c[1]<0)throw new TypeError(`ranges-sort/rSort(): [THROW_ID_02] The first argument should be an array and must consist of arrays which are natural number indexes representing string index ranges. However, range at index ${o} (${w(c,4)}) does not consist of only natural numbers!`)}if(t!==void 0&&!n)throw new TypeError(`ranges-sort/rSort(): [THROW_ID_03] The second argument must be a plain options object; received ${w(t,4)} (type ${typeof t})!`);let s=cr.progressFn;if(t!==void 0){let o=t.strictlyTwoElementsInRangeArrays;if(o!==void 0&&typeof o!="boolean")throw new TypeError(`ranges-sort/rSort(): [THROW_ID_04] opts.strictlyTwoElementsInRangeArrays must be a boolean; received ${w(o,4)} (type ${typeof o})!`);if(s=t.progressFn??cr.progressFn,s!==!1&&s!==null&&typeof s!="function")throw new TypeError(`ranges-sort/rSort(): [THROW_ID_05] opts.progressFn must be a function, false, null, or undefined; received ${w(s,4)} (type ${typeof s})!`)}let l,i;if(s){let o=e.length**2,c=0,m;i=p=>{p!==m&&(m=p,s(p))},l=Array.from(e).sort((p,A)=>(c+=1,i?.(Math.min(99,Math.floor(c*100/o))),p[0]===A[0]?p[1]<A[1]?-1:p[1]>A[1]?1:0:p[0]<A[0]?-1:1))}else l=Array.from(e).sort((o,c)=>o[0]===c[0]?o[1]<c[1]?-1:o[1]>c[1]?1:0:o[0]<c[0]?-1:1);let r=l.length>10?Yr(l,e):l;return i?.(100),r}var Zr={mergeType:1,progressFn:null,joinRangesThatTouchEdges:!0};function Kr(e,t){if(!Array.isArray(e)||!e.length)return null;let n={...Zr,...t};if(n.progressFn&&pe(n.progressFn)&&!Object.keys(n.progressFn).length)n.progressFn=null;else if(n.progressFn&&typeof n.progressFn!="function")throw new TypeError(`ranges-merge/rMerge(): [THROW_ID_02] opts.progressFn must be a function! It was given of a type: "${typeof n.progressFn}", equal to ${w(n.progressFn,4)}`);if(n.mergeType!==1&&n.mergeType!==2&&n.mergeType!=="1"&&n.mergeType!=="2")throw new TypeError(`ranges-merge/rMerge(): [THROW_ID_03] opts.mergeType was customised to a wrong thing! It was given of a type: "${typeof n.mergeType}", equal to ${w(n.mergeType,4)}`);if(typeof n.joinRangesThatTouchEdges!="boolean")throw new TypeError(`ranges-merge/rMerge(): [THROW_ID_04] opts.joinRangesThatTouchEdges was customised to a wrong thing! It was given of a type: "${typeof n.joinRangesThatTouchEdges}", equal to ${w(n.joinRangesThatTouchEdges,4)}`);let s=n.progressFn,l=n.joinRangesThatTouchEdges,i=[];for(let q of e)Array.isArray(q)&&(q[2]!==void 0||q[0]!==q[1])&&i.push([...q]);let r,o,c;s?r=we(i,{progressFn:q=>{c=Math.floor(q/5),c!==o&&(o=c,s(c))}}):r=we(i);let m=r.length-1,p=n.mergeType===2||n.mergeType==="2",A=r.length;for(let q=m;q>=0;q--){let f=r[q];for(s&&q<m&&(c=Math.floor((1-(q+1)/m)*78)+21,c!==o&&c>o&&(o=c,s(c)));A<r.length;){let u=r[A],k=u[0]===f[0];if(!k&&(l?u[0]>f[1]:u[0]>=f[1]))break;let O=u[1]>=f[1];O&&(f[1]=u[1]),u[2]===null?f[2]=null:u[2]!==void 0&&(k||O)&&f[2]!==null&&(f[2]!=null?p&&k?f[2]=u[2]:f[2]+=u[2]:f[2]=u[2]),A+=1}A-=1,r[A]=f}let T=r.length-A;for(let q=0;q<T;q++)r[q]=r[A+q];return r.length=T,s&&o!==99&&s(99),r.length?r:null}function he(e){if(typeof e=="number")return Number.isInteger(e)&&e>=0;if(typeof e!="string"||!e.trim())return!1;let t=Number(e);return Number.isInteger(t)&&t>=0}function _r(e,t,n){if(e===void 0&&t===void 0&&n===void 0)throw new Error("ranges-apply/rApply(): [THROW_ID_01] inputs missing!");if(typeof e!="string")throw new TypeError(`ranges-apply/rApply(): [THROW_ID_02] first input argument must be a string! Currently it's: ${typeof e}, equal to: ${w(e,4)}`);if(t!=null&&!Array.isArray(t))throw new TypeError(`ranges-apply/rApply(): [THROW_ID_03] second input argument must be an array (or null)! Currently it's: ${typeof t}, equal to: ${w(t,4)}`);if(t==null||!t.length||t.every(r=>r==null))return e;let s;Array.isArray(t)&&!Array.isArray(t[0])&&he(t[0])&&he(t[1])?s=[Array.from(t)]:s=Array.from(t),s.length,s.forEach((r,o)=>{if(r){if(!Array.isArray(r))throw new TypeError(`ranges-apply/rApply(): [THROW_ID_05] ranges array, second input arg., has ${o}th element not an array: ${w(r,4)}, which is ${typeof r}`);if(!he(r[0]))throw new TypeError(`ranges-apply/rApply(): [THROW_ID_06] ranges array, second input arg. has ${o}th element, array ${w(r)}. Its first element is not a non-negative integer or string index, but ${typeof r[0]}, equal to: ${w(r[0],4)}.`);if(typeof r[0]=="string"&&(s[o]=[...r],s[o][0]=Number(r[0])),!he(r[1]))throw new TypeError(`ranges-apply/rApply(): [THROW_ID_07] ranges array, second input arg. has ${o}th element, array ${w(r)}. Its second element is not a non-negative integer or string index, but ${typeof r[1]}, equal to: ${w(r[1],4)}.`);if(typeof r[1]=="string"&&(s[o]===r&&(s[o]=[...r]),s[o][1]=Number(r[1])),s[o][0]>s[o][1])throw new RangeError(`ranges-apply/rApply(): [THROW_ID_08] ranges array, second input arg. has ${o}th element, array ${w(r)}. Its first index (${s[o][0]}) must not be greater than its second index (${s[o][1]}).`)}});let l=Kr(s),i=l?.length||0;if(l&&i>0){let r=e.slice(l[i-1][1]);e=l.reduce((o,c,m,p)=>{let A=m===0?0:p[m-1][1],T=p[m][0];return`${o}${e.slice(A,T)}${p[m][2]??""}`},""),e+=r}return e}function Pe(e,t=1){let n=" ";function s(i){return i.length<2?i:Array.from(i).reverse().join("")}function l(i,r,o){let c=o?`
43
+ `:"\r",m=o?"\r":`
44
+ `;if(!i)return i;let p=0,A="";for(let T=0,q=i.length;T<q;T++)(i[T]===c||i[T]===m&&i[T-1]!==c)&&p++,`\r
45
+ `.includes(i[T])||i[T]===n?i[T]===n?A+=i[T]:i[T]===c?p<=r&&(A+=i[T],i[T+1]===m&&(A+=i[T+1],T++)):i[T]===m&&i?.[T-1]!==c&&p<=r&&(A+=i[T]):!i[T+1]&&!p&&(A+=" ");return A}if(typeof e=="string"&&e.length){let i=e.trim();if(i.length===e.length)return e;let r=1;typeof t=="number"&&Number.isInteger(t)&&t>=0&&(r=t);let o="",c="";if(!i)o=e;else if(!e[0].trim()){for(let p=0,A=e.length;p<A;p++)if(e[p].trim()){o=e.slice(0,p);break}}let m=e[e.length-1];if(i&&(m.trim()===""||m===n)){for(let p=e.length;p--;)if(e[p].trim()){c=e.slice(p+1);break}}return`${l(o,r,!1)}${i}${s(l(s(c),r,!0))}`}return e}var We={mergeType:1,progressFn:null,joinRangesThatTouchEdges:!0};function Tr(e,t,n){return t===void 0||e===null?e:t===null?null:e===void 0||n?t:e+t}function Qr(e,t){function n(f){return!!f&&typeof f=="object"&&!Array.isArray(f)}if(!Array.isArray(e)||!e.length)return null;if(t&&!n(t))throw new TypeError(`ranges-push/rMerge(): [THROW_ID_07] the second input argument must be a plain object. It was given as:
46
+ ${w(t,4)} (type ${typeof t})`);let s=t?.progressFn??We.progressFn,l=t?.mergeType??We.mergeType,i=t?.joinRangesThatTouchEdges??We.joinRangesThatTouchEdges;if(s&&n(s)&&!Object.keys(s).length)s=null;else if(s&&typeof s!="function")throw new TypeError(`ranges-push/rMerge(): [THROW_ID_08] resolvedOpts.progressFn must be a function! It was given of a type: "${typeof s}", equal to ${w(s,4)}`);if(l!==1&&l!==2&&l!=="1"&&l!=="2")throw new TypeError(`ranges-push/rMerge(): [THROW_ID_09] resolvedOpts.mergeType was customised to a wrong thing! It was given of a type: "${typeof l}", equal to ${w(l,4)}`);if(typeof i!="boolean")throw new TypeError(`ranges-push/rMerge(): [THROW_ID_10] resolvedOpts.joinRangesThatTouchEdges was customised to a wrong thing! It was given of a type: "${typeof i}", equal to ${w(i,4)}`);let r=[];for(let f of e)Array.isArray(f)&&(f[2]!==void 0||f[0]!==f[1])&&r.push([...f]);let o,c,m;s?o=we(r,{progressFn:f=>{m=Math.floor(f/5),m!==c&&(c=m,s?.(m))}}):o=we(r);let p=o.length-1,A=+l==2,T=o.length;for(let f=p;f>=0;f--){let u=o[f];for(s&&f<p&&(m=Math.floor((1-(f+1)/p)*78)+21,m!==c&&m>c&&(c=m,s(m)));T<o.length;){let k=o[T],O=k[0]===u[0];if(!O&&(i?k[0]>u[1]:k[0]>=u[1]))break;let D=k[1]>=u[1];D&&(u[1]=k[1]),k[2]===null?u[2]=null:k[2]!==void 0&&(O||D)&&(u[2]=Tr(u[2],k[2],A&&O)),T+=1}T-=1,o[T]=u}let q=o.length-T;for(let f=0;f<q;f++)o[f]=o[T+f];return o.length=q,o.length?o:null}var me=Object.freeze({limitToBeAddedWhitespace:!1,limitLinebreaksCount:1,mergeType:1});function U(e){if(ve(e))return e;if(typeof e=="string"&&/^\d+$/.test(e)){let t=Number(e);return ve(t)?t:null}return null}function qr(e){if(!Array.isArray(e))return`a ranges batch must contain only range arrays; received ${w(e,4)}`;if(e.length>3)return`a range must contain at most three values; received ${w(e,4)}`;let[t,n,s]=e;if(t==null&&n==null)return;if(t!=null&&n==null)return`the first index is set (${w(t)}) but the second index is not (${w(n)})`;if(t==null&&n!=null)return`the second index is set (${w(n)}) but the first index is not (${w(t)})`;let l=U(t),i=U(n);if(l===null)return`the first index must be a natural number, zero, or a digit-only numeric string; received ${w(t,4)} (type ${typeof t})`;if(i===null)return`the second index must be a natural number, zero, or a digit-only numeric string; received ${w(n,4)} (type ${typeof n})`;if(Me(s)&&!Z(s)&&!Ar(s))return`the third value must be a string, number, null, or undefined; received ${w(s,4)} (type ${typeof s})`;if(l>i)return`the first index (${l}) must not be greater than the second index (${i})`}function Xr(e){if(e.length>3)return{error:`expected at most three arguments but received ${e.length}`,ranges:[]};if(e.length<=1&&Array.isArray(e[0])){let n=e[0];if(!n.length)return{ranges:[]};e=Array.isArray(n[0])?n:[n]}else e=[e];let t=[];for(let n of e){let s=qr(n);if(s)return{error:s,ranges:[]};let[l,i,r]=n;if(l==null&&i==null)continue;let o=U(l),c=U(i);t.push(r!==void 0&&!(Z(r)&&!r.length)?[o,c,r]:[o,c])}return{ranges:t}}function et(e){return e[2]===void 0&&e[0]===e[1]}function rt(e){let t=-1;for(let n=0,s=e.length;n<s;n++){let l=e[n];if(Array.isArray(l)){if(l[0]<t)return!1;t=l[0]}}return!0}var tt=class{constructor(e){if(e!=null&&!pe(e))throw new TypeError(`ranges-push/Ranges/constructor(): [THROW_ID_01] The options argument must be a plain object. It was given as ${w(e,4)} (type ${typeof e}).`);if(e===void 0){this.opts=me,this.ranges=[];return}let t=e,n=t.limitToBeAddedWhitespace===void 0?me.limitToBeAddedWhitespace:t.limitToBeAddedWhitespace,s=t.limitLinebreaksCount===void 0?me.limitLinebreaksCount:t.limitLinebreaksCount,l=t.mergeType===void 0?me.mergeType:t.mergeType,i=l==="1"?1:l==="2"?2:l,r;if(typeof n!="boolean"?r=`opts.limitToBeAddedWhitespace must be a boolean; received ${w(n,4)} (type ${typeof n})`:ve(s)?i!==1&&i!==2&&(r=`opts.mergeType must be 1, 2, "1", or "2"; received ${w(l,4)} (type ${typeof l})`):r=`opts.limitLinebreaksCount must be a natural number or zero; received ${w(s,4)} (type ${typeof s})`,r)throw new TypeError(`ranges-push/Ranges/constructor(): [THROW_ID_02] ${r}.`);let o=Object.freeze({limitToBeAddedWhitespace:n,limitLinebreaksCount:s,mergeType:i});this.opts=o,this.ranges=[]}ranges;opts;currentCache=null;rangeListsMatch(e,t){if(!Array.isArray(e))return t===null;if(!Array.isArray(t)||e.length!==t[0])return!1;let n=1;for(let s=0,l=e.length;s<l;s++){let i=e[s];if(!Array.isArray(i)){if(t[n++]!==-1||i!==t[n++])return!1;continue}if(i.length!==t[n++])return!1;for(let r=0;r<i.length;r++)if(i[r]!==t[n++])return!1}return n===t.length}snapshotRanges(e){if(!Array.isArray(e))return null;let t=new Array(1+e.length*4);t[0]=e.length;let n=1;for(let s=0,l=e.length;s<l;s++){let i=e[s];if(Array.isArray(i)){t[n++]=i.length;for(let r=0;r<i.length;r++)t[n++]=i[r]}else t[n++]=-1,t[n++]=i}return t.length=n,t}currentStateMatchesSnapshot(){let e=this.currentCache;return e!==null&&this.rangeListsMatch(this.ranges,e.rangesSnapshot)&&this.rangeListsMatch(e.result,e.resultSnapshot)}recordCurrentSnapshot(e){let t=this.snapshotRanges(this.ranges);this.currentCache={rangesSnapshot:t,result:e,resultSnapshot:e===this.ranges?t:this.snapshotRanges(e)}}invalidateCurrentCache(){this.currentCache=null}addValidated(e,t,n){this.invalidateCurrentCache();let s=this.last();if(Me(this.ranges)&&Array.isArray(s)&&e===s[1]){if(s[1]=t,n!==void 0&&!(Z(n)&&!n.length)){let i=Tr(s[2],n,this.opts.mergeType===2&&s[0]===e);this.opts.limitToBeAddedWhitespace&&typeof i=="string"&&(i=Pe(i,this.opts.limitLinebreaksCount)),Z(i)&&!i.length||(s[2]=i)}return}this.ranges||(this.ranges=[]);let l=n!==void 0?[e,t,typeof n=="string"&&this.opts.limitToBeAddedWhitespace?Pe(n,this.opts.limitLinebreaksCount):n]:[e,t];this.ranges.push(l)}add(e,t,n){let s=arguments.length,l;if(s>3)l=`expected at most three arguments but received ${s}`;else if(s===1&&Array.isArray(e)){let i=Array.isArray(e[0])?e:[e];for(let r=0,o=i.length;r<o&&(l=qr(i[r]),!l);r++);if(!l)for(let r=0,o=i.length;r<o;r++){let[c,m,p]=i[r];c==null&&m==null||this.addValidated(U(c),U(m),Z(p)&&!p.length?void 0:p)}}else{if(e==null&&t==null)return;if(e!=null&&t==null)l=`the first index is set (${w(e)}) but the second index is not (${w(t)})`;else if(e==null&&t!=null)l=`the second index is set (${w(t)}) but the first index is not (${w(e)})`;else{let i=U(e),r=U(t);i===null?l=`the first index must be a natural number, zero, or a digit-only numeric string; received ${w(e,4)} (type ${typeof e})`:r===null?l=`the second index must be a natural number, zero, or a digit-only numeric string; received ${w(t,4)} (type ${typeof t})`:Me(n)&&!Z(n)&&!Ar(n)?l=`the third value must be a string, number, null, or undefined; received ${w(n,4)} (type ${typeof n})`:i>r?l=`the first index (${i}) must not be greater than the second index (${r})`:this.addValidated(i,r,Z(n)&&!n.length?void 0:n)}}if(l)throw new TypeError(`ranges-push/Ranges/add(): [THROW_ID_03] ${l}.`)}push(e,t,n){this.add.apply(this,arguments)}current(){if(this.currentStateMatchesSnapshot())return this.currentCache?.result??null;if(Array.isArray(this.ranges)&&this.ranges.length){this.ranges=Qr(this.ranges,this.opts.mergeType===1?void 0:{mergeType:2});let e=this.ranges;return e&&this.opts.limitToBeAddedWhitespace&&(e=e.map(t=>typeof t[2]=="string"?[t[0],t[1],Pe(t[2],this.opts.limitLinebreaksCount)]:t)),this.recordCurrentSnapshot(e),e}return this.recordCurrentSnapshot(null),null}firstCovers(e){if(!ve(e))throw new TypeError(`ranges-push/Ranges/firstCovers(): [THROW_ID_04] the input argument must be a natural number or zero! It was given as ${w(e,4)} (type ${typeof e})`);if(!Array.isArray(this.ranges)||!this.ranges.length)return!1;let t=rt(this.ranges)?this.ranges:this.ranges.filter(s=>Array.isArray(s)).slice().sort((s,l)=>s[0]-l[0]||s[1]-l[1]),n=null;for(let s=0,l=t.length;s<l;s++){let i=t[s];if(!(!Array.isArray(i)||et(i))){if(n===null){if(i[0]!==0)return!1;n=i[1]}else{if(i[0]>n)break;i[1]>n&&(n=i[1])}if(n>=e)return!0}}return n!==null&&n>=e}wipe(){this.ranges=[],this.invalidateCurrentCache()}replace(e){if(Array.isArray(e)&&e.length)if(Array.isArray(e[0])){let t=Xr([e]);if(t.error)throw new TypeError(`ranges-push/Ranges/replace(): [THROW_ID_06] ${t.error}.`);this.ranges=t.ranges,this.invalidateCurrentCache()}else throw new Error(`ranges-push/Ranges/replace(): [THROW_ID_05] Single range was given but we expected array of arrays! The first element, ${w(e[0],4)} should be an array.`);else this.ranges=[],this.invalidateCurrentCache()}last(){return Array.isArray(this.ranges)&&this.ranges.length?this.ranges[this.ranges.length-1]:null}};function Fe(e){return e===32||e>=9&&e<=13||e===160||e===5760||e>=8192&&e<=8202||e===8232||e===8233||e===8239||e===8287||e===12288||e===65279}function nt(e,t){return t==null?0:typeof t!="number"||!Number.isInteger(t)||t<0?null:t>e?e:t}function at(e,t){return t===-1?-1:nt(e,t)}function M(e,t=0){if(typeof e!="string"||!e.length)return null;let n=at(e.length,t);if(n===null||n+1>=e.length)return null;let s=n+1;if(!Fe(e.charCodeAt(s)))return s;if(s+=1,s>=e.length)return null;if(!Fe(e.charCodeAt(s)))return s;for(s+=1;s<e.length;s++)if(!Fe(e.charCodeAt(s)))return s;return null}var st="13.7.1";function it(e){return e>96&&e<123||e>64&&e<91||e>47&&e<58||e===45||e===95}function C(e){return e===32||e>8&&e<14?!0:e<128?!1:e===160||e===5760||e>8191&&e<8203||e===8232||e===8233||e===8239||e===8287||e===12288||e===65279}function lt(e,t,n){if(e>96&&e<123||e>64&&e<91)return!0;if(!(e>=128))return!1;let s=t[n];return s.toLowerCase()!==s.toUpperCase()}function ot(e){for(let t=0,n=e.length;t<n;t++)if(e.charCodeAt(t)!==45)return!1;return!0}function pr(e,t){let n=0;for(let s in e)if(++n>t)return!0;return!1}function gr(e,t){if(!e)return[];if(Array.isArray(e))return e.length?e.filter(n=>typeof n=="string"&&n.trim()):e;if(typeof e=="string")return e.trim()?[e]:[];throw new TypeError(`string-strip-html/stripHtml(): [THROW_ID_08] ${t} must be array containing zero or more strings or something falsy. Currently it's equal to: ${e}, that a type of ${typeof e}.`)}function fr(e,t,n,s){for(let l=t,i=e.length;l<i;l++){if(e.startsWith(n,l))return!0;if(e.startsWith(s,l))return!1}return!1}function dr(e,t,n){let s=!e?.quotes,l=!s&&!fr(t,n+1,e.quotes.value,">"),i=l&&e.quotes.next!==-1,r=i&&fr(t,e.quotes.next-1,e.quotes.value,">");return s||l&&i&&r}function ut(e,t){return(t.match(new RegExp(e,"g"))||[]).length}var ye=new Set(["!doctype","abbr","address","area","article","aside","audio","base","bdi","bdo","blockquote","body","br","button","canvas","caption","cite","code","col","colgroup","data","datalist","dd","del","details","dfn","dialog","div","dl","doctype","dt","em","embed","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","head","header","hgroup","hr","html","iframe","img","input","ins","kbd","keygen","label","legend","li","link","main","map","mark","math","menu","menuitem","meta","meter","nav","noscript","object","ol","optgroup","option","output","param","picture","pre","progress","rb","rp","rt","rtc","ruby","samp","script","section","select","slot","small","source","span","strong","style","sub","summary","sup","svg","table","tbody","td","template","textarea","tfoot","th","thead","time","title","tr","track","ul","var","video","wbr","xml"]),je=new Set(["a","b","i","p","q","s","u"]),Ue=new Set([".",",",";","!","?"]),ct=new Set(['"',"("]),_t=new Set([";",".",":","!"]),hr=new Set([".",",","?",";",")","…",'"',"»"]),pt=new Set(["a","abbr","acronym","audio","b","bdi","bdo","big","button","canvas","cite","code","data","datalist","del","dfn","em","embed","i","iframe","input","ins","kbd","label","map","mark","meter","noscript","object","output","picture","progress","q","ruby","s","samp","select","slot","small","span","strong","sub","sup","svg","template","textarea","time","u","tt","var","video","wbr"]),Ot=st,mr=32,yr=33,Ve=34,ie=37,ze=39,J=47,Y=60,ce=61,_e=62,br={ignoreTags:[],ignoreTagsWithTheirContents:[],onlyStripTags:[],stripTogetherWithTheirContents:["script","style","xml"],skipHtmlDecoding:!1,trimOnlySpaces:!1,stripRecognisedHTMLOnly:!1,dumpLinkHrefsNearby:{enabled:!1,putOnNewLine:!1,wrapHeads:"",wrapTails:""},ignoreIndentations:!1,cb:null,reportProgressFunc:null,reportProgressFuncFrom:0,reportProgressFuncTo:100};function gt(e,t){let n=Date.now(),s=[],l=[],i=[],r={},o,c="";function m(){r={attributes:[]},o=void 0,c=""}function p(a){return typeof a.name!="string"?"":a!==r?a.name.toLowerCase():(o!==a.name&&(o=a.name,c=a.name.toLowerCase()),c)}m();let A=null,T=null,q=null,f=!1,u={},k=0;function O(){u={},k=0}let D=null,S={tagName:"",hrefValue:"",openingTagEnds:void 0},R="",K=!1,ge=null,Q=null,X=!0,z=-1,Ae=0,ee=[];function fe(a,_,v){let b=p(r);if(Array.isArray(_.stripTogetherWithTheirContents)&&(_.stripTogetherWithTheirContents.includes("*")||_.stripTogetherWithTheirContents.includes(b)))if(r.slashPresent&&Array.isArray(s)&&s.some(h=>p(h)===b)){for(let h=s.length;h--;)if(p(s[h])===b){let y=r.lastClosingBracketAt===a?a+1:a;hr.has(e[a])?I(r,[s[h].lastOpeningBracketAt,y,null],"tag",typeof r.lastClosingBracketAt=="number"?"complete":"incomplete",r.lastOpeningBracketAt,typeof r.lastClosingBracketAt=="number"?r.lastClosingBracketAt+1:te(a)?a:a+1):I(r,[s[h].lastOpeningBracketAt,y,""],"tag",typeof r.lastClosingBracketAt=="number"?"complete":"incomplete",r.lastOpeningBracketAt,typeof r.lastClosingBracketAt=="number"?r.lastClosingBracketAt+1:te(a)?a:a+1),s.splice(h,1);break}}else r.slashPresent||s.push(r);else Array.isArray(_.ignoreTagsWithTheirContents)&&_.ignoreTagsWithTheirContents.length&&Ze(a,_,r)&&(X=!1)}function Or(a){a=Qe(a);let _=E.ranges,v=_?_.length:0;if(!v)return!1;let b=v-1,h=!1;for(;Ae<b;){let x=_[Ae];Ae+=1,Je(x)&&((z===-1?x[0]===0:x[0]<=z)?x[1]>z&&(z=x[1],h=!0):ee.push(x))}h&&(z=Ye(z,!0));let y=z,d=_[b];return Je(d)&&(y===-1?d[0]===0:d[0]<=y)&&d[1]>y&&(y=Ye(d[1],!1)),y!==-1&&y>=a}function Je(a){return Array.isArray(a)&&(a[2]!==void 0||a[0]!==a[1])}function Ye(a,_){let v=!0;for(;v&&ee.length;){v=!1;let b=0;for(let h=0,y=ee.length;h<y;h++){let d=ee[h];d[0]<=a?d[1]>a&&(a=d[1],v=!0):_&&(ee[b]=d,b+=1)}_&&(ee.length=b)}return a}function re(a,_,v,b,h,y){if(typeof v=="number"&&Or(v))return"";if(e.length===b&&y&&!g?.dumpLinkHrefsNearby?.enabled)return null;let d="";if(Number.isInteger(v)&&v<h&&(d+=a.slice(v,h)),Number.isInteger(b)&&b>y+1){let B=a.slice(y+1,b);b&&!M(e,b-1)&&(B=B.trimRight()),B.includes(`
47
+ `)&&te(b,a)?d+=" ":d+=B}let x=!hr.has(a[_]),L=a[b-1]!==">"||!a[v].trim(),ae=!ct.has(a[h-1]),Ne=!_t.has(a[_]);if((x||L&&ae&&Ne)&&(L||ae)&&a[_]!=="!"&&(!pt.has(p(r))||typeof v=="number"&&v<h||typeof b=="number"&&b>y+1)){let B=0;for(let W=d.indexOf(`
48
+ `);W!==-1&&B<3;W=d.indexOf(`
49
+ `,W+1))B+=1;return B?B===1?`
50
+ `:B===2?`
51
+
52
+ `:`
53
+
54
+
55
+ `:" "}return""}function Te(a,_){if(a.dumpLinkHrefsNearby?.enabled&&S.tagName&&S.tagName.toLowerCase()===p(r)&&r.lastOpeningBracketAt&&(S.openingTagEnds&&r.lastOpeningBracketAt>S.openingTagEnds||!S.openingTagEnds)&&(K=!0),K){let v=a.dumpLinkHrefsNearby?.putOnNewLine?`
56
+
57
+ `:"";R=`${v}${S.hrefValue}`,(typeof _!="number"||M(e,_-1))&&(R+=v)}}function te(a,_){return a==null?!1:_?_.charCodeAt(a)===Y&&_.charCodeAt(a+1)!==ie:e.charCodeAt(a)===Y&&e.charCodeAt(a+1)!==ie}function qe(a){return a!=null&&e.charCodeAt(a)===_e&&e.charCodeAt(a-1)!==ie}function Er(a){if(e.charCodeAt(a)!==Y)return!1;let _=M(e,a);if(_===null||e.charCodeAt(_)!==47)return!1;let v=M(e,_);if(v===null||(e.charCodeAt(v)|32)!==115||(e.charCodeAt(v+1)|32)!==99||(e.charCodeAt(v+2)|32)!==114||(e.charCodeAt(v+3)|32)!==105||(e.charCodeAt(v+4)|32)!==112||(e.charCodeAt(v+5)|32)!==116)return!1;let b=e.charCodeAt(v+6);return Number.isNaN(b)||C(b)||b===47||b===_e||b===Y}function Ze(a,_,v){if(!_.ignoreTagsWithTheirContents.length)return!1;if(_.ignoreTagsWithTheirContents.includes("*"))return!0;let b=typeof v.name=="string"?v.name.toLowerCase():"";if(!_.ignoreTagsWithTheirContents.includes(b))return!1;ge===null&&(ge=kt(e));let h=ge.indexOf(`<${b}`,a),y=ge.indexOf(`</${b}`,a);return!v.slashPresent&&y===-1||v.slashPresent&&!l.some(d=>p(d)===b)||y>-1&&h>-1&&h<y?!1:_.ignoreTagsWithTheirContents.includes(b)}if(typeof e!="string")throw new TypeError(`string-strip-html/stripHtml(): [THROW_ID_01] Input must be string! Currently it's: ${(typeof e).toLowerCase()}, equal to:
58
+ ${w(e,4)}`);if(t)if(pe(t)){if(t.reportProgressFunc&&typeof t.reportProgressFunc!="function")throw new Error(`string-strip-html/stripHtml(): [THROW_ID_03] The Optional Options Object's key reportProgressFunc, callback function, should be a function but it was given as type ${typeof t.reportProgressFunc}, equal to ${w(t.reportProgressFunc,4)}`);if(typeof t.dumpLinkHrefsNearby=="boolean"&&t.dumpLinkHrefsNearby!=null)throw new Error(`string-strip-html/stripHtml(): [THROW_ID_04] The Optional Options Object's key should be a plain object but it was given as type ${typeof t.dumpLinkHrefsNearby}, equal to ${w(t.dumpLinkHrefsNearby,4)}`)}else throw new TypeError(`string-strip-html/stripHtml(): [THROW_ID_02] Optional Options Object must be a plain object! Currently it's: ${(typeof t).toLowerCase()}, equal to:
59
+ ${w(t,4)}`);function ke(){K&&(S={tagName:"",hrefValue:"",openingTagEnds:void 0},K=!1)}let Oe=!!t?.cb,g={...br,...t,dumpLinkHrefsNearby:Object.assign({},br.dumpLinkHrefsNearby,t?.dumpLinkHrefsNearby)};if(Ir(g,"returnRangesOnly"))throw new TypeError("string-strip-html/stripHtml(): [THROW_ID_05] The Optional Options Object's key returnRangesOnly has been removed from the API since v.5 release.");if(g.reportProgressFunc){if(typeof g.reportProgressFuncFrom!="number")throw new Error(`string-strip-html/stripHtml(): [THROW_ID_06] The Optional Options Object's key reportProgressFuncFrom, callback function's "from" range, should be a number but it was given as type ${typeof g.reportProgressFuncFrom}, equal to ${w(g.reportProgressFuncFrom,4)}`);if(typeof g.reportProgressFuncTo!="number")throw new Error(`string-strip-html/stripHtml(): [THROW_ID_07] The Optional Options Object's key reportProgressFuncTo, callback function's "to" range, should be a number but it was given as type ${typeof g.reportProgressFuncTo}, equal to ${w(g.reportProgressFuncTo,4)}`)}let Ee=gr(g.ignoreTags,"resolvedOpts.ignoreTags");g.ignoreTags=Ee.length?Ee.map(a=>a.toLowerCase()):Ee;let xe=gr(g.onlyStripTags,"resolvedOpts.onlyStripTags");g.onlyStripTags=xe.length?xe.map(a=>a.toLowerCase()):xe,Array.isArray(g.ignoreTagsWithTheirContents)&&g.ignoreTagsWithTheirContents.length&&(g.ignoreTagsWithTheirContents=g.ignoreTagsWithTheirContents.map(a=>typeof a=="string"?a.toLowerCase():a));let Ce=!!g.onlyStripTags.length;g.onlyStripTags.length&&g.ignoreTags.length&&(g.onlyStripTags=Nr(g.onlyStripTags,g.ignoreTags)),g.stripTogetherWithTheirContents?typeof g.stripTogetherWithTheirContents=="string"&&g.stripTogetherWithTheirContents.length&&(g.stripTogetherWithTheirContents=[g.stripTogetherWithTheirContents]):g.stripTogetherWithTheirContents=[];let le={};if(g.stripTogetherWithTheirContents&&Array.isArray(g.stripTogetherWithTheirContents)&&g.stripTogetherWithTheirContents.length&&!g.stripTogetherWithTheirContents.every((a,_)=>typeof a!="string"?(le.el=a,le.i=_,!1):!0))throw new TypeError(`string-strip-html/stripHtml(): [THROW_ID_09] Optional Options Object's key stripTogetherWithTheirContents was set to contain not just string elements! For example, element at index ${le.i} has a value ${le.el} which is not string but ${(typeof le.el).toLowerCase()}.`);Array.isArray(g.stripTogetherWithTheirContents)&&(g.stripTogetherWithTheirContents=g.stripTogetherWithTheirContents.map(a=>a.toLowerCase()));let Ke=!!(g.stripRecognisedHTMLOnly||g.ignoreTags.length||g.ignoreTagsWithTheirContents.length||Ce);if(g.cb&&typeof g.cb!="function")throw new TypeError(`string-strip-html/stripHtml(): [THROW_ID_10] The Optional Options Object's key cb should be a function or something falsy but it was given as type ${typeof g.cb}, equal to ${w(g.cb,4)}`);let E=kr(),Se=!0;function I(a,_,v,b,h,y){let d=_?$?Ge(_,e,$):_:null;if(!Oe){d&&E.push(d);return}if($){let x={tag:mt(a,v,b,h,y,e,$),deleteFrom:d?d[0]:null,deleteTo:d?d[1]:null,insert:d?d[2]:null,rangesArr:E,proposedReturn:d?[...d]:null},L=Se,ae=L?At(E.current()):null;g.cb?.(x),L&&!Tt(E.current(),qt(ae,d))&&(Se=!1)}}let G=e,oe=g.skipHtmlDecoding||!e.includes("&")?null:ft(e);oe&&(e=_r(e,oe));let $=oe||Oe?dt(G,e,oe):null;function Qe(a){return $?N(a,e,$).idx:a}function Le(a){E.push($?Ge(a,e,$):a)}let F=!1,H=!1,P=null,Xe=0,er=-1,rr=!1,ne=e.length,ue=G.length,xr=Math.floor(ue/2);function $e(a){let _=$?Math.max(0,V(a+1,e,$).idx-1):a;if(!(_<=er)){if(er=_,ue>1e3&&ue<2e3)!rr&&_>=xr&&(rr=!0,g.reportProgressFunc?.(g.reportProgressFuncFrom+Math.floor((g.reportProgressFuncTo-g.reportProgressFuncFrom)/2)));else if(ue>=2e3){let v=g.reportProgressFuncFrom+Math.floor(_/ue*(g.reportProgressFuncTo-g.reportProgressFuncFrom));v!==Xe&&(Xe=v,g.reportProgressFunc?.(v))}}}function De(){m(),O(),H=!1}function Re(){r.name?.length===6&&p(r)==="script"&&(F=!r.slashPresent),P=null,De()}function tr(a,_,v){let b=p(r),h=g.ignoreTags.includes(b),y=Ze(a,g,r);if(!(!X||g.stripRecognisedHTMLOnly&&typeof r.name=="string"&&!ye.has(b)&&!je.has(b)||!Ce&&(h||y)||Ce&&!g.onlyStripTags.includes(b)||g.ignoreTagsWithTheirContents.includes(b)))return!1;if(y)if(r.slashPresent){for(let d=l.length;d--;)if(l[d].name?.toLowerCase()===b){l.splice(d,1);break}l.length||(X=!0)}else X&&(X=!1),l.push(r);return I(r,null,"tag",_,r.lastOpeningBracketAt,v),P=null,De(),!0}for(let a=0;a<ne;a++){let _=e.charCodeAt(a),v=_===Y&&e.charCodeAt(a+1)!==ie,b=_===_e&&e.charCodeAt(a-1)!==ie;if(g.reportProgressFunc&&$e(a),Q===null&&_!==mr&&r.lastClosingBracketAt&&r.lastClosingBracketAt<a&&(r.attributes!==void 0||pr(r,1))&&(Q=a),!F&&_===ie&&e[a-1]==="{"&&e.includes("%}",a+1)){q=null;let h=e.indexOf("%}",a)-1;if(h>a){a=h,g.reportProgressFunc&&$e(a);continue}}if(!F&&b&&(!r||!pr(r,1))&&a>1){for(let h=a;h--;)if(e[h-1]===void 0||qe(h)){let y=e[h-1]===void 0?h:h+1,d=e.slice(y,a+1)||"",x=d.trim(),L=lr(x.split(/\s+/,1)[0]||"","/>"),ae=lr(x,"/>"),Ne=L.toLowerCase();if((d.includes("/>")||d.includes("/ >")||d.includes('="')||d.includes("='"))&&e!==`<${ae}>`&&ye.has(Ne)&&gt(`<${x}>`,{skipHtmlDecoding:!0,cb:null,reportProgressFunc:null}).result===""){(!i.length||i[i.length-1][0]!==r.lastOpeningBracketAt)&&i.push([y,a+1]);let B=re(e,a,y,a+1,y,a+1),W=a+1;if(e[W]&&C(e.charCodeAt(W))){for(let de=W;de<ne;de++)if(!C(e.charCodeAt(de))){W=de;break}}let Cr=d.indexOf(L),ar=y+Cr;I({name:L,nameStarts:ar,nameEnds:ar+L.length,nameContainsLetters:!0},[y,W,B],"tag","inferred",y,a+1)}break}}if(!H&&_===J&&!r.quotes?.value&&!(typeof u.equalsAt=="number"&&u.valueEnds===void 0)&&Number.isInteger(r.lastOpeningBracketAt)&&!Number.isInteger(r.lastClosingBracketAt)&&(r.slashPresent=a),_===Ve||_===ze)if(!H&&r.nameStarts&&r?.quotes?.value===e[a])if(D=a,u.valueStarts===void 0)O(),r.quotes=void 0;else{u.valueEnds=a,u.value=e.slice(u.valueStarts,a),r.attributes.push(u),O(),r.quotes=void 0;let h;g.dumpLinkHrefsNearby?.enabled&&!s.length&&r.attributes.some(y=>typeof y.name=="string"&&y.name.toLowerCase()==="href"?(h=`${g.dumpLinkHrefsNearby?.wrapHeads||""}${y.value}${g.dumpLinkHrefsNearby?.wrapTails||""}`,!0):!1)&&(S={tagName:r.name,hrefValue:h,openingTagEnds:void 0})}else!H&&!r.quotes&&r.nameStarts&&u.valueStarts===void 0&&(r.quotes={},r.quotes.value=e[a],r.quotes.start=a,r.quotes.next=e.indexOf(e[a],a+1),k=0,u.nameStarts&&u.nameEnds&&u.nameEnds<a&&u.nameStarts<a&&!u.valueStarts&&(u.name=e.slice(u.nameStarts,u.nameEnds)));if(r.nameStarts!==void 0&&r.nameEnds===void 0&&(C(_)||!it(_))){if(r.nameEnds=a,r.name=e.slice(r.nameStarts,r.nameEnds+(!b&&_!==J&&e[a+1]===void 0?1:0)),e[r.nameStarts-1]!=="!"&&ot(r.name)||r.name.charCodeAt(0)>47&&r.name.charCodeAt(0)<58){r={};continue}if(typeof r.name=="string"&&p(r)==="doctype"&&(H=!0),v){Te(g);let h=re(e,a,r.leftOuterWhitespace,a,r.lastOpeningBracketAt,a);I(r,[r.leftOuterWhitespace,a,`${h}${R}${h}`],"tag","incomplete",r.lastOpeningBracketAt,a),ke(),fe(a,g),Re()}}if(u.nameEnds&&u.equalsAt&&!u.valueStarts&&r.quotes?.start&&r.quotes.start<a&&!r.quotes.end&&(u.valueStarts=a),k&&(k===1&&u.valueStarts===void 0&&u.equalsAt<a&&!C(_)&&_!==Ve&&_!==ze&&_!==ce&&!v&&!b&&(u.valueStarts=a,k=2),k===2&&(C(_)||b||e[a+1]===void 0)&&(u.valueEnds=C(_)||b?a:a+1,u.value=e.slice(u.valueStarts,u.valueEnds),g.dumpLinkHrefsNearby?.enabled&&!s.length&&typeof u.name=="string"&&u.name.toLowerCase()==="href"&&(S={tagName:r.name,hrefValue:`${g.dumpLinkHrefsNearby.wrapHeads||""}${u.value}${g.dumpLinkHrefsNearby.wrapTails||""}`,openingTagEnds:void 0}),r.attributes.push(u),O())),_===ce&&u.nameEnds&&!u.valueStarts&&!u.equalsAt&&!r.quotes&&(u.equalsAt=a,k=1),u.nameEnds&&u.nameStarts&&!u.valueStarts&&!u.equalsAt&&!C(_)&&_!==ce&&!r.quotes&&(r.attributes.push(u),O()),u.nameStarts&&!u.nameEnds&&!r.quotes&&(H&&`'"`.includes(e[u.nameStarts])?u.nameStarts<a&&e[a]===e[u.nameStarts]&&(u.nameEnds=a+1,u.name=e.slice(u.nameStarts,u.nameEnds)):C(_)?(u.nameEnds=a,u.name=e.slice(u.nameStarts,u.nameEnds)):_===ce?u.equalsAt||(u.nameEnds=a,u.equalsAt=a,k=1,u.name=e.slice(u.nameStarts,u.nameEnds)):(_===J||b||v)&&(u.nameEnds=a,u.name=e.slice(u.nameStarts,u.nameEnds),r.attributes.push(u),O())),C(e.charCodeAt(a-1))&&D!==a&&!C(_)&&_!==Y&&_!==_e&&_!==J&&_!==yr&&!u.nameStarts&&r.nameEnds<a&&!r.lastClosingBracketAt&&!r.quotes&&(u.nameStarts=a),_===J&&r.lastOpeningBracketAt!==null&&r.lastOpeningBracketAt<a&&r.onlyPlausible&&(r.onlyPlausible=!1),r.lastOpeningBracketAt!==null&&r.lastOpeningBracketAt<a&&_!==J&&(r.onlyPlausible===void 0&&((C(_)||v)&&!r.slashPresent?r.onlyPlausible=!0:r.onlyPlausible=!1),!C(_)&&r.nameStarts===void 0&&!v&&_!==J&&!b&&_!==yr&&(_>96&&_<123||_>64&&_<91||_===45||_===63||_===95?(r.nameStarts=a,r.nameContainsLetters=!1):(m(),O()))),r.nameStarts&&!r.quotes&&lt(_,e,a)&&(r.nameContainsLetters=!0),b&&(dr(r,e,a)||r.quotes.value&&typeof r.lastOpeningBracketAt=="number"&&ut(r.quotes.value,e.slice(r.lastOpeningBracketAt,a))%2===1&&!e.slice(r.lastOpeningBracketAt+1,a).includes("<")&&!e.slice(r.lastOpeningBracketAt+1,a).includes(">"))&&r.lastOpeningBracketAt!==void 0&&(r.lastClosingBracketAt=a,Q=null,Object.keys(u).length&&(r.attributes.push(u),O()),g.dumpLinkHrefsNearby?.enabled&&S.tagName&&!S.openingTagEnds&&(S.openingTagEnds=a)),(!H||_===_e)&&r.lastOpeningBracketAt!==void 0){if(r.lastClosingBracketAt===void 0){if(r.lastOpeningBracketAt<a&&!v&&(e[a+1]===void 0||te(a+1)&&!r?.quotes?.value)&&r.nameContainsLetters&&typeof r.nameStarts=="number"){let h=!1;if(r.nameEnds??=a+1,r.name=e.slice(r.nameStarts,r.nameEnds).toLowerCase(),(!i.length||i[i.length-1][0]!==r.lastOpeningBracketAt)&&i.push([r.lastOpeningBracketAt,a+1]),Ke&&tr(a,"incomplete",a+1))continue;if((ye.has(r.name)||je.has(r.name))&&(r.onlyPlausible===!1||r.onlyPlausible===!0&&r.attributes.length)||e[a+1]===void 0&&r.onlyPlausible!==!0){Te(g);let y=re(e,a,r.leftOuterWhitespace,a+1,r.lastOpeningBracketAt,r.lastClosingBracketAt);F&&r.name?.length===6&&p(r)==="script"&&r.slashPresent&&(F=!1);let d;y===null||R===null?d=null:d=`${y}${R}${y}`,I(r,[r.leftOuterWhitespace,a+1,d],"tag","incomplete",r.lastOpeningBracketAt,a+1),h=!0,ke(),fe(a,g)}h?Re():(P=r.onlyPlausible===!1?P??r.leftOuterWhitespace:null,De())}}else if(a>r.lastClosingBracketAt&&!C(_)||e[a+1]===void 0||g.ignoreIndentations&&`\r
60
+ `.includes(e[a])){let h=r.lastClosingBracketAt===a?a+1:a;if(g.trimOnlySpaces&&h===ne-1&&Q!==null&&Q<a&&(h=Q),(!i.length||i[i.length-1][0]!==r.lastOpeningBracketAt)&&i.push([r.lastOpeningBracketAt,r.lastClosingBracketAt+1]),!(Ke&&tr(a,"complete",r.lastClosingBracketAt+1)))if(!r.onlyPlausible||r.attributes.length===0&&r.name&&(ye.has(p(r))||je.has(p(r)))||r.attributes?.some(y=>y.equalsAt)){let y=re(e,a,r.leftOuterWhitespace,h,r.lastOpeningBracketAt,r.lastClosingBracketAt);R="",K=!1,Te(g,h);let d;typeof R=="string"&&R.length?(d=`${y}${R}${y===`
61
+
62
+ `?`
63
+ `:y}`,h===r.lastClosingBracketAt+1&&(!e[h]||!Ue.has(e[h]))&&(d+=" "),r.leftOuterWhitespace===r.lastOpeningBracketAt&&E.last()&&E.last()[1]<Qe(r.lastOpeningBracketAt)&&(!g?.dumpLinkHrefsNearby?.putOnNewLine||!Ue.has(e[h]))&&(d=` ${d}`)):d=y,d!==null&&(r.leftOuterWhitespace===0||!M(e,h-1))&&(!g.dumpLinkHrefsNearby?.enabled||p(r)!=="a")&&(d=void 0);let x=0;if(K&&Ue.has(e[h])){g.dumpLinkHrefsNearby?.putOnNewLine&&(d=`${e[h]}${d||""}`);let L=M(e,h);L&&d?.endsWith(`
64
+ `)?x+=L-a:(!L||L>a)&&x++}I(r,[r.leftOuterWhitespace,h+x,d],"tag","complete",r.lastOpeningBracketAt,r.lastClosingBracketAt+1),ke(),fe(a,g),P=null}else r={},P=null;b||(r={})}H&&(H=!1)}if((!F||_===Y&&Er(a))&&v&&!te(a-1)&&!`'"`.includes(e[a+1])&&(!`'"`.includes(e[a+2])||/\w/.test(e[a+1]))&&!(e[a+1]==="c"&&e[a+2]===":")&&!(e[a+1]==="f"&&e[a+2]==="m"&&e[a+3]==="t"&&e[a+4]===":")&&!(e[a+1]==="s"&&e[a+2]==="q"&&e[a+3]==="l"&&e[a+4]===":")&&!(e[a+1]==="x"&&e[a+2]===":")&&!(e[a+1]==="f"&&e[a+2]==="n"&&e[a+3]===":")&&dr(r,e,a)){if(qe(M(e,a)))continue;if(r.nameEnds&&r.nameEnds<a&&!r.lastClosingBracketAt&&(r.onlyPlausible===!0&&r.attributes?.length||r.onlyPlausible===!1)){let h=re(e,a,r.leftOuterWhitespace,a,r.lastOpeningBracketAt,a);I(r,[r.leftOuterWhitespace,a,h],"tag","incomplete",r.lastOpeningBracketAt,a),fe(a,g),Re()}if(r.lastOpeningBracketAt!==void 0&&r.onlyPlausible&&r.name&&!r.quotes&&(r.lastOpeningBracketAt=void 0,r.name=void 0,r.onlyPlausible=!1),(r.lastOpeningBracketAt===void 0||!r.onlyPlausible)&&!r.quotes&&(r.lastOpeningBracketAt=a,r.slashPresent=!1,r.attributes=[],A===null?r.leftOuterWhitespace=a:g.trimOnlySpaces&&A===0?r.leftOuterWhitespace=T||a:r.leftOuterWhitespace=A,P!==null&&(r.leftOuterWhitespace=P),e.startsWith("!--",a+1)||e.startsWith("![CDATA[",a+1))){let h=!0;e[a+2]==="-"&&(h=!1);let y;for(let d=a;d<ne;d++)if(g.reportProgressFunc&&$e(d),d>1&&(!y&&h&&e.startsWith("]]>",d-2)||!h&&e.startsWith("-->",d-2))&&(y=d),y&&(y<d&&!C(e.charCodeAt(d))||e[d+1]===void 0)){let x=d;(e[d+1]===void 0&&C(e.charCodeAt(d))||e[d]===">")&&(x+=1),(!i.length||i[i.length-1][0]!==r.lastOpeningBracketAt)&&i.push([r.lastOpeningBracketAt,y+1]);let L=re(e,d,r.leftOuterWhitespace,x,r.lastOpeningBracketAt,y);I(r,[r.leftOuterWhitespace,x,L],h?"cdata":"comment",void 0,r.lastOpeningBracketAt,y+1),P=null,a=d-1,e[d]===">"&&(a=d),_=e.charCodeAt(a),v=te(a),b=qe(a),r={},O();break}}}if(C(_)||_===847)A===null&&(A=a,r.lastOpeningBracketAt!==void 0&&r.lastOpeningBracketAt<a&&r.nameStarts&&r.nameStarts<r.lastOpeningBracketAt&&a===r.lastOpeningBracketAt+1&&!s.some(h=>p(h)===p(r))&&(r.onlyPlausible=!0,r.name=void 0,r.nameStarts=void 0)),(_===10||_===13)&&(q=a,f&&(f=!1));else if(A!==null&&(!r.quotes&&u.valueStarts===void 0&&u.equalsAt>A-1&&u.nameEnds&&u.equalsAt>u.nameEnds&&_!==ce&&_!==Ve&&_!==ze&&(pe(u)&&r.attributes.push(u),O(),r.equalsSpottedAt=void 0),A=null),!f&&(f=!0,X&&!F&&typeof q=="number"&&a&&q<a-1)){if(e.slice(q+1,a).trim())q=null;else if(!g.ignoreIndentations){let h=E.last(),y=$?Ge([q+1,a],e,$):[q+1,a];(!h||h[0]>y[0]||h[1]!==y[1])&&E.push(y)}}_===mr?T===null&&(T=a):T!==null&&(T=null),r.name?.length===6&&p(r)==="script"&&(F=!r.slashPresent)}if(e&&!g.ignoreIndentations&&(g.trimOnlySpaces&&e[0]===" "||!g.trimOnlySpaces&&C(e.charCodeAt(0))))for(let a=0;a<ne;a++)if(g.trimOnlySpaces&&e[a]!==" "||!g.trimOnlySpaces&&!C(e.charCodeAt(a))){Le([0,a]);break}else e[a+1]||Le([0,a+1]);if(e&&(g.trimOnlySpaces&&e[~-e.length]===" "||!g.trimOnlySpaces&&C(e.charCodeAt(~-e.length)))){for(let a=e.length;a--;)if(g.trimOnlySpaces&&e[a]!==" "||!g.trimOnlySpaces&&!C(e.charCodeAt(a))){Le([a+1,ne]);break}}let j=E.current();if((!Oe||Se)&&j){if(j[0]&&!j[0][0]){j[0][1];let a=E.ranges?.[0]?.[2];E.ranges[0]=[E.ranges[0][0],E.ranges[0][1]],a?.trim()&&E.ranges[0].push(a)}if(j[j.length-1]?.[1]===G.length&&(j[j.length-1][0],E.ranges)){let a=E.ranges[E.ranges.length-1][0];G[a-1]&&(g.trimOnlySpaces&&G[a-1]===" "||!g.trimOnlySpaces&&C(G.charCodeAt(a-1)))&&(a-=1);let _=E.ranges[E.ranges.length-1][2];E.ranges[E.ranges.length-1]=[a,E.ranges[E.ranges.length-1][1]],_?.trim()&&E.ranges[E.ranges.length-1].push(_.trimRight())}}let Be=bt(oe,E.current()),nr=$?vt(i,e,$):i;return{log:{timeTakenInMilliseconds:Date.now()-n},result:_r(G,Be),ranges:Be,allTagLocations:nr,filteredTagLocations:wt(nr,Be)}}function ft(e){let t=/&(?:#?[^;\W]+;)+/g,n=[],s;for(s=t.exec(e);s;s=t.exec(e)){let l=s[0],i=ur(l,{requireSemicolon:!0});for(;l!==i;)l=i,i=ur(l,{requireSemicolon:!0});l!==s[0]&&n.push([s.index,s.index+s[0].length,l])}return n.length?n:null}function dt(e,t,n){if(!n)return[{decodedFrom:0,decodedTo:t.length,originalFrom:0,originalTo:e.length,replacement:!1}];let s=[],l=0,i=0;return n.forEach(([r,o,c])=>{if(l<r){let p=r-l;s.push({decodedFrom:i,decodedTo:i+p,originalFrom:l,originalTo:r,replacement:!1}),i+=p}let m=c||"";s.push({decodedFrom:i,decodedTo:i+m.length,originalFrom:r,originalTo:o,replacement:!0}),i+=m.length,l=o}),l<e.length&&s.push({decodedFrom:i,decodedTo:t.length,originalFrom:l,originalTo:e.length,replacement:!1}),s}function N(e,t,n){let s=0,l=n.length-1,i;for(;s<=l;){let r=s+l>>1,o=n[r];if(e<o.decodedFrom)l=r-1;else if(e>=o.decodedTo)s=r+1;else{i=o;break}}return i?i.replacement?{idx:i.originalFrom,prefix:t.slice(i.decodedFrom,e),segment:i}:{idx:i.originalFrom+e-i.decodedFrom,prefix:"",segment:i}:{idx:n.length?n[n.length-1].originalTo:0,prefix:"",segment:void 0}}function V(e,t,n){if(!e)return{idx:0,suffix:"",segment:void 0};let s=0,l=n.length-1,i;for(;s<=l;){let r=s+l>>1,o=n[r];if(e<=o.decodedFrom)l=r-1;else if(e>o.decodedTo)s=r+1;else{i=o;break}}return i?i.replacement?{idx:i.originalTo,suffix:t.slice(e,i.decodedTo),segment:i}:{idx:i.originalFrom+e-i.decodedFrom,suffix:"",segment:i}:{idx:n.length?n[n.length-1].originalTo:0,suffix:"",segment:void 0}}function Ge(e,t,n){let[s,l,i]=e,r=N(s,t,n),o=V(l,t,n),c=e.length===3;if(r.prefix||o.suffix){let m=`${r.prefix}${i||""}${o.suffix}`;return m?[r.idx,o.idx,m]:c?[r.idx,o.idx,i]:[r.idx,o.idx]}return c?[r.idx,o.idx,i]:[r.idx,o.idx]}function ht(e,t,n){let s={};return typeof e.nameStarts=="number"&&(s.nameStarts=N(e.nameStarts,t,n).idx),typeof e.nameEnds=="number"&&(s.nameEnds=V(e.nameEnds,t,n).idx),typeof e.equalsAt=="number"&&(s.equalsAt=N(e.equalsAt,t,n).idx),typeof e.name=="string"&&(s.name=e.name),typeof e.valueStarts=="number"&&(s.valueStarts=N(e.valueStarts,t,n).idx),typeof e.valueEnds=="number"&&(s.valueEnds=V(e.valueEnds,t,n).idx),typeof e.value=="string"&&(s.value=e.value),s}function mt(e,t,n,s,l,i,r){let o=N(s,i,r).idx,c=V(l,i,r).idx;if(t!=="tag")return{kind:t,start:o,end:c};let m=typeof e.name=="string"?e.name:typeof e.nameStarts=="number"&&typeof e.nameEnds=="number"?i.slice(e.nameStarts,e.nameEnds):"",p=typeof e.nameStarts=="number"?N(e.nameStarts,i,r).idx:o,A=typeof e.nameEnds=="number"?V(e.nameEnds,i,r).idx:p+m.length,T=typeof e.nameContainsLetters=="boolean"?e.nameContainsLetters:/[A-Za-z]/.test(m);if(n==="inferred")return{kind:"tag",status:"inferred",start:o,end:c,nameStarts:p,nameContainsLetters:T,nameEnds:A,name:m};let q={kind:"tag",start:o,end:c,attributes:Array.isArray(e.attributes)?e.attributes.map(k=>ht(k,i,r)):[],slashPresent:typeof e.slashPresent=="number"?N(e.slashPresent,i,r).idx:!1,leftOuterWhitespace:typeof e.leftOuterWhitespace=="number"?N(e.leftOuterWhitespace,i,r).idx:o,onlyPlausible:typeof e.onlyPlausible=="boolean"?e.onlyPlausible:!1,nameStarts:p,nameContainsLetters:T,nameEnds:A,name:m},f=typeof e.lastOpeningBracketAt=="number"?N(e.lastOpeningBracketAt,i,r).idx:o;if(n==="incomplete")return{...q,status:"incomplete",lastOpeningBracketAt:f};let u=typeof e.lastClosingBracketAt=="number"?V(e.lastClosingBracketAt+1,i,r).idx-1:c-1;return{...q,status:"complete",lastOpeningBracketAt:f,lastClosingBracketAt:u}}function yt(e){let t=[...e].sort((s,l)=>s[0]-l[0]||s[1]-l[1]),n=[];return t.forEach(s=>{let l=n.length?n[n.length-1]:void 0;if(l&&l[1]===s[0]){let i=`${l[2]||""}${s[2]||""}`;l[1]=s[1],i?l[2]=i:l.length=2}else n.push([...s])}),n.length?n:null}function bt(e,t){if(!e)return t;let n=t||[],s=e.filter(([l,i])=>!n.some(([r,o])=>r<i&&o>l));return yt([...s,...n])}function vt(e,t,n){return e.map(([s,l])=>[N(s,t,n).idx,V(l,t,n).idx])}function wt(e,t){if(!t)return[];let n=[],s=0;for(let l=0;l<e.length;l++){let i=e[l],r=i[0],o=i[1];for(;s<t.length&&t[s][1]<=r;)s+=1;let c=s,m=r;for(;c<t.length&&t[c][0]<=m;){if(m=Math.max(m,t[c][1]),m>=o){n.push(i);break}c+=1}}return n}function kr(){return new tt({limitToBeAddedWhitespace:!0,limitLinebreaksCount:2})}function At(e){return e?e.map(t=>[...t]):null}function Tt(e,t){return e===null||t===null?e===t:e.length===t.length&&e.every((n,s)=>n.length===t[s].length&&n.every((l,i)=>l===t[s][i]))}function qt(e,t){let n=kr();return e?.forEach(s=>{n.push([...s])}),t&&n.push([...t]),n.current()}function kt(e){let t="",n=0;for(let s=0;s<e.length;s++){let l=e.charCodeAt(s);l>64&&l<91&&(t+=`${e.slice(n,s)}${String.fromCharCode(l+32)}`,n=s+1)}return n?t+e.slice(n):e}export{br as defaults,gt as stripHtml,Ot as version};
package/dist/strip.d.ts CHANGED
@@ -2,38 +2,72 @@ import { Ranges as Ranges$1 } from 'ranges-push';
2
2
  type Range = [from: number, to: number] | [from: number, to: number, whatToInsert: string | null | undefined];
3
3
  type Ranges = Range[] | null;
4
4
  interface Attribute {
5
- nameStarts: number;
6
- nameEnds: number;
7
- equalsAt?: number;
8
- name: string;
9
- valueStarts?: number;
10
- valueEnds?: number;
11
- value?: string;
5
+ readonly nameStarts?: number;
6
+ readonly nameEnds?: number;
7
+ readonly equalsAt?: number;
8
+ readonly name?: string;
9
+ readonly valueStarts?: number;
10
+ readonly valueEnds?: number;
11
+ readonly value?: string;
12
12
  }
13
- interface Tag {
14
- attributes: Attribute[];
15
- lastClosingBracketAt: number;
16
- lastOpeningBracketAt: number;
17
- slashPresent: number;
18
- leftOuterWhitespace: number;
19
- onlyPlausible: boolean;
20
- nameStarts: number;
21
- nameContainsLetters: boolean;
22
- nameEnds: number;
23
- name: string;
13
+ interface TokenBase {
14
+ readonly start: number;
15
+ readonly end: number;
24
16
  }
17
+ interface NamedTagBase extends TokenBase {
18
+ readonly kind: "tag";
19
+ readonly attributes: readonly Attribute[];
20
+ readonly slashPresent: number | false;
21
+ readonly leftOuterWhitespace: number;
22
+ readonly onlyPlausible: boolean;
23
+ readonly nameStarts: number;
24
+ readonly nameContainsLetters: boolean;
25
+ readonly nameEnds: number;
26
+ readonly name: string;
27
+ }
28
+ interface CompleteTag extends NamedTagBase {
29
+ readonly status: "complete";
30
+ readonly lastClosingBracketAt: number;
31
+ readonly lastOpeningBracketAt: number;
32
+ }
33
+ interface IncompleteTag extends NamedTagBase {
34
+ readonly status: "incomplete";
35
+ readonly lastClosingBracketAt?: never;
36
+ readonly lastOpeningBracketAt: number;
37
+ }
38
+ interface InferredTag extends TokenBase {
39
+ readonly kind: "tag";
40
+ readonly status: "inferred";
41
+ readonly nameStarts: number;
42
+ readonly nameContainsLetters: boolean;
43
+ readonly nameEnds: number;
44
+ readonly name: string;
45
+ }
46
+ interface CommentTag extends TokenBase {
47
+ readonly kind: "comment";
48
+ }
49
+ interface CdataTag extends TokenBase {
50
+ readonly kind: "cdata";
51
+ }
52
+ type CallbackToken = CompleteTag | IncompleteTag | InferredTag | CommentTag | CdataTag;
53
+ type Tag = CallbackToken;
54
+ type CallbackRange = readonly [from: number, to: number, whatToInsert: string | null | undefined];
25
55
  interface CbObj {
26
- tag: Tag;
27
- deleteFrom: null | number;
28
- deleteTo: null | number;
29
- insert: null | undefined | string;
30
- rangesArr: Ranges$1;
31
- proposedReturn: Range | null;
56
+ readonly tag: Tag;
57
+ readonly deleteFrom: null | number;
58
+ readonly deleteTo: null | number;
59
+ readonly insert: null | undefined | string;
60
+ readonly rangesArr: Ranges$1;
61
+ readonly proposedReturn: CallbackRange | null;
32
62
  }
33
63
  interface Opts {
64
+ /** HTML and custom/XML-looking tag names match case-insensitively. */
34
65
  ignoreTags: string[];
66
+ /** HTML and custom/XML-looking tag names match case-insensitively. */
35
67
  ignoreTagsWithTheirContents: string[];
68
+ /** HTML and custom/XML-looking tag names match case-insensitively. */
36
69
  onlyStripTags: string[];
70
+ /** HTML and custom/XML-looking tag names match case-insensitively. */
37
71
  stripTogetherWithTheirContents: string[];
38
72
  skipHtmlDecoding: boolean;
39
73
  trimOnlySpaces: boolean;
@@ -52,12 +86,14 @@ interface Opts {
52
86
  }
53
87
  declare const defaults: Opts;
54
88
  interface Res {
89
+ /** Best-effort elapsed time for user-facing completion feedback. */
55
90
  log: {
56
91
  timeTakenInMilliseconds: number;
57
92
  };
58
93
  result: string;
59
94
  ranges: Ranges;
60
95
  allTagLocations: [number, number][];
96
+ /** Original tag spans fully consumed by the returned ranges. */
61
97
  filteredTagLocations: [number, number][];
62
98
  }
63
99
  /**
package/dist/strip.js CHANGED
@@ -1 +1 @@
1
- import{stripHtml as l,defaults as p}from"./packem_shared/stripHtml-BuSkjEyH.js";export{l as stripHtml,p as stripHtmlDefaultOptions};
1
+ import{stripHtml as l,defaults as p}from"./packem_shared/stripHtml-DQfmQ2o_.js";export{l as stripHtml,p as stripHtmlDefaultOptions};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@visulima/html",
3
- "version": "1.0.9",
3
+ "version": "1.0.11",
4
4
  "description": "Functions for HTML, such as escaping or unescaping HTML entities",
5
5
  "keywords": [
6
6
  "css",
@@ -1,27 +0,0 @@
1
- import{g as Qe}from"./_commonjsHelpers-CqkleIqs.js";import{decode as Ae}from"./decode-DCH9idAU.js";var ae,we;function et(){if(we)return ae;we=1,ae=r;function e(a){return a instanceof Buffer?Buffer.from(a):new a.constructor(a.buffer.slice(),a.byteOffset,a.length)}function r(a){if(a=a||{},a.circles)return o(a);const g=new Map;if(g.set(Date,i=>new Date(i)),g.set(Map,(i,b)=>new Map(u(Array.from(i),b))),g.set(Set,(i,b)=>new Set(u(Array.from(i),b))),a.constructorHandlers)for(const i of a.constructorHandlers)g.set(i[0],i[1]);let s=null;return a.proto?y:t;function u(i,b){const h=Object.keys(i),p=new Array(h.length);for(let l=0;l<h.length;l++){const O=h[l],w=i[O];typeof w!="object"||w===null?p[O]=w:w.constructor!==Object&&(s=g.get(w.constructor))?p[O]=s(w,b):ArrayBuffer.isView(w)?p[O]=e(w):p[O]=b(w)}return p}function t(i){if(typeof i!="object"||i===null)return i;if(Array.isArray(i))return u(i,t);if(i.constructor!==Object&&(s=g.get(i.constructor)))return s(i,t);const b={};for(const h in i){if(Object.hasOwnProperty.call(i,h)===!1)continue;const p=i[h];typeof p!="object"||p===null?b[h]=p:p.constructor!==Object&&(s=g.get(p.constructor))?b[h]=s(p,t):ArrayBuffer.isView(p)?b[h]=e(p):b[h]=t(p)}return b}function y(i){if(typeof i!="object"||i===null)return i;if(Array.isArray(i))return u(i,y);if(i.constructor!==Object&&(s=g.get(i.constructor)))return s(i,y);const b={};for(const h in i){const p=i[h];typeof p!="object"||p===null?b[h]=p:p.constructor!==Object&&(s=g.get(p.constructor))?b[h]=s(p,y):ArrayBuffer.isView(p)?b[h]=e(p):b[h]=y(p)}return b}}function o(a){const g=[],s=[],u=new Map;if(u.set(Date,h=>new Date(h)),u.set(Map,(h,p)=>new Map(y(Array.from(h),p))),u.set(Set,(h,p)=>new Set(y(Array.from(h),p))),a.constructorHandlers)for(const h of a.constructorHandlers)u.set(h[0],h[1]);let t=null;return a.proto?b:i;function y(h,p){const l=Object.keys(h),O=new Array(l.length);for(let w=0;w<l.length;w++){const $=l[w],S=h[$];if(typeof S!="object"||S===null)O[$]=S;else if(S.constructor!==Object&&(t=u.get(S.constructor)))O[$]=t(S,p);else if(ArrayBuffer.isView(S))O[$]=e(S);else{const C=g.indexOf(S);C!==-1?O[$]=s[C]:O[$]=p(S)}}return O}function i(h){if(typeof h!="object"||h===null)return h;if(Array.isArray(h))return y(h,i);if(h.constructor!==Object&&(t=u.get(h.constructor)))return t(h,i);const p={};g.push(h),s.push(p);for(const l in h){if(Object.hasOwnProperty.call(h,l)===!1)continue;const O=h[l];if(typeof O!="object"||O===null)p[l]=O;else if(O.constructor!==Object&&(t=u.get(O.constructor)))p[l]=t(O,i);else if(ArrayBuffer.isView(O))p[l]=e(O);else{const w=g.indexOf(O);w!==-1?p[l]=s[w]:p[l]=i(O)}}return g.pop(),s.pop(),p}function b(h){if(typeof h!="object"||h===null)return h;if(Array.isArray(h))return y(h,b);if(h.constructor!==Object&&(t=u.get(h.constructor)))return t(h,b);const p={};g.push(h),s.push(p);for(const l in h){const O=h[l];if(typeof O!="object"||O===null)p[l]=O;else if(O.constructor!==Object&&(t=u.get(O.constructor)))p[l]=t(O,b);else if(ArrayBuffer.isView(O))p[l]=e(O);else{const w=g.indexOf(O);w!==-1?p[l]=s[w]:p[l]=b(O)}}return g.pop(),s.pop(),p}}return ae}var tt=et();const Pe=Qe(tt);Pe();function ce(e){if(e==null||typeof e!="object")return!1;let r=Object.getPrototypeOf(e);return r!==null&&r!==Object.prototype&&Object.getPrototypeOf(r)!==null?!1:!(Symbol.iterator in e)&&!(Symbol.toStringTag in e)}function D(e){return typeof e=="string"}function rt(e){return Number.isFinite(e)}function x(e){return Number.isSafeInteger(e)&&e>=0}function W(e){return e!=null}function nt(e,r){return ce(e)&&D(r)&&r in e}var st=typeof global=="object"&&global&&global.Object===Object&&global,at=typeof self=="object"&&self&&self.Object===Object&&self,he=st||at||Function("return this")(),L=he.Symbol,qe=Object.prototype,it=qe.hasOwnProperty,ot=qe.toString,V=L?L.toStringTag:void 0;function lt(e){var r=it.call(e,V),o=e[V];try{e[V]=void 0;var a=!0}catch{}var g=ot.call(e);return a&&(r?e[V]=o:delete e[V]),g}var ut=Object.prototype,gt=ut.toString;function ct(e){return gt.call(e)}var ft="[object Null]",pt="[object Undefined]",_e=L?L.toStringTag:void 0;function xe(e){return e==null?e===void 0?pt:ft:_e&&_e in Object(e)?lt(e):ct(e)}function De(e){return e!=null&&typeof e=="object"}var ht="[object Symbol]";function dt(e){return typeof e=="symbol"||De(e)&&xe(e)==ht}function mt(e,r){for(var o=-1,a=e==null?0:e.length,g=Array(a);++o<a;)g[o]=r(e[o],o,e);return g}var yt=Array.isArray,Se=L?L.prototype:void 0,$e=Se?Se.toString:void 0;function de(e){if(typeof e=="string")return e;if(yt(e))return mt(e,de)+"";if(dt(e))return $e?$e.call(e):"";var r=e+"";return r=="0"&&1/e==-1/0?"-0":r}var bt=/\s/;function Ot(e){for(var r=e.length;r--&&bt.test(e.charAt(r)););return r}var Tt=/^\s+/;function vt(e){return e&&e.slice(0,Ot(e)+1).replace(Tt,"")}function Le(e){var r=typeof e;return e!=null&&(r=="object"||r=="function")}function Me(e){return e}var At="[object AsyncFunction]",wt="[object Function]",_t="[object GeneratorFunction]",St="[object Proxy]";function Je(e){if(!Le(e))return!1;var r=xe(e);return r==wt||r==_t||r==At||r==St}var ie=he["__core-js_shared__"],ke=(function(){var e=/[^.]+$/.exec(ie&&ie.keys&&ie.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""})();function $t(e){return!!ke&&ke in e}var kt=Function.prototype,Et=kt.toString;function Ct(e){if(e!=null){try{return Et.call(e)}catch{}try{return e+""}catch{}}return""}var jt=/[\\^$.*+?()[\]{}|]/g,Rt=/^\[object .+?Constructor\]$/,Nt=Function.prototype,Ft=Object.prototype,Ht=Nt.toString,Wt=Ft.hasOwnProperty,It=RegExp("^"+Ht.call(Wt).replace(jt,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function Bt(e){if(!Le(e)||$t(e))return!1;var r=Je(e)?It:Rt;return r.test(Ct(e))}function Pt(e,r){return e?.[r]}function me(e,r){var o=Pt(e,r);return Bt(o)?o:void 0}function qt(e,r,o){switch(o.length){case 0:return e.call(r);case 1:return e.call(r,o[0]);case 2:return e.call(r,o[0],o[1]);case 3:return e.call(r,o[0],o[1],o[2])}return e.apply(r,o)}var xt=800,Dt=16,Lt=Date.now;function Mt(e){var r=0,o=0;return function(){var a=Lt(),g=Dt-(a-o);if(o=a,g>0){if(++r>=xt)return arguments[0]}else r=0;return e.apply(void 0,arguments)}}function Jt(e){return function(){return e}}var Ee=(function(){try{var e=me(Object,"defineProperty");return e({},"",{}),e}catch{}})(),zt=Ee?function(e,r){return Ee(e,"toString",{configurable:!0,enumerable:!1,value:Jt(r),writable:!0})}:Me,Vt=Mt(zt);function Gt(e,r,o,a){for(var g=e.length,s=o+-1;++s<g;)if(r(e[s],s,e))return s;return-1}function Ut(e){return e!==e}function Zt(e,r,o){for(var a=o-1,g=e.length;++a<g;)if(e[a]===r)return a;return-1}function ye(e,r,o){return r===r?Zt(e,r,o):Gt(e,Ut,o)}function Kt(e,r){var o=e==null?0:e.length;return!!o&&ye(e,r,0)>-1}function Xt(e,r){return e===r||e!==e&&r!==r}var Ce=Math.max;function Yt(e,r,o){return r=Ce(r===void 0?e.length-1:r,0),function(){for(var a=arguments,g=-1,s=Ce(a.length-r,0),u=Array(s);++g<s;)u[g]=a[r+g];g=-1;for(var t=Array(r+1);++g<r;)t[g]=a[g];return t[r]=o(u),qt(e,this,t)}}function Qt(e,r){return Vt(Yt(e,r,Me),e+"")}var er=9007199254740991;function tr(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=er}function rr(e){return e!=null&&tr(e.length)&&!Je(e)}var U=me(Object,"create");function nr(){this.__data__=U?U(null):{},this.size=0}function sr(e){var r=this.has(e)&&delete this.__data__[e];return this.size-=r?1:0,r}var ar="__lodash_hash_undefined__",ir=Object.prototype,or=ir.hasOwnProperty;function lr(e){var r=this.__data__;if(U){var o=r[e];return o===ar?void 0:o}return or.call(r,e)?r[e]:void 0}var ur=Object.prototype,gr=ur.hasOwnProperty;function cr(e){var r=this.__data__;return U?r[e]!==void 0:gr.call(r,e)}var fr="__lodash_hash_undefined__";function pr(e,r){var o=this.__data__;return this.size+=this.has(e)?0:1,o[e]=U&&r===void 0?fr:r,this}function B(e){var r=-1,o=e==null?0:e.length;for(this.clear();++r<o;){var a=e[r];this.set(a[0],a[1])}}B.prototype.clear=nr;B.prototype.delete=sr;B.prototype.get=lr;B.prototype.has=cr;B.prototype.set=pr;function hr(){this.__data__=[],this.size=0}function ee(e,r){for(var o=e.length;o--;)if(Xt(e[o][0],r))return o;return-1}var dr=Array.prototype,mr=dr.splice;function yr(e){var r=this.__data__,o=ee(r,e);if(o<0)return!1;var a=r.length-1;return o==a?r.pop():mr.call(r,o,1),--this.size,!0}function br(e){var r=this.__data__,o=ee(r,e);return o<0?void 0:r[o][1]}function Or(e){return ee(this.__data__,e)>-1}function Tr(e,r){var o=this.__data__,a=ee(o,e);return a<0?(++this.size,o.push([e,r])):o[a][1]=r,this}function M(e){var r=-1,o=e==null?0:e.length;for(this.clear();++r<o;){var a=e[r];this.set(a[0],a[1])}}M.prototype.clear=hr;M.prototype.delete=yr;M.prototype.get=br;M.prototype.has=Or;M.prototype.set=Tr;var vr=me(he,"Map");function Ar(){this.size=0,this.__data__={hash:new B,map:new(vr||M),string:new B}}function wr(e){var r=typeof e;return r=="string"||r=="number"||r=="symbol"||r=="boolean"?e!=="__proto__":e===null}function te(e,r){var o=e.__data__;return wr(r)?o[typeof r=="string"?"string":"hash"]:o.map}function _r(e){var r=te(this,e).delete(e);return this.size-=r?1:0,r}function Sr(e){return te(this,e).get(e)}function $r(e){return te(this,e).has(e)}function kr(e,r){var o=te(this,e),a=o.size;return o.set(e,r),this.size+=o.size==a?0:1,this}function J(e){var r=-1,o=e==null?0:e.length;for(this.clear();++r<o;){var a=e[r];this.set(a[0],a[1])}}J.prototype.clear=Ar;J.prototype.delete=_r;J.prototype.get=Sr;J.prototype.has=$r;J.prototype.set=kr;function Er(e){return e==null?"":de(e)}function Cr(e,r,o){var a=-1,g=e.length;r<0&&(r=-r>g?0:g+r),o=o>g?g:o,o<0&&(o+=g),g=r>o?0:o-r>>>0,r>>>=0;for(var s=Array(g);++a<g;)s[a]=e[a+r];return s}function jr(e,r,o){var a=e.length;return o=o===void 0?a:o,!r&&o>=a?e:Cr(e,r,o)}var Rr="\\ud800-\\udfff",Nr="\\u0300-\\u036f",Fr="\\ufe20-\\ufe2f",Hr="\\u20d0-\\u20ff",Wr=Nr+Fr+Hr,Ir="\\ufe0e\\ufe0f",Br="\\u200d",Pr=RegExp("["+Br+Rr+Wr+Ir+"]");function qr(e){return Pr.test(e)}function xr(e){return e.split("")}var ze="\\ud800-\\udfff",Dr="\\u0300-\\u036f",Lr="\\ufe20-\\ufe2f",Mr="\\u20d0-\\u20ff",Jr=Dr+Lr+Mr,zr="\\ufe0e\\ufe0f",Vr="["+ze+"]",fe="["+Jr+"]",pe="\\ud83c[\\udffb-\\udfff]",Gr="(?:"+fe+"|"+pe+")",Ve="[^"+ze+"]",Ge="(?:\\ud83c[\\udde6-\\uddff]){2}",Ue="[\\ud800-\\udbff][\\udc00-\\udfff]",Ur="\\u200d",Ze=Gr+"?",Ke="["+zr+"]?",Zr="(?:"+Ur+"(?:"+[Ve,Ge,Ue].join("|")+")"+Ke+Ze+")*",Kr=Ke+Ze+Zr,Xr="(?:"+[Ve+fe+"?",fe,Ge,Ue,Vr].join("|")+")",Yr=RegExp(pe+"(?="+pe+")|"+Xr+Kr,"g");function Qr(e){return e.match(Yr)||[]}function je(e){return qr(e)?Qr(e):xr(e)}var en="__lodash_hash_undefined__";function tn(e){return this.__data__.set(e,en),this}function rn(e){return this.__data__.has(e)}function Y(e){var r=-1,o=e==null?0:e.length;for(this.__data__=new J;++r<o;)this.add(e[r])}Y.prototype.add=Y.prototype.push=tn;Y.prototype.has=rn;function nn(e,r){return e.has(r)}function sn(e){return De(e)&&rr(e)}var an=200;function on(e,r,o,a){var g=-1,s=Kt,u=!0,t=e.length,y=[],i=r.length;if(!t)return y;r.length>=an&&(s=nn,u=!1,r=new Y(r));e:for(;++g<t;){var b=e[g],h=b;if(b=b!==0?b:0,u&&h===h){for(var p=i;p--;)if(r[p]===h)continue e;y.push(b)}else s(r,h,a)||y.push(b)}return y}function ln(e,r){for(var o=e.length;o--&&ye(r,e[o],0)>-1;);return o}function un(e,r){for(var o=-1,a=e.length;++o<a&&ye(r,e[o],0)>-1;);return o}function Re(e,r,o){if(e=Er(e),e&&r===void 0)return vt(e);if(!e||!(r=de(r)))return e;var a=je(e),g=je(r),s=un(a,g),u=ln(a,g)+1;return jr(a,s,u).join("")}var gn=Qt(function(e,r){return sn(e)?on(e,r):[]}),cn={strictlyTwoElementsInRangeArrays:!1,progressFn:null};function Q(e,r){if(!Array.isArray(e)||!e.length)return e;let o={...cn,...r},a,g;if(o.strictlyTwoElementsInRangeArrays&&!e.every((t,y)=>!Array.isArray(t)||t.length!==2?(a=y,g=t.length,!1):!0))throw new TypeError(`ranges-sort: [THROW_ID_03] The first argument should be an array and must consist of arrays which are natural number indexes representing TWO string index ranges. However, ${a}th range (${JSON.stringify(e[a],null,4)}) has not two but ${g} elements!`);if(!e.every((t,y)=>!Array.isArray(t)||!Number.isInteger(t[0])||t[0]<0||!Number.isInteger(t[1])||t[1]<0?(a=y,!1):!0))throw new TypeError(`ranges-sort: [THROW_ID_04] The first argument should be an array and must consist of arrays which are natural number indexes representing string index ranges. However, ${a}th range (${JSON.stringify(e[a],null,4)}) does not consist of only natural numbers!`);let s=e.length**2,u=0;return Array.from(e).sort((t,y)=>(o.progressFn&&(u+=1,o.progressFn(Math.floor(u*100/s))),t[0]===y[0]?t[1]<y[1]?-1:t[1]>y[1]?1:0:t[0]<y[0]?-1:1))}var Ne={mergeType:1,progressFn:null,joinRangesThatTouchEdges:!0};function fn(e,r){function o(i){return!!i&&typeof i=="object"&&!Array.isArray(i)}if(!Array.isArray(e)||!e.length)return null;let a;if(r)if(o(r)){if(a={...Ne,...r},a.progressFn&&o(a.progressFn)&&!Object.keys(a.progressFn).length)a.progressFn=null;else if(a.progressFn&&typeof a.progressFn!="function")throw new Error(`ranges-merge: [THROW_ID_01] opts.progressFn must be a function! It was given of a type: "${typeof a.progressFn}", equal to ${JSON.stringify(a.progressFn,null,4)}`);if(![1,2,"1","2"].includes(a.mergeType))throw new Error(`ranges-merge: [THROW_ID_02] opts.mergeType was customised to a wrong thing! It was given of a type: "${typeof a.mergeType}", equal to ${JSON.stringify(a.mergeType,null,4)}`);if(typeof a.joinRangesThatTouchEdges!="boolean")throw new Error(`ranges-merge: [THROW_ID_04] opts.joinRangesThatTouchEdges was customised to a wrong thing! It was given of a type: "${typeof a.joinRangesThatTouchEdges}", equal to ${JSON.stringify(a.joinRangesThatTouchEdges,null,4)}`)}else throw new Error(`emlint: [THROW_ID_03] the second input argument must be a plain object. It was given as:
2
- ${JSON.stringify(r,null,4)} (type ${typeof r})`);else a={...Ne};let g=e.filter(i=>Array.isArray(i)).map(i=>[...i]).filter(i=>i[2]!==void 0||i[0]!==i[1]),s,u,t;a.progressFn?s=Q(g,{progressFn:i=>{t=Math.floor(i/5),t!==u&&(u=t,a.progressFn(t))}}):s=Q(g);let y=s.length-1;for(let i=y;i>0;i--)a.progressFn&&(t=Math.floor((1-i/y)*78)+21,t!==u&&t>u&&(u=t,a.progressFn(t))),(s[i][0]<=s[i-1][0]||!a.joinRangesThatTouchEdges&&s[i][0]<s[i-1][1]||a.joinRangesThatTouchEdges&&s[i][0]<=s[i-1][1])&&(s[i-1][0]=Math.min(s[i][0],s[i-1][0]),s[i-1][1]=Math.max(s[i][1],s[i-1][1]),s[i][2]!==void 0&&(s[i-1][0]>=s[i][0]||s[i-1][1]<=s[i][1])&&s[i-1][2]!==null&&(s[i][2]===null&&s[i-1][2]!==null?s[i-1][2]=null:s[i-1][2]!=null?+a.mergeType==2&&s[i-1][0]===s[i][0]?s[i-1][2]=s[i][2]:s[i-1][2]+=s[i][2]:s[i-1][2]=s[i][2]),s.splice(i,1),i=s.length);return s.length?s:null}var pn="Invariant failed";function hn(e,r){if(!e)throw new Error(pn)}function dn(e,r,o){if(arguments.length===0)throw new Error("ranges-apply: [THROW_ID_01] inputs missing!");if(typeof e!="string")throw new TypeError(`ranges-apply: [THROW_ID_02] first input argument must be a string! Currently it's: ${typeof e}, equal to: ${JSON.stringify(e,null,4)}`);if(r&&!Array.isArray(r))throw new TypeError(`ranges-apply: [THROW_ID_03] second input argument must be an array (or null)! Currently it's: ${typeof r}, equal to: ${JSON.stringify(r,null,4)}`);if(!r?.filter(u=>u).length)return e;let a;Array.isArray(r)&&Number.isInteger(r[0])&&Number.isInteger(r[1])?a=[Array.from(r)]:a=Array.from(r),a.length,a.filter(u=>u).forEach((u,t)=>{if(!Array.isArray(u))throw new TypeError(`ranges-apply: [THROW_ID_05] ranges array, second input arg., has ${t}th element not an array: ${JSON.stringify(u,null,4)}, which is ${typeof u}`);if(!Number.isInteger(u[0])){if(!Number.isInteger(+u[0])||+u[0]<0)throw new TypeError(`ranges-apply: [THROW_ID_06] ranges array, second input arg. has ${t}th element, array ${JSON.stringify(u,null,0)}. Its first element is not an integer, string index, but ${typeof u[0]}, equal to: ${JSON.stringify(u[0],null,4)}.`);a[t][0]=+a[t][0]}if(!Number.isInteger(u[1])){if(!Number.isInteger(+u[1])||+u[1]<0)throw new TypeError(`ranges-apply: [THROW_ID_07] ranges array, second input arg. has ${t}th element, array ${JSON.stringify(u,null,0)}. Its second element is not an integer, string index, but ${typeof u[1]}, equal to: ${JSON.stringify(u[1],null,4)}.`);a[t][1]=+a[t][1]}});let g=fn(a,{progressFn:u=>{}});hn(g);let s=g.length;if(s>0){let u=e.slice(g[s-1][1]);e=g.reduce((t,y,i,b)=>{let h=i===0?0:b[i-1][1],p=b[i][0];return`${t}${e.slice(h,p)}${b[i][2]||""}`},""),e+=u}return e}function oe(e,r=1){let o=" ";function a(s){return Array.from(s).reverse().join("")}function g(s,u,t){let y=t?`
3
- `:"\r",i=t?"\r":`
4
- `;if(!s)return s;let b=0,h="";for(let p=0,l=s.length;p<l;p++)(s[p]===y||s[p]===i&&s[p-1]!==y)&&b++,`\r
5
- `.includes(s[p])||s[p]===o?s[p]===o?h+=s[p]:s[p]===y?b<=u&&(h+=s[p],s[p+1]===i&&(h+=s[p+1],p++)):s[p]===i&&s?.[p-1]!==y&&b<=u&&(h+=s[p]):!s[p+1]&&!b&&(h+=" ");return h}if(typeof e=="string"&&e.length){let s=1;typeof+r=="number"&&Number.isInteger(+r)&&+r>=0&&(s=+r);let u="",t="";if(!e.trim())u=e;else if(!e[0].trim()){for(let y=0,i=e.length;y<i;y++)if(e[y].trim()){u=e.slice(0,y);break}}if(e.trim()&&(e.slice(-1).trim()===""||e.slice(-1)===o)){for(let y=e.length;y--;)if(e[y].trim()){t=e.slice(y+1);break}}return`${g(u,s,!1)}${e.trim()}${a(g(a(t),s,!0))}`}return e}var Fe={mergeType:1,progressFn:null,joinRangesThatTouchEdges:!0};function mn(e,r){function o(i){return!!i&&typeof i=="object"&&!Array.isArray(i)}if(!Array.isArray(e)||!e.length)return null;let a;if(r)if(o(r)){if(a={...Fe,...r},a.progressFn&&o(a.progressFn)&&!Object.keys(a.progressFn).length)a.progressFn=null;else if(a.progressFn&&typeof a.progressFn!="function")throw new Error(`ranges-merge: [THROW_ID_01] resolvedOpts.progressFn must be a function! It was given of a type: "${typeof a.progressFn}", equal to ${JSON.stringify(a.progressFn,null,4)}`);if(![1,2,"1","2"].includes(a.mergeType))throw new Error(`ranges-merge: [THROW_ID_02] resolvedOpts.mergeType was customised to a wrong thing! It was given of a type: "${typeof a.mergeType}", equal to ${JSON.stringify(a.mergeType,null,4)}`);if(typeof a.joinRangesThatTouchEdges!="boolean")throw new Error(`ranges-merge: [THROW_ID_04] resolvedOpts.joinRangesThatTouchEdges was customised to a wrong thing! It was given of a type: "${typeof a.joinRangesThatTouchEdges}", equal to ${JSON.stringify(a.joinRangesThatTouchEdges,null,4)}`)}else throw new Error(`ranges-merge: [THROW_ID_03] the second input argument must be a plain object. It was given as:
6
- ${JSON.stringify(r,null,4)} (type ${typeof r})`);else a={...Fe};let g=e.filter(i=>Array.isArray(i)).map(i=>[...i]).filter(i=>i[2]!==void 0||i[0]!==i[1]),s,u,t;a.progressFn?s=Q(g,{progressFn:i=>{t=Math.floor(i/5),t!==u&&(u=t,a.progressFn!=null&&a.progressFn(t))}}):s=Q(g);let y=s.length-1;for(let i=y;i>0;i--)a.progressFn&&(t=Math.floor((1-i/y)*78)+21,t!==u&&t>u&&(u=t,a.progressFn(t))),(s[i][0]<=s[i-1][0]||!a.joinRangesThatTouchEdges&&s[i][0]<s[i-1][1]||a.joinRangesThatTouchEdges&&s[i][0]<=s[i-1][1])&&(s[i-1][0]=Math.min(s[i][0],s[i-1][0]),s[i-1][1]=Math.max(s[i][1],s[i-1][1]),s[i][2]!==void 0&&(s[i-1][0]>=s[i][0]||s[i-1][1]<=s[i][1])&&s[i-1][2]!==null&&(s[i][2]===null&&s[i-1][2]!==null?s[i-1][2]=null:s[i-1][2]!=null?+(a||{})?.mergeType==2&&s[i-1][0]===s[i][0]?s[i-1][2]=s[i][2]:s[i-1][2]+=s[i][2]:s[i-1][2]=s[i][2]),s.splice(i,1),i=s.length);return s.length?s:null}var yn={limitToBeAddedWhitespace:!1,limitLinebreaksCount:1,mergeType:1},bn=class{constructor(e){let r={...yn,...e};if(r.mergeType&&r.mergeType!==1&&r.mergeType!==2)if(D(r.mergeType)&&r.mergeType.trim()==="1")r.mergeType=1;else if(D(r.mergeType)&&r.mergeType.trim()==="2")r.mergeType=2;else throw new Error(`ranges-push: [THROW_ID_02] opts.mergeType was customised to a wrong thing! It was given of a type: "${typeof r.mergeType}", equal to ${JSON.stringify(r.mergeType,null,4)}`);this.opts=r,this.ranges=[]}ranges;opts;add(e,r,o){if(e==null&&r==null)return;if(W(e)&&!W(r)){if(Array.isArray(e)){if(e.length){if(e.some(s=>Array.isArray(s))){e.forEach(s=>{Array.isArray(s)&&this.add(...s)});return}e.length&&x(+e[0])&&x(+e[1])&&this.add(...e)}return}throw new TypeError(`ranges-push/Ranges/add(): [THROW_ID_12] the first input argument, "from" is set (${JSON.stringify(e,null,0)}) but second-one, "to" is not (${JSON.stringify(r,null,0)})`)}else if(!W(e)&&W(r))throw new TypeError(`ranges-push/Ranges/add(): [THROW_ID_13] the second input argument, "to" is set (${JSON.stringify(r,null,0)}) but first-one, "from" is not (${JSON.stringify(e,null,0)})`);let a=+e,g=+r;if(x(a)&&x(g)){if(W(o)&&!D(o)&&!rt(o))throw new TypeError(`ranges-push/Ranges/add(): [THROW_ID_08] The third argument, the value to add, was given not as string but ${typeof o}, equal to:
7
- ${JSON.stringify(o,null,4)}`);if(W(this.ranges)&&Array.isArray(this.last())&&a===this.last()[1]){if(this.last()[1]=g,this.last()[2],this.last()[2]!==null&&W(o)){let s=this.last()[2]&&this.last()[2].length&&(!this.opts?.mergeType||this.opts.mergeType===1)?`${this.last()[2]}${o}`:o;this.opts.limitToBeAddedWhitespace&&(s=oe(s,this.opts.limitLinebreaksCount)),D(s)&&!s.length||(this.last()[2]=s)}}else{this.ranges||(this.ranges=[]);let s=o!==void 0&&!(D(o)&&!o.length)?[a,g,o&&this.opts.limitToBeAddedWhitespace?oe(o,this.opts.limitLinebreaksCount):o]:[a,g];this.ranges.push(s)}}else throw x(a)&&a>=0?new TypeError(`ranges-push/Ranges/add(): [THROW_ID_10] "to" value, the second input argument, must be a natural number or zero! Currently it's of a type "${typeof g}" equal to: ${JSON.stringify(g,null,4)}`):new TypeError(`ranges-push/Ranges/add(): [THROW_ID_09] "from" value, the first input argument, must be a natural number or zero! Currently it's of a type "${typeof a}" equal to: ${JSON.stringify(a,null,4)}`)}push(e,r,o){this.add(e,r,o)}current(){return Array.isArray(this.ranges)&&this.ranges.length?(this.ranges=mn(this.ranges,{mergeType:this.opts.mergeType}),this.ranges&&this.opts.limitToBeAddedWhitespace?this.ranges.map(e=>W(e[2])?[e[0],e[1],oe(e[2],this.opts.limitLinebreaksCount)]:e):this.ranges):null}wipe(){this.ranges=[]}replace(e){if(Array.isArray(e)&&e.length)if(Array.isArray(e[0])&&x(e[0][0]))this.ranges=Array.from(e);else throw new Error(`ranges-push/Ranges/replace(): [THROW_ID_11] Single range was given but we expected array of arrays! The first element, ${JSON.stringify(e[0],null,4)} should be an array and its first element should be an integer, a string index.`);else this.ranges=[]}last(){return Array.isArray(this.ranges)&&this.ranges.length?this.ranges[this.ranges.length-1]:null}};Pe();var le=" ";function On({str:e,idx:r=0,stopAtNewlines:o=!1,stopAtRawNbsp:a=!1}){if(typeof e!="string"||!e.length||((!r||typeof r!="number")&&(r=0),!e[r+1]))return null;if(e[r+1]&&(e[r+1].trim()||o&&`
8
- \r`.includes(e[r+1])||a&&e[r+1]===le))return r+1;if(e[r+2]&&(e[r+2].trim()||o&&`
9
- \r`.includes(e[r+2])||a&&e[r+2]===le))return r+2;for(let g=r+1,s=e.length;g<s;g++)if(e[g].trim()||o&&`
10
- \r`.includes(e[g])||a&&e[g]===le)return g;return null}function E(e,r=0){return On({str:e,idx:r,stopAtNewlines:!1,stopAtRawNbsp:!1})}function Tn(e){return/[-_A-Za-z0-9]/.test(e)}function He(e,r){if(!e)return[];if(Array.isArray(e))return e.filter(o=>typeof o=="string"&&o.trim());if(typeof e=="string")return e.trim()?[e]:[];throw new TypeError(`string-strip-html/stripHtml(): [THROW_ID_05] ${r} must be array containing zero or more strings or something falsey. Currently it's equal to: ${e}, that a type of ${typeof e}.`)}function X(e,r,o,a){for(let g=r,s=e.length;g<s;g++){if(e.startsWith(o,g))return!0;if(e.startsWith(a,g))return!1}return!1}function We(e,r,o){return e?.quotes,e?.quotes?.value&&X(r,o+1,e.quotes.value,">"),e?.quotes?.next,X(r,e?.quotes?.next-1,e?.quotes?.value,">"),!e?.quotes||!X(r,o+1,e.quotes.value,">")&&e?.quotes?.next!==-1&&X(r,e?.quotes?.next-1,e?.quotes?.value,">")}function vn(e,r){return(r.match(new RegExp(e,"g"))||[]).length}var G=new Set(["!doctype","abbr","address","area","article","aside","audio","base","bdi","bdo","blockquote","body","br","button","canvas","caption","cite","code","col","colgroup","data","datalist","dd","del","details","dfn","dialog","div","dl","doctype","dt","em","embed","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","head","header","hgroup","hr","html","iframe","img","input","ins","kbd","keygen","label","legend","li","link","main","map","mark","math","menu","menuitem","meta","meter","nav","noscript","object","ol","optgroup","option","output","param","picture","pre","progress","rb","rp","rt","rtc","ruby","samp","script","section","select","slot","small","source","span","strong","style","sub","summary","sup","svg","table","tbody","td","template","textarea","tfoot","th","thead","time","title","tr","track","ul","var","video","wbr","xml"]),ue=new Set(["a","b","i","p","q","s","u"]),ge=new Set([".",",",";","!","?"]),Ie=new Set([".",",","?",";",")","…",'"',"»"]),An=new Set(["a","abbr","acronym","audio","b","bdi","bdo","big","button","canvas","cite","code","data","datalist","del","dfn","em","embed","i","iframe","input","ins","kbd","label","map","mark","meter","noscript","object","output","picture","progress","q","ruby","s","samp","select","slot","small","span","strong","sub","sup","svg","template","textarea","time","u","tt","var","video","wbr"]),wn="13.5.3",kn=wn,Be={ignoreTags:[],ignoreTagsWithTheirContents:[],onlyStripTags:[],stripTogetherWithTheirContents:["script","style","xml"],skipHtmlDecoding:!1,trimOnlySpaces:!1,stripRecognisedHTMLOnly:!1,dumpLinkHrefsNearby:{enabled:!1,putOnNewLine:!1,wrapHeads:"",wrapTails:""},ignoreIndentations:!1,cb:null,reportProgressFunc:null,reportProgressFuncFrom:0,reportProgressFuncTo:100};function _n(e,r){let o=Date.now(),a=[],g=[],s=[],u=[],t={};function y(){t={attributes:[]}}y();let i=null,b=null,h=null,p=!1,l={},O={tagName:"",hrefValue:"",openingTagEnds:void 0},w="",$=!1,S=null,C=!0;function Z(n,f,m){if(Array.isArray(f.stripTogetherWithTheirContents)&&(f.stripTogetherWithTheirContents.includes(t.name)||f.stripTogetherWithTheirContents.includes("*")))if(t.slashPresent&&Array.isArray(a)&&a.some(d=>d.name===t.name)){for(let d=a.length;d--;)if(a[d].name===t.name){u=u.filter(([v,_])=>(v<a[d].lastOpeningBracketAt||v>=n+1)&&(_<=a[d].lastOpeningBracketAt||_>n+1));let A=n+1;t.lastClosingBracketAt&&(A=t.lastClosingBracketAt+1),u.push([a[d].lastOpeningBracketAt,A]),Ie.has(e[n])&&f.cb?f.cb({tag:t,deleteFrom:a[d].lastOpeningBracketAt,deleteTo:n+1,insert:null,rangesArr:m,proposedReturn:[a[d].lastOpeningBracketAt,n,null]}):f.cb&&f.cb({tag:t,deleteFrom:a[d].lastOpeningBracketAt,deleteTo:n,insert:"",rangesArr:m,proposedReturn:[a[d].lastOpeningBracketAt,n,""]}),a.splice(d,1);break}}else t.slashPresent||a.push(t);else Array.isArray(f.ignoreTagsWithTheirContents)&&ne(n,f,t)&&(C=!1)}function P(n,f,m,d,A,v){if(Array.isArray(T.current())&&typeof m=="number"&&T.current()[0][0]===0&&T.current()[0][1]>=m)return"";if(e.length===d&&v&&!c?.dumpLinkHrefsNearby?.enabled)return null;let _="";if(Number.isInteger(m)&&m<A&&(_+=n.slice(m,A)),Number.isInteger(d)&&d>v+1){let R=n.slice(v+1,d);d&&!E(e,d-1)&&(R=R.trimEnd()),R.includes(`
11
- `)&&j(d,n)?_+=" ":_+=R}let q=!Ie.has(n[f]),Te=n[d-1]!==">"||!n[m].trim(),ve=!['"',"("].includes(n[A-1]),Ye=![";",".",":","!"].includes(n[f]);if((q||Te&&ve&&Ye)&&(Te||ve)&&n[f]!=="!"&&(!An.has(t.name)||typeof m=="number"&&m<A||typeof d=="number"&&d>v+1)){let R=_.match(/\n/g);return Array.isArray(R)&&R.length?R.length===1?`
12
- `:R.length===2?`
13
-
14
- `:`
15
-
16
-
17
- `:" "}return""}function re(n,f){if(n.dumpLinkHrefsNearby?.enabled&&O.tagName&&O.tagName===t.name&&t.lastOpeningBracketAt&&(O.openingTagEnds&&t.lastOpeningBracketAt>O.openingTagEnds||!O.openingTagEnds)&&($=!0),$){let m=n.dumpLinkHrefsNearby?.putOnNewLine?`
18
-
19
- `:"";w=`${m}${O.hrefValue}`,(typeof f!="number"||E(e,f-1))&&(w+=m)}}function j(n,f){return f?f[n]==="<"&&f[n+1]!=="%":e[n]==="<"&&e[n+1]!=="%"}function N(n){return e[n]===">"&&e[n-1]!=="%"}function ne(n,f,m){if(f.ignoreTagsWithTheirContents.includes("*"))return!0;let d=e.indexOf(`<${m.name}`,n),A=e.indexOf(`</${m.name}`,n);return!m.slashPresent&&A===-1||m.slashPresent&&!g.some(v=>v.name===m.name)||A>-1&&d>-1&&d<A?!1:f.ignoreTagsWithTheirContents.includes(m.name)}if(typeof e!="string")throw new TypeError(`string-strip-html/stripHtml(): [THROW_ID_01] Input must be string! Currently it's: ${(typeof e).toLowerCase()}, equal to:
20
- ${JSON.stringify(e,null,4)}`);if(r)if(ce(r)){if(r.reportProgressFunc&&typeof r.reportProgressFunc!="function")throw new Error(`string-strip-html/stripHtml(): [THROW_ID_03] The Optional Options Object's key reportProgressFunc, callback function, should be a function but it was given as type ${typeof r.reportProgressFunc}, equal to ${JSON.stringify(r.reportProgressFunc,null,4)}`);if(typeof r.dumpLinkHrefsNearby=="boolean"&&r.dumpLinkHrefsNearby!=null)throw new Error(`string-strip-html/stripHtml(): [THROW_ID_04] The Optional Options Object's key should be a plain object but it was given as type ${typeof r.dumpLinkHrefsNearby}, equal to ${JSON.stringify(r.dumpLinkHrefsNearby,null,4)}`)}else throw new TypeError(`string-strip-html/stripHtml(): [THROW_ID_02] Optional Options Object must be a plain object! Currently it's: ${(typeof r).toLowerCase()}, equal to:
21
- ${JSON.stringify(r,null,4)}`);function se(){$&&(O={tagName:"",hrefValue:"",openingTagEnds:void 0},$=!1)}let c={...Be,...r,dumpLinkHrefsNearby:Object.assign({},Be.dumpLinkHrefsNearby,r?.dumpLinkHrefsNearby)};if(nt(c,"returnRangesOnly"))throw new TypeError("string-strip-html/stripHtml(): [THROW_ID_05] The Optional Options Object's key returnRangesOnly has been removed from the API since v.5 release.");if(c.reportProgressFunc){if(typeof c.reportProgressFuncFrom!="number")throw new Error(`string-strip-html/stripHtml(): [THROW_ID_06] The Optional Options Object's key reportProgressFuncFrom, callback function's "from" range, should be a number but it was given as type ${typeof c.reportProgressFuncFrom}, equal to ${JSON.stringify(c.reportProgressFuncFrom,null,4)}`);if(typeof c.reportProgressFuncTo!="number")throw new Error(`string-strip-html/stripHtml(): [THROW_ID_07] The Optional Options Object's key reportProgressFuncTo, callback function's "to" range, should be a number but it was given as type ${typeof c.reportProgressFuncTo}, equal to ${JSON.stringify(c.reportProgressFuncTo,null,4)}`)}c.ignoreTags=He(c.ignoreTags,"resolvedOpts.ignoreTags"),c.onlyStripTags=He(c.onlyStripTags,"resolvedOpts.onlyStripTags");let be=!!c.onlyStripTags.length;c.onlyStripTags.length&&c.ignoreTags.length&&(c.onlyStripTags=gn(c.onlyStripTags,...c.ignoreTags)),c.stripTogetherWithTheirContents?typeof c.stripTogetherWithTheirContents=="string"&&c.stripTogetherWithTheirContents.length&&(c.stripTogetherWithTheirContents=[c.stripTogetherWithTheirContents]):c.stripTogetherWithTheirContents=[];let z={};if(c.stripTogetherWithTheirContents&&Array.isArray(c.stripTogetherWithTheirContents)&&c.stripTogetherWithTheirContents.length&&!c.stripTogetherWithTheirContents.every((n,f)=>typeof n!="string"?(z.el=n,z.i=f,!1):!0))throw new TypeError(`string-strip-html/stripHtml(): [THROW_ID_08] Optional Options Object's key stripTogetherWithTheirContents was set to contain not just string elements! For example, element at index ${z.i} has a value ${z.el} which is not string but ${(typeof z.el).toLowerCase()}.`);c.cb||(c.cb=({rangesArr:n,proposedReturn:f})=>{f&&n.push(...f)});let T=new bn({limitToBeAddedWhitespace:!0,limitLinebreaksCount:2});if(!c.skipHtmlDecoding)for(;e!==Ae(e,{scope:"strict"});)e=Ae(e,{scope:"strict"});let I=!1,F=!1,K=0,Oe=0,k=e.length,Xe=Math.floor(k/2);for(let n=0;n<k;n++){if(c.reportProgressFunc&&(k>1e3&&k<2e3?n===Xe&&c.reportProgressFunc(Math.floor((c.reportProgressFuncTo-c.reportProgressFuncFrom)/2)):k>=2e3&&(K=c.reportProgressFuncFrom+Math.floor(n/k*(c.reportProgressFuncTo-c.reportProgressFuncFrom)),K!==Oe&&(Oe=K,c.reportProgressFunc(K)))),Object.keys(t).length>1&&t.lastClosingBracketAt&&t.lastClosingBracketAt<n&&e[n]!==" "&&S===null&&(S=n),!I&&e[n]==="%"&&e[n-1]==="{"&&e.includes("%}",n+1)){h=null;let f=e.indexOf("%}",n)-1;if(f>n){n=f;continue}}if(!I&&N(n)&&(!t||Object.keys(t).length<2)&&n>1){for(let f=n;f--;)if(e[f-1]===void 0||N(f)){let m=e[f-1]===void 0?f:f+1,d=e.slice(m,n+1)||"";if((d.includes("/>")||d.includes("/ >")||d.includes('="')||d.includes("='"))&&e!==`<${Re(d.trim(),"/>")}>`&&[...G].some(A=>Re(d.trim().split(/\s+/).filter(v=>v.trim()).filter((v,_)=>_===0),"/>").toLowerCase()===A)&&_n(`<${d.trim()}>`,c).result===""){(!s.length||s[s.length-1][0]!==t.lastOpeningBracketAt)&&s.push([m,n+1]),(!u.length||u[u.length-1][0]!==t.lastOpeningBracketAt)&&u.push([m,n+1]);let A=P(e,n,m,n+1,m,n+1),v=n+1;if(e[v]&&!e[v].trim()){for(let _=v;_<k;_++)if(e[_].trim()){v=_;break}}c.cb({tag:t,deleteFrom:m,deleteTo:v,insert:A,rangesArr:T,proposedReturn:[m,v,A]})}break}}if(!F&&e[n]==="/"&&!t.quotes?.value&&Number.isInteger(t.lastOpeningBracketAt)&&!Number.isInteger(t.lastClosingBracketAt)&&(t.slashPresent=n),e[n]==='"'||e[n]==="'")if(!F&&t.nameStarts&&t?.quotes?.value===e[n])if(l.valueStarts===void 0)l={},delete t.quotes;else{l.valueEnds=n,l.value=e.slice(l.valueStarts,n),t.attributes.push(l),l={},delete t.quotes;let f;c.dumpLinkHrefsNearby?.enabled&&!a.length&&t.attributes.some(m=>{if(typeof m.name=="string"&&m.name.toLowerCase()==="href")return f=`${c.dumpLinkHrefsNearby?.wrapHeads||""}${m.value}${c.dumpLinkHrefsNearby?.wrapTails||""}`,!0})&&(O={tagName:t.name,hrefValue:f,openingTagEnds:void 0})}else!F&&!t.quotes&&t.nameStarts&&(t.quotes={},t.quotes.value=e[n],t.quotes.start=n,t.quotes.next=e.indexOf(e[n],n+1),l.nameStarts&&l.nameEnds&&l.nameEnds<n&&l.nameStarts<n&&!l.valueStarts&&(l.name=e.slice(l.nameStarts,l.nameEnds)));if(t.nameStarts!==void 0&&t.nameEnds===void 0&&(!e[n].trim()||!Tn(e[n]))){if(t.nameEnds=n,t.name=e.slice(t.nameStarts,t.nameEnds+(!N(n)&&e[n]!=="/"&&e[n+1]===void 0?1:0)),e[t.nameStarts-1]!=="!"&&!t.name.replace(/-/g,"").length||/^\d+$/.test(t.name[0])){t={};continue}if(typeof t.name=="string"&&t.name.toLowerCase()==="doctype"&&(F=!0),j(n)){re(c);let f=P(e,n,t.leftOuterWhitespace,n,t.lastOpeningBracketAt,n);(c.stripTogetherWithTheirContents.includes(t.name)||c.stripTogetherWithTheirContents.includes("*"))&&(u=u.filter(([m,d])=>!(m===t.leftOuterWhitespace&&d===n))),c.cb({tag:t,deleteFrom:t.leftOuterWhitespace,deleteTo:n,insert:`${f}${w}${f}`,rangesArr:T,proposedReturn:[t.leftOuterWhitespace,n,`${f}${w}${f}`]}),se(),Z(n,c,T)}}if(t.quotes?.start&&t.quotes.start<n&&!t.quotes.end&&l.nameEnds&&l.equalsAt&&!l.valueStarts&&(l.valueStarts=n),!t.quotes&&l.nameEnds&&e[n]==="="&&!l.valueStarts&&!l.equalsAt&&(l.equalsAt=n),!t.quotes&&l.nameStarts&&l.nameEnds&&!l.valueStarts&&e[n].trim()&&e[n]!=="="&&(t.attributes.push(l),l={}),!t.quotes&&l.nameStarts&&!l.nameEnds&&(F&&`'"`.includes(e[l.nameStarts])?l.nameStarts<n&&e[n]===e[l.nameStarts]&&(l.nameEnds=n+1,l.name=e.slice(l.nameStarts,l.nameEnds)):e[n].trim()?e[n]==="="?l.equalsAt||(l.nameEnds=n,l.equalsAt=n,l.name=e.slice(l.nameStarts,l.nameEnds)):e[n]==="/"||N(n)?(l.nameEnds=n,l.name=e.slice(l.nameStarts,l.nameEnds),t.attributes.push(l),l={}):j(n)&&(l.nameEnds=n,l.name=e.slice(l.nameStarts,l.nameEnds),t.attributes.push(l),l={}):(l.nameEnds=n,l.name=e.slice(l.nameStarts,l.nameEnds))),!t.quotes&&t.nameEnds<n&&!e[n-1].trim()&&e[n].trim()&&!"<>/!".includes(e[n])&&!l.nameStarts&&!t.lastClosingBracketAt&&(l.nameStarts=n),t.lastOpeningBracketAt!==null&&t.lastOpeningBracketAt<n&&e[n]==="/"&&t.onlyPlausible&&(t.onlyPlausible=!1),t.lastOpeningBracketAt!==null&&t.lastOpeningBracketAt<n&&e[n]!=="/"&&(t.onlyPlausible===void 0&&((!e[n].trim()||j(n))&&!t.slashPresent?t.onlyPlausible=!0:t.onlyPlausible=!1),e[n].trim()&&t.nameStarts===void 0&&!j(n)&&e[n]!=="/"&&!N(n)&&e[n]!=="!"&&(t.nameStarts=n,t.nameContainsLetters=!1)),t.nameStarts&&!t.quotes&&typeof e[n]=="string"&&e[n].toLowerCase()!==e[n].toUpperCase()&&(t.nameContainsLetters=!0),N(n)&&(We(t,e,n)||t.quotes.value&&typeof t.lastOpeningBracketAt=="number"&&vn(t.quotes.value,e.slice(t.lastOpeningBracketAt,n))%2===1&&!e.slice(t.lastOpeningBracketAt+1,n).includes("<")&&!e.slice(t.lastOpeningBracketAt+1,n).includes(">"))&&t.lastOpeningBracketAt!==void 0&&(t.lastClosingBracketAt=n,S=null,Object.keys(l).length&&(t.attributes.push(l),l={}),c.dumpLinkHrefsNearby?.enabled&&O.tagName&&!O.openingTagEnds&&(O.openingTagEnds=n)),(!F||e[n]===">")&&t.lastOpeningBracketAt!==void 0){if(t.lastClosingBracketAt===void 0){if(t.lastOpeningBracketAt<n&&!j(n)&&(e[n+1]===void 0||j(n+1)&&!t?.quotes?.value)&&t.nameContainsLetters&&typeof t.nameStarts=="number"){if(t.name=e.slice(t.nameStarts,t.nameEnds||n+1).toLowerCase(),(!s.length||s[s.length-1][0]!==t.lastOpeningBracketAt)&&s.push([t.lastOpeningBracketAt,n+1]),c.ignoreTags.includes(t.name)||ne(n,c,t)||!G.has(t.name)&&(t.onlyPlausible||c.stripRecognisedHTMLOnly)){t={},l={};continue}if((G.has(t.name)||ue.has(t.name))&&(t.onlyPlausible===!1||t.onlyPlausible===!0&&t.attributes.length)||e[n+1]===void 0){re(c);let f=P(e,n,t.leftOuterWhitespace,n+1,t.lastOpeningBracketAt,t.lastClosingBracketAt);I&&t.name==="script"&&t.slashPresent&&(I=!1);let m;f===null||w===null?m=null:m=`${f}${w}${f}`,c.cb({tag:t,deleteFrom:t.leftOuterWhitespace,deleteTo:n+1,insert:m,rangesArr:T,proposedReturn:[t.leftOuterWhitespace,n+1,m]}),se(),Z(n,c,T)}if(!u.length||u[u.length-1][0]!==t.lastOpeningBracketAt&&u[u.length-1][1]!==n+1)if(c.stripTogetherWithTheirContents.includes(t.name)||c.stripTogetherWithTheirContents.includes("*")){let f;for(let m=a.length;m--;)a[m].name===t.name&&(f=a[m]);f?(u=u.filter(([m])=>m!==f.lastOpeningBracketAt),u.push([f.lastOpeningBracketAt,n+1])):u.push([t.lastOpeningBracketAt,n+1])}else u.push([t.lastOpeningBracketAt,n+1])}}else if(n>t.lastClosingBracketAt&&e[n].trim()||e[n+1]===void 0||c.ignoreIndentations&&`\r
22
- `.includes(e[n])){let f=t.lastClosingBracketAt===n?n+1:n;c.trimOnlySpaces&&f===k-1&&S!==null&&S<n&&(f=S),(!s.length||s[s.length-1][0]!==t.lastOpeningBracketAt)&&s.push([t.lastOpeningBracketAt,t.lastClosingBracketAt+1]);let m=c.ignoreTags.includes(t.name),d=ne(n,c,t);if(!C||c.stripRecognisedHTMLOnly&&typeof t.name=="string"&&!G.has(t.name.toLowerCase())&&!ue.has(t.name.toLowerCase())||!be&&(m||d)||be&&!c.onlyStripTags.includes(t.name)||c.ignoreTagsWithTheirContents.includes(t.name)){if(d)if(t.slashPresent){for(let A=g.length;A--;)if(g[A].name===t.name){g.splice(A,1);break}g.length||(C=!0)}else C&&(C=!1),g.push(t);c.cb({tag:t,deleteFrom:null,deleteTo:null,insert:null,rangesArr:T,proposedReturn:null}),t={},l={}}else if(!t.onlyPlausible||t.attributes.length===0&&t.name&&(G.has(t.name.toLowerCase())||ue.has(t.name.toLowerCase()))||t.attributes?.some(A=>A.equalsAt)){(!u.length||u[u.length-1][0]!==t.lastOpeningBracketAt)&&u.push([t.lastOpeningBracketAt,t.lastClosingBracketAt+1]);let A=P(e,n,t.leftOuterWhitespace,f,t.lastOpeningBracketAt,t.lastClosingBracketAt);w="",$=!1,re(c,f);let v;typeof w=="string"&&w.length?(v=`${A}${w}${A===`
23
-
24
- `?`
25
- `:A}`,f===t.lastClosingBracketAt+1&&(!e[f]||!ge.has(e[f]))&&(v+=" "),t.leftOuterWhitespace===t.lastOpeningBracketAt&&T.last()&&T.last()[1]<t.lastOpeningBracketAt&&(!c?.dumpLinkHrefsNearby?.putOnNewLine||!ge.has(e[f]))&&(v=" "+v)):v=A,v!==null&&(t.leftOuterWhitespace===0||!E(e,f-1))&&(!c.dumpLinkHrefsNearby?.enabled||t.name!=="a")&&(v=void 0);let _=0;if($&&ge.has(e[f])){c.dumpLinkHrefsNearby?.putOnNewLine&&(v=`${e[f]}${v||""}`);let q=E(e,f);q&&v?.endsWith(`
26
- `)?_+=q-n:(!q||q>n)&&_++}c.cb({tag:t,deleteFrom:t.leftOuterWhitespace,deleteTo:f+_,insert:v,rangesArr:T,proposedReturn:[t.leftOuterWhitespace,f+_,v]}),se(),Z(n,c,T)}else t={};N(n)||(t={})}F&&(F=!1)}if((!I||e[n]==="<"&&E(e,E(e,n))&&e[E(e,n)]==="/"&&e.startsWith("script",E(e,E(e,n))))&&j(n)&&!j(n-1)&&!`'"`.includes(e[n+1])&&(!`'"`.includes(e[n+2])||/\w/.test(e[n+1]))&&!(e[n+1]==="c"&&e[n+2]===":")&&!(e[n+1]==="f"&&e[n+2]==="m"&&e[n+3]==="t"&&e[n+4]===":")&&!(e[n+1]==="s"&&e[n+2]==="q"&&e[n+3]==="l"&&e[n+4]===":")&&!(e[n+1]==="x"&&e[n+2]===":")&&!(e[n+1]==="f"&&e[n+2]==="n"&&e[n+3]===":")&&We(t,e,n)){if(N(E(e,n)))continue;if(t.nameEnds&&t.nameEnds<n&&!t.lastClosingBracketAt&&(t.onlyPlausible===!0&&t.attributes?.length||t.onlyPlausible===!1)){let f=P(e,n,t.leftOuterWhitespace,n,t.lastOpeningBracketAt,n);c.cb({tag:t,deleteFrom:t.leftOuterWhitespace,deleteTo:n,insert:f,rangesArr:T,proposedReturn:[t.leftOuterWhitespace,n,f]}),Z(n,c,T),t={},l={}}if(t.lastOpeningBracketAt!==void 0&&t.onlyPlausible&&t.name&&!t.quotes&&(t.lastOpeningBracketAt=void 0,t.name=void 0,t.onlyPlausible=!1),(t.lastOpeningBracketAt===void 0||!t.onlyPlausible)&&!t.quotes&&(t.lastOpeningBracketAt=n,t.slashPresent=!1,t.attributes=[],i===null?t.leftOuterWhitespace=n:c.trimOnlySpaces&&i===0?t.leftOuterWhitespace=b||n:t.leftOuterWhitespace=i,`${e[n+1]}${e[n+2]}${e[n+3]}`=="!--"||`${e[n+1]}${e[n+2]}${e[n+3]}${e[n+4]}${e[n+5]}${e[n+6]}${e[n+7]}${e[n+8]}`=="![CDATA[")){let f=!0;e[n+2]==="-"&&(f=!1);let m;for(let d=n;d<k;d++)if((!m&&f&&`${e[d-2]}${e[d-1]}${e[d]}`=="]]>"||!f&&`${e[d-2]}${e[d-1]}${e[d]}`=="-->")&&(m=d),m&&(m<d&&e[d].trim()||e[d+1]===void 0)){let A=d;(e[d+1]===void 0&&!e[d].trim()||e[d]===">")&&(A+=1),(!s.length||s[s.length-1][0]!==t.lastOpeningBracketAt)&&s.push([t.lastOpeningBracketAt,m+1]),(!u.length||u[u.length-1][0]!==t.lastOpeningBracketAt)&&u.push([t.lastOpeningBracketAt,m+1]);let v=P(e,d,t.leftOuterWhitespace,A,t.lastOpeningBracketAt,m);c.cb({tag:t,deleteFrom:t.leftOuterWhitespace,deleteTo:A,insert:v,rangesArr:T,proposedReturn:[t.leftOuterWhitespace,A,v]}),n=d-1,e[d]===">"&&(n=d),t={},l={};break}}}!e[n].trim()||e[n].charCodeAt(0)===847?(i===null&&(i=n,t.lastOpeningBracketAt!==void 0&&t.lastOpeningBracketAt<n&&t.nameStarts&&t.nameStarts<t.lastOpeningBracketAt&&n===t.lastOpeningBracketAt+1&&!a.some(f=>f.name===t.name)&&(t.onlyPlausible=!0,t.name=void 0,t.nameStarts=void 0)),(e[n]===`
27
- `||e[n]==="\r")&&(h=n,p&&(p=!1))):(i!==null&&(!t.quotes&&l.equalsAt>i-1&&l.nameEnds&&l.equalsAt>l.nameEnds&&e[n]!=='"'&&e[n]!=="'"&&(ce(l)&&t.attributes.push(l),l={},t.equalsSpottedAt=void 0),i=null),p||(p=!0,C&&!I&&typeof h=="number"&&n&&h<n-1&&(e.slice(h+1,n).trim()?h=null:c.ignoreIndentations||T.push([h+1,n])))),e[n]===" "?b===null&&(b=n):b!==null&&(b=null),t.name==="script"&&(I=!t.slashPresent)}if(e&&!c.ignoreIndentations&&(c.trimOnlySpaces&&e[0]===" "||!c.trimOnlySpaces&&!e[0].trim()))for(let n=0;n<k;n++)if(c.trimOnlySpaces&&e[n]!==" "||!c.trimOnlySpaces&&e[n].trim()){T.push([0,n]);break}else e[n+1]||T.push([0,n+1]);if(e&&(c.trimOnlySpaces&&e[~-e.length]===" "||!c.trimOnlySpaces&&!e[~-e.length].trim())){for(let n=e.length;n--;)if(c.trimOnlySpaces&&e[n]!==" "||!c.trimOnlySpaces&&e[n].trim()){T.push([n+1,k]);break}}let H=T.current();if(!r?.cb&&H&&(H[0]&&!H[0][0]&&(H[0][1],T.ranges[0]=[T.ranges[0][0],T.ranges[0][1]]),H[H.length-1]?.[1]===e.length&&(H[H.length-1][0],T.ranges))){let n=T.ranges[T.ranges.length-1][0];e[n-1]&&(c.trimOnlySpaces&&e[n-1]===" "||!c.trimOnlySpaces&&!e[n-1].trim())&&(n-=1);let f=T.ranges[T.ranges.length-1][2];T.ranges[T.ranges.length-1]=[n,T.ranges[T.ranges.length-1][1]],f?.trim()&&T.ranges[T.ranges.length-1].push(f.trimEnd())}return{log:{timeTakenInMilliseconds:Date.now()-o},result:dn(e,T.current()),ranges:T.current(),allTagLocations:s,filteredTagLocations:u}}export{Be as defaults,_n as stripHtml,kn as version};