@obvi/blueprint 1.1.1 → 1.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -176,8 +176,8 @@
176
176
  /* Diagonal hatch — drafting "section lining" for fenced / held /
177
177
  out-of-bounds regions. Faint ink lines over whatever fill the host
178
178
  element already has, so it reads as texture, not a second color.
179
- Theme-aware for free: it composes --bp-ink-faint, which flips in
180
- dark. --bp-hatch-gap controls the line pitch. */
179
+ Dark mode overrides --bp-hatch in [data-obvious-theme="dark"].
180
+ --bp-hatch-gap controls the line pitch. */
181
181
  --bp-hatch-gap: 7px;
182
182
  --bp-hatch: repeating-linear-gradient(
183
183
  -45deg,
@@ -365,7 +365,17 @@
365
365
  /* Neutral white-alpha panel fills over the dark paper. */
366
366
  --bp-fill-amb: oklch(1 0 0 / 0.04);
367
367
  --bp-fill-hi: oklch(1 0 0 / 0.08);
368
- --bp-scrim: oklch(1 0 0 / 0.58);
368
+ /* Scrim stays a black wash in dark mode too: a modal scrim must dim the
369
+ page behind a floated panel, not brighten it. White-alpha here washed
370
+ the whole overlay out. */
371
+ --bp-scrim: oklch(0 0 0 / 0.58);
372
+ /* Diagonal hatch (dark) — softer than --bp-ink-faint so scrims and
373
+ rejected-choice fills keep texture without brightening the wash. */
374
+ --bp-hatch: repeating-linear-gradient(
375
+ -45deg,
376
+ var(--bp-edge) 0 var(--bp-stroke),
377
+ oklch(0 0 0 / 0) var(--bp-stroke) var(--bp-hatch-gap)
378
+ );
369
379
  --bp-paper: var(--bp-gray-950);
370
380
  --bp-bg: oklch(0.15 0 0); /* the desk sits darker than the sheet, so the page lifts */
371
381
  --bp-edge: oklch(1 0 0 / 0.08);
@@ -2364,6 +2374,46 @@
2364
2374
  text-transform: uppercase;
2365
2375
  color: var(--bp-text-secondary);
2366
2376
  }
2377
+ :where(.bp-cite-actions) {
2378
+ display: flex;
2379
+ align-items: center;
2380
+ gap: var(--bp-space-2);
2381
+ flex: 0 0 auto;
2382
+ }
2383
+ /* Open-in-pane action. Hidden unless a host advertises a side pane, so the
2384
+ standalone popover (no pane host) never shows a dead control. */
2385
+ :where(.bp-cite-expand) {
2386
+ display: none;
2387
+ align-items: center;
2388
+ justify-content: center;
2389
+ width: 22px;
2390
+ height: 22px;
2391
+ margin: 0;
2392
+ padding: 0;
2393
+ border: var(--bp-stroke) solid var(--bp-edge);
2394
+ border-radius: var(--bp-radius-2);
2395
+ background: var(--bp-fill-amb);
2396
+ color: var(--bp-text-secondary);
2397
+ cursor: pointer;
2398
+ transition:
2399
+ color var(--bp-duration-fast) var(--bp-ease-out),
2400
+ border-color var(--bp-duration-fast) var(--bp-ease-out),
2401
+ background-color var(--bp-duration-fast) var(--bp-ease-out);
2402
+ }
2403
+ :where(html[data-bp-cite-pane] .bp-cite-expand) {
2404
+ display: inline-flex;
2405
+ }
2406
+ :where(.bp-cite-expand:hover),
2407
+ :where(.bp-cite-expand:focus-visible) {
2408
+ color: var(--bp-ink);
2409
+ border-color: var(--bp-ink-line);
2410
+ background: var(--bp-paper);
2411
+ }
2412
+ :where(.bp-cite-expand svg) {
2413
+ display: block;
2414
+ width: 13px;
2415
+ height: 13px;
2416
+ }
2367
2417
  /* Code block inside the card — base treatment; blueprint-code.css makes
2368
2418
  the highlighted variant sit flush and rounds the lower corners. */
2369
2419
  :where(.bp-cite-pop pre) {
@@ -5230,3 +5280,198 @@ body > .site-nav .site-nav__theme:hover {
5230
5280
  display: none;
5231
5281
  }
5232
5282
  }
5283
+
5284
+ /* ---------------------------------------------------------------------------
5285
+ Cited-source side pane
5286
+ ---------------------------------------------------------------------------
5287
+ The host surface a <bp-cite> popover promotes its source into (the "open in
5288
+ side pane" action). It is a right COLUMN, not an overlay: opening reflows the
5289
+ sheet left to reclaim a column inside the desk frame, and the pane's
5290
+ full-height left border is the crosshair divider — the same --bp-edge
5291
+ hairline as the frame rules. No scrim; the document stays interactive beside
5292
+ it. Built and toggled by blueprint.js (wireCitePane); reuses the merged
5293
+ detail-pane shell. */
5294
+ :root {
5295
+ --bp-cite-pane-w: min(480px, 78vw);
5296
+ --bp-cite-pane-swap-shift: var(--bp-space-3);
5297
+ }
5298
+
5299
+ /* Reflow the sheet to open the column. The margin transition is supplied by
5300
+ the bp-sidebar-animate rule above (added one frame after paint), so opening
5301
+ animates while first paint never does — the pane is always closed on load. */
5302
+ html[data-bp-document]:has(.bp-cite-pane.is-open) main {
5303
+ margin-right: calc(var(--bp-shell-inset-right) + var(--bp-cite-pane-w));
5304
+ }
5305
+
5306
+ /* Clip port stops at the right frame rule so the parked pane adds no page
5307
+ scroll. Sits above the desk masks but below the frame rules. */
5308
+ .bp-cite-pane-port {
5309
+ position: fixed;
5310
+ top: 0;
5311
+ left: 0;
5312
+ bottom: 0;
5313
+ right: var(--bp-shell-inset-right, var(--bp-space-4));
5314
+ z-index: calc(var(--bp-shell-mask-z, 150) + 10);
5315
+ overflow: hidden;
5316
+ pointer-events: none;
5317
+ }
5318
+
5319
+ .bp-cite-pane {
5320
+ position: absolute;
5321
+ top: var(--bp-shell-inset-top, var(--bp-space-4));
5322
+ bottom: var(--bp-shell-inset-block, var(--bp-space-4));
5323
+ right: 0;
5324
+ width: var(--bp-cite-pane-w);
5325
+ display: flex;
5326
+ flex-direction: column;
5327
+ background: var(--bp-paper);
5328
+ border-left: var(--bp-stroke) solid var(--bp-edge);
5329
+ /* parked just past the clip so it travels exactly its own width to open */
5330
+ transform: translateX(100%);
5331
+ /* ease-in-out matches the shell push so the divider moves as one boundary */
5332
+ transition: transform var(--bp-duration-slow) var(--bp-ease-in-out);
5333
+ pointer-events: auto;
5334
+ }
5335
+ .bp-cite-pane.is-open {
5336
+ transform: translateX(0);
5337
+ }
5338
+ .bp-cite-pane:focus-visible {
5339
+ outline: none;
5340
+ }
5341
+
5342
+ .bp-cite-pane__head {
5343
+ position: relative;
5344
+ padding:
5345
+ var(--bp-sidebar-chrome-gap)
5346
+ var(--bp-sidebar-chrome-gap)
5347
+ var(--bp-sidebar-chrome-gap)
5348
+ var(--bp-space-4);
5349
+ border-bottom: var(--bp-stroke) solid var(--bp-edge);
5350
+ }
5351
+ .bp-cite-pane__heading {
5352
+ display: flex;
5353
+ flex-direction: column;
5354
+ gap: var(--bp-space-1);
5355
+ min-width: 0;
5356
+ padding-right: calc(
5357
+ var(--bp-sidebar-toggle-size) + var(--bp-sidebar-chrome-gap)
5358
+ );
5359
+ }
5360
+ .bp-cite-pane__eyebrow {
5361
+ font-family: var(--bp-mono);
5362
+ font-size: var(--bp-label-md);
5363
+ letter-spacing: var(--bp-label-md-ls);
5364
+ text-transform: uppercase;
5365
+ color: var(--bp-text-secondary);
5366
+ }
5367
+ /* The locator the source was opened from — scrolls back to the citation. */
5368
+ .bp-cite-pane__loc {
5369
+ display: block;
5370
+ width: 100%;
5371
+ margin: 0;
5372
+ padding: 0;
5373
+ border: 0;
5374
+ background: none;
5375
+ text-align: left;
5376
+ font-family: var(--bp-mono);
5377
+ font-size: var(--bp-text-small);
5378
+ line-height: var(--bp-lh-body);
5379
+ color: var(--bp-text);
5380
+ white-space: nowrap;
5381
+ overflow: hidden;
5382
+ text-overflow: ellipsis;
5383
+ cursor: pointer;
5384
+ text-decoration: underline;
5385
+ text-decoration-color: var(--bp-ink-line);
5386
+ text-underline-offset: 0.18em;
5387
+ transition:
5388
+ color var(--bp-duration-fast) var(--bp-ease-out),
5389
+ text-decoration-color var(--bp-duration-fast) var(--bp-ease-out);
5390
+ }
5391
+ .bp-cite-pane__loc:hover,
5392
+ .bp-cite-pane__loc:focus-visible {
5393
+ color: var(--bp-text);
5394
+ text-decoration-color: var(--bp-text);
5395
+ }
5396
+ .bp-cite-pane__loc[hidden] {
5397
+ display: none;
5398
+ }
5399
+ .bp-cite-pane__close {
5400
+ position: absolute;
5401
+ top: var(--bp-sidebar-chrome-gap);
5402
+ right: var(--bp-sidebar-chrome-gap);
5403
+ display: inline-flex;
5404
+ align-items: center;
5405
+ justify-content: center;
5406
+ width: var(--bp-sidebar-toggle-size);
5407
+ height: var(--bp-sidebar-toggle-size);
5408
+ padding: 0;
5409
+ border: var(--bp-stroke) solid var(--bp-edge);
5410
+ border-radius: var(--bp-radius-6);
5411
+ background: var(--bp-fill-amb);
5412
+ color: var(--bp-text-secondary);
5413
+ cursor: pointer;
5414
+ transition:
5415
+ border-color var(--bp-duration-fast) var(--bp-ease-out),
5416
+ background-color var(--bp-duration-fast) var(--bp-ease-out),
5417
+ color var(--bp-duration-fast) var(--bp-ease-out);
5418
+ }
5419
+ .bp-cite-pane__close:hover {
5420
+ border-color: var(--bp-ink-line);
5421
+ background: var(--bp-paper);
5422
+ color: var(--bp-ink);
5423
+ }
5424
+ .bp-cite-pane__close svg {
5425
+ display: block;
5426
+ width: 16px;
5427
+ height: 16px;
5428
+ }
5429
+
5430
+ /* The body owns vertical scroll; its content sizes to itself so a short
5431
+ snippet keeps a short card instead of a column-tall empty box. */
5432
+ .bp-cite-pane__body {
5433
+ flex: 1;
5434
+ min-height: 0;
5435
+ overflow-y: auto;
5436
+ overscroll-behavior: contain;
5437
+ padding: var(--bp-space-4);
5438
+ }
5439
+ /* Content swap when promoting another citation while the pane is open: the
5440
+ pane holds, only the source crossfades to the right. */
5441
+ .bp-cite-pane__swap {
5442
+ transition:
5443
+ opacity var(--bp-duration-normal) var(--bp-ease-out),
5444
+ transform var(--bp-duration-normal) var(--bp-ease-out);
5445
+ }
5446
+ .bp-cite-pane__swap.is-leaving {
5447
+ opacity: 0;
5448
+ transform: translateX(var(--bp-cite-pane-swap-shift));
5449
+ }
5450
+ /* JS mount point for the cloned <pre>. Visual treatment lives in
5451
+ blueprint-code.css (full highlighted-block + accent bar). Margin is cleared
5452
+ here (not :where) so it beats the base-layer :where(pre) rhythm margin and
5453
+ the theme's margin-block — document specimens outside the pane are untouched. */
5454
+ .bp-cite-pane__source {
5455
+ min-width: 0;
5456
+ }
5457
+ .bp-cite-pane__source pre {
5458
+ margin: 0;
5459
+ margin-block: 0;
5460
+ }
5461
+
5462
+ /* Below the rail's fixed breakpoint the desk frame flattens; let the pane fill
5463
+ the viewport edge-to-edge and drop the reflow (the sheet goes static). */
5464
+ @media (max-width: 700px) {
5465
+ html[data-bp-document]:has(.bp-cite-pane.is-open) main {
5466
+ margin-right: 0;
5467
+ }
5468
+ :root {
5469
+ --bp-cite-pane-w: min(420px, 92vw);
5470
+ }
5471
+ }
5472
+
5473
+ @media print {
5474
+ .bp-cite-pane-port {
5475
+ display: none;
5476
+ }
5477
+ }
package/dist/blueprint.js CHANGED
@@ -945,6 +945,214 @@ function injectDocumentChrome(doc, win = doc.defaultView, navigationTree = []) {
945
945
  doc.body.dataset.bpChromeReady = 'true'
946
946
  }
947
947
 
948
+ // Close glyph (matches the chrome icon set used elsewhere).
949
+ const CITE_PANE_CLOSE_ICON =
950
+ 'M6.75827 17.2426L12.0009 12M17.2435 6.75736L12.0009 12M12.0009 12L6.75827 6.75736M12.0009 12L17.2435 17.2426'
951
+
952
+ // Build the cited-source side pane once, lazily, and append it to <body>. The
953
+ // pane is plain div/span chrome styled by site-nav.css; open/close is a class
954
+ // toggle so the CSS owns the slide and the sheet reflow.
955
+ function buildCitePane(doc) {
956
+ const port = doc.createElement('div')
957
+ port.className = 'bp-cite-pane-port'
958
+
959
+ // A div, not <aside>: the base layer styles bare semantic elements (aside
960
+ // carries a margin + border-left + padding-left), which would leak into the
961
+ // component's own chrome. Carry the role on the div instead — same as the
962
+ // detail-pane exploration this reuses.
963
+ const pane = doc.createElement('div')
964
+ pane.className = 'bp-cite-pane'
965
+ pane.setAttribute('role', 'complementary')
966
+ pane.setAttribute('aria-label', 'Cited source')
967
+ pane.tabIndex = -1
968
+
969
+ const head = doc.createElement('div')
970
+ head.className = 'bp-cite-pane__head'
971
+ const heading = doc.createElement('div')
972
+ heading.className = 'bp-cite-pane__heading'
973
+ const eyebrow = doc.createElement('span')
974
+ eyebrow.className = 'bp-cite-pane__eyebrow'
975
+ const loc = doc.createElement('button')
976
+ loc.type = 'button'
977
+ loc.className = 'bp-cite-pane__loc'
978
+ heading.append(eyebrow, loc)
979
+ const close = doc.createElement('button')
980
+ close.type = 'button'
981
+ close.className = 'bp-cite-pane__close'
982
+ close.setAttribute('aria-label', 'Close cited source')
983
+ close.append(createChromeSvg(doc, CITE_PANE_CLOSE_ICON))
984
+ head.append(heading, close)
985
+
986
+ const body = doc.createElement('div')
987
+ body.className = 'bp-cite-pane__body'
988
+ const swap = doc.createElement('div')
989
+ swap.className = 'bp-cite-pane__swap'
990
+ const source = doc.createElement('div')
991
+ source.className = 'bp-cite-pane__source'
992
+ swap.append(source)
993
+ body.append(swap)
994
+
995
+ pane.append(head, body)
996
+ port.append(pane)
997
+ doc.body.append(port)
998
+ return { port, pane, eyebrow, loc, source, swap, close }
999
+ }
1000
+
1001
+ // Advertise a side pane and promote <bp-cite> sources into it. The cite
1002
+ // component only emits "bp-cite-open"; this host owns the pane, so the popover
1003
+ // stays portable and the open-in-pane button shows (CSS gate) only here.
1004
+ function wireCitePane(doc, win) {
1005
+ const root = doc.documentElement
1006
+ root.dataset.bpCitePane = ''
1007
+
1008
+ let ui = null
1009
+ let lastTrigger = null
1010
+ let citeEl = null
1011
+ const reduced = () => themePrefersReducedMotion(win)
1012
+
1013
+ // The pane push narrows <main>; below its natural measure the prose reflows
1014
+ // taller, which shoves the triggering citation far down the page. Resolve the
1015
+ // active scroller (the fixed shell <main> in wide layout, else the window)
1016
+ // and pin the citation's viewport position across the open transition so the
1017
+ // reader keeps looking at the line they clicked.
1018
+ const resolveScroller = () => {
1019
+ const main = doc.querySelector('main')
1020
+ return main &&
1021
+ root.dataset.bpDocument !== undefined &&
1022
+ win.getComputedStyle(main).position === 'fixed'
1023
+ ? main
1024
+ : null
1025
+ }
1026
+ const scrollBy = (scroller, dy) => {
1027
+ if (!dy) return
1028
+ if (scroller) scroller.scrollTop += dy
1029
+ else win.scrollBy(0, dy)
1030
+ }
1031
+ const pinCitation = (anchor) => {
1032
+ if (!anchor || !doc.contains(anchor)) return
1033
+ const scroller = resolveScroller()
1034
+ const anchorTop = anchor.getBoundingClientRect().top
1035
+ // Reduced motion has no transition, so layout settles in one frame.
1036
+ const durationMs = reduced()
1037
+ ? 0
1038
+ : (parseFloat(
1039
+ win.getComputedStyle(root).getPropertyValue('--bp-duration-slow'),
1040
+ ) || 300) + 60
1041
+ const start = win.performance.now()
1042
+ const keep = () => {
1043
+ scrollBy(scroller, anchor.getBoundingClientRect().top - anchorTop)
1044
+ if (win.performance.now() - start < durationMs) {
1045
+ win.requestAnimationFrame(keep)
1046
+ }
1047
+ }
1048
+ win.requestAnimationFrame(keep)
1049
+ }
1050
+
1051
+ const ensure = () => {
1052
+ if (ui) return ui
1053
+ ui = buildCitePane(doc)
1054
+ ui.close.addEventListener('click', () => closePane())
1055
+ ui.loc.addEventListener('click', () => {
1056
+ if (citeEl && doc.contains(citeEl)) {
1057
+ citeEl.scrollIntoView({
1058
+ behavior: reduced() ? 'auto' : 'smooth',
1059
+ block: 'center',
1060
+ })
1061
+ }
1062
+ })
1063
+ return ui
1064
+ }
1065
+
1066
+ const paint = (detail) => {
1067
+ ui.eyebrow.textContent = detail.language || 'Cited source'
1068
+ ui.loc.textContent = detail.loc || ''
1069
+ ui.loc.hidden = !detail.loc
1070
+ ui.source.replaceChildren()
1071
+ if (detail.source instanceof Node) {
1072
+ // Clone defensively so the pane owns its copy: append() moves a node out
1073
+ // of its current parent, so a caller that hands over a live popover node
1074
+ // (rather than a clone) would otherwise be detached and left blank.
1075
+ const node = detail.source.cloneNode(true)
1076
+ node.removeAttribute?.('tabindex')
1077
+ ui.source.append(node)
1078
+ } else {
1079
+ const pre = doc.createElement('pre')
1080
+ const code = doc.createElement('code')
1081
+ code.textContent = detail.code || ''
1082
+ pre.append(code)
1083
+ ui.source.append(pre)
1084
+ }
1085
+ }
1086
+
1087
+ const openPane = (detail, trigger, el) => {
1088
+ ensure()
1089
+ const wasOpen = ui.pane.classList.contains('is-open')
1090
+ if (lastTrigger && lastTrigger !== trigger) {
1091
+ lastTrigger.setAttribute('aria-expanded', 'false')
1092
+ }
1093
+ if (trigger) lastTrigger = trigger
1094
+ citeEl = el || null
1095
+
1096
+ if (wasOpen && !reduced()) {
1097
+ ui.swap.classList.add('is-leaving')
1098
+ // Paint the new source one frame before the leave crossfade lands so the
1099
+ // swap stays hidden under the fade. Read the duration from the token that
1100
+ // governs .bp-cite-pane__swap rather than hardcoding it, the way
1101
+ // pinCitation reads --bp-duration-slow.
1102
+ const swapMs =
1103
+ (parseFloat(
1104
+ win.getComputedStyle(root).getPropertyValue('--bp-duration-normal'),
1105
+ ) || 200) * 0.9
1106
+ win.setTimeout(() => {
1107
+ paint(detail)
1108
+ win.requestAnimationFrame(() => ui.swap.classList.remove('is-leaving'))
1109
+ }, swapMs)
1110
+ } else {
1111
+ paint(detail)
1112
+ }
1113
+
1114
+ ui.pane.classList.add('is-open')
1115
+ if (trigger) trigger.setAttribute('aria-expanded', 'true')
1116
+ if (!wasOpen) {
1117
+ // Only the first open reflows the sheet; keep the clicked citation pinned
1118
+ // through the push so the reader does not lose their place.
1119
+ pinCitation(citeEl || trigger)
1120
+ win.requestAnimationFrame(() => ui.pane.focus({ preventScroll: true }))
1121
+ }
1122
+ }
1123
+
1124
+ const closePane = () => {
1125
+ if (!ui || !ui.pane.classList.contains('is-open')) return
1126
+ ui.pane.classList.remove('is-open')
1127
+ const trigger = lastTrigger
1128
+ const anchor = citeEl || trigger
1129
+ lastTrigger = null
1130
+ citeEl = null
1131
+ // Closing widens the sheet and reflows the prose shorter; keep the same
1132
+ // citation pinned so the reader lands back where they opened from.
1133
+ pinCitation(anchor)
1134
+ if (trigger) {
1135
+ trigger.setAttribute('aria-expanded', 'false')
1136
+ if (doc.contains(trigger)) trigger.focus({ preventScroll: true })
1137
+ }
1138
+ }
1139
+
1140
+ doc.addEventListener('bp-cite-open', (event) => {
1141
+ const detail = event.detail || {}
1142
+ const el = event.target
1143
+ const trigger =
1144
+ (el && el.querySelector && el.querySelector('.bp-cite-trigger')) || el
1145
+ openPane(detail, trigger, el)
1146
+ })
1147
+
1148
+ doc.addEventListener('keydown', (event) => {
1149
+ if (event.key === 'Escape' && ui && ui.pane.classList.contains('is-open')) {
1150
+ event.stopPropagation()
1151
+ closePane()
1152
+ }
1153
+ })
1154
+ }
1155
+
948
1156
  // Optional behavior for TOC current state and reading progress.
949
1157
  import { registerBlueprintChoiceElements } from './blueprint-choices.js'
950
1158
 
@@ -963,6 +1171,7 @@ export function initializeBlueprintRuntime(doc = document, win = window) {
963
1171
  generateNavigationFromHeadings(doc, navigationTree)
964
1172
  wireSectionHeadingLinks(doc, win)
965
1173
  wireSearchPalette(doc, win)
1174
+ wireCitePane(doc, win)
966
1175
  wireFigureDiagramSize(doc)
967
1176
 
968
1177
  // <main> becomes the scroll container only while it is fixed (wide
@@ -409,3 +409,17 @@
409
409
  :where(.bp-cite-pop pre[class*="language-"])::before {
410
410
  display: none; /* flush inside popover, no accent bar */
411
411
  }
412
+
413
+ /* ---------------------------------------------------------------------
414
+ 9. Cited-source side pane (<bp-cite> → bp-cite-open)
415
+ ---------------------------------------------------------------------
416
+ The pane reuses the full highlighted-block treatment from §2 — surface,
417
+ border, left accent bar, and the monochrome token ramp (bold keywords,
418
+ italic comments). Only the outer margin is cleared so the block sits
419
+ flush in the pane body; unlike the popover (§8), the accent bar stays.
420
+ ------------------------------------------------------------------- */
421
+ :where(.bp-cite-pane__source pre[class*="language-"]) {
422
+ margin: 0;
423
+ margin-block: 0;
424
+ max-height: none;
425
+ }
@@ -1,10 +1,10 @@
1
- var we=Object.create;var Q=Object.defineProperty;var Ae=Object.getOwnPropertyDescriptor;var Ee=Object.getOwnPropertyNames;var xe=Object.getPrototypeOf,Fe=Object.prototype.hasOwnProperty;var F=(n,e)=>()=>{try{return e||n((e={exports:{}}).exports,e),e.exports}catch(o){throw e=0,o}};var ke=(n,e,o,c)=>{if(e&&typeof e=="object"||typeof e=="function")for(let a of Ee(e))!Fe.call(n,a)&&a!==o&&Q(n,a,{get:()=>e[a],enumerable:!(c=Ae(e,a))||c.enumerable});return n};var k=(n,e,o)=>(o=n!=null?we(xe(n)):{},ke(e||!n||!n.__esModule?Q(o,"default",{value:n,enumerable:!0}):o,n));var te=F((Ie,M)=>{var Pe=typeof window<"u"?window:typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope?self:{};var ee=(function(n){var e=/(?:^|\s)lang(?:uage)?-([\w-]+)(?=\s|$)/i,o=0,c={},a={manual:n.Prism&&n.Prism.manual,disableWorkerMessageHandler:n.Prism&&n.Prism.disableWorkerMessageHandler,util:{encode:function r(t){return t instanceof m?new m(t.type,r(t.content),t.alias):Array.isArray(t)?t.map(r):t.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/\u00a0/g," ")},type:function(r){return Object.prototype.toString.call(r).slice(8,-1)},objId:function(r){return r.__id||Object.defineProperty(r,"__id",{value:++o}),r.__id},clone:function r(t,i){i=i||{};var s,l;switch(a.util.type(t)){case"Object":if(l=a.util.objId(t),i[l])return i[l];s={},i[l]=s;for(var d in t)t.hasOwnProperty(d)&&(s[d]=r(t[d],i));return s;case"Array":return l=a.util.objId(t),i[l]?i[l]:(s=[],i[l]=s,t.forEach(function(v,p){s[p]=r(v,i)}),s);default:return t}},getLanguage:function(r){for(;r;){var t=e.exec(r.className);if(t)return t[1].toLowerCase();r=r.parentElement}return"none"},setLanguage:function(r,t){r.className=r.className.replace(RegExp(e,"gi"),""),r.classList.add("language-"+t)},currentScript:function(){if(typeof document>"u")return null;if(document.currentScript&&document.currentScript.tagName==="SCRIPT")return document.currentScript;try{throw new Error}catch(s){var r=(/at [^(\r\n]*\((.*):[^:]+:[^:]+\)$/i.exec(s.stack)||[])[1];if(r){var t=document.getElementsByTagName("script");for(var i in t)if(t[i].src==r)return t[i]}return null}},isActive:function(r,t,i){for(var s="no-"+t;r;){var l=r.classList;if(l.contains(t))return!0;if(l.contains(s))return!1;r=r.parentElement}return!!i}},languages:{plain:c,plaintext:c,text:c,txt:c,extend:function(r,t){var i=a.util.clone(a.languages[r]);for(var s in t)i[s]=t[s];return i},insertBefore:function(r,t,i,s){s=s||a.languages;var l=s[r],d={};for(var v in l)if(l.hasOwnProperty(v)){if(v==t)for(var p in i)i.hasOwnProperty(p)&&(d[p]=i[p]);i.hasOwnProperty(v)||(d[v]=l[v])}var w=s[r];return s[r]=d,a.languages.DFS(a.languages,function(A,T){T===w&&A!=r&&(this[A]=d)}),d},DFS:function r(t,i,s,l){l=l||{};var d=a.util.objId;for(var v in t)if(t.hasOwnProperty(v)){i.call(t,v,t[v],s||v);var p=t[v],w=a.util.type(p);w==="Object"&&!l[d(p)]?(l[d(p)]=!0,r(p,i,null,l)):w==="Array"&&!l[d(p)]&&(l[d(p)]=!0,r(p,i,v,l))}}},plugins:{},highlightAll:function(r,t){a.highlightAllUnder(document,r,t)},highlightAllUnder:function(r,t,i){var s={callback:i,container:r,selector:'code[class*="language-"], [class*="language-"] code, code[class*="lang-"], [class*="lang-"] code'};a.hooks.run("before-highlightall",s),s.elements=Array.prototype.slice.apply(s.container.querySelectorAll(s.selector)),a.hooks.run("before-all-elements-highlight",s);for(var l=0,d;d=s.elements[l++];)a.highlightElement(d,t===!0,s.callback)},highlightElement:function(r,t,i){var s=a.util.getLanguage(r),l=a.languages[s];a.util.setLanguage(r,s);var d=r.parentElement;d&&d.nodeName.toLowerCase()==="pre"&&a.util.setLanguage(d,s);var v=r.textContent,p={element:r,language:s,grammar:l,code:v};function w(T){p.highlightedCode=T,a.hooks.run("before-insert",p),p.element.innerHTML=p.highlightedCode,a.hooks.run("after-highlight",p),a.hooks.run("complete",p),i&&i.call(p.element)}if(a.hooks.run("before-sanity-check",p),d=p.element.parentElement,d&&d.nodeName.toLowerCase()==="pre"&&!d.hasAttribute("tabindex")&&d.setAttribute("tabindex","0"),!p.code){a.hooks.run("complete",p),i&&i.call(p.element);return}if(a.hooks.run("before-highlight",p),!p.grammar){w(a.util.encode(p.code));return}if(t&&n.Worker){var A=new Worker(a.filename);A.onmessage=function(T){w(T.data)},A.postMessage(JSON.stringify({language:p.language,code:p.code,immediateClose:!0}))}else w(a.highlight(p.code,p.grammar,p.language))},highlight:function(r,t,i){var s={code:r,grammar:t,language:i};if(a.hooks.run("before-tokenize",s),!s.grammar)throw new Error('The language "'+s.language+'" has no grammar.');return s.tokens=a.tokenize(s.code,s.grammar),a.hooks.run("after-tokenize",s),m.stringify(a.util.encode(s.tokens),s.language)},tokenize:function(r,t){var i=t.rest;if(i){for(var s in i)t[s]=i[s];delete t.rest}var l=new g;return f(l,l.head,r),h(r,l,t,l.head,0),b(l)},hooks:{all:{},add:function(r,t){var i=a.hooks.all;i[r]=i[r]||[],i[r].push(t)},run:function(r,t){var i=a.hooks.all[r];if(!(!i||!i.length))for(var s=0,l;l=i[s++];)l(t)}},Token:m};n.Prism=a;function m(r,t,i,s){this.type=r,this.content=t,this.alias=i,this.length=(s||"").length|0}m.stringify=function r(t,i){if(typeof t=="string")return t;if(Array.isArray(t)){var s="";return t.forEach(function(w){s+=r(w,i)}),s}var l={type:t.type,content:r(t.content,i),tag:"span",classes:["token",t.type],attributes:{},language:i},d=t.alias;d&&(Array.isArray(d)?Array.prototype.push.apply(l.classes,d):l.classes.push(d)),a.hooks.run("wrap",l);var v="";for(var p in l.attributes)v+=" "+p+'="'+(l.attributes[p]||"").replace(/"/g,"&quot;")+'"';return"<"+l.tag+' class="'+l.classes.join(" ")+'"'+v+">"+l.content+"</"+l.tag+">"};function u(r,t,i,s){r.lastIndex=t;var l=r.exec(i);if(l&&s&&l[1]){var d=l[1].length;l.index+=d,l[0]=l[0].slice(d)}return l}function h(r,t,i,s,l,d){for(var v in i)if(!(!i.hasOwnProperty(v)||!i[v])){var p=i[v];p=Array.isArray(p)?p:[p];for(var w=0;w<p.length;++w){if(d&&d.cause==v+","+w)return;var A=p[w],T=A.inside,Y=!!A.lookbehind,K=!!A.greedy,be=A.alias;if(K&&!A.pattern.global){var ve=A.pattern.toString().match(/[imsuy]*$/)[0];A.pattern=RegExp(A.pattern.source,ve+"g")}for(var V=A.pattern||A,E=s.next,P=l;E!==t.tail&&!(d&&P>=d.reach);P+=E.value.length,E=E.next){var $=E.value;if(t.length>r.length)return;if(!($ instanceof m)){var O=1,x;if(K){if(x=u(V,P,r,Y),!x||x.index>=r.length)break;var R=x.index,ye=x.index+x[0].length,C=P;for(C+=E.value.length;R>=C;)E=E.next,C+=E.value.length;if(C-=E.value.length,P=C,E.value instanceof m)continue;for(var I=E;I!==t.tail&&(C<ye||typeof I.value=="string");I=I.next)O++,C+=I.value.length;O--,$=r.slice(P,C),x.index-=P}else if(x=u(V,0,$,Y),!x)continue;var R=x.index,D=x[0],G=$.slice(0,R),J=$.slice(R+D.length),B=P+$.length;d&&B>d.reach&&(d.reach=B);var H=E.prev;G&&(H=f(t,H,G),P+=G.length),y(t,H,O);var Se=new m(v,T?a.tokenize(D,T):D,be,D);if(E=f(t,H,Se),J&&f(t,E,J),O>1){var j={cause:v+","+w,reach:B};h(r,t,i,E.prev,P,j),d&&j.reach>d.reach&&(d.reach=j.reach)}}}}}}function g(){var r={value:null,prev:null,next:null},t={value:null,prev:r,next:null};r.next=t,this.head=r,this.tail=t,this.length=0}function f(r,t,i){var s=t.next,l={value:i,prev:t,next:s};return t.next=l,s.prev=l,r.length++,l}function y(r,t,i){for(var s=t.next,l=0;l<i&&s!==r.tail;l++)s=s.next;t.next=s,s.prev=t,r.length-=l}function b(r){for(var t=[],i=r.head.next;i!==r.tail;)t.push(i.value),i=i.next;return t}if(!n.document)return n.addEventListener&&(a.disableWorkerMessageHandler||n.addEventListener("message",function(r){var t=JSON.parse(r.data),i=t.language,s=t.code,l=t.immediateClose;n.postMessage(a.highlight(s,a.languages[i],i)),l&&n.close()},!1)),a;var S=a.util.currentScript();S&&(a.filename=S.src,S.hasAttribute("data-manual")&&(a.manual=!0));function _(){a.manual||a.highlightAll()}if(!a.manual){var N=document.readyState;N==="loading"||N==="interactive"&&S&&S.defer?document.addEventListener("DOMContentLoaded",_):window.requestAnimationFrame?window.requestAnimationFrame(_):window.setTimeout(_,16)}return a})(Pe);typeof M<"u"&&M.exports&&(M.exports=ee);typeof global<"u"&&(global.Prism=ee)});var ne=F(()=>{Prism.languages.markup={comment:{pattern:/<!--(?:(?!<!--)[\s\S])*?-->/,greedy:!0},prolog:{pattern:/<\?[\s\S]+?\?>/,greedy:!0},doctype:{pattern:/<!DOCTYPE(?:[^>"'[\]]|"[^"]*"|'[^']*')+(?:\[(?:[^<"'\]]|"[^"]*"|'[^']*'|<(?!!--)|<!--(?:[^-]|-(?!->))*-->)*\]\s*)?>/i,greedy:!0,inside:{"internal-subset":{pattern:/(^[^\[]*\[)[\s\S]+(?=\]>$)/,lookbehind:!0,greedy:!0,inside:null},string:{pattern:/"[^"]*"|'[^']*'/,greedy:!0},punctuation:/^<!|>$|[[\]]/,"doctype-tag":/^DOCTYPE/i,name:/[^\s<>'"]+/}},cdata:{pattern:/<!\[CDATA\[[\s\S]*?\]\]>/i,greedy:!0},tag:{pattern:/<\/?(?!\d)[^\s>\/=$<%]+(?:\s(?:\s*[^\s>\/=]+(?:\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))|(?=[\s/>])))+)?\s*\/?>/,greedy:!0,inside:{tag:{pattern:/^<\/?[^\s>\/]+/,inside:{punctuation:/^<\/?/,namespace:/^[^\s>\/:]+:/}},"special-attr":[],"attr-value":{pattern:/=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+)/,inside:{punctuation:[{pattern:/^=/,alias:"attr-equals"},{pattern:/^(\s*)["']|["']$/,lookbehind:!0}]}},punctuation:/\/?>/,"attr-name":{pattern:/[^\s>\/]+/,inside:{namespace:/^[^\s>\/:]+:/}}}},entity:[{pattern:/&[\da-z]{1,8};/i,alias:"named-entity"},/&#x?[\da-f]{1,8};/i]};Prism.languages.markup.tag.inside["attr-value"].inside.entity=Prism.languages.markup.entity;Prism.languages.markup.doctype.inside["internal-subset"].inside=Prism.languages.markup;Prism.hooks.add("wrap",function(n){n.type==="entity"&&(n.attributes.title=n.content.replace(/&amp;/,"&"))});Object.defineProperty(Prism.languages.markup.tag,"addInlined",{value:function(e,o){var c={};c["language-"+o]={pattern:/(^<!\[CDATA\[)[\s\S]+?(?=\]\]>$)/i,lookbehind:!0,inside:Prism.languages[o]},c.cdata=/^<!\[CDATA\[|\]\]>$/i;var a={"included-cdata":{pattern:/<!\[CDATA\[[\s\S]*?\]\]>/i,inside:c}};a["language-"+o]={pattern:/[\s\S]+/,inside:Prism.languages[o]};var m={};m[e]={pattern:RegExp(/(<__[^>]*>)(?:<!\[CDATA\[(?:[^\]]|\](?!\]>))*\]\]>|(?!<!\[CDATA\[)[\s\S])*?(?=<\/__>)/.source.replace(/__/g,function(){return e}),"i"),lookbehind:!0,greedy:!0,inside:a},Prism.languages.insertBefore("markup","cdata",m)}});Object.defineProperty(Prism.languages.markup.tag,"addAttribute",{value:function(n,e){Prism.languages.markup.tag.inside["special-attr"].push({pattern:RegExp(/(^|["'\s])/.source+"(?:"+n+")"+/\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))/.source,"i"),lookbehind:!0,inside:{"attr-name":/^[^\s=]+/,"attr-value":{pattern:/=[\s\S]+/,inside:{value:{pattern:/(^=\s*(["']|(?!["'])))\S[\s\S]*(?=\2$)/,lookbehind:!0,alias:[e,"language-"+e],inside:Prism.languages[e]},punctuation:[{pattern:/^=/,alias:"attr-equals"},/"|'/]}}}})}});Prism.languages.html=Prism.languages.markup;Prism.languages.mathml=Prism.languages.markup;Prism.languages.svg=Prism.languages.markup;Prism.languages.xml=Prism.languages.extend("markup",{});Prism.languages.ssml=Prism.languages.xml;Prism.languages.atom=Prism.languages.xml;Prism.languages.rss=Prism.languages.xml});var ae=F(()=>{(function(n){var e=/(?:"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"|'(?:\\(?:\r\n|[\s\S])|[^'\\\r\n])*')/;n.languages.css={comment:/\/\*[\s\S]*?\*\//,atrule:{pattern:RegExp("@[\\w-](?:"+/[^;{\s"']|\s+(?!\s)/.source+"|"+e.source+")*?"+/(?:;|(?=\s*\{))/.source),inside:{rule:/^@[\w-]+/,"selector-function-argument":{pattern:/(\bselector\s*\(\s*(?![\s)]))(?:[^()\s]|\s+(?![\s)])|\((?:[^()]|\([^()]*\))*\))+(?=\s*\))/,lookbehind:!0,alias:"selector"},keyword:{pattern:/(^|[^\w-])(?:and|not|only|or)(?![\w-])/,lookbehind:!0}}},url:{pattern:RegExp("\\burl\\((?:"+e.source+"|"+/(?:[^\\\r\n()"']|\\[\s\S])*/.source+")\\)","i"),greedy:!0,inside:{function:/^url/i,punctuation:/^\(|\)$/,string:{pattern:RegExp("^"+e.source+"$"),alias:"url"}}},selector:{pattern:RegExp(`(^|[{}\\s])[^{}\\s](?:[^{};"'\\s]|\\s+(?![\\s{])|`+e.source+")*(?=\\s*\\{)"),lookbehind:!0},string:{pattern:e,greedy:!0},property:{pattern:/(^|[^-\w\xA0-\uFFFF])(?!\s)[-_a-z\xA0-\uFFFF](?:(?!\s)[-\w\xA0-\uFFFF])*(?=\s*:)/i,lookbehind:!0},important:/!important\b/i,function:{pattern:/(^|[^-a-z0-9])[-a-z0-9]+(?=\()/i,lookbehind:!0},punctuation:/[(){};:,]/},n.languages.css.atrule.inside.rest=n.languages.css;var o=n.languages.markup;o&&(o.tag.addInlined("style","css"),o.tag.addAttribute("style","css"))})(Prism)});var re=F(()=>{Prism.languages.clike={comment:[{pattern:/(^|[^\\])\/\*[\s\S]*?(?:\*\/|$)/,lookbehind:!0,greedy:!0},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:!0,greedy:!0}],string:{pattern:/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},"class-name":{pattern:/(\b(?:class|extends|implements|instanceof|interface|new|trait)\s+|\bcatch\s+\()[\w.\\]+/i,lookbehind:!0,inside:{punctuation:/[.\\]/}},keyword:/\b(?:break|catch|continue|do|else|finally|for|function|if|in|instanceof|new|null|return|throw|try|while)\b/,boolean:/\b(?:false|true)\b/,function:/\b\w+(?=\()/,number:/\b0x[\da-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?/i,operator:/[<>]=?|[!=]=?=?|--?|\+\+?|&&?|\|\|?|[?*/~^%]/,punctuation:/[{}[\];(),.:]/}});var ie=F(()=>{Prism.languages.javascript=Prism.languages.extend("clike",{"class-name":[Prism.languages.clike["class-name"],{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$A-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\.(?:constructor|prototype))/,lookbehind:!0}],keyword:[{pattern:/((?:^|\})\s*)catch\b/,lookbehind:!0},{pattern:/(^|[^.]|\.\.\.\s*)\b(?:as|assert(?=\s*\{)|async(?=\s*(?:function\b|\(|[$\w\xA0-\uFFFF]|$))|await|break|case|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally(?=\s*(?:\{|$))|for|from(?=\s*(?:['"]|$))|function|(?:get|set)(?=\s*(?:[#\[$\w\xA0-\uFFFF]|$))|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)\b/,lookbehind:!0}],function:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*(?:\.\s*(?:apply|bind|call)\s*)?\()/,number:{pattern:RegExp(/(^|[^\w$])/.source+"(?:"+(/NaN|Infinity/.source+"|"+/0[bB][01]+(?:_[01]+)*n?/.source+"|"+/0[oO][0-7]+(?:_[0-7]+)*n?/.source+"|"+/0[xX][\dA-Fa-f]+(?:_[\dA-Fa-f]+)*n?/.source+"|"+/\d+(?:_\d+)*n/.source+"|"+/(?:\d+(?:_\d+)*(?:\.(?:\d+(?:_\d+)*)?)?|\.\d+(?:_\d+)*)(?:[Ee][+-]?\d+(?:_\d+)*)?/.source)+")"+/(?![\w$])/.source),lookbehind:!0},operator:/--|\+\+|\*\*=?|=>|&&=?|\|\|=?|[!=]==|<<=?|>>>?=?|[-+*/%&|^!=<>]=?|\.{3}|\?\?=?|\?\.?|[~:]/});Prism.languages.javascript["class-name"][0].pattern=/(\b(?:class|extends|implements|instanceof|interface|new)\s+)[\w.\\]+/;Prism.languages.insertBefore("javascript","keyword",{regex:{pattern:RegExp(/((?:^|[^$\w\xA0-\uFFFF."'\])\s]|\b(?:return|yield))\s*)/.source+/\//.source+"(?:"+/(?:\[(?:[^\]\\\r\n]|\\.)*\]|\\.|[^/\\\[\r\n])+\/[dgimyus]{0,7}/.source+"|"+/(?:\[(?:[^[\]\\\r\n]|\\.|\[(?:[^[\]\\\r\n]|\\.|\[(?:[^[\]\\\r\n]|\\.)*\])*\])*\]|\\.|[^/\\\[\r\n])+\/[dgimyus]{0,7}v[dgimyus]{0,7}/.source+")"+/(?=(?:\s|\/\*(?:[^*]|\*(?!\/))*\*\/)*(?:$|[\r\n,.;:})\]]|\/\/))/.source),lookbehind:!0,greedy:!0,inside:{"regex-source":{pattern:/^(\/)[\s\S]+(?=\/[a-z]*$)/,lookbehind:!0,alias:"language-regex",inside:Prism.languages.regex},"regex-delimiter":/^\/|\/$/,"regex-flags":/^[a-z]+$/}},"function-variable":{pattern:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*[=:]\s*(?:async\s*)?(?:\bfunction\b|(?:\((?:[^()]|\([^()]*\))*\)|(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)\s*=>))/,alias:"function"},parameter:[{pattern:/(function(?:\s+(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)?\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\))/,lookbehind:!0,inside:Prism.languages.javascript},{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$a-z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*=>)/i,lookbehind:!0,inside:Prism.languages.javascript},{pattern:/(\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*=>)/,lookbehind:!0,inside:Prism.languages.javascript},{pattern:/((?:\b|\s|^)(?!(?:as|async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)(?![$\w\xA0-\uFFFF]))(?:(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*\s*)\(\s*|\]\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*\{)/,lookbehind:!0,inside:Prism.languages.javascript}],constant:/\b[A-Z](?:[A-Z_]|\dx?)*\b/});Prism.languages.insertBefore("javascript","string",{hashbang:{pattern:/^#!.*/,greedy:!0,alias:"comment"},"template-string":{pattern:/`(?:\\[\s\S]|\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}|(?!\$\{)[^\\`])*`/,greedy:!0,inside:{"template-punctuation":{pattern:/^`|`$/,alias:"string"},interpolation:{pattern:/((?:^|[^\\])(?:\\{2})*)\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}/,lookbehind:!0,inside:{"interpolation-punctuation":{pattern:/^\$\{|\}$/,alias:"punctuation"},rest:Prism.languages.javascript}},string:/[\s\S]+/}},"string-property":{pattern:/((?:^|[,{])[ \t]*)(["'])(?:\\(?:\r\n|[\s\S])|(?!\2)[^\\\r\n])*\2(?=\s*:)/m,lookbehind:!0,greedy:!0,alias:"property"}});Prism.languages.insertBefore("javascript","operator",{"literal-property":{pattern:/((?:^|[,{])[ \t]*)(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*:)/m,lookbehind:!0,alias:"property"}});Prism.languages.markup&&(Prism.languages.markup.tag.addInlined("script","javascript"),Prism.languages.markup.tag.addAttribute(/on(?:abort|blur|change|click|composition(?:end|start|update)|dblclick|error|focus(?:in|out)?|key(?:down|up)|load|mouse(?:down|enter|leave|move|out|over|up)|reset|resize|scroll|select|slotchange|submit|unload|wheel)/.source,"javascript"));Prism.languages.js=Prism.languages.javascript});var se=F(()=>{(function(n){n.languages.typescript=n.languages.extend("javascript",{"class-name":{pattern:/(\b(?:class|extends|implements|instanceof|interface|new|type)\s+)(?!keyof\b)(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?:\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>)?/,lookbehind:!0,greedy:!0,inside:null},builtin:/\b(?:Array|Function|Promise|any|boolean|console|never|number|string|symbol|unknown)\b/}),n.languages.typescript.keyword.push(/\b(?:abstract|declare|is|keyof|readonly|require)\b/,/\b(?:asserts|infer|interface|module|namespace|type)\b(?=\s*(?:[{_$a-zA-Z\xA0-\uFFFF]|$))/,/\btype\b(?=\s*(?:[\{*]|$))/),delete n.languages.typescript.parameter,delete n.languages.typescript["literal-property"];var e=n.languages.extend("typescript",{});delete e["class-name"],n.languages.typescript["class-name"].inside=e,n.languages.insertBefore("typescript","function",{decorator:{pattern:/@[$\w\xA0-\uFFFF]+/,inside:{at:{pattern:/^@/,alias:"operator"},function:/^[\s\S]+/}},"generic-function":{pattern:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>(?=\s*\()/,greedy:!0,inside:{function:/^#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*/,generic:{pattern:/<[\s\S]+/,alias:"class-name",inside:e}}}}),n.languages.ts=n.languages.typescript})(Prism)});var oe=F(()=>{Prism.languages.json={property:{pattern:/(^|[^\\])"(?:\\.|[^\\"\r\n])*"(?=\s*:)/,lookbehind:!0,greedy:!0},string:{pattern:/(^|[^\\])"(?:\\.|[^\\"\r\n])*"(?!\s*:)/,lookbehind:!0,greedy:!0},comment:{pattern:/\/\/.*|\/\*[\s\S]*?(?:\*\/|$)/,greedy:!0},number:/-?\b\d+(?:\.\d+)?(?:e[+-]?\d+)?\b/i,punctuation:/[{}[\],]/,operator:/:/,boolean:/\b(?:false|true)\b/,null:{pattern:/\bnull\b/,alias:"keyword"}};Prism.languages.webmanifest=Prism.languages.json});var le=F(()=>{(function(n){var e="\\b(?:BASH|BASHOPTS|BASH_ALIASES|BASH_ARGC|BASH_ARGV|BASH_CMDS|BASH_COMPLETION_COMPAT_DIR|BASH_LINENO|BASH_REMATCH|BASH_SOURCE|BASH_VERSINFO|BASH_VERSION|COLORTERM|COLUMNS|COMP_WORDBREAKS|DBUS_SESSION_BUS_ADDRESS|DEFAULTS_PATH|DESKTOP_SESSION|DIRSTACK|DISPLAY|EUID|GDMSESSION|GDM_LANG|GNOME_KEYRING_CONTROL|GNOME_KEYRING_PID|GPG_AGENT_INFO|GROUPS|HISTCONTROL|HISTFILE|HISTFILESIZE|HISTSIZE|HOME|HOSTNAME|HOSTTYPE|IFS|INSTANCE|JOB|LANG|LANGUAGE|LC_ADDRESS|LC_ALL|LC_IDENTIFICATION|LC_MEASUREMENT|LC_MONETARY|LC_NAME|LC_NUMERIC|LC_PAPER|LC_TELEPHONE|LC_TIME|LESSCLOSE|LESSOPEN|LINES|LOGNAME|LS_COLORS|MACHTYPE|MAILCHECK|MANDATORY_PATH|NO_AT_BRIDGE|OLDPWD|OPTERR|OPTIND|ORBIT_SOCKETDIR|OSTYPE|PAPERSIZE|PATH|PIPESTATUS|PPID|PS1|PS2|PS3|PS4|PWD|RANDOM|REPLY|SECONDS|SELINUX_INIT|SESSION|SESSIONTYPE|SESSION_MANAGER|SHELL|SHELLOPTS|SHLVL|SSH_AUTH_SOCK|TERM|UID|UPSTART_EVENTS|UPSTART_INSTANCE|UPSTART_JOB|UPSTART_SESSION|USER|WINDOWID|XAUTHORITY|XDG_CONFIG_DIRS|XDG_CURRENT_DESKTOP|XDG_DATA_DIRS|XDG_GREETER_DATA_DIR|XDG_MENU_PREFIX|XDG_RUNTIME_DIR|XDG_SEAT|XDG_SEAT_PATH|XDG_SESSION_DESKTOP|XDG_SESSION_ID|XDG_SESSION_PATH|XDG_SESSION_TYPE|XDG_VTNR|XMODIFIERS)\\b",o={pattern:/(^(["']?)\w+\2)[ \t]+\S.*/,lookbehind:!0,alias:"punctuation",inside:null},c={bash:o,environment:{pattern:RegExp("\\$"+e),alias:"constant"},variable:[{pattern:/\$?\(\([\s\S]+?\)\)/,greedy:!0,inside:{variable:[{pattern:/(^\$\(\([\s\S]+)\)\)/,lookbehind:!0},/^\$\(\(/],number:/\b0x[\dA-Fa-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:[Ee]-?\d+)?/,operator:/--|\+\+|\*\*=?|<<=?|>>=?|&&|\|\||[=!+\-*/%<>^&|]=?|[?~:]/,punctuation:/\(\(?|\)\)?|,|;/}},{pattern:/\$\((?:\([^)]+\)|[^()])+\)|`[^`]+`/,greedy:!0,inside:{variable:/^\$\(|^`|\)$|`$/}},{pattern:/\$\{[^}]+\}/,greedy:!0,inside:{operator:/:[-=?+]?|[!\/]|##?|%%?|\^\^?|,,?/,punctuation:/[\[\]]/,environment:{pattern:RegExp("(\\{)"+e),lookbehind:!0,alias:"constant"}}},/\$(?:\w+|[#?*!@$])/],entity:/\\(?:[abceEfnrtv\\"]|O?[0-7]{1,3}|U[0-9a-fA-F]{8}|u[0-9a-fA-F]{4}|x[0-9a-fA-F]{1,2})/};n.languages.bash={shebang:{pattern:/^#!\s*\/.*/,alias:"important"},comment:{pattern:/(^|[^"{\\$])#.*/,lookbehind:!0},"function-name":[{pattern:/(\bfunction\s+)[\w-]+(?=(?:\s*\(?:\s*\))?\s*\{)/,lookbehind:!0,alias:"function"},{pattern:/\b[\w-]+(?=\s*\(\s*\)\s*\{)/,alias:"function"}],"for-or-select":{pattern:/(\b(?:for|select)\s+)\w+(?=\s+in\s)/,alias:"variable",lookbehind:!0},"assign-left":{pattern:/(^|[\s;|&]|[<>]\()\w+(?:\.\w+)*(?=\+?=)/,inside:{environment:{pattern:RegExp("(^|[\\s;|&]|[<>]\\()"+e),lookbehind:!0,alias:"constant"}},alias:"variable",lookbehind:!0},parameter:{pattern:/(^|\s)-{1,2}(?:\w+:[+-]?)?\w+(?:\.\w+)*(?=[=\s]|$)/,alias:"variable",lookbehind:!0},string:[{pattern:/((?:^|[^<])<<-?\s*)(\w+)\s[\s\S]*?(?:\r?\n|\r)\2/,lookbehind:!0,greedy:!0,inside:c},{pattern:/((?:^|[^<])<<-?\s*)(["'])(\w+)\2\s[\s\S]*?(?:\r?\n|\r)\3/,lookbehind:!0,greedy:!0,inside:{bash:o}},{pattern:/(^|[^\\](?:\\\\)*)"(?:\\[\s\S]|\$\([^)]+\)|\$(?!\()|`[^`]+`|[^"\\`$])*"/,lookbehind:!0,greedy:!0,inside:c},{pattern:/(^|[^$\\])'[^']*'/,lookbehind:!0,greedy:!0},{pattern:/\$'(?:[^'\\]|\\[\s\S])*'/,greedy:!0,inside:{entity:c.entity}}],environment:{pattern:RegExp("\\$?"+e),alias:"constant"},variable:c.variable,function:{pattern:/(^|[\s;|&]|[<>]\()(?:add|apropos|apt|apt-cache|apt-get|aptitude|aspell|automysqlbackup|awk|basename|bash|bc|bconsole|bg|bzip2|cal|cargo|cat|cfdisk|chgrp|chkconfig|chmod|chown|chroot|cksum|clear|cmp|column|comm|composer|cp|cron|crontab|csplit|curl|cut|date|dc|dd|ddrescue|debootstrap|df|diff|diff3|dig|dir|dircolors|dirname|dirs|dmesg|docker|docker-compose|du|egrep|eject|env|ethtool|expand|expect|expr|fdformat|fdisk|fg|fgrep|file|find|fmt|fold|format|free|fsck|ftp|fuser|gawk|git|gparted|grep|groupadd|groupdel|groupmod|groups|grub-mkconfig|gzip|halt|head|hg|history|host|hostname|htop|iconv|id|ifconfig|ifdown|ifup|import|install|ip|java|jobs|join|kill|killall|less|link|ln|locate|logname|logrotate|look|lpc|lpr|lprint|lprintd|lprintq|lprm|ls|lsof|lynx|make|man|mc|mdadm|mkconfig|mkdir|mke2fs|mkfifo|mkfs|mkisofs|mknod|mkswap|mmv|more|most|mount|mtools|mtr|mutt|mv|nano|nc|netstat|nice|nl|node|nohup|notify-send|npm|nslookup|op|open|parted|passwd|paste|pathchk|ping|pkill|pnpm|podman|podman-compose|popd|pr|printcap|printenv|ps|pushd|pv|quota|quotacheck|quotactl|ram|rar|rcp|reboot|remsync|rename|renice|rev|rm|rmdir|rpm|rsync|scp|screen|sdiff|sed|sendmail|seq|service|sftp|sh|shellcheck|shuf|shutdown|sleep|slocate|sort|split|ssh|stat|strace|su|sudo|sum|suspend|swapon|sync|sysctl|tac|tail|tar|tee|time|timeout|top|touch|tr|traceroute|tsort|tty|umount|uname|unexpand|uniq|units|unrar|unshar|unzip|update-grub|uptime|useradd|userdel|usermod|users|uudecode|uuencode|v|vcpkg|vdir|vi|vim|virsh|vmstat|wait|watch|wc|wget|whereis|which|who|whoami|write|xargs|xdg-open|yarn|yes|zenity|zip|zsh|zypper)(?=$|[)\s;|&])/,lookbehind:!0},keyword:{pattern:/(^|[\s;|&]|[<>]\()(?:case|do|done|elif|else|esac|fi|for|function|if|in|select|then|until|while)(?=$|[)\s;|&])/,lookbehind:!0},builtin:{pattern:/(^|[\s;|&]|[<>]\()(?:\.|:|alias|bind|break|builtin|caller|cd|command|continue|declare|echo|enable|eval|exec|exit|export|getopts|hash|help|let|local|logout|mapfile|printf|pwd|read|readarray|readonly|return|set|shift|shopt|source|test|times|trap|type|typeset|ulimit|umask|unalias|unset)(?=$|[)\s;|&])/,lookbehind:!0,alias:"class-name"},boolean:{pattern:/(^|[\s;|&]|[<>]\()(?:false|true)(?=$|[)\s;|&])/,lookbehind:!0},"file-descriptor":{pattern:/\B&\d\b/,alias:"important"},operator:{pattern:/\d?<>|>\||\+=|=[=~]?|!=?|<<[<-]?|[&\d]?>>|\d[<>]&?|[<>][&=]?|&[>&]?|\|[&|]?/,inside:{"file-descriptor":{pattern:/^\d/,alias:"important"}}},punctuation:/\$?\(\(?|\)\)?|\.\.|[{}[\];\\]/,number:{pattern:/(^|\s)(?:[1-9]\d*|0)(?:[.,]\d+)?\b/,lookbehind:!0}},o.inside=n.languages.bash;for(var a=["comment","function-name","for-or-select","assign-left","parameter","string","environment","function","keyword","builtin","boolean","file-descriptor","operator","punctuation","number"],m=c.variable[1].inside,u=0;u<a.length;u++)m[a[u]]=n.languages.bash[a[u]];n.languages.sh=n.languages.bash,n.languages.shell=n.languages.bash})(Prism)});var ue=F(()=>{Prism.languages.python={comment:{pattern:/(^|[^\\])#.*/,lookbehind:!0,greedy:!0},"string-interpolation":{pattern:/(?:f|fr|rf)(?:("""|''')[\s\S]*?\1|("|')(?:\\.|(?!\2)[^\\\r\n])*\2)/i,greedy:!0,inside:{interpolation:{pattern:/((?:^|[^{])(?:\{\{)*)\{(?!\{)(?:[^{}]|\{(?!\{)(?:[^{}]|\{(?!\{)(?:[^{}])+\})+\})+\}/,lookbehind:!0,inside:{"format-spec":{pattern:/(:)[^:(){}]+(?=\}$)/,lookbehind:!0},"conversion-option":{pattern:/![sra](?=[:}]$)/,alias:"punctuation"},rest:null}},string:/[\s\S]+/}},"triple-quoted-string":{pattern:/(?:[rub]|br|rb)?("""|''')[\s\S]*?\1/i,greedy:!0,alias:"string"},string:{pattern:/(?:[rub]|br|rb)?("|')(?:\\.|(?!\1)[^\\\r\n])*\1/i,greedy:!0},function:{pattern:/((?:^|\s)def[ \t]+)[a-zA-Z_]\w*(?=\s*\()/g,lookbehind:!0},"class-name":{pattern:/(\bclass\s+)\w+/i,lookbehind:!0},decorator:{pattern:/(^[\t ]*)@\w+(?:\.\w+)*/m,lookbehind:!0,alias:["annotation","punctuation"],inside:{punctuation:/\./}},keyword:/\b(?:_(?=\s*:)|and|as|assert|async|await|break|case|class|continue|def|del|elif|else|except|exec|finally|for|from|global|if|import|in|is|lambda|match|nonlocal|not|or|pass|print|raise|return|try|while|with|yield)\b/,builtin:/\b(?:__import__|abs|all|any|apply|ascii|basestring|bin|bool|buffer|bytearray|bytes|callable|chr|classmethod|cmp|coerce|compile|complex|delattr|dict|dir|divmod|enumerate|eval|execfile|file|filter|float|format|frozenset|getattr|globals|hasattr|hash|help|hex|id|input|int|intern|isinstance|issubclass|iter|len|list|locals|long|map|max|memoryview|min|next|object|oct|open|ord|pow|property|range|raw_input|reduce|reload|repr|reversed|round|set|setattr|slice|sorted|staticmethod|str|sum|super|tuple|type|unichr|unicode|vars|xrange|zip)\b/,boolean:/\b(?:False|None|True)\b/,number:/\b0(?:b(?:_?[01])+|o(?:_?[0-7])+|x(?:_?[a-f0-9])+)\b|(?:\b\d+(?:_\d+)*(?:\.(?:\d+(?:_\d+)*)?)?|\B\.\d+(?:_\d+)*)(?:e[+-]?\d+(?:_\d+)*)?j?(?!\w)/i,operator:/[-+%=]=?|!=|:=|\*\*?=?|\/\/?=?|<[<=>]?|>[=>]?|[&|^~]/,punctuation:/[{}[\];(),.:]/};Prism.languages.python["string-interpolation"].inside.interpolation.inside.rest=Prism.languages.python;Prism.languages.py=Prism.languages.python});var ce=F(()=>{(function(n){n.languages.diff={coord:[/^(?:\*{3}|-{3}|\+{3}).*$/m,/^@@.*@@$/m,/^\d.*$/m]};var e={"deleted-sign":"-","deleted-arrow":"<","inserted-sign":"+","inserted-arrow":">",unchanged:" ",diff:"!"};Object.keys(e).forEach(function(o){var c=e[o],a=[];/^\w+$/.test(o)||a.push(/\w+/.exec(o)[0]),o==="diff"&&a.push("bold"),n.languages.diff[o]={pattern:RegExp("^(?:["+c+`].*(?:\r
1
+ var Ae=Object.create;var Q=Object.defineProperty;var we=Object.getOwnPropertyDescriptor;var Ee=Object.getOwnPropertyNames;var xe=Object.getPrototypeOf,ke=Object.prototype.hasOwnProperty;var k=(n,e)=>()=>{try{return e||n((e={exports:{}}).exports,e),e.exports}catch(o){throw e=0,o}};var Fe=(n,e,o,u)=>{if(e&&typeof e=="object"||typeof e=="function")for(let a of Ee(e))!ke.call(n,a)&&a!==o&&Q(n,a,{get:()=>e[a],enumerable:!(u=we(e,a))||u.enumerable});return n};var F=(n,e,o)=>(o=n!=null?Ae(xe(n)):{},Fe(e||!n||!n.__esModule?Q(o,"default",{value:n,enumerable:!0}):o,n));var te=k(($e,M)=>{var Pe=typeof window<"u"?window:typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope?self:{};var ee=(function(n){var e=/(?:^|\s)lang(?:uage)?-([\w-]+)(?=\s|$)/i,o=0,u={},a={manual:n.Prism&&n.Prism.manual,disableWorkerMessageHandler:n.Prism&&n.Prism.disableWorkerMessageHandler,util:{encode:function r(t){return t instanceof f?new f(t.type,r(t.content),t.alias):Array.isArray(t)?t.map(r):t.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/\u00a0/g," ")},type:function(r){return Object.prototype.toString.call(r).slice(8,-1)},objId:function(r){return r.__id||Object.defineProperty(r,"__id",{value:++o}),r.__id},clone:function r(t,i){i=i||{};var s,l;switch(a.util.type(t)){case"Object":if(l=a.util.objId(t),i[l])return i[l];s={},i[l]=s;for(var d in t)t.hasOwnProperty(d)&&(s[d]=r(t[d],i));return s;case"Array":return l=a.util.objId(t),i[l]?i[l]:(s=[],i[l]=s,t.forEach(function(v,p){s[p]=r(v,i)}),s);default:return t}},getLanguage:function(r){for(;r;){var t=e.exec(r.className);if(t)return t[1].toLowerCase();r=r.parentElement}return"none"},setLanguage:function(r,t){r.className=r.className.replace(RegExp(e,"gi"),""),r.classList.add("language-"+t)},currentScript:function(){if(typeof document>"u")return null;if(document.currentScript&&document.currentScript.tagName==="SCRIPT")return document.currentScript;try{throw new Error}catch(s){var r=(/at [^(\r\n]*\((.*):[^:]+:[^:]+\)$/i.exec(s.stack)||[])[1];if(r){var t=document.getElementsByTagName("script");for(var i in t)if(t[i].src==r)return t[i]}return null}},isActive:function(r,t,i){for(var s="no-"+t;r;){var l=r.classList;if(l.contains(t))return!0;if(l.contains(s))return!1;r=r.parentElement}return!!i}},languages:{plain:u,plaintext:u,text:u,txt:u,extend:function(r,t){var i=a.util.clone(a.languages[r]);for(var s in t)i[s]=t[s];return i},insertBefore:function(r,t,i,s){s=s||a.languages;var l=s[r],d={};for(var v in l)if(l.hasOwnProperty(v)){if(v==t)for(var p in i)i.hasOwnProperty(p)&&(d[p]=i[p]);i.hasOwnProperty(v)||(d[v]=l[v])}var A=s[r];return s[r]=d,a.languages.DFS(a.languages,function(w,T){T===A&&w!=r&&(this[w]=d)}),d},DFS:function r(t,i,s,l){l=l||{};var d=a.util.objId;for(var v in t)if(t.hasOwnProperty(v)){i.call(t,v,t[v],s||v);var p=t[v],A=a.util.type(p);A==="Object"&&!l[d(p)]?(l[d(p)]=!0,r(p,i,null,l)):A==="Array"&&!l[d(p)]&&(l[d(p)]=!0,r(p,i,v,l))}}},plugins:{},highlightAll:function(r,t){a.highlightAllUnder(document,r,t)},highlightAllUnder:function(r,t,i){var s={callback:i,container:r,selector:'code[class*="language-"], [class*="language-"] code, code[class*="lang-"], [class*="lang-"] code'};a.hooks.run("before-highlightall",s),s.elements=Array.prototype.slice.apply(s.container.querySelectorAll(s.selector)),a.hooks.run("before-all-elements-highlight",s);for(var l=0,d;d=s.elements[l++];)a.highlightElement(d,t===!0,s.callback)},highlightElement:function(r,t,i){var s=a.util.getLanguage(r),l=a.languages[s];a.util.setLanguage(r,s);var d=r.parentElement;d&&d.nodeName.toLowerCase()==="pre"&&a.util.setLanguage(d,s);var v=r.textContent,p={element:r,language:s,grammar:l,code:v};function A(T){p.highlightedCode=T,a.hooks.run("before-insert",p),p.element.innerHTML=p.highlightedCode,a.hooks.run("after-highlight",p),a.hooks.run("complete",p),i&&i.call(p.element)}if(a.hooks.run("before-sanity-check",p),d=p.element.parentElement,d&&d.nodeName.toLowerCase()==="pre"&&!d.hasAttribute("tabindex")&&d.setAttribute("tabindex","0"),!p.code){a.hooks.run("complete",p),i&&i.call(p.element);return}if(a.hooks.run("before-highlight",p),!p.grammar){A(a.util.encode(p.code));return}if(t&&n.Worker){var w=new Worker(a.filename);w.onmessage=function(T){A(T.data)},w.postMessage(JSON.stringify({language:p.language,code:p.code,immediateClose:!0}))}else A(a.highlight(p.code,p.grammar,p.language))},highlight:function(r,t,i){var s={code:r,grammar:t,language:i};if(a.hooks.run("before-tokenize",s),!s.grammar)throw new Error('The language "'+s.language+'" has no grammar.');return s.tokens=a.tokenize(s.code,s.grammar),a.hooks.run("after-tokenize",s),f.stringify(a.util.encode(s.tokens),s.language)},tokenize:function(r,t){var i=t.rest;if(i){for(var s in i)t[s]=i[s];delete t.rest}var l=new g;return m(l,l.head,r),h(r,l,t,l.head,0),b(l)},hooks:{all:{},add:function(r,t){var i=a.hooks.all;i[r]=i[r]||[],i[r].push(t)},run:function(r,t){var i=a.hooks.all[r];if(!(!i||!i.length))for(var s=0,l;l=i[s++];)l(t)}},Token:f};n.Prism=a;function f(r,t,i,s){this.type=r,this.content=t,this.alias=i,this.length=(s||"").length|0}f.stringify=function r(t,i){if(typeof t=="string")return t;if(Array.isArray(t)){var s="";return t.forEach(function(A){s+=r(A,i)}),s}var l={type:t.type,content:r(t.content,i),tag:"span",classes:["token",t.type],attributes:{},language:i},d=t.alias;d&&(Array.isArray(d)?Array.prototype.push.apply(l.classes,d):l.classes.push(d)),a.hooks.run("wrap",l);var v="";for(var p in l.attributes)v+=" "+p+'="'+(l.attributes[p]||"").replace(/"/g,"&quot;")+'"';return"<"+l.tag+' class="'+l.classes.join(" ")+'"'+v+">"+l.content+"</"+l.tag+">"};function c(r,t,i,s){r.lastIndex=t;var l=r.exec(i);if(l&&s&&l[1]){var d=l[1].length;l.index+=d,l[0]=l[0].slice(d)}return l}function h(r,t,i,s,l,d){for(var v in i)if(!(!i.hasOwnProperty(v)||!i[v])){var p=i[v];p=Array.isArray(p)?p:[p];for(var A=0;A<p.length;++A){if(d&&d.cause==v+","+A)return;var w=p[A],T=w.inside,Y=!!w.lookbehind,K=!!w.greedy,be=w.alias;if(K&&!w.pattern.global){var ve=w.pattern.toString().match(/[imsuy]*$/)[0];w.pattern=RegExp(w.pattern.source,ve+"g")}for(var V=w.pattern||w,E=s.next,P=l;E!==t.tail&&!(d&&P>=d.reach);P+=E.value.length,E=E.next){var I=E.value;if(t.length>r.length)return;if(!(I instanceof f)){var O=1,x;if(K){if(x=c(V,P,r,Y),!x||x.index>=r.length)break;var R=x.index,ye=x.index+x[0].length,C=P;for(C+=E.value.length;R>=C;)E=E.next,C+=E.value.length;if(C-=E.value.length,P=C,E.value instanceof f)continue;for(var L=E;L!==t.tail&&(C<ye||typeof L.value=="string");L=L.next)O++,C+=L.value.length;O--,I=r.slice(P,C),x.index-=P}else if(x=c(V,0,I,Y),!x)continue;var R=x.index,D=x[0],G=I.slice(0,R),J=I.slice(R+D.length),B=P+I.length;d&&B>d.reach&&(d.reach=B);var H=E.prev;G&&(H=m(t,H,G),P+=G.length),y(t,H,O);var Se=new f(v,T?a.tokenize(D,T):D,be,D);if(E=m(t,H,Se),J&&m(t,E,J),O>1){var j={cause:v+","+A,reach:B};h(r,t,i,E.prev,P,j),d&&j.reach>d.reach&&(d.reach=j.reach)}}}}}}function g(){var r={value:null,prev:null,next:null},t={value:null,prev:r,next:null};r.next=t,this.head=r,this.tail=t,this.length=0}function m(r,t,i){var s=t.next,l={value:i,prev:t,next:s};return t.next=l,s.prev=l,r.length++,l}function y(r,t,i){for(var s=t.next,l=0;l<i&&s!==r.tail;l++)s=s.next;t.next=s,s.prev=t,r.length-=l}function b(r){for(var t=[],i=r.head.next;i!==r.tail;)t.push(i.value),i=i.next;return t}if(!n.document)return n.addEventListener&&(a.disableWorkerMessageHandler||n.addEventListener("message",function(r){var t=JSON.parse(r.data),i=t.language,s=t.code,l=t.immediateClose;n.postMessage(a.highlight(s,a.languages[i],i)),l&&n.close()},!1)),a;var S=a.util.currentScript();S&&(a.filename=S.src,S.hasAttribute("data-manual")&&(a.manual=!0));function _(){a.manual||a.highlightAll()}if(!a.manual){var N=document.readyState;N==="loading"||N==="interactive"&&S&&S.defer?document.addEventListener("DOMContentLoaded",_):window.requestAnimationFrame?window.requestAnimationFrame(_):window.setTimeout(_,16)}return a})(Pe);typeof M<"u"&&M.exports&&(M.exports=ee);typeof global<"u"&&(global.Prism=ee)});var ne=k(()=>{Prism.languages.markup={comment:{pattern:/<!--(?:(?!<!--)[\s\S])*?-->/,greedy:!0},prolog:{pattern:/<\?[\s\S]+?\?>/,greedy:!0},doctype:{pattern:/<!DOCTYPE(?:[^>"'[\]]|"[^"]*"|'[^']*')+(?:\[(?:[^<"'\]]|"[^"]*"|'[^']*'|<(?!!--)|<!--(?:[^-]|-(?!->))*-->)*\]\s*)?>/i,greedy:!0,inside:{"internal-subset":{pattern:/(^[^\[]*\[)[\s\S]+(?=\]>$)/,lookbehind:!0,greedy:!0,inside:null},string:{pattern:/"[^"]*"|'[^']*'/,greedy:!0},punctuation:/^<!|>$|[[\]]/,"doctype-tag":/^DOCTYPE/i,name:/[^\s<>'"]+/}},cdata:{pattern:/<!\[CDATA\[[\s\S]*?\]\]>/i,greedy:!0},tag:{pattern:/<\/?(?!\d)[^\s>\/=$<%]+(?:\s(?:\s*[^\s>\/=]+(?:\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))|(?=[\s/>])))+)?\s*\/?>/,greedy:!0,inside:{tag:{pattern:/^<\/?[^\s>\/]+/,inside:{punctuation:/^<\/?/,namespace:/^[^\s>\/:]+:/}},"special-attr":[],"attr-value":{pattern:/=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+)/,inside:{punctuation:[{pattern:/^=/,alias:"attr-equals"},{pattern:/^(\s*)["']|["']$/,lookbehind:!0}]}},punctuation:/\/?>/,"attr-name":{pattern:/[^\s>\/]+/,inside:{namespace:/^[^\s>\/:]+:/}}}},entity:[{pattern:/&[\da-z]{1,8};/i,alias:"named-entity"},/&#x?[\da-f]{1,8};/i]};Prism.languages.markup.tag.inside["attr-value"].inside.entity=Prism.languages.markup.entity;Prism.languages.markup.doctype.inside["internal-subset"].inside=Prism.languages.markup;Prism.hooks.add("wrap",function(n){n.type==="entity"&&(n.attributes.title=n.content.replace(/&amp;/,"&"))});Object.defineProperty(Prism.languages.markup.tag,"addInlined",{value:function(e,o){var u={};u["language-"+o]={pattern:/(^<!\[CDATA\[)[\s\S]+?(?=\]\]>$)/i,lookbehind:!0,inside:Prism.languages[o]},u.cdata=/^<!\[CDATA\[|\]\]>$/i;var a={"included-cdata":{pattern:/<!\[CDATA\[[\s\S]*?\]\]>/i,inside:u}};a["language-"+o]={pattern:/[\s\S]+/,inside:Prism.languages[o]};var f={};f[e]={pattern:RegExp(/(<__[^>]*>)(?:<!\[CDATA\[(?:[^\]]|\](?!\]>))*\]\]>|(?!<!\[CDATA\[)[\s\S])*?(?=<\/__>)/.source.replace(/__/g,function(){return e}),"i"),lookbehind:!0,greedy:!0,inside:a},Prism.languages.insertBefore("markup","cdata",f)}});Object.defineProperty(Prism.languages.markup.tag,"addAttribute",{value:function(n,e){Prism.languages.markup.tag.inside["special-attr"].push({pattern:RegExp(/(^|["'\s])/.source+"(?:"+n+")"+/\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))/.source,"i"),lookbehind:!0,inside:{"attr-name":/^[^\s=]+/,"attr-value":{pattern:/=[\s\S]+/,inside:{value:{pattern:/(^=\s*(["']|(?!["'])))\S[\s\S]*(?=\2$)/,lookbehind:!0,alias:[e,"language-"+e],inside:Prism.languages[e]},punctuation:[{pattern:/^=/,alias:"attr-equals"},/"|'/]}}}})}});Prism.languages.html=Prism.languages.markup;Prism.languages.mathml=Prism.languages.markup;Prism.languages.svg=Prism.languages.markup;Prism.languages.xml=Prism.languages.extend("markup",{});Prism.languages.ssml=Prism.languages.xml;Prism.languages.atom=Prism.languages.xml;Prism.languages.rss=Prism.languages.xml});var ae=k(()=>{(function(n){var e=/(?:"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"|'(?:\\(?:\r\n|[\s\S])|[^'\\\r\n])*')/;n.languages.css={comment:/\/\*[\s\S]*?\*\//,atrule:{pattern:RegExp("@[\\w-](?:"+/[^;{\s"']|\s+(?!\s)/.source+"|"+e.source+")*?"+/(?:;|(?=\s*\{))/.source),inside:{rule:/^@[\w-]+/,"selector-function-argument":{pattern:/(\bselector\s*\(\s*(?![\s)]))(?:[^()\s]|\s+(?![\s)])|\((?:[^()]|\([^()]*\))*\))+(?=\s*\))/,lookbehind:!0,alias:"selector"},keyword:{pattern:/(^|[^\w-])(?:and|not|only|or)(?![\w-])/,lookbehind:!0}}},url:{pattern:RegExp("\\burl\\((?:"+e.source+"|"+/(?:[^\\\r\n()"']|\\[\s\S])*/.source+")\\)","i"),greedy:!0,inside:{function:/^url/i,punctuation:/^\(|\)$/,string:{pattern:RegExp("^"+e.source+"$"),alias:"url"}}},selector:{pattern:RegExp(`(^|[{}\\s])[^{}\\s](?:[^{};"'\\s]|\\s+(?![\\s{])|`+e.source+")*(?=\\s*\\{)"),lookbehind:!0},string:{pattern:e,greedy:!0},property:{pattern:/(^|[^-\w\xA0-\uFFFF])(?!\s)[-_a-z\xA0-\uFFFF](?:(?!\s)[-\w\xA0-\uFFFF])*(?=\s*:)/i,lookbehind:!0},important:/!important\b/i,function:{pattern:/(^|[^-a-z0-9])[-a-z0-9]+(?=\()/i,lookbehind:!0},punctuation:/[(){};:,]/},n.languages.css.atrule.inside.rest=n.languages.css;var o=n.languages.markup;o&&(o.tag.addInlined("style","css"),o.tag.addAttribute("style","css"))})(Prism)});var re=k(()=>{Prism.languages.clike={comment:[{pattern:/(^|[^\\])\/\*[\s\S]*?(?:\*\/|$)/,lookbehind:!0,greedy:!0},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:!0,greedy:!0}],string:{pattern:/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},"class-name":{pattern:/(\b(?:class|extends|implements|instanceof|interface|new|trait)\s+|\bcatch\s+\()[\w.\\]+/i,lookbehind:!0,inside:{punctuation:/[.\\]/}},keyword:/\b(?:break|catch|continue|do|else|finally|for|function|if|in|instanceof|new|null|return|throw|try|while)\b/,boolean:/\b(?:false|true)\b/,function:/\b\w+(?=\()/,number:/\b0x[\da-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?/i,operator:/[<>]=?|[!=]=?=?|--?|\+\+?|&&?|\|\|?|[?*/~^%]/,punctuation:/[{}[\];(),.:]/}});var ie=k(()=>{Prism.languages.javascript=Prism.languages.extend("clike",{"class-name":[Prism.languages.clike["class-name"],{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$A-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\.(?:constructor|prototype))/,lookbehind:!0}],keyword:[{pattern:/((?:^|\})\s*)catch\b/,lookbehind:!0},{pattern:/(^|[^.]|\.\.\.\s*)\b(?:as|assert(?=\s*\{)|async(?=\s*(?:function\b|\(|[$\w\xA0-\uFFFF]|$))|await|break|case|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally(?=\s*(?:\{|$))|for|from(?=\s*(?:['"]|$))|function|(?:get|set)(?=\s*(?:[#\[$\w\xA0-\uFFFF]|$))|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)\b/,lookbehind:!0}],function:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*(?:\.\s*(?:apply|bind|call)\s*)?\()/,number:{pattern:RegExp(/(^|[^\w$])/.source+"(?:"+(/NaN|Infinity/.source+"|"+/0[bB][01]+(?:_[01]+)*n?/.source+"|"+/0[oO][0-7]+(?:_[0-7]+)*n?/.source+"|"+/0[xX][\dA-Fa-f]+(?:_[\dA-Fa-f]+)*n?/.source+"|"+/\d+(?:_\d+)*n/.source+"|"+/(?:\d+(?:_\d+)*(?:\.(?:\d+(?:_\d+)*)?)?|\.\d+(?:_\d+)*)(?:[Ee][+-]?\d+(?:_\d+)*)?/.source)+")"+/(?![\w$])/.source),lookbehind:!0},operator:/--|\+\+|\*\*=?|=>|&&=?|\|\|=?|[!=]==|<<=?|>>>?=?|[-+*/%&|^!=<>]=?|\.{3}|\?\?=?|\?\.?|[~:]/});Prism.languages.javascript["class-name"][0].pattern=/(\b(?:class|extends|implements|instanceof|interface|new)\s+)[\w.\\]+/;Prism.languages.insertBefore("javascript","keyword",{regex:{pattern:RegExp(/((?:^|[^$\w\xA0-\uFFFF."'\])\s]|\b(?:return|yield))\s*)/.source+/\//.source+"(?:"+/(?:\[(?:[^\]\\\r\n]|\\.)*\]|\\.|[^/\\\[\r\n])+\/[dgimyus]{0,7}/.source+"|"+/(?:\[(?:[^[\]\\\r\n]|\\.|\[(?:[^[\]\\\r\n]|\\.|\[(?:[^[\]\\\r\n]|\\.)*\])*\])*\]|\\.|[^/\\\[\r\n])+\/[dgimyus]{0,7}v[dgimyus]{0,7}/.source+")"+/(?=(?:\s|\/\*(?:[^*]|\*(?!\/))*\*\/)*(?:$|[\r\n,.;:})\]]|\/\/))/.source),lookbehind:!0,greedy:!0,inside:{"regex-source":{pattern:/^(\/)[\s\S]+(?=\/[a-z]*$)/,lookbehind:!0,alias:"language-regex",inside:Prism.languages.regex},"regex-delimiter":/^\/|\/$/,"regex-flags":/^[a-z]+$/}},"function-variable":{pattern:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*[=:]\s*(?:async\s*)?(?:\bfunction\b|(?:\((?:[^()]|\([^()]*\))*\)|(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)\s*=>))/,alias:"function"},parameter:[{pattern:/(function(?:\s+(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)?\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\))/,lookbehind:!0,inside:Prism.languages.javascript},{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$a-z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*=>)/i,lookbehind:!0,inside:Prism.languages.javascript},{pattern:/(\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*=>)/,lookbehind:!0,inside:Prism.languages.javascript},{pattern:/((?:\b|\s|^)(?!(?:as|async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)(?![$\w\xA0-\uFFFF]))(?:(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*\s*)\(\s*|\]\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*\{)/,lookbehind:!0,inside:Prism.languages.javascript}],constant:/\b[A-Z](?:[A-Z_]|\dx?)*\b/});Prism.languages.insertBefore("javascript","string",{hashbang:{pattern:/^#!.*/,greedy:!0,alias:"comment"},"template-string":{pattern:/`(?:\\[\s\S]|\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}|(?!\$\{)[^\\`])*`/,greedy:!0,inside:{"template-punctuation":{pattern:/^`|`$/,alias:"string"},interpolation:{pattern:/((?:^|[^\\])(?:\\{2})*)\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}/,lookbehind:!0,inside:{"interpolation-punctuation":{pattern:/^\$\{|\}$/,alias:"punctuation"},rest:Prism.languages.javascript}},string:/[\s\S]+/}},"string-property":{pattern:/((?:^|[,{])[ \t]*)(["'])(?:\\(?:\r\n|[\s\S])|(?!\2)[^\\\r\n])*\2(?=\s*:)/m,lookbehind:!0,greedy:!0,alias:"property"}});Prism.languages.insertBefore("javascript","operator",{"literal-property":{pattern:/((?:^|[,{])[ \t]*)(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*:)/m,lookbehind:!0,alias:"property"}});Prism.languages.markup&&(Prism.languages.markup.tag.addInlined("script","javascript"),Prism.languages.markup.tag.addAttribute(/on(?:abort|blur|change|click|composition(?:end|start|update)|dblclick|error|focus(?:in|out)?|key(?:down|up)|load|mouse(?:down|enter|leave|move|out|over|up)|reset|resize|scroll|select|slotchange|submit|unload|wheel)/.source,"javascript"));Prism.languages.js=Prism.languages.javascript});var se=k(()=>{(function(n){n.languages.typescript=n.languages.extend("javascript",{"class-name":{pattern:/(\b(?:class|extends|implements|instanceof|interface|new|type)\s+)(?!keyof\b)(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?:\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>)?/,lookbehind:!0,greedy:!0,inside:null},builtin:/\b(?:Array|Function|Promise|any|boolean|console|never|number|string|symbol|unknown)\b/}),n.languages.typescript.keyword.push(/\b(?:abstract|declare|is|keyof|readonly|require)\b/,/\b(?:asserts|infer|interface|module|namespace|type)\b(?=\s*(?:[{_$a-zA-Z\xA0-\uFFFF]|$))/,/\btype\b(?=\s*(?:[\{*]|$))/),delete n.languages.typescript.parameter,delete n.languages.typescript["literal-property"];var e=n.languages.extend("typescript",{});delete e["class-name"],n.languages.typescript["class-name"].inside=e,n.languages.insertBefore("typescript","function",{decorator:{pattern:/@[$\w\xA0-\uFFFF]+/,inside:{at:{pattern:/^@/,alias:"operator"},function:/^[\s\S]+/}},"generic-function":{pattern:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>(?=\s*\()/,greedy:!0,inside:{function:/^#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*/,generic:{pattern:/<[\s\S]+/,alias:"class-name",inside:e}}}}),n.languages.ts=n.languages.typescript})(Prism)});var oe=k(()=>{Prism.languages.json={property:{pattern:/(^|[^\\])"(?:\\.|[^\\"\r\n])*"(?=\s*:)/,lookbehind:!0,greedy:!0},string:{pattern:/(^|[^\\])"(?:\\.|[^\\"\r\n])*"(?!\s*:)/,lookbehind:!0,greedy:!0},comment:{pattern:/\/\/.*|\/\*[\s\S]*?(?:\*\/|$)/,greedy:!0},number:/-?\b\d+(?:\.\d+)?(?:e[+-]?\d+)?\b/i,punctuation:/[{}[\],]/,operator:/:/,boolean:/\b(?:false|true)\b/,null:{pattern:/\bnull\b/,alias:"keyword"}};Prism.languages.webmanifest=Prism.languages.json});var le=k(()=>{(function(n){var e="\\b(?:BASH|BASHOPTS|BASH_ALIASES|BASH_ARGC|BASH_ARGV|BASH_CMDS|BASH_COMPLETION_COMPAT_DIR|BASH_LINENO|BASH_REMATCH|BASH_SOURCE|BASH_VERSINFO|BASH_VERSION|COLORTERM|COLUMNS|COMP_WORDBREAKS|DBUS_SESSION_BUS_ADDRESS|DEFAULTS_PATH|DESKTOP_SESSION|DIRSTACK|DISPLAY|EUID|GDMSESSION|GDM_LANG|GNOME_KEYRING_CONTROL|GNOME_KEYRING_PID|GPG_AGENT_INFO|GROUPS|HISTCONTROL|HISTFILE|HISTFILESIZE|HISTSIZE|HOME|HOSTNAME|HOSTTYPE|IFS|INSTANCE|JOB|LANG|LANGUAGE|LC_ADDRESS|LC_ALL|LC_IDENTIFICATION|LC_MEASUREMENT|LC_MONETARY|LC_NAME|LC_NUMERIC|LC_PAPER|LC_TELEPHONE|LC_TIME|LESSCLOSE|LESSOPEN|LINES|LOGNAME|LS_COLORS|MACHTYPE|MAILCHECK|MANDATORY_PATH|NO_AT_BRIDGE|OLDPWD|OPTERR|OPTIND|ORBIT_SOCKETDIR|OSTYPE|PAPERSIZE|PATH|PIPESTATUS|PPID|PS1|PS2|PS3|PS4|PWD|RANDOM|REPLY|SECONDS|SELINUX_INIT|SESSION|SESSIONTYPE|SESSION_MANAGER|SHELL|SHELLOPTS|SHLVL|SSH_AUTH_SOCK|TERM|UID|UPSTART_EVENTS|UPSTART_INSTANCE|UPSTART_JOB|UPSTART_SESSION|USER|WINDOWID|XAUTHORITY|XDG_CONFIG_DIRS|XDG_CURRENT_DESKTOP|XDG_DATA_DIRS|XDG_GREETER_DATA_DIR|XDG_MENU_PREFIX|XDG_RUNTIME_DIR|XDG_SEAT|XDG_SEAT_PATH|XDG_SESSION_DESKTOP|XDG_SESSION_ID|XDG_SESSION_PATH|XDG_SESSION_TYPE|XDG_VTNR|XMODIFIERS)\\b",o={pattern:/(^(["']?)\w+\2)[ \t]+\S.*/,lookbehind:!0,alias:"punctuation",inside:null},u={bash:o,environment:{pattern:RegExp("\\$"+e),alias:"constant"},variable:[{pattern:/\$?\(\([\s\S]+?\)\)/,greedy:!0,inside:{variable:[{pattern:/(^\$\(\([\s\S]+)\)\)/,lookbehind:!0},/^\$\(\(/],number:/\b0x[\dA-Fa-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:[Ee]-?\d+)?/,operator:/--|\+\+|\*\*=?|<<=?|>>=?|&&|\|\||[=!+\-*/%<>^&|]=?|[?~:]/,punctuation:/\(\(?|\)\)?|,|;/}},{pattern:/\$\((?:\([^)]+\)|[^()])+\)|`[^`]+`/,greedy:!0,inside:{variable:/^\$\(|^`|\)$|`$/}},{pattern:/\$\{[^}]+\}/,greedy:!0,inside:{operator:/:[-=?+]?|[!\/]|##?|%%?|\^\^?|,,?/,punctuation:/[\[\]]/,environment:{pattern:RegExp("(\\{)"+e),lookbehind:!0,alias:"constant"}}},/\$(?:\w+|[#?*!@$])/],entity:/\\(?:[abceEfnrtv\\"]|O?[0-7]{1,3}|U[0-9a-fA-F]{8}|u[0-9a-fA-F]{4}|x[0-9a-fA-F]{1,2})/};n.languages.bash={shebang:{pattern:/^#!\s*\/.*/,alias:"important"},comment:{pattern:/(^|[^"{\\$])#.*/,lookbehind:!0},"function-name":[{pattern:/(\bfunction\s+)[\w-]+(?=(?:\s*\(?:\s*\))?\s*\{)/,lookbehind:!0,alias:"function"},{pattern:/\b[\w-]+(?=\s*\(\s*\)\s*\{)/,alias:"function"}],"for-or-select":{pattern:/(\b(?:for|select)\s+)\w+(?=\s+in\s)/,alias:"variable",lookbehind:!0},"assign-left":{pattern:/(^|[\s;|&]|[<>]\()\w+(?:\.\w+)*(?=\+?=)/,inside:{environment:{pattern:RegExp("(^|[\\s;|&]|[<>]\\()"+e),lookbehind:!0,alias:"constant"}},alias:"variable",lookbehind:!0},parameter:{pattern:/(^|\s)-{1,2}(?:\w+:[+-]?)?\w+(?:\.\w+)*(?=[=\s]|$)/,alias:"variable",lookbehind:!0},string:[{pattern:/((?:^|[^<])<<-?\s*)(\w+)\s[\s\S]*?(?:\r?\n|\r)\2/,lookbehind:!0,greedy:!0,inside:u},{pattern:/((?:^|[^<])<<-?\s*)(["'])(\w+)\2\s[\s\S]*?(?:\r?\n|\r)\3/,lookbehind:!0,greedy:!0,inside:{bash:o}},{pattern:/(^|[^\\](?:\\\\)*)"(?:\\[\s\S]|\$\([^)]+\)|\$(?!\()|`[^`]+`|[^"\\`$])*"/,lookbehind:!0,greedy:!0,inside:u},{pattern:/(^|[^$\\])'[^']*'/,lookbehind:!0,greedy:!0},{pattern:/\$'(?:[^'\\]|\\[\s\S])*'/,greedy:!0,inside:{entity:u.entity}}],environment:{pattern:RegExp("\\$?"+e),alias:"constant"},variable:u.variable,function:{pattern:/(^|[\s;|&]|[<>]\()(?:add|apropos|apt|apt-cache|apt-get|aptitude|aspell|automysqlbackup|awk|basename|bash|bc|bconsole|bg|bzip2|cal|cargo|cat|cfdisk|chgrp|chkconfig|chmod|chown|chroot|cksum|clear|cmp|column|comm|composer|cp|cron|crontab|csplit|curl|cut|date|dc|dd|ddrescue|debootstrap|df|diff|diff3|dig|dir|dircolors|dirname|dirs|dmesg|docker|docker-compose|du|egrep|eject|env|ethtool|expand|expect|expr|fdformat|fdisk|fg|fgrep|file|find|fmt|fold|format|free|fsck|ftp|fuser|gawk|git|gparted|grep|groupadd|groupdel|groupmod|groups|grub-mkconfig|gzip|halt|head|hg|history|host|hostname|htop|iconv|id|ifconfig|ifdown|ifup|import|install|ip|java|jobs|join|kill|killall|less|link|ln|locate|logname|logrotate|look|lpc|lpr|lprint|lprintd|lprintq|lprm|ls|lsof|lynx|make|man|mc|mdadm|mkconfig|mkdir|mke2fs|mkfifo|mkfs|mkisofs|mknod|mkswap|mmv|more|most|mount|mtools|mtr|mutt|mv|nano|nc|netstat|nice|nl|node|nohup|notify-send|npm|nslookup|op|open|parted|passwd|paste|pathchk|ping|pkill|pnpm|podman|podman-compose|popd|pr|printcap|printenv|ps|pushd|pv|quota|quotacheck|quotactl|ram|rar|rcp|reboot|remsync|rename|renice|rev|rm|rmdir|rpm|rsync|scp|screen|sdiff|sed|sendmail|seq|service|sftp|sh|shellcheck|shuf|shutdown|sleep|slocate|sort|split|ssh|stat|strace|su|sudo|sum|suspend|swapon|sync|sysctl|tac|tail|tar|tee|time|timeout|top|touch|tr|traceroute|tsort|tty|umount|uname|unexpand|uniq|units|unrar|unshar|unzip|update-grub|uptime|useradd|userdel|usermod|users|uudecode|uuencode|v|vcpkg|vdir|vi|vim|virsh|vmstat|wait|watch|wc|wget|whereis|which|who|whoami|write|xargs|xdg-open|yarn|yes|zenity|zip|zsh|zypper)(?=$|[)\s;|&])/,lookbehind:!0},keyword:{pattern:/(^|[\s;|&]|[<>]\()(?:case|do|done|elif|else|esac|fi|for|function|if|in|select|then|until|while)(?=$|[)\s;|&])/,lookbehind:!0},builtin:{pattern:/(^|[\s;|&]|[<>]\()(?:\.|:|alias|bind|break|builtin|caller|cd|command|continue|declare|echo|enable|eval|exec|exit|export|getopts|hash|help|let|local|logout|mapfile|printf|pwd|read|readarray|readonly|return|set|shift|shopt|source|test|times|trap|type|typeset|ulimit|umask|unalias|unset)(?=$|[)\s;|&])/,lookbehind:!0,alias:"class-name"},boolean:{pattern:/(^|[\s;|&]|[<>]\()(?:false|true)(?=$|[)\s;|&])/,lookbehind:!0},"file-descriptor":{pattern:/\B&\d\b/,alias:"important"},operator:{pattern:/\d?<>|>\||\+=|=[=~]?|!=?|<<[<-]?|[&\d]?>>|\d[<>]&?|[<>][&=]?|&[>&]?|\|[&|]?/,inside:{"file-descriptor":{pattern:/^\d/,alias:"important"}}},punctuation:/\$?\(\(?|\)\)?|\.\.|[{}[\];\\]/,number:{pattern:/(^|\s)(?:[1-9]\d*|0)(?:[.,]\d+)?\b/,lookbehind:!0}},o.inside=n.languages.bash;for(var a=["comment","function-name","for-or-select","assign-left","parameter","string","environment","function","keyword","builtin","boolean","file-descriptor","operator","punctuation","number"],f=u.variable[1].inside,c=0;c<a.length;c++)f[a[c]]=n.languages.bash[a[c]];n.languages.sh=n.languages.bash,n.languages.shell=n.languages.bash})(Prism)});var ue=k(()=>{Prism.languages.python={comment:{pattern:/(^|[^\\])#.*/,lookbehind:!0,greedy:!0},"string-interpolation":{pattern:/(?:f|fr|rf)(?:("""|''')[\s\S]*?\1|("|')(?:\\.|(?!\2)[^\\\r\n])*\2)/i,greedy:!0,inside:{interpolation:{pattern:/((?:^|[^{])(?:\{\{)*)\{(?!\{)(?:[^{}]|\{(?!\{)(?:[^{}]|\{(?!\{)(?:[^{}])+\})+\})+\}/,lookbehind:!0,inside:{"format-spec":{pattern:/(:)[^:(){}]+(?=\}$)/,lookbehind:!0},"conversion-option":{pattern:/![sra](?=[:}]$)/,alias:"punctuation"},rest:null}},string:/[\s\S]+/}},"triple-quoted-string":{pattern:/(?:[rub]|br|rb)?("""|''')[\s\S]*?\1/i,greedy:!0,alias:"string"},string:{pattern:/(?:[rub]|br|rb)?("|')(?:\\.|(?!\1)[^\\\r\n])*\1/i,greedy:!0},function:{pattern:/((?:^|\s)def[ \t]+)[a-zA-Z_]\w*(?=\s*\()/g,lookbehind:!0},"class-name":{pattern:/(\bclass\s+)\w+/i,lookbehind:!0},decorator:{pattern:/(^[\t ]*)@\w+(?:\.\w+)*/m,lookbehind:!0,alias:["annotation","punctuation"],inside:{punctuation:/\./}},keyword:/\b(?:_(?=\s*:)|and|as|assert|async|await|break|case|class|continue|def|del|elif|else|except|exec|finally|for|from|global|if|import|in|is|lambda|match|nonlocal|not|or|pass|print|raise|return|try|while|with|yield)\b/,builtin:/\b(?:__import__|abs|all|any|apply|ascii|basestring|bin|bool|buffer|bytearray|bytes|callable|chr|classmethod|cmp|coerce|compile|complex|delattr|dict|dir|divmod|enumerate|eval|execfile|file|filter|float|format|frozenset|getattr|globals|hasattr|hash|help|hex|id|input|int|intern|isinstance|issubclass|iter|len|list|locals|long|map|max|memoryview|min|next|object|oct|open|ord|pow|property|range|raw_input|reduce|reload|repr|reversed|round|set|setattr|slice|sorted|staticmethod|str|sum|super|tuple|type|unichr|unicode|vars|xrange|zip)\b/,boolean:/\b(?:False|None|True)\b/,number:/\b0(?:b(?:_?[01])+|o(?:_?[0-7])+|x(?:_?[a-f0-9])+)\b|(?:\b\d+(?:_\d+)*(?:\.(?:\d+(?:_\d+)*)?)?|\B\.\d+(?:_\d+)*)(?:e[+-]?\d+(?:_\d+)*)?j?(?!\w)/i,operator:/[-+%=]=?|!=|:=|\*\*?=?|\/\/?=?|<[<=>]?|>[=>]?|[&|^~]/,punctuation:/[{}[\];(),.:]/};Prism.languages.python["string-interpolation"].inside.interpolation.inside.rest=Prism.languages.python;Prism.languages.py=Prism.languages.python});var ce=k(()=>{(function(n){n.languages.diff={coord:[/^(?:\*{3}|-{3}|\+{3}).*$/m,/^@@.*@@$/m,/^\d.*$/m]};var e={"deleted-sign":"-","deleted-arrow":"<","inserted-sign":"+","inserted-arrow":">",unchanged:" ",diff:"!"};Object.keys(e).forEach(function(o){var u=e[o],a=[];/^\w+$/.test(o)||a.push(/\w+/.exec(o)[0]),o==="diff"&&a.push("bold"),n.languages.diff[o]={pattern:RegExp("^(?:["+u+`].*(?:\r
2
2
  ?|
3
- |(?![\\s\\S])))+`,"m"),alias:a,inside:{line:{pattern:/(.)(?=[\s\S]).*(?:\r\n?|\n)?/,lookbehind:!0},prefix:{pattern:/[\s\S]/,alias:/\w+/.exec(o)[0]}}}}),Object.defineProperty(n.languages.diff,"PREFIXES",{value:e})})(Prism)});var de=F(()=>{(function(){if(typeof Prism>"u"||typeof document>"u")return;var n="line-numbers",e=/\n(?!$)/g,o=Prism.plugins.lineNumbers={getLine:function(u,h){if(!(u.tagName!=="PRE"||!u.classList.contains(n))){var g=u.querySelector(".line-numbers-rows");if(g){var f=parseInt(u.getAttribute("data-start"),10)||1,y=f+(g.children.length-1);h<f&&(h=f),h>y&&(h=y);var b=h-f;return g.children[b]}}},resize:function(u){c([u])},assumeViewportIndependence:!0};function c(u){if(u=u.filter(function(g){var f=a(g),y=f["white-space"];return y==="pre-wrap"||y==="pre-line"}),u.length!=0){var h=u.map(function(g){var f=g.querySelector("code"),y=g.querySelector(".line-numbers-rows");if(!(!f||!y)){var b=g.querySelector(".line-numbers-sizer"),S=f.textContent.split(e);b||(b=document.createElement("span"),b.className="line-numbers-sizer",f.appendChild(b)),b.innerHTML="0",b.style.display="block";var _=b.getBoundingClientRect().height;return b.innerHTML="",{element:g,lines:S,lineHeights:[],oneLinerHeight:_,sizer:b}}}).filter(Boolean);h.forEach(function(g){var f=g.sizer,y=g.lines,b=g.lineHeights,S=g.oneLinerHeight;b[y.length-1]=void 0,y.forEach(function(_,N){if(_&&_.length>1){var r=f.appendChild(document.createElement("span"));r.style.display="block",r.textContent=_}else b[N]=S})}),h.forEach(function(g){for(var f=g.sizer,y=g.lineHeights,b=0,S=0;S<y.length;S++)y[S]===void 0&&(y[S]=f.children[b++].getBoundingClientRect().height)}),h.forEach(function(g){var f=g.sizer,y=g.element.querySelector(".line-numbers-rows");f.style.display="none",f.innerHTML="",g.lineHeights.forEach(function(b,S){y.children[S].style.height=b+"px"})})}}function a(u){return u?window.getComputedStyle?getComputedStyle(u):u.currentStyle||null:null}var m=void 0;window.addEventListener("resize",function(){o.assumeViewportIndependence&&m===window.innerWidth||(m=window.innerWidth,c(Array.prototype.slice.call(document.querySelectorAll("pre."+n))))}),Prism.hooks.add("complete",function(u){if(u.code){var h=u.element,g=h.parentNode;if(!(!g||!/pre/i.test(g.nodeName))&&!h.querySelector(".line-numbers-rows")&&Prism.util.isActive(h,n)){h.classList.remove(n),g.classList.add(n);var f=u.code.match(e),y=f?f.length+1:1,b,S=new Array(y+1).join("<span></span>");b=document.createElement("span"),b.setAttribute("aria-hidden","true"),b.className="line-numbers-rows",b.innerHTML=S,g.hasAttribute("data-start")&&(g.style.counterReset="linenumber "+(parseInt(g.getAttribute("data-start"),10)-1)),u.element.appendChild(b),c([g]),Prism.hooks.run("line-numbers",u)}}}),Prism.hooks.add("line-numbers",function(u){u.plugins=u.plugins||{},u.plugins.lineNumbers=!0})})()});var z=k(te(),1);globalThis.Prism=z.default;z.default.manual=!0;await Promise.resolve().then(()=>k(ne(),1));await Promise.resolve().then(()=>k(ae(),1));await Promise.resolve().then(()=>k(re(),1));await Promise.resolve().then(()=>k(ie(),1));await Promise.resolve().then(()=>k(se(),1));await Promise.resolve().then(()=>k(oe(),1));await Promise.resolve().then(()=>k(le(),1));await Promise.resolve().then(()=>k(ue(),1));await Promise.resolve().then(()=>k(ce(),1));await Promise.resolve().then(()=>k(de(),1));var X="bp-source",ge=".bp-source",U=new WeakMap,he=Object.freeze({bash:{grammar:"bash",label:"Bash"},css:{grammar:"css",label:"CSS"},diff:{grammar:"diff",label:"Diff"},html:{grammar:"markup",label:"HTML"},javascript:{grammar:"javascript",label:"JavaScript"},js:{grammar:"javascript",label:"JavaScript"},json:{grammar:"json",label:"JSON"},markup:{grammar:"markup",label:"HTML"},py:{grammar:"python",label:"Python"},python:{grammar:"python",label:"Python"},sh:{grammar:"bash",label:"Bash"},shell:{grammar:"bash",label:"Bash"},ts:{grammar:"typescript",label:"TypeScript"},typescript:{grammar:"typescript",label:"TypeScript"},xml:{grammar:"markup",label:"XML"}});function W(n){let e=n.replaceAll(`\r
3
+ |(?![\\s\\S])))+`,"m"),alias:a,inside:{line:{pattern:/(.)(?=[\s\S]).*(?:\r\n?|\n)?/,lookbehind:!0},prefix:{pattern:/[\s\S]/,alias:/\w+/.exec(o)[0]}}}}),Object.defineProperty(n.languages.diff,"PREFIXES",{value:e})})(Prism)});var de=k(()=>{(function(){if(typeof Prism>"u"||typeof document>"u")return;var n="line-numbers",e=/\n(?!$)/g,o=Prism.plugins.lineNumbers={getLine:function(c,h){if(!(c.tagName!=="PRE"||!c.classList.contains(n))){var g=c.querySelector(".line-numbers-rows");if(g){var m=parseInt(c.getAttribute("data-start"),10)||1,y=m+(g.children.length-1);h<m&&(h=m),h>y&&(h=y);var b=h-m;return g.children[b]}}},resize:function(c){u([c])},assumeViewportIndependence:!0};function u(c){if(c=c.filter(function(g){var m=a(g),y=m["white-space"];return y==="pre-wrap"||y==="pre-line"}),c.length!=0){var h=c.map(function(g){var m=g.querySelector("code"),y=g.querySelector(".line-numbers-rows");if(!(!m||!y)){var b=g.querySelector(".line-numbers-sizer"),S=m.textContent.split(e);b||(b=document.createElement("span"),b.className="line-numbers-sizer",m.appendChild(b)),b.innerHTML="0",b.style.display="block";var _=b.getBoundingClientRect().height;return b.innerHTML="",{element:g,lines:S,lineHeights:[],oneLinerHeight:_,sizer:b}}}).filter(Boolean);h.forEach(function(g){var m=g.sizer,y=g.lines,b=g.lineHeights,S=g.oneLinerHeight;b[y.length-1]=void 0,y.forEach(function(_,N){if(_&&_.length>1){var r=m.appendChild(document.createElement("span"));r.style.display="block",r.textContent=_}else b[N]=S})}),h.forEach(function(g){for(var m=g.sizer,y=g.lineHeights,b=0,S=0;S<y.length;S++)y[S]===void 0&&(y[S]=m.children[b++].getBoundingClientRect().height)}),h.forEach(function(g){var m=g.sizer,y=g.element.querySelector(".line-numbers-rows");m.style.display="none",m.innerHTML="",g.lineHeights.forEach(function(b,S){y.children[S].style.height=b+"px"})})}}function a(c){return c?window.getComputedStyle?getComputedStyle(c):c.currentStyle||null:null}var f=void 0;window.addEventListener("resize",function(){o.assumeViewportIndependence&&f===window.innerWidth||(f=window.innerWidth,u(Array.prototype.slice.call(document.querySelectorAll("pre."+n))))}),Prism.hooks.add("complete",function(c){if(c.code){var h=c.element,g=h.parentNode;if(!(!g||!/pre/i.test(g.nodeName))&&!h.querySelector(".line-numbers-rows")&&Prism.util.isActive(h,n)){h.classList.remove(n),g.classList.add(n);var m=c.code.match(e),y=m?m.length+1:1,b,S=new Array(y+1).join("<span></span>");b=document.createElement("span"),b.setAttribute("aria-hidden","true"),b.className="line-numbers-rows",b.innerHTML=S,g.hasAttribute("data-start")&&(g.style.counterReset="linenumber "+(parseInt(g.getAttribute("data-start"),10)-1)),c.element.appendChild(b),u([g]),Prism.hooks.run("line-numbers",c)}}}),Prism.hooks.add("line-numbers",function(c){c.plugins=c.plugins||{},c.plugins.lineNumbers=!0})})()});var z=F(te(),1);globalThis.Prism=z.default;z.default.manual=!0;await Promise.resolve().then(()=>F(ne(),1));await Promise.resolve().then(()=>F(ae(),1));await Promise.resolve().then(()=>F(re(),1));await Promise.resolve().then(()=>F(ie(),1));await Promise.resolve().then(()=>F(se(),1));await Promise.resolve().then(()=>F(oe(),1));await Promise.resolve().then(()=>F(le(),1));await Promise.resolve().then(()=>F(ue(),1));await Promise.resolve().then(()=>F(ce(),1));await Promise.resolve().then(()=>F(de(),1));var X="bp-source",ge=".bp-source",U=new WeakMap,he=Object.freeze({bash:{grammar:"bash",label:"Bash"},css:{grammar:"css",label:"CSS"},diff:{grammar:"diff",label:"Diff"},html:{grammar:"markup",label:"HTML"},javascript:{grammar:"javascript",label:"JavaScript"},js:{grammar:"javascript",label:"JavaScript"},json:{grammar:"json",label:"JSON"},markup:{grammar:"markup",label:"HTML"},py:{grammar:"python",label:"Python"},python:{grammar:"python",label:"Python"},sh:{grammar:"bash",label:"Bash"},shell:{grammar:"bash",label:"Bash"},ts:{grammar:"typescript",label:"TypeScript"},typescript:{grammar:"typescript",label:"TypeScript"},xml:{grammar:"markup",label:"XML"}});function W(n){let e=n.replaceAll(`\r
4
4
  `,`
5
5
  `).split(`
6
- `);e[0]?.trim()===""&&e.shift(),e.at(-1)?.trim()===""&&e.pop();let o=u=>u.match(/^[\t ]*/)?.[0].length??0,c=e.length>1&&e[0].trim()!==""&&o(e[0])===0,a=e.filter((u,h)=>u.trim()&&!(c&&h===0)).map(o),m=a.length?Math.min(...a):0;return e.map((u,h)=>c&&h===0?u:u.slice(m)).join(`
7
- `)}function me(n){let e=n.trim().toLowerCase();return he[e]??{grammar:"plain",label:e||"Plain text"}}function fe(n,e){let o=globalThis.Prism,c=o?.languages?.[e],a=c&&e!=="plain";return n.className=`language-${a?e:"none"}`,n.parentElement.className=n.className,n.parentElement.tabIndex=0,a?(n.innerHTML=o.highlight(n.textContent,c,e),!0):!1}var L=class extends HTMLElement{static observedAttributes=["language","open"];static languages=Object.freeze(Object.keys(he));#a;#t;#e;#n;#r=!1;connectedCallback(){this.#r||(this.#n=W(this.textContent??""),this.#o(),this.#r=!0),this.#i()}attributeChangedCallback(){this.#r&&this.#i()}get language(){return this.getAttribute("language")||"text"}set language(e){this.setAttribute("language",e)}get sourceText(){return this.#n??W(this.textContent??"")}#o(){let e=document.createElement("details"),o=document.createElement("summary"),c=document.createElement("span"),a=document.createElement("div"),m=document.createElement("span"),u=document.createElement("button"),h=document.createElement("pre"),g=document.createElement("code");e.className=ge.slice(1),c.className="bp-source-name",c.textContent=this.getAttribute("summary")||"Source",a.className="bp-source-toolbar",m.className="bp-source-language",u.className="bp-source-copy",u.type="button",u.dataset.bpCopy="",u.setAttribute("aria-live","polite"),u.textContent="Copy",g.textContent=this.#n,a.append(m,u),o.append(c,a),h.append(g),e.append(o,h),this.replaceChildren(e),this.#a=e,this.#t=m,this.#e=g}#i(){let e=me(this.language);this.#a.open=this.hasAttribute("open"),this.#t.textContent=e.label,this.#e.textContent=this.#n;let o=fe(this.#e,e.grammar);this.dataset.bpHighlightState=o?"ready":"plain"}};customElements.get(X)||customElements.define(X,L);var pe="bp-cite",_e=0,Z=class extends HTMLElement{static observedAttributes=["language","loc","code","for"];#a=!1;#t;#e;#n;#r;#o;#i="";#s=!1;#l;#u;connectedCallback(){this.#a||(this.#d(),this.#m(),this.#a=!0),this.#p()}attributeChangedCallback(){this.#a&&(this.#d(),this.#p())}#d(){let e=this.querySelector(":scope > template"),o=this.getAttribute("for")?this.ownerDocument.getElementById(this.getAttribute("for")):null,c=this.getAttribute("code");if(c==null&&o&&(c=o.sourceText??o.textContent),c==null&&e&&(c=e.content.textContent),this.#i=W(c??""),!this.#a){let a="";for(let m of this.childNodes)m.nodeName.toLowerCase()!=="template"&&(a+=m.textContent??"");this.dataset.bpLabel=a.trim()||this.getAttribute("loc")||"source"}}get sourceText(){return this.#i}#m(){let e=`bp-cite-${_e+=1}`,o=document.createElement("button");o.type="button",o.className="bp-cite-trigger",o.textContent=this.dataset.bpLabel,o.setAttribute("aria-describedby",e),o.setAttribute("aria-expanded","false");let c=document.createElement("span");c.className="bp-cite-icon",c.setAttribute("aria-hidden","true"),o.append(c);let a=document.createElement("div");a.className="bp-cite-pop",a.id=e,a.setAttribute("role","tooltip"),a.showPopover&&a.setAttribute("popover","manual");let m=document.createElement("div");m.className="bp-cite-head";let u=document.createElement("span");u.className="bp-cite-loc";let h=document.createElement("span");h.className="bp-cite-lang",m.append(u,h);let g=document.createElement("pre"),f=document.createElement("code");g.append(f),a.append(m,g),this.replaceChildren(o,a),this.#t=o,this.#e=a,this.#n=f,this.#r=u,this.#o=h,this.#f()}#p(){let e=me(this.getAttribute("language")||"text");this.#o.textContent=e.label,this.#r.textContent=this.getAttribute("loc")||e.label,this.#t&&(this.#t.firstChild.textContent=this.dataset.bpLabel),this.#n.textContent=this.#i,fe(this.#n,e.grammar)}#f(){let e=()=>{clearTimeout(this.#l),this.#g()},o=()=>{clearTimeout(this.#l),this.#l=setTimeout(()=>this.#c(),140)};this.#t.addEventListener("pointerenter",e),this.#t.addEventListener("pointerleave",o),this.#t.addEventListener("focus",e),this.#t.addEventListener("blur",o),this.#e.addEventListener("pointerenter",()=>clearTimeout(this.#l)),this.#e.addEventListener("pointerleave",o),this.#t.addEventListener("click",()=>{this.#s=!this.#s,this.#s?this.#g():this.#c(!0)}),this.#u=()=>{this.#e.matches(".bp-cite-pop:popover-open, .bp-cite-pop.is-open")&&this.#h()},window.addEventListener("scroll",this.#u,{passive:!0}),window.addEventListener("resize",this.#u,{passive:!0}),document.addEventListener("keydown",c=>{c.key==="Escape"&&this.#b()&&(this.#s=!1,this.#c(!0),this.#t.focus())})}#b(){return this.#e.matches(".bp-cite-pop:popover-open, .bp-cite-pop.is-open")}#g(){if(this.#e.showPopover)try{this.#e.matches(":popover-open")||this.#e.showPopover()}catch{this.#e.classList.add("is-open")}else this.#e.classList.add("is-open");this.#t.setAttribute("aria-expanded","true"),requestAnimationFrame(()=>this.#h())}#c(e=!1){if(!(this.#s&&!e)){if(this.#e.hidePopover&&this.#e.matches(":popover-open"))try{this.#e.hidePopover()}catch{}this.#e.classList.remove("is-open"),this.#t.setAttribute("aria-expanded","false")}}#h(){let e=this.#t.getBoundingClientRect(),o=this.#e.getBoundingClientRect(),c=10,a=10,m="top",u=e.top-o.height-a;u<c&&(u=e.bottom+a,m="bottom");let h=e.left+e.width/2-o.width/2;h=Math.max(c,Math.min(h,window.innerWidth-o.width-c)),this.#e.style.left=`${Math.round(h)}px`,this.#e.style.top=`${Math.round(u)}px`,this.#e.dataset.placement=m;let g=Math.max(14,Math.min(o.width-14,e.left+e.width/2-h));this.#e.style.setProperty("--bp-cite-caret",`${Math.round(g)}px`)}};customElements.get(pe)||customElements.define(pe,Z);function Te(n){let e=n.closest(X);return e instanceof L?e:n.querySelector("pre code")}async function Ce(n){if(!globalThis.isSecureContext||!navigator.clipboard?.writeText)throw new Error("The Clipboard API requires a secure context");await navigator.clipboard.writeText(n)}function q(n,e){let o=U.get(n);o&&clearTimeout(o),n.dataset.bpCopyState=e,n.textContent=e==="copied"?"Copied":"Copy failed",U.set(n,setTimeout(()=>{delete n.dataset.bpCopyState,n.textContent="Copy",U.delete(n)},1800))}document.addEventListener("click",async n=>{let e=n.target instanceof Element?n.target.closest("[data-bp-copy]"):null;if(!(e instanceof HTMLButtonElement))return;n.preventDefault();let o=e.closest(ge),c=o?Te(o):null;if(!c)return q(e,"error");let a=c instanceof L?c.sourceText:c.textContent;try{await Ce(a??""),q(e,"copied")}catch{q(e,"error")}});z.default.highlightAll();
6
+ `);e[0]?.trim()===""&&e.shift(),e.at(-1)?.trim()===""&&e.pop();let o=c=>c.match(/^[\t ]*/)?.[0].length??0,u=e.length>1&&e[0].trim()!==""&&o(e[0])===0,a=e.filter((c,h)=>c.trim()&&!(u&&h===0)).map(o),f=a.length?Math.min(...a):0;return e.map((c,h)=>u&&h===0?c:c.slice(f)).join(`
7
+ `)}function me(n){let e=n.trim().toLowerCase();return he[e]??{grammar:"plain",label:e||"Plain text"}}function fe(n,e){let o=globalThis.Prism,u=o?.languages?.[e],a=u&&e!=="plain";return n.className=`language-${a?e:"none"}`,n.parentElement.className=n.className,n.parentElement.tabIndex=0,a?(n.innerHTML=o.highlight(n.textContent,u,e),!0):!1}var $=class extends HTMLElement{static observedAttributes=["language","open"];static languages=Object.freeze(Object.keys(he));#a;#t;#e;#n;#r=!1;connectedCallback(){this.#r||(this.#n=W(this.textContent??""),this.#s(),this.#r=!0),this.#o()}attributeChangedCallback(){this.#r&&this.#o()}get language(){return this.getAttribute("language")||"text"}set language(e){this.setAttribute("language",e)}get sourceText(){return this.#n??W(this.textContent??"")}#s(){let e=document.createElement("details"),o=document.createElement("summary"),u=document.createElement("span"),a=document.createElement("div"),f=document.createElement("span"),c=document.createElement("button"),h=document.createElement("pre"),g=document.createElement("code");e.className=ge.slice(1),u.className="bp-source-name",u.textContent=this.getAttribute("summary")||"Source",a.className="bp-source-toolbar",f.className="bp-source-language",c.className="bp-source-copy",c.type="button",c.dataset.bpCopy="",c.setAttribute("aria-live","polite"),c.textContent="Copy",g.textContent=this.#n,a.append(f,c),o.append(u,a),h.append(g),e.append(o,h),this.replaceChildren(e),this.#a=e,this.#t=f,this.#e=g}#o(){let e=me(this.language);this.#a.open=this.hasAttribute("open"),this.#t.textContent=e.label,this.#e.textContent=this.#n;let o=fe(this.#e,e.grammar);this.dataset.bpHighlightState=o?"ready":"plain"}};customElements.get(X)||customElements.define(X,$);var pe="bp-cite",_e=0,Te='<svg viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-width="1.25" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><rect x="2" y="3" width="12" height="10" rx="1"/><line x1="10" y1="3" x2="10" y2="13"/><polyline points="4.5,6 6.5,8 4.5,10"/></svg>',Z=class extends HTMLElement{static observedAttributes=["language","loc","code","for"];#a=!1;#t;#e;#n;#r;#s;#o;#l="";#i=!1;#u;#d;connectedCallback(){this.#a||(this.#p(),this.#b(),this.#a=!0),this.#g()}attributeChangedCallback(){this.#a&&(this.#p(),this.#g())}#p(){let e=this.querySelector(":scope > template"),o=this.getAttribute("for")?this.ownerDocument.getElementById(this.getAttribute("for")):null,u=this.getAttribute("code");if(u==null&&o&&(u=o.sourceText??o.textContent),u==null&&e&&(u=e.content.textContent),this.#l=W(u??""),!this.#a){let a="";for(let f of this.childNodes)f.nodeName.toLowerCase()!=="template"&&(a+=f.textContent??"");this.dataset.bpLabel=a.trim()||this.getAttribute("loc")||"source"}}get sourceText(){return this.#l}#b(){let e=`bp-cite-${_e+=1}`,o=document.createElement("button");o.type="button",o.className="bp-cite-trigger",o.textContent=this.dataset.bpLabel,o.setAttribute("aria-describedby",e),o.setAttribute("aria-expanded","false");let u=document.createElement("span");u.className="bp-cite-icon",u.setAttribute("aria-hidden","true"),o.append(u);let a=document.createElement("div");a.className="bp-cite-pop",a.id=e,a.setAttribute("role","tooltip"),a.showPopover&&a.setAttribute("popover","manual");let f=document.createElement("div");f.className="bp-cite-head";let c=document.createElement("span");c.className="bp-cite-loc";let h=document.createElement("div");h.className="bp-cite-actions";let g=document.createElement("span");g.className="bp-cite-lang";let m=document.createElement("button");m.type="button",m.className="bp-cite-expand",m.title="Open in side pane",m.setAttribute("aria-label","Open source in side pane"),m.innerHTML=Te,h.append(g,m),f.append(c,h);let y=document.createElement("pre"),b=document.createElement("code");y.append(b),a.append(f,y),this.replaceChildren(o,a),this.#t=o,this.#e=a,this.#n=b,this.#r=c,this.#s=g,this.#o=m,this.#v()}#g(){let e=me(this.getAttribute("language")||"text");this.#s.textContent=e.label,this.#r.textContent=this.getAttribute("loc")||e.label,this.#t&&(this.#t.firstChild.textContent=this.dataset.bpLabel),this.#n.textContent=this.#l,fe(this.#n,e.grammar)}#v(){let e=()=>{clearTimeout(this.#u),this.#m()},o=()=>{clearTimeout(this.#u),this.#u=setTimeout(()=>this.#c(),140)};this.#t.addEventListener("pointerenter",e),this.#t.addEventListener("pointerleave",o),this.#t.addEventListener("focus",e),this.#t.addEventListener("blur",o),this.#e.addEventListener("pointerenter",()=>clearTimeout(this.#u)),this.#e.addEventListener("pointerleave",o),this.#t.addEventListener("click",()=>{if(this.#S()){this.#h();return}this.#i=!this.#i,this.#i?this.#m():this.#c(!0)}),this.#o.addEventListener("click",u=>{u.preventDefault(),u.stopPropagation(),this.#h()}),this.#d=()=>{this.#e.matches(".bp-cite-pop:popover-open, .bp-cite-pop.is-open")&&this.#f()},window.addEventListener("scroll",this.#d,{passive:!0}),window.addEventListener("resize",this.#d,{passive:!0}),document.addEventListener("keydown",u=>{u.key==="Escape"&&this.#y()&&(this.#i=!1,this.#c(!0),this.#t.focus())})}#y(){return this.#e.matches(".bp-cite-pop:popover-open, .bp-cite-pop.is-open")}#S(){return document.documentElement.hasAttribute("data-bp-cite-pane")}#h(){this.#A(),this.#i=!1,this.#c(!0),this.#t.setAttribute("aria-expanded","true")}#A(){let e=this.#e.querySelector("pre");this.dispatchEvent(new CustomEvent("bp-cite-open",{bubbles:!0,composed:!0,detail:{label:this.dataset.bpLabel,loc:this.getAttribute("loc")||"",language:this.#s.textContent||"",languageId:this.getAttribute("language")||"text",code:this.#l,source:e?e.cloneNode(!0):null}}))}#m(){if(this.#e.showPopover)try{this.#e.matches(":popover-open")||this.#e.showPopover()}catch{this.#e.classList.add("is-open")}else this.#e.classList.add("is-open");this.#t.setAttribute("aria-expanded","true"),requestAnimationFrame(()=>this.#f())}#c(e=!1){if(!(this.#i&&!e)){if(this.#e.hidePopover&&this.#e.matches(":popover-open"))try{this.#e.hidePopover()}catch{}this.#e.classList.remove("is-open"),this.#t.setAttribute("aria-expanded","false")}}#f(){let e=this.#t.getBoundingClientRect(),o=this.#e.getBoundingClientRect(),u=10,a=10,f="top",c=e.top-o.height-a;c<u&&(c=e.bottom+a,f="bottom");let h=e.left+e.width/2-o.width/2;h=Math.max(u,Math.min(h,window.innerWidth-o.width-u)),this.#e.style.left=`${Math.round(h)}px`,this.#e.style.top=`${Math.round(c)}px`,this.#e.dataset.placement=f;let g=Math.max(14,Math.min(o.width-14,e.left+e.width/2-h));this.#e.style.setProperty("--bp-cite-caret",`${Math.round(g)}px`)}};customElements.get(pe)||customElements.define(pe,Z);function Ce(n){let e=n.closest(X);return e instanceof $?e:n.querySelector("pre code")}async function Ie(n){if(!globalThis.isSecureContext||!navigator.clipboard?.writeText)throw new Error("The Clipboard API requires a secure context");await navigator.clipboard.writeText(n)}function q(n,e){let o=U.get(n);o&&clearTimeout(o),n.dataset.bpCopyState=e,n.textContent=e==="copied"?"Copied":"Copy failed",U.set(n,setTimeout(()=>{delete n.dataset.bpCopyState,n.textContent="Copy",U.delete(n)},1800))}document.addEventListener("click",async n=>{let e=n.target instanceof Element?n.target.closest("[data-bp-copy]"):null;if(!(e instanceof HTMLButtonElement))return;n.preventDefault();let o=e.closest(ge),u=o?Ce(o):null;if(!u)return q(e,"error");let a=u instanceof $?u.sourceText:u.textContent;try{await Ie(a??""),q(e,"copied")}catch{q(e,"error")}});z.default.highlightAll();
8
8
  /*! Bundled license information:
9
9
 
10
10
  prismjs/components/prism-core.js:
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@obvi/blueprint",
3
- "version": "1.1.1",
3
+ "version": "1.1.2",
4
4
  "description": "A classless-first CSS design system for beautiful technical blueprint documents.",
5
5
  "license": "MIT",
6
6
  "type": "module",